Files
PrimeTeX/packages/Marginalia.sty
Silcantar 0c84476fc5 - Replace all \newcommands with \NewDocumentCommand.
- Add Ragged2e dependency for better alignment options.
- Refine marginalia, widow control.
2025-08-18 22:00:52 -05:00

82 lines
2.0 KiB
TeX

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{PrimeTeX/packages/Marginalia}[2025-07-09]
% Marginalia formatting.
\colorlet{marginTextColor}{PrimeBlue}
% Allow hyphenation in narrow margin paragraphs.
\RequirePackage{ragged2e}
\RequirePackage{marginalia}
\marginaliasetup{
ysep = {\parskip},
ysep page bottom = {
- 1in % Top gutter
+ \paperheight
- \voffset
- \topmargin
- \headheight
- \headsep
- \textheight
},
yshift = {7pt}, % Just a magic number that lines up margin notes with their reference.
style recto outer = {\RaggedRight\small\color{marginTextColor}},
style verso outer = {\RaggedLeft\small\color{marginTextColor}},
}
% Put a glossary definition in a margin paragraph.
\NewDocumentCommand{\mdef}{O{} m m}{%
\index{\glsentryname{#2}}% Add a reference to this in the index.
\strong{#3{#2}}% This is the text that appears on the page.
\marginalia[#1]{%
\strong{\Glsentryname{#2}:} % Create the title of the margin note.
\glsdesc*{#2}% Create the text of the margin note.
}%
}
\NewDocumentCommand{\margindef}{O{} m}{%
\mdef[#1]{#2}{\gls}%
}
\NewDocumentCommand{\Margindef}{O{} m}{%
\mdef[#1]{#2}{\Gls}%
}
\NewDocumentCommand{\margindefpl}{O{} m}{%
\mdef[#1]{#2}{\glspl}%
}
\NewDocumentCommand{\Margindefpl}{O{} m}{%
\mdef[#1]{#2}{\Glspl}%
}
% Put a footnote in a margin paragraph.
\NewDocumentCommand{\mnote}{O{} +m}{%
\footnotemark%
\marginalia[#1]{%
\footnotemark[\value{footnote}]#2%
}%
}
\NewDocumentCommand{\marginfig}{O{} m m +m}{%
% Syntax:
% \marginfig[
% (width|height)=lengthvalue, or any other optional \includegraphics
% parameters
% ]{
% graphic_file_name
% }{
% label
% }{
% caption
% }
%
% This strut ensures that the margin figure is counted as part of the
% following paragraph and is vertically aligned with it.
\strut%
\marginalia{%
\captionsetup{%
type = figure,%
justification = RaggedOutside,%
}%
\Centering\includegraphics[keepaspectratio,#1]{#2}\par%
\noindent\captionof{figure}{#4}%
\label{fig:#3}%
}%
}