summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-11-07 03:02:46 +0000
committerNorbert Preining <norbert@preining.info>2023-11-07 03:02:46 +0000
commit02646b6e89ef69971235e0c883e86fd746955e2b (patch)
tree203df1a9b40b37e9452e03d936e392da7d03c7af /macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
parent240fd5fe8af67337e240c10434af4834fc86278f (diff)
CTAN sync 202311070302
Diffstat (limited to 'macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx')
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx89
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]}
}