- Make all packages Expl3.

- Replace ifthen dependency with wrappers for Latex3 conditionals.
- Debug CrossRef and WrapBoxout.
This commit is contained in:
2025-09-18 16:51:12 -05:00
parent 72ab67463b
commit e2a0277635
21 changed files with 278 additions and 183 deletions

View File

@@ -4,77 +4,87 @@
published by Prime Controls.
}
\RequirePackage{ifthen}
% Option 'electronic': single side printing.
\newboolean{isElectronic}
\setboolean{isElectronic}{false}
\bool_new:N \g_electronic_bool
\bool_gset_false:N \g_electronic_bool
\DeclareOption{electronic}{
\setboolean{isElectronic}{true}
\bool_gset_true:N \g_electronic_bool
}
\NewExpandableDocumentCommand{\IsElectronic}{}{\g_electronic_bool}
% Option 'admin': turn on admin manual sections.
\newboolean{isAdminManual}
\setboolean{isAdminManual}{false}
\bool_new:N \g_admin_bool
\bool_gset_false:N \g_admin_bool
\DeclareOption{admin}{
\setboolean{isAdminManual}{true}
\bool_gset_true:N \g_admin_bool
}
\NewExpandableDocumentCommand{\IsAdminManual}{}{\g_admin_bool}
% Option 'darkmode': render as light text on dark background.
\newboolean{isDarkMode}
\setboolean{isDarkMode}{false}
\bool_new:N \g_dark_mode_bool
\bool_gset_false:N \g_dark_mode_bool
\DeclareOption{darkmode}{
\setboolean{isDarkMode}{true}
\bool_gset_true:N \g_dark_mode_bool
}
\NewExpandableDocumentCommand{\IsDarkMode}{}{\g_dark_mode_bool}
% Option 'draft': same as base book class, but with bigger overfull boxes.
\newboolean{isDraft}
\setboolean{isDraft}{false}
\bool_new:N \g_draft_bool
\bool_gset_false:N \g_draft_bool
\DeclareOption{draft}{
\setboolean{isDraft}{true}
\bool_gset_true:N \g_draft_bool
\overfullrule = 1in
}
% Option 'admin': turn on admin manual sections.
\newboolean{doRomanNumerals}
\setboolean{doRomanNumerals}{false}
\NewExpandableDocumentCommand{\IsDraft}{}{\g_draft_bool}
% Option 'roman': render Part numbers as Roman numerals.
\bool_new:N \g_roman_bool
\bool_gset_false:N \g_roman_bool
\DeclareOption{roman}{
\setboolean{doRomanNumerals}{true}
\bool_gset_true:N \g_roman_bool
}
\NewExpandableDocumentCommand{\DoRomanNumerals}{}{\g_roman_bool}
% Option 'labels': show Part and Chapter labels in the header.
\bool_new:N \g_label_bool
\bool_gset_false:N \g_label_bool
\DeclareOption{labels}{
\bool_gset_true:N \g_label_bool
}
\NewExpandableDocumentCommand{\ShowLabels}{}{\g_label_bool}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
\ProcessOptions\relax
\ifthenelse{\boolean{isElectronic}}{
\ifthenelse{\boolean{isDraft}}{
\bool_if:NTF \g_electronic_bool {
\bool_if:NTF \g_draft_bool {
\LoadClass[draft,oneside]{book}
}{
} {
\LoadClass[oneside]{book}
}
}{
\ifthenelse{\boolean{isDraft}}{
} {
\bool_if:NTF \g_draft_bool {
\LoadClass[draft]{book}
}{
} {
\LoadClass{book}
}
}
\input{PrimeTeX/commonincludes.def}
\NewDocumentCommand{\IfAdminManual}{+m +m}{
\ifthenelse{\boolean{isAdminManual}}{#1}{#2}
}
\NewDocumentCommand{\IfElectronic}{+m +m}{
\ifthenelse{\boolean{isElectronic}}{#1}{#2}
}
\NewDocumentCommand{\rem}{+m}{}
\str_new:N \l_IncludeOnly_chapters_str