Files
PrimeTeX/packages/Graphics.sty
Joshua Lucas d1fd2fef22 - Fix WrapBoxout.
- Migrate from wrapfig2 to wrapstuff.
- Miscellaneous improvements.
2025-09-10 16:32:35 -05:00

84 lines
1.8 KiB
TeX

\NeedsTeXFormat{LaTeX2e}
\ProvidesExplPackage{PrimeTeX/packages/Graphics}{2025-09-03}{1.0}{
Custom non-floating Graphics commands.
}
\RequirePackage{PrimeTeX/packages/Layout}
\RequirePackage{calc}
\RequirePackage{wrapstuff}
\dim_const:Nn \c_Graphics_icon_dim {0.25in}
\NewDocumentCommand{\IconSize}{}{\c_Graphics_icon_dim}
\keys_define:nn{InlineGraphic}{
height .dim_set:N = \l_InlineGraphic_height_dim,
height .initial:n = {12pt},
% height .default:n = {12pt},
offset .dim_set:N = \l_InlineGraphic_offset_dim,
offset .initial:n = {-2pt},
% offset .default:n = {-2pt},
}
\NewDocumentCommand{\InlineGraphic}{
% Key=value options.
O{}
% Graphic file.
m
}{%
\keys_set:nn{InlineGraphic}{#1}
\raisebox{\l_InlineGraphic_offset_dim}{
\includegraphics[%
keepaspectratio,height=12pt%\l_InlineGraphic_height_dim%
]{#2}
}%
}
\dim_const:Nn \c_ig_width_dim {0.5in}
% Shorthand command for \includegraphics.
\NewDocumentCommand{\ig}{O{width=\c_ig_width_dim} m}{%
\includegraphics[keepaspectratio,#1]{#2}%
}
\str_const:Nn \c_WrapFig_placement_str {o}
\dim_const:Nn \c_WrapFig_hoffset_dim {\marparwidth}
\keys_define:nn {WrapFig} {
placement .choices:nn = {l,r,c,i,o}{
\str_set:Ne \l_WrapFig_placement_str {\l_keys_choice_tl}
},
placement .initial:e = {\c_WrapFig_placement_str},
hoffset .dim_set:N = \l_WrapFig_hoffset_dim,
hoffset .initial:e = {\c_WrapFig_hoffset_dim},
}
\NewDocumentCommand{\WrapFig}{
% #1: Key-value options
O{}
% #2: graphic_file
m
% #3: Options passed to \includegraphics
O{}
% #4: label
>{\TrimSpaces}m
% #5: caption
m
}{ \group_begin:
\keys_set:nn {WrapFig} {#1}
\expanded{\noexpand\begin{wrapstuff}[
\l_WrapFig_placement_str,
hoffset = \l_WrapFig_hoffset_dim,
]}
\begin{MyCaption}{fig:#4}{#5}
\includegraphics[%
keepaspectratio,%
#3%
]{#2}%
\end{MyCaption}
\end{wrapstuff}
\group_end: }