% BOOKbangla — Bangla and Assamese books with memoir and LaTeXbangla. % Copyright 2019, 2026 Adib Hasan . % Distributed under LPPL 1.3c or later; see LICENSE. % Maintained by Adib Hasan. This work consists of the files listed in README. \NeedsTeXFormat{LaTeX2e}[2026-06-01] \ProvidesClass{bookbangla}[2026/10/24 v1.0 Bangla and Assamese books with memoir] % Forward language selection to LaTeXbangla; it remains the single source of % language state. All other class options go to memoir. \DeclareOption{language=bangla}{\PassOptionsToPackage{language=bangla}{latexbangla}} \DeclareOption{language=assamese}{\PassOptionsToPackage{language=assamese}{latexbangla}} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{memoir}} \PassOptionsToClass{a4paper,12pt}{memoir} \ProcessOptions\relax \LoadClass{memoir} \RequirePackage{iftex} \RequireTUTeX \RequirePackage{latexbangla}[2026/10/23] \RequirePackage{amsmath,amssymb,amsthm} \RequirePackage{graphicx,xcolor,tikz} \RequirePackage{tcolorbox} \tcbuselibrary{skins,breakable} \RequirePackage{enumitem,lettrine,xpatch} % Save table notes until outside the float, retaining their hyperlink targets. \RequirePackage{footnotehyper} \makesavenoteenv{tabular} \makesavenoteenv{table} \makesavenoteenv{table*} \RequirePackage{hyperref} % Title pages and main matter may both start at page 1. Use unique internal % destinations while leaving visible page numbers and references unchanged. \hypersetup{hidelinks,bookmarksopen=true,hypertexnames=false} % The source tree keeps modules together. The basename fallback also permits % a TeX distribution to install them in its indexed tex/latex tree. \newcommand*\bookbangla@loadmodule[1]{% \InputIfFileExists{code/bookbangla-#1.tex}{}% {\input{bookbangla-#1.tex}}} % Polyglossia exposes the resolved language after LaTeXbangla has loaded. % This also respects options supplied directly with \PassOptionsToPackage. \ifdefstring{\mainlanguagename}{assamese} {\bookbangla@loadmodule{labels-assamese}} {\bookbangla@loadmodule{labels-bangla}} \bookbangla@loadmodule{layout} \bookbangla@loadmodule{chapters} \bookbangla@loadmodule{environments} % One interface for our own design choices; memoir remains the interface for % margins, chapter styles, page styles, and other general book configuration. \ExplSyntaxOn \keys_define:nn {bookbangla} { accent-color .code:n = {\colorlet{bookbanglaaccent}{#1}}, box-frame-color .code:n = {\colorlet{bookbanglaboxframe}{#1}}, box-background-color .code:n = {\colorlet{bookbanglaboxbackground}{#1}}, quote-font .code:n = {\renewcommand\bookbanglaquotefont{#1}}, } \NewDocumentCommand\bookbanglasetup{m}{\keys_set:nn {bookbangla}{#1}} \ExplSyntaxOff \endinput