108 lines
2.9 KiB
TeX
108 lines
2.9 KiB
TeX
\NeedsTeXFormat{LaTeX2e}
|
|
\ProvidesExplClass{PrimeTeX/Manual}{2025-09-12}{1.0}{
|
|
A class creating for user manuals and other book-like documents to be
|
|
published by Prime Controls.
|
|
}
|
|
|
|
% Option 'electronic': single side printing, among other things.
|
|
\bool_new:N \g_electronic_bool
|
|
\bool_gset_false:N \g_electronic_bool
|
|
|
|
\DeclareOption{electronic}{
|
|
\bool_gset_true:N \g_electronic_bool
|
|
}
|
|
\NewExpandableDocumentCommand{\IsElectronic}{}{\g_electronic_bool}
|
|
|
|
% Option 'admin': turn on admin manual sections.
|
|
\bool_new:N \g_admin_bool
|
|
\bool_gset_false:N \g_admin_bool
|
|
|
|
\DeclareOption{admin}{
|
|
\bool_gset_true:N \g_admin_bool
|
|
}
|
|
\NewExpandableDocumentCommand{\IsAdminManual}{}{\g_admin_bool}
|
|
|
|
% Option 'darkmode': render as light text on dark background. Only applies if
|
|
% electronic mode is also on.
|
|
\bool_new:N \g_dark_mode_bool
|
|
\bool_gset_false:N \g_dark_mode_bool
|
|
|
|
\DeclareOption{darkmode}{
|
|
\bool_gset:Nn \g_dark_mode_bool {\g_electronic_bool}
|
|
}
|
|
\NewExpandableDocumentCommand{\IsDarkMode}{}{\g_dark_mode_bool}
|
|
|
|
% Option 'draft': same as base book class, but with bigger overfull boxes.
|
|
\bool_new:N \g_draft_bool
|
|
\bool_gset_false:N \g_draft_bool
|
|
|
|
\DeclareOption{draft}{
|
|
\bool_gset_true:N \g_draft_bool
|
|
\overfullrule = 1in
|
|
}
|
|
\NewExpandableDocumentCommand{\IsDraft}{}{\g_draft_bool}
|
|
|
|
% Option 'roman': render Part numbers and print-format front matter page numbers
|
|
% as Roman numerals.
|
|
\bool_new:N \g_roman_bool
|
|
\bool_gset_false:N \g_roman_bool
|
|
|
|
\DeclareOption{roman}{
|
|
\bool_gset_true:N \g_roman_bool
|
|
}
|
|
\NewExpandableDocumentCommand{\DoRomanNumerals}{}{\g_roman_bool}
|
|
|
|
% Option 'numberword': render Part numbers as number words (e.g. One, Two, Three).
|
|
% Only kind of working.
|
|
\bool_new:N \g_number_word_bool
|
|
\bool_gset_false:N \g_number_word_bool
|
|
|
|
\DeclareOption{numberword}{
|
|
\bool_gset_true:N \g_number_word_bool
|
|
}
|
|
\NewExpandableDocumentCommand{\DoNumberWords}{}{\g_number_word_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
|
|
|
|
\bool_if:NTF \g_electronic_bool {
|
|
\bool_if:NTF \g_draft_bool {
|
|
\LoadClass[draft,oneside]{book}
|
|
} {
|
|
\LoadClass[oneside]{book}
|
|
}
|
|
} {
|
|
\bool_if:NTF \g_draft_bool {
|
|
\LoadClass[draft]{book}
|
|
} {
|
|
\LoadClass{book}
|
|
}
|
|
}
|
|
|
|
\input{PrimeTeX/commonincludes.def}
|
|
|
|
\NewDocumentCommand{\rem}{+m}{}
|
|
|
|
\str_new:N \l_IncludeOnly_chapters_str
|
|
|
|
% Wrapper for \includeonly.
|
|
% If argument is empty, all chapters are included.
|
|
% If the argument is not empty, only chapters that are listed are included.
|
|
\NewDocumentCommand{\IncludeOnlyChapters}{m}{
|
|
\str_set:Nn \l_IncludeOnly_chapters_str {#1}
|
|
\str_remove_all:Nn \l_IncludeOnly_chapters_str {~}
|
|
\str_if_empty:NF \l_IncludeOnly_chapters_str {
|
|
\expanded{\noexpand\includeonly{\l_IncludeOnly_chapters_str}}
|
|
}
|
|
}
|