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

@@ -48,6 +48,7 @@
\NewDocumentCommand{\BigFloatOffset}{}{\fp_use:N \c_BigFloat_offset_fp}
\clist_new:N \l_BigFloat_placement_clist
\dim_new:N \l_BigFloat_workoverhang_dim
\keys_define:nn{BigFloat}{
type .choices:nn = {figure,generic,table}{
@@ -67,6 +68,9 @@
offset .fp_set:N = \l_BigFloat_offset_fp,
offset .default: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}{
@@ -79,16 +83,18 @@
\clist_use_default:Nnnn \l_BigFloat_placement_str
{\l_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%
\begin{\l_BigFloat_type_str}[\l_BigFloat_placement_str]% float environment
\begin{SmartAdjustWidth}{%
\fp_to_dim:n {
-\l_BigFloat_overhang_dim
-\l_BigFloat_workoverhang_dim
}%
}{%
\fp_to_dim:n {%
-\l_BigFloat_overhang_dim
-\l_BigFloat_workoverhang_dim
* \l_BigFloat_offset_fp
}%
}%
@@ -102,6 +108,7 @@
\end{minipage}%
\end{SmartAdjustWidth}%
\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}
@@ -139,10 +146,23 @@
\end{figure}%
}
%\fp_const:Nn \c_BigFig_graphicdpi_fp {72.0}
\keys_define:nn{}{
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}{
% Key=value options.
O{}
@@ -154,6 +174,20 @@
m
}{%
\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}[
type = figure,
overhang = \l_BigFloat_overhang_dim,
@@ -170,11 +204,9 @@
\keys_define:nn{DoubleBigFig}{
overhang .dim_set:N = \l_DoubleBigFig_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 .initial:e = {\c_BigFloat_offset_fp},
% offset .default:e = {\c_BigFloat_offset_fp},
}
\NewDocumentCommand{\DoubleBigFig}{%