From 572dc806dd00d29ab418ec6deaa36762d1d59ae6 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 5 Aug 2022 03:01:02 +0000 Subject: CTAN sync 202208050301 --- macros/latex/contrib/media9/ChangeLog | 5 + macros/latex/contrib/media9/doc/media9.pdf | Bin 3747996 -> 3660318 bytes macros/latex/contrib/media9/doc/media9.tex | 15 +- macros/latex/contrib/media9/media9.sty | 94 ++++++--- macros/latex/contrib/media9/pdfbase.sty | 323 +++++++++++++++++------------ 5 files changed, 263 insertions(+), 174 deletions(-) (limited to 'macros/latex/contrib/media9') diff --git a/macros/latex/contrib/media9/ChangeLog b/macros/latex/contrib/media9/ChangeLog index 455df93cc4..a0a11296e1 100644 --- a/macros/latex/contrib/media9/ChangeLog +++ b/macros/latex/contrib/media9/ChangeLog @@ -1,3 +1,8 @@ +2022-08-04 + * v1.25 : media9.sty + * v0.55 : pdfbase.sty + * fix : pkg option processing acc. to new LaTeX format 22-06-01 + 2022-03-18 * v1.24 : media9.sty * v0.54 : pdfbase.sty diff --git a/macros/latex/contrib/media9/doc/media9.pdf b/macros/latex/contrib/media9/doc/media9.pdf index 9f4ede4536..2b85529903 100644 Binary files a/macros/latex/contrib/media9/doc/media9.pdf and b/macros/latex/contrib/media9/doc/media9.pdf differ diff --git a/macros/latex/contrib/media9/doc/media9.tex b/macros/latex/contrib/media9/doc/media9.tex index d7acd9d0e3..a593d7bfe9 100644 --- a/macros/latex/contrib/media9/doc/media9.tex +++ b/macros/latex/contrib/media9/doc/media9.tex @@ -5,16 +5,15 @@ % for the details of that license. % \listfiles -%%%%%%% pdfmanagement-testphase %%%%%% -\RequirePackage{pdfmanagement-testphase} % load the package -\DeclareDocumentMetadata % activates the PDF management interface +%%%%%%%% pdfmanagement-testphase %%%%%% +\DocumentMetadata % activates the PDF management interface { %uncompress, } -%%%%%% /pdfmanagement-testphase %%%%%% +%%%%%%% /pdfmanagement-testphase %%%%%% \documentclass[a4paper]{article} \frenchspacing -\usepackage[utf8]{inputenc} +%\usepackage[utf8]{inputenc} \usepackage{textcomp} \usepackage[attachfiles]{media9} %\usepackage[draft]{media9} @@ -25,8 +24,8 @@ \usepackage[main=UKenglish,nil]{babel} \usepackage{graphicx} \usepackage{color} -\usepackage[T1]{fontenc} -%\usepackage{lmodern} +%\usepackage[T1]{fontenc} +%%\usepackage{lmodern} %\usepackage[scaled=0.85]{luximono} \usepackage[tt=false]{libertine} %override beramono (doesn't look like tt font) \usepackage[libertine]{newtxmath} @@ -40,7 +39,7 @@ \usepackage{hypcap} \def\keywords{embed flash movie LaTeX pdf 3d include sound swf mp3 video mp4 h.264 aac slideshow image gallery flv audio multimedia streamed media rtmp YouTube animation JavaScript pdfLaTeX dvips ps2pdf dvipdfmx XeLaTeX u3d prc Adobe Reader Foxit RichMedia annotation LuaLaTeX} \hypersetup{ - bookmarksnumbered,linktocpage,breaklinks, + bookmarksnumbered,linktocpage,%breaklinks, pdftitle={The media9 Package}, pdfsubject={Documentation}, pdfauthor={Alexander Grahn}, diff --git a/macros/latex/contrib/media9/media9.sty b/macros/latex/contrib/media9/media9.sty index 2c4db16dc2..c1e00febb4 100644 --- a/macros/latex/contrib/media9/media9.sty +++ b/macros/latex/contrib/media9/media9.sty @@ -39,26 +39,25 @@ % % The Current Maintainer of this work is A. Grahn. -\RequirePackage{l3keys2e} +\def\g@mix@date@tl{2022/08/04} +\def\g@mix@version@tl{1.25} -\def\g@mix@date@tl{2022/03/18} -\def\g@mix@version@tl{1.24} - -\NeedsTeXFormat{LaTeX2e}[2020-10-01] +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplPackage{media9}{\g@mix@date@tl}{\g@mix@version@tl} {acrobat-9/X~compatible~media} \tl_gset_eq:NN\g_mix_date_tl\g@mix@date@tl \tl_gset_eq:NN\g_mix_version_tl\g@mix@version@tl -%package options +% package options -%unknown package option error message \msg_set:nnnn{media9}{unknown~package~option}{Unknown~package~option~`#1'.}{ Package option~'#1'~is~unknown;\\ perhaps~it~is~spelled~incorrectly. } +\msg_set:nnn{media9}{generic~msg}{#1\\#2} + \bool_new:N\g_mix_pkgattach_bool \bool_new:N\g_mix_dvipdfmx_bool \bool_new:N\g_mix_pkgdraft_bool @@ -112,15 +111,23 @@ } \keys_define:nn{media9}{ - xetex .code:n = {}, %dummy + pdftex.code:n = {}, + pdftex.value_forbidden:n = true, + + luatex.code:n = {}, + luatex.value_forbidden:n = true, - dvipdfmx .choice:, - dvipdfmx / true .code:n = { - \bool_gset_true:N\g_mix_dvipdfmx_bool + xetex .code:n = {}, + xetex .value_forbidden:n = true, + + dvips.code:n = {}, + dvips.value_forbidden:n = true, + + dvipdfmx .code:n = { \PassOptionsToPackage{dvipdfmx}{pdfbase} + \PassOptionsToPackage{dvipdfmx}{ocgbase} }, - dvipdfmx / false .code:n = {\bool_gset_false:N\g_mix_dvipdfmx_bool}, - dvipdfmx .default:n = {true}, + dvipdfmx .value_forbidden:n = true, bigfiles .choice:, bigfiles / true .code:n = { @@ -290,11 +297,21 @@ \msg_error:nnx{media9}{unknown~package~option}{\l_keys_key_tl} } } -\ProcessKeysOptions{media9} -\sys_if_engine_xetex:T{\bool_gset_true:N\g_mix_dvipdfmx_bool} +\ProcessKeyOptions[media9] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{pdfbase} + +\bool_gset_eq:NN\g_mix_dvipdfmx_bool\g_pbs_dvipdfmx_bool + +\bool_if:NT\g_pbs_dvisvgm_bool{ + \msg_error:nnnn{media9}{generic~msg}{ + Package~`media9'~is~incompatible~with~the~`dvisvgm'~backend. + }{ + Use~package~`media4svg'~instead. + } +} + %aliases for commands from pdfbase.sty \cs_set_eq:NN\mix_pdfobj:nnn \pbs_pdfobj:nnn \cs_set_eq:NN\mix_pdfannot:nnnn\pbs_pdfannot:nnnn @@ -2429,26 +2446,25 @@ % % The Current Maintainer of this work is A. Grahn. -\RequirePackage{l3keys2e} +\def\g@mix@date@tl{2022/08/04} +\def\g@mix@version@tl{1.25} -\def\g@mix@date@tl{2022/03/18} -\def\g@mix@version@tl{1.24} - -\NeedsTeXFormat{LaTeX2e}[2020-10-01] +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplPackage{media9}{\g@mix@date@tl}{\g@mix@version@tl} {acrobat-9/X compatible media} \tl_gset_eq:NN\g_mix_date_tl\g@mix@date@tl \tl_gset_eq:NN\g_mix_version_tl\g@mix@version@tl -%package options +% package options -%unknown package option error message \msg_set:nnnn{media9}{unknown~package~option}{Unknown~package~option~`#1'.}{ Package option~'#1'~is~unknown;\\ perhaps~it~is~spelled~incorrectly. } +\msg_set:nnn{media9}{generic~msg}{#1\\#2} + \bool_new:N\g_mix_pkgattach_bool \bool_new:N\g_mix_dvipdfmx_bool \bool_new:N\g_mix_pkgdraft_bool @@ -2502,15 +2518,23 @@ } \keys_define:nn{media9}{ - xetex .code:n = {}, %dummy + pdftex.code:n = {}, + pdftex.value_forbidden:n = true, + + luatex.code:n = {}, + luatex.value_forbidden:n = true, - dvipdfmx .choice:, - dvipdfmx / true .code:n = { - \bool_gset_true:N\g_mix_dvipdfmx_bool + xetex .code:n = {}, + xetex .value_forbidden:n = true, + + dvips.code:n = {}, + dvips.value_forbidden:n = true, + + dvipdfmx .code:n = { \PassOptionsToPackage{dvipdfmx}{pdfbase} + \PassOptionsToPackage{dvipdfmx}{ocgbase} }, - dvipdfmx / false .code:n = {\bool_gset_false:N\g_mix_dvipdfmx_bool}, - dvipdfmx .default:n = {true}, + dvipdfmx .value_forbidden:n = true, bigfiles .choice:, bigfiles / true .code:n = { @@ -2680,11 +2704,21 @@ \msg_error:nnx{media9}{unknown~package~option}{\l_keys_key_tl} } } -\ProcessKeysOptions{media9} -\sys_if_engine_xetex:T{\bool_gset_true:N\g_mix_dvipdfmx_bool} +\ProcessKeyOptions[media9] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{pdfbase} + +\bool_gset_eq:NN\g_mix_dvipdfmx_bool\g_pbs_dvipdfmx_bool + +\bool_if:NT\g_pbs_dvisvgm_bool{ + \msg_error:nnnn{media9}{generic~msg}{ + Package~`media9'~is~incompatible~with~the~`dvisvgm'~backend. + }{ + Use~package~`media4svg'~instead. + } +} + %aliases for commands from pdfbase.sty \cs_set_eq:NN\mix_pdfobj:nnn \pbs_pdfobj:nnn \cs_set_eq:NN\mix_pdfannot:nnnn\pbs_pdfannot:nnnn diff --git a/macros/latex/contrib/media9/pdfbase.sty b/macros/latex/contrib/media9/pdfbase.sty index a5cc1dcb44..67ff708ad5 100644 --- a/macros/latex/contrib/media9/pdfbase.sty +++ b/macros/latex/contrib/media9/pdfbase.sty @@ -156,15 +156,95 @@ % % The Current Maintainer of this work is A. Grahn. -\RequirePackage{l3keys2e} +\def\g@pbs@date@tl{2022/08/04} +\def\g@pbs@version@tl{0.55} -\def\g@pbs@date@tl{2022/03/18} -\def\g@pbs@version@tl{0.54} - -\NeedsTeXFormat{LaTeX2e}[2020-10-01] +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplPackage{pdfbase}{\g@pbs@date@tl}{\g@pbs@version@tl} {driver~independent~access~to~low-level~PDF~features} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% package options +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\msg_gset:nnnn{pdfbase}{unknown~package~option}{Unknown~package~option~`#1'.}{ + Package option~'#1'~is~unknown;\\ + perhaps~it~is~spelled~incorrectly. +} + +\bool_new:N\g_pbs_pkgbigfiles_bool +\bool_new:N\g_pbs_dvipdfmx_bool +\bool_new:N\g_pbs_dvisvgm_bool +\str_new:N\g_pbs_backend_str + +\keys_define:nn{pdfbase}{ + pdftex.code:n = {}, + pdftex.value_forbidden:n = true, + + luatex.code:n = {}, + luatex.value_forbidden:n = true, + + xetex.code:n = {}, + xetex.value_forbidden:n = true, + + dvips.code:n = {}, + dvips.value_forbidden:n = true, + + dvipdfmx .code:n = { + \str_gset:Nn\g_pbs_backend_str{dvipdfmx} + }, + dvipdfmx .value_forbidden:n = true, + + dvisvgm .code:n = { + \str_gset:Nn\g_pbs_backend_str{dvisvgm} + }, + dvisvgm .value_forbidden:n = true, + + bigfiles .bool_gset:N = \g_pbs_pkgbigfiles_bool, + + unknown .code:n = { + \msg_error:nnx{pdfbase}{unknown~package~option}{\l_keys_key_tl} + } +} +\ProcessKeyOptions[pdfbase] + +% ensure that backend code is loaded +% possible values for \c_sys_backend_str: pdftex, luatex, xetex, dvips, dvipdfmx, dvisvgm +\cs_if_exist:NF\c_sys_backend_str{\sys_load_backend:n{}} + +\sys_if_output_pdf:TF{ % this excludes dvipdfmx, dvisvgm + \bool_gset_false:N\g_pbs_dvipdfmx_bool + \bool_gset_false:N\g_pbs_dvisvgm_bool +}{ + \str_case_e:nnF{\g_pbs_backend_str}{ % pdfbase options have precedence + {dvipdfmx}{ + \bool_gset_true:N\g_pbs_dvipdfmx_bool + \bool_gset_false:N\g_pbs_dvisvgm_bool + } + {dvisvgm}{ + \bool_gset_false:N\g_pbs_dvipdfmx_bool + \bool_gset_true:N\g_pbs_dvisvgm_bool + } + }{ % otherwise let the L3 backend code decide + \str_case_e:nn{\c_sys_backend_str}{ + {dvisvgm}{ + \bool_gset_false:N\g_pbs_dvipdfmx_bool + \bool_gset_true:N\g_pbs_dvisvgm_bool + } + {dvipdfmx}{ + \bool_gset_true:N\g_pbs_dvipdfmx_bool + \bool_gset_false:N\g_pbs_dvisvgm_bool + } + } + } +} + +\sys_if_engine_xetex:T{ + \bool_if:NF\g_pbs_dvisvgm_bool{\bool_gset_true:N\g_pbs_dvipdfmx_bool} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \int_new:N\g_pbs_page_int %abs. page counter %creating global definitions @@ -172,8 +252,7 @@ \msg_set:nnn{pdfbase}{rerun}{Rerun~to~get~internal~references~right!} -%LaTeX2e wrapper -\cs_new_nopar:Npn\pbs@seq@push@cx#1#2{ +\cs_new_protected_nopar:Npn\pbs@seq@push@cx#1#2{ \seq_if_exist:cF{#1}{\seq_new:c{#1}} \seq_gput_right:cx{#1}{#2} } @@ -191,6 +270,8 @@ \seq_new:N\g_pbs_bop_seq \seq_new:N\g_pbs_eop_seq +\bool_new:N\g_pbs_lscape_bool %if we are inside landscape env +\bool_new:N\g_pbs_ocgbase_loaded_bool \AtBeginDocument{ \iow_now:Nx\@mainaux{ \token_to_str:N\providecommand\token_to_str:N\pbs@newkey[2]{} @@ -198,65 +279,14 @@ \iow_now:Nx\@mainaux{ \token_to_str:N\providecommand\token_to_str:N\pbs@seq@push@cx[2]{} } -} - -%%%%%%%%%%%%%%%%% -%package options -%%%%%%%%%%%%%%%%% -%unknown package option error message -\msg_gset:nnnn{pdfbase}{unknown~package~option}{Unknown~package~option~`#1'.}{ - Package option~'#1'~is~unknown;\\ - perhaps~it~is~spelled~incorrectly. -} - -\bool_new:N\g_pbs_pkgbigfiles_bool -\bool_new:N\g_pbs_dvipdfmx_bool -\bool_new:N\g_pbs_dvisvgm_bool -\bool_new:N\g_pbs_lscape_bool %if we are inside landscape env -\AtBeginDocument{ \cs_if_exist:NT\landscape{% \tl_put_right:Nn\landscape{\bool_gset_true:N\g_pbs_lscape_bool} \tl_put_left:Nn\endlandscape{\bool_gset_false:N\g_pbs_lscape_bool} } + \@ifpackageloaded{ocgbase}{\bool_gset_true:N\g_pbs_ocgbase_loaded_bool}{} } -\keys_define:nn{pdfbase}{ - xetex .code:n = {}, %dummy, we use engine test instead - - dvipdfmx .choice:, - dvipdfmx / true .code:n = { - \bool_gset_true:N\g_pbs_dvipdfmx_bool - \bool_gset_false:N\g_pbs_dvisvgm_bool - }, - dvipdfmx / false .code:n = {\bool_gset_false:N\g_pbs_dvipdfmx_bool}, - dvipdfmx .default:n = {true}, - - dvisvgm .choice:, - dvisvgm / true .code:n = { - \bool_gset_true:N\g_pbs_dvisvgm_bool - \bool_gset_false:N\g_pbs_dvipdfmx_bool - }, - dvisvgm / false .code:n = {\bool_gset_false:N\g_pbs_dvisvgm_bool}, - dvisvgm .default:n = {true}, - - bigfiles .bool_gset:N = \g_pbs_pkgbigfiles_bool, - - unknown .code:n = { - \msg_error:nnx{pdfbase}{unknown~package~option}{\l_keys_key_tl} - } -} -\ProcessKeysOptions{pdfbase} - -\sys_if_output_pdf:T{ - \bool_gset_false:N\g_pbs_dvipdfmx_bool - \bool_gset_false:N\g_pbs_dvisvgm_bool -} - -\sys_if_engine_xetex:T{ - \bool_if:NF\g_pbs_dvisvgm_bool{\bool_gset_true:N\g_pbs_dvipdfmx_bool} -} - -\cs_new_nopar:Nn\pbs_insert_properties_entry:{} +\cs_new_protected_nopar:Nn\pbs_insert_properties_entry:{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %commands for creating PDF objects, annots etc. @@ -281,7 +311,7 @@ \cs_set_protected:Npn\pdflastobj{\numexpr\pdffeedback~lastobj\relax} \cs_set_protected:Npn\pdflastannot{\numexpr\pdffeedback~lastannot\relax} \cs_set:Npn\pdfpageref{\pdffeedback~pageref} - \cs_set:Npx\pdfpageresources{\pdfvariable~pageresources} + \cs_set_protected:Npx\pdfpageresources{\pdfvariable~pageresources} \cs_set_eq:NN\pdfximage\saveimageresource \cs_set_eq:NN\pdfrefximage\useimageresource \cs_set_eq:NN\pdflastximage\lastsavedimageresourceindex @@ -462,7 +492,7 @@ \cs_new_protected_nopar:Nn\pbs_pdfemc:{\pdfliteral~page~{EMC}} %inserts /Properties <<...>> entry into page resources - \cs_gset:Nn\pbs_insert_properties_entry:{ + \cs_gset_protected:Nn\pbs_insert_properties_entry:{ \pbs_zap_properties: %purge those from previous page \tl_set:Nx\l_tmpa_tl{\seq_if_exist:cT{pbs@props@\int_use:N\g_pbs_page_int}{ \seq_use:cn{pbs@props@\int_use:N\g_pbs_page_int}{~}}} @@ -677,7 +707,7 @@ /Properties~<>>>} \int_gincr:N\g_pbs_oc_int } - \cs_new_nopar:Nn\pbs_pdfemc:{\special{pdf:code~EMC}} + \cs_new_protected_nopar:Nn\pbs_pdfemc:{\special{pdf:code~EMC}} }{ \bool_if:NTF\g_pbs_dvisvgm_bool{ \tl_gset:Nx\g_pbs_hash_tl{\token_to_str:N#} @@ -1242,7 +1272,7 @@ } } } - \cs_new_nopar:Nn\pbs_pdfemc:{\pbs_special:n{~mark~/EMC~pdfmark}} + \cs_new_protected_nopar:Nn\pbs_pdfemc:{\pbs_special:n{~mark~/EMC~pdfmark}} } } } @@ -1275,7 +1305,7 @@ %modify output routine for output box insertions \bool_new:N\l_pbs_is_vertical_bool \cs_set_eq:NN\pbs_outputpage_orig:\@outputpage -\cs_set_nopar:Npn\@outputpage{ +\cs_set_protected_nopar:Npn\@outputpage{ \int_gincr:N\g_pbs_page_int \box_if_vertical:cTF{@outputbox}{ \bool_set_true:N\l_pbs_is_vertical_bool @@ -1295,10 +1325,6 @@ \pbs_outputpage_orig: } -\bool_new:N\g_pbs_ocgbase_loaded_bool -\AtBeginDocument{ - \@ifpackageloaded{ocgbase}{\bool_gset_true:N\g_pbs_ocgbase_loaded_bool}{} -} \AddToHook{shipout/foreground}{ %insert /Properties into current page's resources \put(0,0){\pbs_insert_properties_entry:} @@ -1513,15 +1539,95 @@ % % The Current Maintainer of this work is A. Grahn. -\RequirePackage{l3keys2e} +\def\g@pbs@date@tl{2022/08/04} +\def\g@pbs@version@tl{0.55} -\def\g@pbs@date@tl{2022/03/18} -\def\g@pbs@version@tl{0.54} - -\NeedsTeXFormat{LaTeX2e}[2020-10-01] +\NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplPackage{pdfbase}{\g@pbs@date@tl}{\g@pbs@version@tl} {driver independent access to low-level PDF features} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% package options +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\msg_gset:nnnn{pdfbase}{unknown~package~option}{Unknown~package~option~`#1'.}{ + Package option~'#1'~is~unknown;\\ + perhaps~it~is~spelled~incorrectly. +} + +\bool_new:N\g_pbs_pkgbigfiles_bool +\bool_new:N\g_pbs_dvipdfmx_bool +\bool_new:N\g_pbs_dvisvgm_bool +\str_new:N\g_pbs_backend_str + +\keys_define:nn{pdfbase}{ + pdftex.code:n = {}, + pdftex.value_forbidden:n = true, + + luatex.code:n = {}, + luatex.value_forbidden:n = true, + + xetex.code:n = {}, + xetex.value_forbidden:n = true, + + dvips.code:n = {}, + dvips.value_forbidden:n = true, + + dvipdfmx .code:n = { + \str_gset:Nn\g_pbs_backend_str{dvipdfmx} + }, + dvipdfmx .value_forbidden:n = true, + + dvisvgm .code:n = { + \str_gset:Nn\g_pbs_backend_str{dvisvgm} + }, + dvisvgm .value_forbidden:n = true, + + bigfiles .bool_gset:N = \g_pbs_pkgbigfiles_bool, + + unknown .code:n = { + \msg_error:nnx{pdfbase}{unknown~package~option}{\l_keys_key_tl} + } +} +\ProcessKeyOptions[pdfbase] + +% ensure that backend code is loaded +% possible values for \c_sys_backend_str: pdftex, luatex, xetex, dvips, dvipdfmx, dvisvgm +\cs_if_exist:NF\c_sys_backend_str{\sys_load_backend:n{}} + +\sys_if_output_pdf:TF{ % this excludes dvipdfmx, dvisvgm + \bool_gset_false:N\g_pbs_dvipdfmx_bool + \bool_gset_false:N\g_pbs_dvisvgm_bool +}{ + \str_case_e:nnF{\g_pbs_backend_str}{ % pdfbase options have precedence + {dvipdfmx}{ + \bool_gset_true:N\g_pbs_dvipdfmx_bool + \bool_gset_false:N\g_pbs_dvisvgm_bool + } + {dvisvgm}{ + \bool_gset_false:N\g_pbs_dvipdfmx_bool + \bool_gset_true:N\g_pbs_dvisvgm_bool + } + }{ % otherwise let the L3 backend code decide + \str_case_e:nn{\c_sys_backend_str}{ + {dvisvgm}{ + \bool_gset_false:N\g_pbs_dvipdfmx_bool + \bool_gset_true:N\g_pbs_dvisvgm_bool + } + {dvipdfmx}{ + \bool_gset_true:N\g_pbs_dvipdfmx_bool + \bool_gset_false:N\g_pbs_dvisvgm_bool + } + } + } +} + +\sys_if_engine_xetex:T{ + \bool_if:NF\g_pbs_dvisvgm_bool{\bool_gset_true:N\g_pbs_dvipdfmx_bool} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \int_new:N\g_pbs_page_int %abs. page counter %creating global definitions @@ -1529,8 +1635,7 @@ \msg_set:nnn{pdfbase}{rerun}{Rerun~to~get~internal~references~right!} -%LaTeX2e wrapper -\cs_new_nopar:Npn\pbs@seq@push@cx#1#2{ +\cs_new_protected_nopar:Npn\pbs@seq@push@cx#1#2{ \seq_if_exist:cF{#1}{\seq_new:c{#1}} \seq_gput_right:cx{#1}{#2} } @@ -1548,6 +1653,8 @@ \seq_new:N\g_pbs_bop_seq \seq_new:N\g_pbs_eop_seq +\bool_new:N\g_pbs_lscape_bool %if we are inside landscape env +\bool_new:N\g_pbs_ocgbase_loaded_bool \AtBeginDocument{ \iow_now:Nx\@mainaux{ \token_to_str:N\providecommand\token_to_str:N\pbs@newkey[2]{} @@ -1555,66 +1662,14 @@ \iow_now:Nx\@mainaux{ \token_to_str:N\providecommand\token_to_str:N\pbs@seq@push@cx[2]{} } -} - -%%%%%%%%%%%%%%%%% -%package options -%%%%%%%%%%%%%%%%% -%unknown package option error message -\msg_gset:nnnn{pdfbase}{unknown~package~option}{Unknown~package~option~`#1'.}{ - Package option~'#1'~is~unknown;\\ - perhaps~it~is~spelled~incorrectly. -} - -\bool_new:N\g_pbs_pkgbigfiles_bool -\bool_new:N\g_pbs_dvipdfmx_bool -\bool_new:N\g_pbs_dvisvgm_bool -\bool_new:N\g_pbs_lscape_bool %if we are inside landscape env -\AtBeginDocument{ \cs_if_exist:NT\landscape{% \tl_put_right:Nn\landscape{\bool_gset_true:N\g_pbs_lscape_bool} \tl_put_left:Nn\endlandscape{\bool_gset_false:N\g_pbs_lscape_bool} } + \@ifpackageloaded{ocgbase}{\bool_gset_true:N\g_pbs_ocgbase_loaded_bool}{} } -\keys_define:nn{pdfbase}{ - xetex .code:n = {}, %dummy, we use engine test instead - - dvipdfmx .choice:, - dvipdfmx / true .code:n = { - \bool_gset_true:N\g_pbs_dvipdfmx_bool - \bool_gset_false:N\g_pbs_dvisvgm_bool - }, - dvipdfmx / false .code:n = {\bool_gset_false:N\g_pbs_dvipdfmx_bool}, - dvipdfmx .default:n = {true}, - - dvisvgm .choice:, - dvisvgm / true .code:n = { - \bool_gset_true:N\g_pbs_dvisvgm_bool - \bool_gset_false:N\g_pbs_dvipdfmx_bool - }, - dvisvgm / false .code:n = {\bool_gset_false:N\g_pbs_dvisvgm_bool}, - dvisvgm .default:n = {true}, - - bigfiles .bool_gset:N = \g_pbs_pkgbigfiles_bool, - - unknown .code:n = { - \msg_error:nnx{pdfbase}{unknown~package~option}{\l_keys_key_tl} - } -} -\ProcessKeysOptions{pdfbase} - -\sys_if_output_pdf:T{ - \bool_gset_false:N\g_pbs_dvipdfmx_bool - \bool_gset_false:N\g_pbs_dvisvgm_bool -} - -\sys_if_engine_xetex:T{ - \bool_if:NF\g_pbs_dvisvgm_bool{\bool_gset_true:N\g_pbs_dvipdfmx_bool} -} - -% writing to core objects in the PDF, using the new -% pdfmanagement interface +% writing to core objects in the PDF, using the new pdfmanagement interface \cs_new_protected_nopar:Nn\pbs_appendtofields:n{ \pdfmanagement_add:nnx{Catalog/AcroForm}{Fields}{#1} } @@ -1629,7 +1684,6 @@ }{ !\int_compare_p:n{\luatexversion<95} }{ - \cs_set:Npx\pdfpageresources{\pdfvariable~pageresources} \cs_set_protected:Npn\pdfobj{\pdfextension~obj~} \cs_set_protected:Npn\pdfrefobj{\pdfextension~refobj~} \cs_set_protected:Npn\pdfannot{\pdfextension~annot~} @@ -1641,6 +1695,7 @@ \cs_set_protected:Npn\pdflastobj{\numexpr\pdffeedback~lastobj\relax} \cs_set_protected:Npn\pdflastannot{\numexpr\pdffeedback~lastannot\relax} \cs_set:Npn\pdfpageref{\pdffeedback~pageref} + \cs_set_protected:Npx\pdfpageresources{\pdfvariable~pageresources} \cs_set_eq:NN\pdfximage\saveimageresource \cs_set_eq:NN\pdfrefximage\useimageresource \cs_set_eq:NN\pdflastximage\lastsavedimageresourceindex @@ -2558,7 +2613,7 @@ %modify output routine for output box insertions \bool_new:N\l_pbs_is_vertical_bool \cs_set_eq:NN\pbs_outputpage_orig:\@outputpage -\cs_set_nopar:Npn\@outputpage{ +\cs_set_protected_nopar:Npn\@outputpage{ \int_gincr:N\g_pbs_page_int \box_if_vertical:cTF{@outputbox}{ \bool_set_true:N\l_pbs_is_vertical_bool @@ -2578,10 +2633,6 @@ \pbs_outputpage_orig: } -\bool_new:N\g_pbs_ocgbase_loaded_bool -\AtBeginDocument{ - \@ifpackageloaded{ocgbase}{\bool_gset_true:N\g_pbs_ocgbase_loaded_bool}{} -} \AddToHook{shipout/background}{ % workaround for curious AR bug (pdf annot or link placed on % OCG remains active although OCG is hidden) -- cgit v1.2.3