summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xsavebox/xsavebox.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/xsavebox/xsavebox.sty')
-rw-r--r--macros/latex/contrib/xsavebox/xsavebox.sty62
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}