diff options
Diffstat (limited to 'macros/latex/contrib/tagpdf/tagpdf-roles.dtx')
-rw-r--r-- | macros/latex/contrib/tagpdf/tagpdf-roles.dtx | 125 |
1 files changed, 81 insertions, 44 deletions
diff --git a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx index 47a1f40bcc..052b805193 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98v, released 2024-02-04} +% \date{Version 0.98w, released 2024-02-22} % \maketitle % \begin{documentation} % \begin{function} @@ -98,7 +98,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-roles-code} {2024-02-04} {0.98v} +\ProvidesExplPackage {tagpdf-roles-code} {2024-02-22} {0.98w} {part of tagpdf - code related to roles and structure names} %</header> % \end{macrocode} @@ -505,11 +505,16 @@ { \msg_info:nnn { tag }{new-tag}{#1} } - \prop_get:cnN { g_@@_role_NS_#4_class_prop } {#3}\l_@@_tmpa_tl - \quark_if_no_value:NT \l_@@_tmpa_tl - { - \tl_set:Nn\l_@@_tmpa_tl{--UNKNOWN--} - } + \prop_if_exist:cTF + { g_@@_role_NS_#4_class_prop } + { + \prop_get:cnN { g_@@_role_NS_#4_class_prop } {#3}\l_@@_tmpa_tl + \quark_if_no_value:NT \l_@@_tmpa_tl + { + \tl_set:Nn\l_@@_tmpa_tl{--UNKNOWN--} + } + } + { \tl_set:Nn\l_@@_tmpa_tl{--UNKNOWN--} } \@@_role_alloctag:nnV {#1}{#2}\l_@@_tmpa_tl % \end{macrocode} % Do not remap standard tags. TODO add warning? @@ -579,15 +584,24 @@ %#3 tlvar which hold the role tag %#4 tlvar which hold the name of the target NS { - \prop_get:cnNTF {g_@@_role_NS_#2_prop} {#1}\l_@@_tmpa_tl - { - \tl_set:Ne #3 {\exp_last_unbraced:NV\use_i:nn \l_@@_tmpa_tl} - \tl_set:Ne #4 {\exp_last_unbraced:NV\use_ii:nn \l_@@_tmpa_tl} - } - { - \tl_set:Nn #3 {#1} - \tl_set:Nn #4 {#2} - } + \prop_if_exist:cTF {g_@@_role_NS_#2_prop} + { + \prop_get:cnNTF {g_@@_role_NS_#2_prop} {#1}\l_@@_get_tmpc_tl + { + \tl_set:Ne #3 {\exp_last_unbraced:NV\use_i:nn \l_@@_get_tmpc_tl} + \tl_set:Ne #4 {\exp_last_unbraced:NV\use_ii:nn \l_@@_get_tmpc_tl} + } + { + \msg_warning:nnn { tag } {role-unknown-tag} { #1 } + \tl_set:Nn #3 {#1} + \tl_set:Nn #4 {#2} + } + } + { + \msg_warning:nnn { tag } {role-unknown-NS} { #2 } + \tl_set:Nn #3 {#1} + \tl_set:Nn #4 {#2} + } } \cs_generate_variant:Nn \@@_role_get:nnNN {VVNN} } @@ -1106,20 +1120,27 @@ \tl_set:Nn \l_@@_tmpa_tl {#1} } { - \prop_get:cnNTF - { g_@@_role_NS_#2_prop } - {#1} - \l_@@_tmpa_tl - { - \tl_set:Ne \l_@@_tmpa_tl {\tl_head:N\l_@@_tmpa_tl} - \tl_if_empty:NT\l_@@_tmpa_tl - { - \tl_set:Nn \l_@@_tmpa_tl {#1} - } - } - { - \tl_set:Nn \l_@@_tmpa_tl {\q_no_value} - } + \prop_if_exist:cTF { g_@@_role_NS_#2_prop } + { + \prop_get:cnNTF + { g_@@_role_NS_#2_prop } + {#1} + \l_@@_tmpa_tl + { + \tl_set:Ne \l_@@_tmpa_tl {\tl_head:N\l_@@_tmpa_tl} + \tl_if_empty:NT\l_@@_tmpa_tl + { + \tl_set:Nn \l_@@_tmpa_tl {#1} + } + } + { + \tl_set:Nn \l_@@_tmpa_tl {\q_no_value} + } + } + { + \msg_warning:nnn { tag } {role-unknown-NS} { #2} + \tl_set:Nn \l_@@_tmpa_tl {\q_no_value} + } } % \end{macrocode} % and the same for the child @@ -1131,20 +1152,27 @@ \tl_set:Nn \l_@@_tmpb_tl {#3} } { - \prop_get:cnNTF - { g_@@_role_NS_#4_prop } - {#3} - \l_@@_tmpb_tl + \prop_if_exist:cTF { g_@@_role_NS_#4_prop } { - \tl_set:Ne \l_@@_tmpb_tl { \tl_head:N\l_@@_tmpb_tl } - \tl_if_empty:NT\l_@@_tmpb_tl - { - \tl_set:Nn \l_@@_tmpb_tl {#3} - } + \prop_get:cnNTF + { g_@@_role_NS_#4_prop } + {#3} + \l_@@_tmpb_tl + { + \tl_set:Ne \l_@@_tmpb_tl { \tl_head:N\l_@@_tmpb_tl } + \tl_if_empty:NT\l_@@_tmpb_tl + { + \tl_set:Nn \l_@@_tmpb_tl {#3} + } + } + { + \tl_set:Nn \l_@@_tmpb_tl {\q_no_value} + } } - { + { + \msg_warning:nnn { tag } {role-unknown-NS} { #4} \tl_set:Nn \l_@@_tmpb_tl {\q_no_value} - } + } } % \end{macrocode} % and now get the relation @@ -1239,7 +1267,8 @@ % tag-namespace (rolemap-key), % role (rolemap-key), % role-namespace (rolemap-key), -% add-new-tag (setup-key)} +% role/new-tag (setup-key), +% add-new-tag (deprecated)} % \begin{macrocode} \keys_define:nn { @@ / tag-role } { @@ -1251,8 +1280,8 @@ \keys_define:nn { @@ / setup } { - mathml-tags .bool_gset:N = \g_@@_role_add_mathml_bool - ,add-new-tag .code:n = + role/mathml-tags .bool_gset:N = \g_@@_role_add_mathml_bool + ,role/new-tag .code:n = { \keys_set_known:nnnN {@@/tag-role} @@ -1298,6 +1327,14 @@ \l_@@_role_role_namespace_tmpa_tl } } + ,role/map-tags .choice: + ,role/map-tags/false .code:n = { \socket_assign_plug:nn { tag/struct/tag } {latex-tags} } + ,role/map-tags/pdf .code:n = { \socket_assign_plug:nn { tag/struct/tag } {pdf-tags} } +% \end{macrocode} +% deprecated names +% \begin{macrocode} + , mathml-tags .bool_gset:N = \g_@@_role_add_mathml_bool + , add-new-tag .meta:n = {role/new-tag={#1}} } %</package> % \end{macrocode} |