diff options
Diffstat (limited to 'macros/latex/contrib/xsavebox/xsavebox.sty')
-rw-r--r-- | macros/latex/contrib/xsavebox/xsavebox.sty | 62 |
1 files changed, 32 insertions, 30 deletions
diff --git a/macros/latex/contrib/xsavebox/xsavebox.sty b/macros/latex/contrib/xsavebox/xsavebox.sty index 36aeaaa1d0..ddec5f4383 100644 --- a/macros/latex/contrib/xsavebox/xsavebox.sty +++ b/macros/latex/contrib/xsavebox/xsavebox.sty @@ -34,25 +34,24 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in +% conditions of the LaTeX Project Public License +% % http://mirrors.ctan.org/macros/latex/base/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. % % The Current Maintainer of this work is A. Grahn. -\NeedsTeXFormat{LaTeX2e}[2020-10-01] -\RequirePackage{l3keys2e} +\NeedsTeXFormat{LaTeX2e}[2022-06-01] -\def\g@xsb@version@tl{0.17} -\def\g@xsb@date@tl{2022/03/10} +\def\g@xsb@version@tl{0.18} +\def\g@xsb@date@tl{2022/08/04} \ProvidesExplPackage{xsavebox}{\g@xsb@date@tl}{\g@xsb@version@tl} {saveboxes for repeating content without code replication} +% ensure that backend code is loaded +\cs_if_exist:NF\c_sys_backend_str{\sys_load_backend:n{}} + \msg_set:nnnn{xsavebox}{support~outdated}{ Support~package~`#1'~too~old. }{ @@ -75,51 +74,54 @@ perhaps~it~is~spelled~incorrectly. } +% possible values for \c_sys_backend_str: pdftex, luatex, xetex, dvips, dvipdfmx, dvisvgm %package options -\bool_new:N\g_xsb_dvisvgm_bool %`dvisvgm' driver option \tl_gset:Nn\g_xsb_margin_tl{3pt} \keys_define:nn{xsavebox}{ - margin .code:n = { - \setlength\l_tmpa_dim{#1} - \tl_gset:Nx\g_xsb_margin_tl{\dim_use:N\l_tmpa_dim} - }, + pdftex.code:n = {}, + pdftex.value_forbidden:n = true, + + luatex.code:n = {}, + luatex.value_forbidden:n = true, + + xetex.code:n = {}, + xetex.value_forbidden:n = true, - xetex .code:n = {}, %dummy, we use engine test instead + dvips.code:n = {}, + dvips.value_forbidden:n = true, - dvipdfmx .choice:, - dvipdfmx / true .code:n = { - \bool_gset_false:N\g_xsb_dvisvgm_bool + dvipdfmx.code:n = { \PassOptionsToPackage{dvipdfmx}{pdfbase} }, - dvipdfmx / false .code:n = {}, - dvipdfmx .default:n = {true}, + dvipdfmx.value_forbidden:n = true, - dvisvgm .choice:, - dvisvgm / true .code:n = { - \bool_gset_true:N\g_xsb_dvisvgm_bool + dvisvgm.code:n = { \PassOptionsToPackage{dvisvgm}{pdfbase} }, - dvisvgm / false .code:n = {\bool_gset_false:N\g_xsb_dvisvgm_bool}, - dvisvgm .default:n = {true}, + dvisvgm.value_forbidden:n = true, + + margin .code:n = { + \setlength\l_tmpa_dim{#1} + \tl_gset:Nx\g_xsb_margin_tl{\dim_use:N\l_tmpa_dim} + }, unknown .code:n = { \msg_error:nnx{xsavebox}{unknown~package~option}{\l_keys_key_tl} } } -\ProcessKeysOptions{xsavebox} - -\sys_if_output_pdf:T{\bool_gset_false:N\g_xsb_dvisvgm_bool} +\ProcessKeyOptions[xsavebox] \RequirePackage{pdfbase} -\@ifpackagelater{pdfbase}{2017/03/23}{}{ +\@ifpackagelater{pdfbase}{2022/08/04}{}{ \msg_error:nnn{xsavebox}{support~outdated}{pdfbase.sty} \tex_endinput:D } + \cs_gset_eq:NN\xsb_pdfxform:nnnnn\pbs_pdfxform:nnnnn \cs_gset_eq:NN\xsb_pdflastxform:\pbs_pdflastxform: \cs_gset_eq:NN\xsb_pdfrefxform:n\pbs_pdfrefxform:n -\bool_if:NTF\g_xsb_dvisvgm_bool{ +\bool_if:NTF\g_pbs_dvisvgm_bool{ \tl_gset:Nn\g_xsb_margin_tl{0pt} \cs_new_protected_nopar:Nn\xsb_updatebbox:nnn{ \special{dvisvgm:bbox~#1~#2~#3~transform} |