From 9138161f91918605e45005f40da341857943efb5 Mon Sep 17 00:00:00 2001 From: Joshua Lucas Date: Thu, 21 Aug 2025 13:30:51 -0500 Subject: [PATCH] Too many changes to list lol --- commonincludes.def | 4 ++ geometry.def | 65 +++++++++++++++++++++++-------- packages/Boxout.sty | 52 +++++++++++++++++++++++++ packages/Caption.sty | 30 +++++++++++++++ packages/Graphics.sty | 36 ++---------------- packages/Header.sty | 27 ++++++++++--- packages/Layout.sty | 86 +++++++++++++----------------------------- packages/Links.sty | 12 +++++- packages/Tables.sty | 12 ++++-- packages/TitlePage.sty | 2 +- packages/Titles.sty | 4 +- 11 files changed, 208 insertions(+), 122 deletions(-) create mode 100644 packages/Boxout.sty create mode 100644 packages/Caption.sty diff --git a/commonincludes.def b/commonincludes.def index a554891..a8407e3 100644 --- a/commonincludes.def +++ b/commonincludes.def @@ -1,3 +1,7 @@ +\RequirePackage{PrimeTeX/packages/Boxout} + +\RequirePackage{PrimeTeX/packages/Caption} + \ifthenelse{\boolean{isDarkMode}\AND\boolean{isElectronic}}{ \RequirePackage[darkmode]{PrimeTeX/packages/Color} }{ diff --git a/geometry.def b/geometry.def index a02b0a0..bba353a 100644 --- a/geometry.def +++ b/geometry.def @@ -1,17 +1,50 @@ -\newgeometry{ - margin = 1in, - % twoside = true, - % inner = 1in, - % top = 1in, - % marginratio = 2:3, +\ifthenelse{\boolean{isElectronic}}{ + \newgeometry{ + %margin = 1in, + inner = 48pt, + top = 1in, + marginratio = 2:3, + } + \savegeometry{smallMargin} + \newgeometry{ + % margin = 0.25in, + inner = 24pt, + top = 0.25in, + marginratio = 2:3, + } + \savegeometry{tinyMargin} +}{ + \newgeometry{ + %margin = 1in, + twoside = true, + inner = 48pt, + top = 1in, + marginratio = 2:3, + } + \savegeometry{smallMargin} + \newgeometry{ + %margin = 0.25in, + twoside = true, + inner = 24pt, + top = 0.25in, + marginratio = 2:3, + } + \savegeometry{tinyMargin} } -\savegeometry{smallMargin} -\newgeometry{ - margin = 0.25in, -% twoside = true, -% inner = 0.25in, -% top = 0.25in, -% marginratio = 2:3,} -} -\savegeometry{tinyMargin} -\restoregeometry \ No newline at end of file +\restoregeometry + +\NewDocumentEnvironment{SmallMargin}{O{0.0in} O{-0.25in}}{ + \clearpage + \loadgeometry{smallMargin} + \providelength[\insideheaderoffset]{\defaultinsideheaderoffset} + \providelength[\outsideheaderoffset]{\defaultoutsideheaderoffset} + \setlength{\insideheaderoffset}{#1} + \setlength{\outsideheaderoffset}{#2} + \pagestyle{fancy} +}{ + \clearpage + \setlength{\insideheaderoffset}{\defaultinsideheaderoffset} + \setlength{\outsideheaderoffset}{\defaultoutsideheaderoffset} + \pagestyle{fancy} + \restoregeometry +} \ No newline at end of file diff --git a/packages/Boxout.sty b/packages/Boxout.sty new file mode 100644 index 0000000..e98f520 --- /dev/null +++ b/packages/Boxout.sty @@ -0,0 +1,52 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{PrimeTeX/packages/Boxout}[2025-08-20] + +\RequirePackage{PrimeTeX/packages/Layout} +\RequirePackage{PrimeTeX/packages/Color} + +\providelength[0.5em]{\boxoutpadding} + +\colorlet{boxoutbgcolor}{PrimePaleBlue} +\colorlet{boxoutfgcolor}{PrimeBlue} + +\NewDocumentCommand{\boxout}{% + O{0in} m m >{\TrimSpaces}m +m% +}{% + \begin{wrapfigure}{#2}[#1]% + \fcolorbox{boxoutfgcolor}{boxoutbgcolor}{% + \begin{minipage}{#3}% + \vspace{\boxoutpadding}% + {\Centering% + \begin{minipage}{\boxoutpadding*-2 + \textwidth}% + \label{box:#4}% + \setlength{\parskip}{\medskipamount}% + {\Centering\slab{\strong{#4}}\par}% + \justifying\small{}#5% + \end{minipage}% + \par}% + \vspace{\boxoutpadding}% + \end{minipage}% + }% + \end{wrapfigure}% +} + +\NewDocumentCommand{\bigboxout}{% + O{\bigfloatoverhang} m >{\TrimSpaces}m +m% +}{% + \bigfloat[#1]{figure}{#2}{% + \fcolorbox{boxoutfgcolor}{boxoutbgcolor}{% + \begin{minipage}{\boxoutpadding*-2 + \textwidth}% + \vspace{\boxoutpadding}% + {\Centering% + \begin{minipage}{\boxoutpadding*-2 + \textwidth}% + \label{box:#3}% + \setlength{\parskip}{\medskipamount}% + {\Centering\slab{\strong{#3}}\par}% + \justifying\small{}#4% + \end{minipage}% + \par}% + \vspace{\boxoutpadding}% + \end{minipage}% + }% + }% +} \ No newline at end of file diff --git a/packages/Caption.sty b/packages/Caption.sty new file mode 100644 index 0000000..bbcd872 --- /dev/null +++ b/packages/Caption.sty @@ -0,0 +1,30 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{PrimeTeX/packages/Caption}[2025-08-20] + +\RequirePackage[ + hypcap=true, +]{caption} +\captionsetup{ + justification = Centering, + font = { + small, + color=PrimeBlue, + }, +} + +% Define a justification style that is ragged on the side toward the outside of +% the page. I. e. RaggedRight on +\RequirePackage{changepage} +%\RequirePackage{ifthen} +\DeclareCaptionJustification{RaggedOutside}{% + \ifthenelse{\boolean{isElectronic}}{% + \RaggedRight% + }{% + \checkoddpage% + \ifoddpage% + \RaggedRight% + \else% + \RaggedLeft% + \fi% + }% +} \ No newline at end of file diff --git a/packages/Graphics.sty b/packages/Graphics.sty index e6e2ef4..d491564 100644 --- a/packages/Graphics.sty +++ b/packages/Graphics.sty @@ -4,35 +4,7 @@ \RequirePackage{PrimeTeX/packages/Layout} % Graphics package for including images -\RequirePackage{graphicx} - -\RequirePackage[ - hypcap=true, -]{caption} -\captionsetup{ - justification = Centering, - font = { - small, - color=PrimeBlue, - }, -} - -% Define a justification style that is ragged on the side toward the outside of -% the page. I. e. RaggedRight on -\RequirePackage{changepage} -%\RequirePackage{ifthen} -\DeclareCaptionJustification{RaggedOutside}{% - \ifthenelse{\boolean{isElectronic}}{% - \RaggedRight% - }{% - \checkoddpage% - \ifoddpage% - \RaggedRight% - \else% - \RaggedLeft% - \fi% - }% -} +\RequirePackage[final]{graphicx} \RequirePackage{calc} @@ -40,8 +12,8 @@ \NewDocumentCommand{\iconsize}{}{0.25in} -\NewDocumentCommand{\ig}{O{0.5in} m}{ - \includegraphics[keepaspectratio,width=#1]{#2} +\NewDocumentCommand{\ig}{O{width=0.5in} m}{ + \includegraphics[keepaspectratio,#1]{#2} } \NewDocumentCommand{\centerfig}{O{} m >{\TrimSpaces}m m}{ @@ -88,7 +60,7 @@ \NewDocumentCommand{\twinfig}{% O{\bigfloatoverhang} m >{\TrimSpaces}m m m >{\TrimSpaces}m m% }{% - \bigfloat[#1]{figure}{htpb}{% + \bigfloat[#1]{table}{htpb}{% \begin{tblr}{% colspec = {% *{2}{Q[c,m,wd=\twinfigwidth]}% diff --git a/packages/Header.sty b/packages/Header.sty index d4f801e..d2613c8 100644 --- a/packages/Header.sty +++ b/packages/Header.sty @@ -5,32 +5,44 @@ \RequirePackage{fancyhdr} \pagestyle{fancy} +% Clear all header & footer formatting. \fancyhf{} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} -\newlength{\outsideheaderoffset} -\setlength{\outsideheaderoffset}{1.0in} \newlength{\insideheaderoffset} \setlength{\insideheaderoffset}{0.5in} +\newlength{\outsideheaderoffset} +\setlength{\outsideheaderoffset}{1.0in} -\NewDocumentCommand{\parttitle}{} +\NewDocumentCommand{\chapappname}{}{Chapter \thechapter{}: } -\renewcommand{\chaptermark}[1]{ \markboth{#1}{} } +\NewDocumentCommand{\Appendix}{}{ + \appendix + \RenewDocumentCommand{\chapappname}{}{Appendix \thechapter{}: } +} + +\NewDocumentCommand{\BackMatter}{}{ + \RenewDocumentCommand{\chapappname}{}{} +} + +\NewDocumentCommand{\parttitle}{}{} + +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} \fancypagestyle{fancy}{ \ifthenelse{\boolean{isElectronic}}{ \fancyhfoffset[L]{\insideheaderoffset} \fancyhfoffset[R]{\outsideheaderoffset} \fancyhead[L]{\partname{} \thepart{}: \parttitle} - \fancyhead[R]{\chaptername{} \thechapter{}: \leftmark} + \fancyhead[R]{\chapappname{}\leftmark} \fancyfoot[R]{\thepage} }{ \fancyhfoffset[LE,RO]{\outsideheaderoffset} \fancyhead[LE]{\partname{} \thepart{}: \parttitle} - \fancyhead[RO]{\chaptername{} \thechapter{}: \leftmark} + \fancyhead[RO]{\chapappname\leftmark} \fancyfoot[LE,RO]{\thepage} } @@ -42,8 +54,11 @@ \renewcommand{\footrulewidth}{0pt} \ifthenelse{\boolean{isElectronic}}{ + \fancyhfoffset[L]{\insideheaderoffset} + \fancyhfoffset[R]{\outsideheaderoffset} \fancyfoot[R]{\thepage} }{ + \fancyhfoffset[LE,RO]{\outsideheaderoffset} \fancyfoot[LE,RO]{\thepage} } } diff --git a/packages/Layout.sty b/packages/Layout.sty index 1d2233d..91b4ad2 100644 --- a/packages/Layout.sty +++ b/packages/Layout.sty @@ -3,6 +3,11 @@ % Suppress warning about \showhyphens being changed. \let\CheckCommand\providecommand +% Suppress "Underfull \hbox" infos. +\hbadness=10000 +% Suppress small overfill infos. +\hfuzz = 6.0pt +\vfuzz = 0.0pt \providecommand{\providelength}[2][0pt]{% \ifdeflength{#2}{% It is already defined! @@ -14,6 +19,7 @@ \RequirePackage{microtype} +% Page Layout \RequirePackage[ letterpaper, width = 4.75in, % 342pt, @@ -27,7 +33,11 @@ footskip = 0.5in, % 36pt, ]{geometry} -% Page Layout +\ifthenelse{\boolean{isDraft}}{ + \geometry{showcrop} +% \geometry{showframe} +}{} + \ifthenelse{\boolean{isElectronic}}{ % \geometry{} }{ @@ -40,15 +50,9 @@ \newlength{\contentwidth} \setlength{\contentwidth}{\textwidth + \marginparsep + \marginparwidth} -% Widow & Orphan control. -% \RequirePackage[ -% defaultlines = 4, -% all, -% ]{nowidow} - \RequirePackage[balanced]{lua-widow-control} \ifthenelse{\boolean{isDraft}}{ - \lwcsetup{draft} + \lwcsetup{draft=false,showcolours=true} }{} % Paragraph formatting. @@ -73,7 +77,7 @@ % Line-breaking zero-width space \NewDocumentCommand{\zws}{}{\hspace{0pt}} % Line-breaking dot -\NewDocumentCommand{\bdot}{}{.\hspace{0pt}} +\NewDocumentCommand{\bdot}{}{.\zws} \newlength{\bigfloatoffset} \setlength{\bigfloatoffset}{0.25in} @@ -83,66 +87,30 @@ \setlength{\bigfloatoverhang}{0.81in} \NewDocumentCommand{\bigfloat}{O{\bigfloatoverhang} m m +m}{% + \providelength[\fboxsep]{\fboxsepdefault}% + \setlength{\fboxsep}{0pt}% \begin{#2}[#3]% - \ifthenelse{\boolean{isElectronic}}{ + \ifthenelse{\boolean{isElectronic}}{% + % adjustwidth adjusts all pages the same. \begin{adjustwidth}{-#1+\bigfloatoffset}{-#1-\bigfloatoffset}% \begin{minipage}{#1 * 2 + \textwidth}% + \ifthenelse{\boolean{isDraft}}{% + \rule{\textwidth}{1pt}\zws% + }{}% #4% \end{minipage}% \end{adjustwidth}% - }{ + }{% + % adjustwidth* accounts for twosided document. \begin{adjustwidth*}{-#1+\bigfloatoffset}{-#1-\bigfloatoffset}% \begin{minipage}{#1 * 2 + \textwidth}% + \ifthenelse{\boolean{isDraft}}{% + \rule{\textwidth}{1pt}\zws% + }{}% #4% \end{minipage}% \end{adjustwidth*}% - } + }% \end{#2}% -} - -\providelength[0.5em]{\boxoutpadding} - -\colorlet{boxoutbgcolor}{PrimePaleBlue} -\colorlet{boxoutfgcolor}{PrimeBlue} - -\NewDocumentCommand{\boxout}{% - O{0in} m m >{\TrimSpaces}m +m% -}{% - \begin{wrapfigure}{#2}[#1]% - \fcolorbox{boxoutfgcolor}{boxoutbgcolor}{% - \begin{minipage}{#3}% - \vspace{\boxoutpadding}% - {\Centering% - \begin{minipage}{\boxoutpadding*-2 + \textwidth}% - \label{box:#4}% - \setlength{\parskip}{\medskipamount}% - {\Centering\slab{\strong{#4}}\par}% - \justifying\small{}#5% - \end{minipage}% - \par}% - \vspace{\boxoutpadding}% - \end{minipage}% - }% - \end{wrapfigure}% -} - -\NewDocumentCommand{\bigboxout}{% - O{\bigfloatoverhang} m >{\TrimSpaces}m +m% -}{% - \bigfloat[#1]{figure}{#2}{% - \fcolorbox{boxoutfgcolor}{boxoutbgcolor}{% - \begin{minipage}{\boxoutpadding*-2 + \textwidth}% - \vspace{\boxoutpadding}% - {\Centering% - \begin{minipage}{\boxoutpadding*-2 + \textwidth}% - \label{box:#3}% - \setlength{\parskip}{\medskipamount}% - {\Centering\slab{\strong{#3}}\par}% - \justifying\small{}#4% - \end{minipage}% - \par}% - \vspace{\boxoutpadding}% - \end{minipage}% - }% - }% + \setlength{\fboxsep}{\fboxsepdefault}% } \ No newline at end of file diff --git a/packages/Links.sty b/packages/Links.sty index f5af68b..e0f50b3 100644 --- a/packages/Links.sty +++ b/packages/Links.sty @@ -7,9 +7,17 @@ \RequirePackage{hyperref} \ifthenelse{\boolean{isElectronic}}{ - \hypersetup{colorlinks=true, allcolors=PrimeBlue} + \hypersetup{ + final, + colorlinks=true, + allcolors=PrimeBlue, + } }{ - \hypersetup{colorlinks=true, allcolors=textColor} + \hypersetup{ + final, + colorlinks=true, + allcolors=textColor + } } \RequirePackage{hypcap} \ No newline at end of file diff --git a/packages/Tables.sty b/packages/Tables.sty index fe25ba5..0e8b351 100644 --- a/packages/Tables.sty +++ b/packages/Tables.sty @@ -5,11 +5,15 @@ \RequirePackage{tabularray} % Enable putting a list in a tabularray -\UseTblrLibrary{varwidth} +%\UseTblrLibrary{varwidth} + +\renewcommand{\TblrOverlap}[1]{#1} + +% \DeclareTblrTemplate{note-tag}{default}{ +% \textsuperscript{\textrm{\InsertTblrNoteTag}} +% } +%\DeclareTblrTemplate{note-sep}{default}{\space} -\DeclareTblrTemplate{note-tag}{default}{ - \textsuperscript{\textrm{\InsertTblrNoteTag}} -} \DeclareTblrTemplate{remark-tag}{default}{ \strong{\InsertTblrRemarkTag} } diff --git a/packages/TitlePage.sty b/packages/TitlePage.sty index 9878fd2..59b3bf3 100644 --- a/packages/TitlePage.sty +++ b/packages/TitlePage.sty @@ -7,7 +7,7 @@ \NewDocumentCommand{\PrimeTitlePage}{O{}}{ \begin{titlepage} \begin{sbfamily} - {\RaggedRight\noindent\large + {\noindent\large\raggedright \vspace*{\stretch{1}} \sCustomerFull diff --git a/packages/Titles.sty b/packages/Titles.sty index a103ffb..48225a8 100644 --- a/packages/Titles.sty +++ b/packages/Titles.sty @@ -6,13 +6,13 @@ \renewcommand{\thepart}{\arabic{part}} \titleformat{\part}[display]{ - \normalfont\sbfamily\huge\Centering + \normalfont\sbfamily\huge }{ \partname{} \thepart }{20pt}{\Huge} \titleformat{\chapter}[display]{ - \normalfont\sbfamily\huge\RaggedRight + \normalfont\sbfamily\huge\raggedright }{ \chaptertitlename{} \thechapter }{20pt}{\Huge}