diff options
Diffstat (limited to 'macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx')
-rw-r--r-- | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx | 89 |
1 files changed, 76 insertions, 13 deletions
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx index 29fcf8bafa..3835be9ef2 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.96a, released 2023-10-09} +% \date{Version 0.96b, released 2023-11-05} % % \maketitle % \begin{documentation} @@ -63,7 +63,7 @@ % |debug={firstaidoff={name1,name2,...},...}|. % \begin{macrocode} %<*package> -\ProvidesExplPackage{pdfmanagement-firstaid}{2023-10-09}{0.96a} +\ProvidesExplPackage{pdfmanagement-firstaid}{2023-11-05}{0.96b} {LaTeX PDF management testphase bundle / firstaid-patches} %<@@=pdfmanagement> @@ -103,15 +103,78 @@ { \bool_if:NT \g_@@_firstaid_fontspec_bool { - \@ifpackagelater{fontspec}{2023-03-10} + \AddToHook{package/fontspec/after} { - \__fontspec_keys_define_code:nnn {fontspec} {Color} - { - \tl_set:Nn \l__fontspec_hexcol_tl {#1} - } - }{} + \@ifpackagelater{fontspec}{2023-11-05} + {\typeout{PDF~Management:~fontspec~firstaid~ignored}} + { + \def\c__fontspec_opacity_tl{} + \__fontspec_keys_define_code:nnn {fontspec} {Color} + { + \color_if_exist:nTF {#1} + { + \tl_set:Nn \l__fontspec_hexcol_tl {#1} + } + { + \cs_if_exist:cTF { \token_to_str:N \color@ #1 } + { + \convertcolorspec{named}{#1}{HTML}\l__fontspec_hexcol_tl + } + { + \int_compare:nTF { \tl_count:n {#1} == 6 } + { \tl_set:Nn \l__fontspec_hexcol_tl {#1} } + { + \int_compare:nTF { \tl_count:n {#1} == 8 } + { \fontspec_parse_colour:viii #1 } + { + \bool_if:NF \l__fontspec_firsttime_bool + { \__fontspec_warning:nx {bad-colour} {#1} } + } + } + } + } + } +% \end{macrocode} +% add a comma +% \begin{macrocode} + \__fontspec_keys_define_code:nnn {fontspec} {Opacity} + { + \int_set:Nn \l__fontspec_tmp_int {255} + \__fontspec_int_mult_truncate:Nn \l__fontspec_tmp_int { #1 } + \tl_if_eq:NNF \l__fontspec_opacity_tl \c__fontspec_opacity_tl + { + \bool_if:NF \l__fontspec_firsttime_bool + { \__fontspec_warning:nx {opa-twice} {#1} } + } + \tl_set:Nx \l__fontspec_opacity_tl + { + , + \int_compare:nT { \l__fontspec_tmp_int <= "F } {0} % zero pad + \int_to_hex:n { \l__fontspec_tmp_int } + } + } +% \end{macrocode} +% and a brace +% \begin{macrocode} + \cs_set:Nn \__fontspec_get_features:n + { + \__fontspec_init_fontface: + \__fontspec_keys_set_known:nxN {fontspec-renderer} {\l__fontspec_fontfeat_clist,#1} + \l__fontspec_keys_leftover_clist + \__fontspec_keys_set_known:nxN {fontspec} {\l__fontspec_keys_leftover_clist} \l__fontspec_keys_leftover_clist + \keys_set:nV {fontspec-opentype} \l__fontspec_keys_leftover_clist + + \tl_if_empty:NF \l__fontspec_mapping_tl + { \__fontspec_update_featstr:n { mapping = \l__fontspec_mapping_tl } } + + \str_if_eq:eeF { \l__fontspec_hexcol_tl \l__fontspec_opacity_tl } + { \c__fontspec_hexcol_tl \c__fontspec_opacity_tl } + { \__fontspec_update_featstr:n { color = {\l__fontspec_hexcol_tl\l__fontspec_opacity_tl } } } + } + } } } + } % \end{macrocode} % \subsection{\pkg{beamer}} @@ -314,21 +377,21 @@ } \cs_generate_variant:Nn \tl_trim_spaces:n{V} -\cs_generate_variant:Nn \pdfmanagement_add:nnn {nex} +\cs_generate_variant:Nn \pdfmanagement_add:nnn {nee} \cs_new:Npn \@@_patch_pgfextgs:w #1/#2<<#3>>#4\q_stop { - \tl_set:Nx\l_tmpa_tl{#2} - \pdfmanagement_add:nex + \tl_set:Ne\l_tmpa_tl{#2} + \pdfmanagement_add:nee {Page/Resources/ExtGState}{\tl_trim_spaces:V\l_tmpa_tl}{<<#3 #4>>} } \cs_new:Npn \@@_patch_pgfpatterns:w #1/#2\space#3\q_stop { - \pdfmanagement_add:nex + \pdfmanagement_add:nee {Page/Resources/Pattern}{\tl_trim_spaces:n{#2}}{#3} } \cs_new:Npn \@@_patch_pgfcolorspaces:w #1/#2[#3]#4\q_stop { - \pdfmanagement_add:nex + \pdfmanagement_add:nee {Page/Resources/ColorSpace}{\tl_trim_spaces:n{#2}}{[#3]} } |