\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. } \RequirePackage{ifthen} % Option 'electronic': single side printing. \newboolean{isElectronic} \setboolean{isElectronic}{false} \DeclareOption{electronic}{ \setboolean{isElectronic}{true} } % Option 'admin': turn on admin manual sections. \newboolean{isAdminManual} \setboolean{isAdminManual}{false} \DeclareOption{admin}{ \setboolean{isAdminManual}{true} } % Option 'darkmode': render as light text on dark background. \newboolean{isDarkMode} \setboolean{isDarkMode}{false} \DeclareOption{darkmode}{ \setboolean{isDarkMode}{true} } % Option 'draft': same as base book class, but with bigger overfull boxes. \newboolean{isDraft} \setboolean{isDraft}{false} \DeclareOption{draft}{ \setboolean{isDraft}{true} \overfullrule = 1in } % Option 'admin': turn on admin manual sections. \newboolean{doRomanNumerals} \setboolean{doRomanNumerals}{false} \DeclareOption{roman}{ \setboolean{doRomanNumerals}{true} } \DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}} \ProcessOptions\relax \ifthenelse{\boolean{isElectronic}}{ \ifthenelse{\boolean{isDraft}}{ \LoadClass[draft,oneside]{book} }{ \LoadClass[oneside]{book} } }{ \ifthenelse{\boolean{isDraft}}{ \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 % 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_if_empty:NF \l_IncludeOnly_chapters_str { \expanded{\noexpand\includeonly{\l_IncludeOnly_chapters_str}} } }