Files
PrimeTeX/packages/Header.sty
Joshua Lucas e2a0277635 - Make all packages Expl3.
- Replace ifthen dependency with wrappers for Latex3 conditionals.
- Debug CrossRef and WrapBoxout.
2025-09-18 16:51:12 -05:00

81 lines
2.0 KiB
TeX

\NeedsTeXFormat{LaTeX2e}
\ProvidesExplPackage{PrimeTeX/packages/Header}{2025-08-16}{1.0}{
Customize header and footer layout and contents.
}
\ProvideLength{\HeaderInsideOffset}[\BigFloatOverhang]
\ProvideLength{\HeaderOutsideOffset}[\fp_to_dim:n{\BigFloatOverhang * \BigFloatOffset}]
\pagestyle{fancy}
% Clear all header & footer formatting.
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\NewDocumentCommand{\chapappname}{}{Chapter~\thechapter{}:~}
\NewDocumentCommand{\partlabel}{}{\partname{}~\thepart{}:~\parttitle}
\NewDocumentCommand{\FrontMatter}{}{
\pagestyle{plain}
\bool_if:NTF \g_electronic_bool {
\pagenumbering{arabic}
}{
\pagenumbering{roman}
}
}
\NewDocumentCommand{\MainMatter}{}{
\pagestyle{fancy}
\pagenumbering{arabic}
}
\NewDocumentCommand{\Appendix}{}{
\appendix
\RenewDocumentCommand{\chapappname}{}{Appendix~\thechapter{}:~}
\RenewDocumentCommand{\partlabel}{}{}
\RenewDocumentCommand{\chapterautorefname}{}{Appendix}
}
\NewDocumentCommand{\BackMatter}{}{
\RenewDocumentCommand{\chapappname}{}{}
\RenewDocumentCommand{\partlabel}{}{}
}
\NewDocumentCommand{\parttitle}{}{}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\fancypagestyle{fancy}{
\bool_if:NTF \g_electronic_bool {
\fancyhfoffset[L]{\HeaderInsideOffset}
\fancyhfoffset[R]{\HeaderOutsideOffset}
\fancyhead[L]{\partlabel}
\fancyhead[R]{\bool_if:NT \g_label_bool {\chapappname} \leftmark}
\fancyfoot[R]{\thepage}
}{
\fancyhfoffset[LE,RO]{\HeaderOutsideOffset}
\fancyhead[LE]{\partlabel}
\fancyhead[RO]{\bool_if:NT \g_label_bool {\chapappname} \leftmark}
\fancyfoot[LE,RO]{\thepage}
}
}
\fancypagestyle{plain}{ %
\fancyhf{} % remove everything
\renewcommand{\headrulewidth}{0pt} % remove lines as well
\renewcommand{\footrulewidth}{0pt}
\bool_if:NTF \g_electronic_bool {
\fancyhfoffset[L]{\HeaderInsideOffset}
\fancyhfoffset[R]{\HeaderOutsideOffset}
\fancyfoot[R]{\thepage}
}{
\fancyhfoffset[LE,RO]{\HeaderOutsideOffset}
\fancyfoot[LE,RO]{\thepage}
}
}