Add scaling options to BigFig.

This commit is contained in:
2025-09-08 16:47:19 -05:00
parent 2cefebccd6
commit 1f79529bba
3 changed files with 58 additions and 13 deletions

View File

@@ -53,7 +53,7 @@
% #2: Label, passed to @boxout argument #1. % #2: Label, passed to @boxout argument #1.
>{\TrimSpaces}m >{\TrimSpaces}m
% #3: Caption. % #3: Caption.
m O{}
% #4: Body, passed to @boxout. % #4: Body, passed to @boxout.
+b +b
}{% }{%
@@ -88,7 +88,7 @@
% #2: Label, passed to Boxout argument #1. % #2: Label, passed to Boxout argument #1.
>{\TrimSpaces}m >{\TrimSpaces}m
% #3: Caption, passed to Boxout argument #3. % #3: Caption, passed to Boxout argument #3.
m O{}
% #4: Body, passed to Boxout. % #4: Body, passed to Boxout.
+b +b
}{ }{
@@ -102,7 +102,7 @@
\begin{Boxout}[% \begin{Boxout}[%
innerspec:e = \l_Boxout_innerspec_tl, innerspec:e = \l_Boxout_innerspec_tl,
warning:e = \bool_to_str:N \l_Boxout_warning_bool, warning:e = \bool_to_str:N \l_Boxout_warning_bool,
]{#2}{#3} ]{#2}[#3]
#4 #4
\end{Boxout} \end{Boxout}
\end{BigFloat} \end{BigFloat}
@@ -134,7 +134,7 @@
% #2: Label. % #2: Label.
>{\TrimSpaces}m >{\TrimSpaces}m
% #3: Caption % #3: Caption
m O{}
% #4: Body. % #4: Body.
+b +b
}{% }{%
@@ -144,7 +144,7 @@
\begin{Boxout}[ \begin{Boxout}[
innerspec:e = \l_Boxout_innerspec_tl, innerspec:e = \l_Boxout_innerspec_tl,
warning:e = \bool_to_str:N \l_Boxout_warning_bool, warning:e = \bool_to_str:N \l_Boxout_warning_bool,
]{#2}{#3}% ]{#2}[#3]%
#4% #4%
\end{Boxout}% \end{Boxout}%
\end{minipage}% \end{minipage}%

View File

@@ -23,6 +23,7 @@
% Primary Color: Blue % Primary Color: Blue
% Secondary Colors: Yellow, Mint, Pink % Secondary Colors: Yellow, Mint, Pink
% Lightness ≈ 33%
\definecolorset{HTML}{Prime}{}{% _Relationship to Base Color_ \definecolorset{HTML}{Prime}{}{% _Relationship to Base Color_
Gray, 4d505d;% #474c63 Saturation -> 9% Gray, 4d505d;% #474c63 Saturation -> 9%
Yellow, 917d19;% #917d19 Complementary Yellow, 917d19;% #917d19 Complementary
@@ -90,7 +91,7 @@
Orange, e48f63 % #e48f63 Orange, e48f63 % #e48f63
} }
% Lightness ≈ 64% % Lightness ≈ 80%
\definecolorset{HTML}{PrimePastel}{}{% \definecolorset{HTML}{PrimePastel}{}{%
Gray, c6c8d0;% #c6c8d0 Gray, c6c8d0;% #c6c8d0
Yellow, f0e4a6;% #f0e4a6 Yellow, f0e4a6;% #f0e4a6
@@ -179,8 +180,20 @@
\colorlet{boxedcoloroutline}{text} \colorlet{boxedcoloroutline}{text}
\NewDocumentCommand{\boxedcolor}{O{\rule{0pt}{1ex}\rule{1ex}{0pt}} m m}{% \NewDocumentCommand{\boxedcolor}{
% #1: Text inside box.
o
% #2: Box fill color.
m
% #3: Text Color.
O{black}
}{%
\setlength{\fboxrule}{0.0pt}% Temporarily set \fboxrule and \fboxsep. \setlength{\fboxrule}{0.0pt}% Temporarily set \fboxrule and \fboxsep.
\setlength{\fboxsep}{1.5pt}% \setlength{\fboxsep}{1.5pt}%
\fcolorbox{boxedcoloroutline}{#2}{\color{#3}\strut{}#1}% \IfNoValueTF{#1}{%
\def\boxedcolortext{\rule{0pt}{1ex}\rule{1ex}{0pt}}%
}{%
\def\boxedcolortext{\strut{}#1}%
}%
\fcolorbox{boxedcoloroutline}{#2}{\small\color{#3}\boxedcolortext}%
} }

View File

@@ -48,6 +48,7 @@
\NewDocumentCommand{\BigFloatOffset}{}{\fp_use:N \c_BigFloat_offset_fp} \NewDocumentCommand{\BigFloatOffset}{}{\fp_use:N \c_BigFloat_offset_fp}
\clist_new:N \l_BigFloat_placement_clist \clist_new:N \l_BigFloat_placement_clist
\dim_new:N \l_BigFloat_workoverhang_dim
\keys_define:nn{BigFloat}{ \keys_define:nn{BigFloat}{
type .choices:nn = {figure,generic,table}{ type .choices:nn = {figure,generic,table}{
@@ -67,6 +68,9 @@
offset .fp_set:N = \l_BigFloat_offset_fp, offset .fp_set:N = \l_BigFloat_offset_fp,
offset .default:e = {\c_BigFloat_offset_fp}, offset .default:e = {\c_BigFloat_offset_fp},
offset .initial:e = {\c_BigFloat_offset_fp}, offset .initial:e = {\c_BigFloat_offset_fp},
maxoverhang .dim_set:N = \l_BigFloat_maxoverhang_dim,
maxoverhang .initial:n = {1in},
} }
\NewDocumentEnvironment{BigFloat}{ \NewDocumentEnvironment{BigFloat}{
@@ -79,16 +83,18 @@
\clist_use_default:Nnnn \l_BigFloat_placement_str \clist_use_default:Nnnn \l_BigFloat_placement_str
{\l_BigFloat_placement_clist} {\l_BigFloat_placement_clist}
{\c_BigFloat_placement_clist} {\c_BigFloat_placement_clist}
\dim_set:Nn \l_BigFloat_workoverhang_dim {
\dim_min:nn {\l_BigFloat_overhang_dim} {\l_BigFloat_maxoverhang_dim}
}
\ExpEnvOption% \ExpEnvOption%
\begin{\l_BigFloat_type_str}[\l_BigFloat_placement_str]% float environment \begin{\l_BigFloat_type_str}[\l_BigFloat_placement_str]% float environment
\begin{SmartAdjustWidth}{% \begin{SmartAdjustWidth}{%
\fp_to_dim:n { \fp_to_dim:n {
-\l_BigFloat_overhang_dim -\l_BigFloat_workoverhang_dim
}% }%
}{% }{%
\fp_to_dim:n {% \fp_to_dim:n {%
-\l_BigFloat_overhang_dim -\l_BigFloat_workoverhang_dim
* \l_BigFloat_offset_fp * \l_BigFloat_offset_fp
}% }%
}% }%
@@ -102,6 +108,7 @@
\end{minipage}% \end{minipage}%
\end{SmartAdjustWidth}% \end{SmartAdjustWidth}%
\end{\l_BigFloat_type_str}% \end{\l_BigFloat_type_str}%
\dim_set:Nn \l_BigFloat_overhang_dim {\c_BigFloat_overhang_dim}
}{} }{}
\clist_const:Nn \c_CenterFig_placement_clist {h, t, p, b} \clist_const:Nn \c_CenterFig_placement_clist {h, t, p, b}
@@ -139,10 +146,23 @@
\end{figure}% \end{figure}%
} }
%\fp_const:Nn \c_BigFig_graphicdpi_fp {72.0}
\keys_define:nn{}{ \keys_define:nn{}{
BigFig .inherit:n = BigFloat, BigFig .inherit:n = BigFloat,
} }
\keys_define:nn{BigFig}{
hres .fp_set:N = \l_BigFig_hres_fp,
hres .initial:n = {0},
dpi .fp_set:N = \l_BigFig_dpi_fp,
dpi .initial:n = {96},%{\c_BigFig_dpi_fp},
scale .fp_set:N = \l_BigFig_scale_fp,
scale .initial:n = {1},
}
\NewDocumentCommand{\BigFig}{ \NewDocumentCommand{\BigFig}{
% Key=value options. % Key=value options.
O{} O{}
@@ -154,6 +174,20 @@
m m
}{% }{%
\keys_set:nn{BigFig}{#1} \keys_set:nn{BigFig}{#1}
\fp_compare:nNnF {\l_BigFig_hres_fp} = {0} {
\dim_set:Nn \l_BigFloat_overhang_dim {
\dim_eval:n{
(\fp_to_dim:n{
\l_BigFig_scale_fp
* \l_BigFig_hres_fp
/ \l_BigFig_dpi_fp
* 72.27
}
- \linewidth)
/ 3}
}
%\dim_show:N \l_BigFloat_overhang_dim
}{}
\begin{BigFloat}[ \begin{BigFloat}[
type = figure, type = figure,
overhang = \l_BigFloat_overhang_dim, overhang = \l_BigFloat_overhang_dim,
@@ -170,11 +204,9 @@
\keys_define:nn{DoubleBigFig}{ \keys_define:nn{DoubleBigFig}{
overhang .dim_set:N = \l_DoubleBigFig_overhang_dim, overhang .dim_set:N = \l_DoubleBigFig_overhang_dim,
overhang .initial:e = {\c_BigFloat_overhang_dim}, overhang .initial:e = {\c_BigFloat_overhang_dim},
% overhang .default:e = {\c_BigFloat_overhang_dim},
offset .fp_set:N = \l_DoubleBigFig_offset_fp, offset .fp_set:N = \l_DoubleBigFig_offset_fp,
offset .initial:e = {\c_BigFloat_offset_fp}, offset .initial:e = {\c_BigFloat_offset_fp},
% offset .default:e = {\c_BigFloat_offset_fp},
} }
\NewDocumentCommand{\DoubleBigFig}{% \NewDocumentCommand{\DoubleBigFig}{%