Files
PrimeTeX/packages/Boxout.sty
Joshua Lucas f9a6c6e7cc - Refine Boxouts.
- General refactoring.
2025-08-27 16:41:25 -05:00

105 lines
2.1 KiB
TeX

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{PrimeTeX/packages/Boxout}[2025-08-20]
\RequirePackage{PrimeTeX/packages/Layout}
\RequirePackage{PrimeTeX/packages/Color}
\RequirePackage{PrimeTeX/packages/Tables}
\RequirePackage{calc}
\providelength{\boxoutpadding}[1em]
\providelength{\boxoutrule}[1pt]
\colorlet{BoxoutBGColor}{PrimePaleBlue}
\colorlet{BoxoutFGColor}{PrimeBlue}
\definecolor{WarningBoxBGColor}{RGB}{255, 221, 118}
\definecolor{WarningBoxFGColor}{RGB}{255, 150, 0}
\NewTblrEnviron{tblrBoxout}
\SetTblrInner[tblrBoxout]{
cells = {BoxoutBGColor},
hborder{1} = {belowspace=\boxoutpadding},
hborder{Z} = {abovespace=\boxoutpadding},
hlines = {0pt,BoxoutBGColor},
hline{1,Z} = {\boxoutrule,BoxoutFGColor},
%row{1} = {font={\bfseries\sbfamily}},
vborder{1} = {rightspace=\boxoutpadding},
vborder{Z} = {leftspace=\boxoutpadding},
vlines = {0pt,BoxoutBGColor},
vline{1,Z} = {\boxoutrule,BoxoutFGColor},
}
\NewDocumentEnvironment{@boxout}{
m m +b
}{
\label{box:#2}%
\begin{tblrBoxout}{#1}%
#3%
\end{tblrBoxout}%
}{}
\NewDocumentEnvironment{Boxout}{
O{colspec={X[l,h]}}
>{\TrimSpaces}m
+m
o
+b
}{%
\ifthenelse{\equal{#4}{w}\OR\equal{#4}{W}}{%
\colorlet{BoxoutBGColor}{WarningBoxBGColor}%
\colorlet{BoxoutFGColor}{WarningBoxFGColor}%
}{}%
\IfBlankTF{#3}{%
\begin{@boxout}{#1}{#2}{}%
\setlength{\parskip}{\medskipamount}%
#5\\%
\end{@boxout}%
}{%
\begin{@boxout}{#1}{#2}%
{\Centering\sbfamily\bfseries #3}\\%
\setlength{\parskip}{\medskipamount}%
#5\\%
\end{@boxout}%
}%
}{}
\NewDocumentEnvironment{BigBoxout}{
O{\bigfloatoverhang}
O{htpb}
O{\bigfloatoffsetratio}
O{X[l,h]}
>{\TrimSpaces}m
+m
o
+b
}{
\begin{figure}[#2]%
\begin{adjustwidth}{-#1}{-#1 * \real{#3}}%
\begin{Boxout}[#4]{#5}{#6}[#7]%
#8%
\end{Boxout}%
\end{adjustwidth}%
\end{figure}%
}{}
\NewDocumentEnvironment{WrapBoxout}{
% position [l,r,i,o]
O{O}
% offset
O{\marparwidth}
% width
O{3in}
O{X[l,h]}
>{\TrimSpaces}m
+m
o
+b
}{%
\begin{wrapfigure}{#1}[#2]%
\begin{minipage}{#3}%
\begin{Boxout}[#4]{#5}{#6}[#7]%
#8%
\end{Boxout}%
\end{minipage}%
\end{wrapfigure}%
}{}