summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty')
-rw-r--r--Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty219
1 files changed, 87 insertions, 132 deletions
diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty
index a8d3eb3762b..9b3872e9a84 100644
--- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty
+++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty
@@ -4,9 +4,9 @@
%%
%% The original source files were:
%%
-%% tagpdf-mc.dtx (with options: `generic')
+%% tagpdf-mc-generic.dtx (with options: `generic')
%%
-%% Copyright (C) 2019 Ulrike Fischer
+%% Copyright (C) 2019-2021 Ulrike Fischer
%%
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,13 +19,16 @@
%% and all files in that bundle must be distributed together.
%%
%% File: tagpdf-mc.dtx
-\ProvidesExplPackage {tagpdf-mc-code-generic} {2021-06-14} {0.82}
+\ProvidesExplPackage {tagpdf-mc-code-generic} {2021-06-29} {0.9}
{part of tagpdf - code related to marking chunks - generic mode}
-
+\bool_new:N \g__tag_in_mc_bool
\__tag_prop_new:N \g__tag_MCID_byabspage_prop
-\bool_new:N \g__tag_in_mc_bool
+\tl_new:N \l__tag_mc_ref_abspage_tl
+
+\tl_new:N \l__tag_mc_tmpa_tl
+
\prg_new_conditional:Nnn \__tag_mc_if_in: {p,T,F,TF}
{
@@ -35,29 +38,11 @@
}
\prg_new_eq_conditional:NNn \tag_mc_if_in: \__tag_mc_if_in: {p,T,F,TF}
-
-\cs_new_protected:Nn \__tag_mc_bmc:n
- {
- \pdf_bmc:n {#1}
- }
-
-\cs_new_protected:Nn \__tag_mc_emc:
- {
- \pdf_emc:
- %\__tag_pdfliteral_page:n
- }
-
-\cs_new_protected:Nn \__tag_mc_bdc:nn
- {
- \pdf_bdc:nn { #1 } { #2 }
- }
-
+\cs_set_eq:NN \__tag_mc_bmc:n \pdf_bmc:n
+\cs_set_eq:NN \__tag_mc_emc: \pdf_emc:
+\cs_set_eq:NN \__tag_mc_bdc:nn \pdf_bdc:nn
\cs_generate_variant:Nn \__tag_mc_bdc:nn {nx}
-
-\tl_new:N \l__tag_mc_ref_abspage_tl %will store the abspage value of label
-\tl_new:N \l__tag_mc_tmp_tl
-
-\cs_new:Nn \__tag_mc_bdc_mcid:nn
+\cs_new_protected:Npn \__tag_mc_bdc_mcid:nn #1 #2
{
\int_gincr:N \c@g__tag_MCID_abs_int
\tl_set:Nx \l__tag_mc_ref_abspage_tl
@@ -74,14 +59,14 @@
{
\l__tag_mc_ref_abspage_tl
}
- \l__tag_mc_tmp_tl
+ \l__tag_mc_tmpa_tl
{
%key already present, use value for MCID and add 1 for the next
- \int_gset:Nn \g__tag_MCID_tmp_bypage_int { \l__tag_mc_tmp_tl }
+ \int_gset:Nn \g__tag_MCID_tmp_bypage_int { \l__tag_mc_tmpa_tl }
\__tag_prop_gput:Nxx
\g__tag_MCID_byabspage_prop
{ \l__tag_mc_ref_abspage_tl }
- { \int_eval:n {\l__tag_mc_tmp_tl +1} }
+ { \int_eval:n {\l__tag_mc_tmpa_tl +1} }
}
{
%key not present, set MCID to 0 and insert 1
@@ -96,38 +81,96 @@
mcid-\int_use:N \c@g__tag_MCID_abs_int
}
{ mc }
- %\exp_args:Nnx
\__tag_mc_bdc:nx
{#1}
{ /MCID~\int_eval:n { \g__tag_MCID_tmp_bypage_int }~ \exp_not:n { #2 } }
}
-
-\cs_new:Nn \__tag_mc_bdc_mcid:n
+\cs_new_protected:Npn \__tag_mc_bdc_mcid:n #1
{
\__tag_mc_bdc_mcid:nn {#1} {}
}
-\cs_new:Nn \__tag_mc_bmc_artifact:
+\cs_new_protected:Npn \__tag_mc_handle_mcid:nn #1 #2 %#1 tag, #2 properties
{
- \__tag_mc_bmc:n {Artifact}
+ \__tag_mc_bdc_mcid:nn {#1} {#2}
}
-\cs_new:Nn \__tag_mc_bmc_artifact:n
+\cs_generate_variant:Nn \__tag_mc_handle_mcid:nn {VV}
+
+\cs_new_protected:Npn \__tag_mc_handle_stash:n #1 %1 mcidnum
{
- \__tag_mc_bdc:nn {Artifact}{/Type/#1}
+ \__tag_check_mc_used:n {#1}
+ \__tag_struct_kid_mc_gput_right:nn
+ { \g__tag_struct_stack_current_tl }
+ {#1}
+ \prop_gput:Nxx \g__tag_mc_parenttree_prop
+ {#1}
+ { \g__tag_struct_stack_current_tl }
}
+\cs_generate_variant:Nn \__tag_mc_handle_stash:n { x }
+\cs_new_protected:Npn \__tag_mc_bmc_artifact:
+ {
+ \__tag_mc_bmc:n {Artifact}
+ }
+\cs_new_protected:Npn \__tag_mc_bmc_artifact:n #1
+ {
+ \__tag_mc_bdc:nn {Artifact}{/Type/#1}
+ }
+\cs_new_protected:Npn \__tag_mc_handle_artifact:N #1
+ % #1 is a var containing the artifact type
+ {
+ \tl_if_empty:NTF #1
+ { \__tag_mc_bmc_artifact: }
+ { \exp_args:NV\__tag_mc_bmc_artifact:n #1 }
+ }
-
-\tl_new:N \l__tag_mc_key_tag_tl
-\tl_new:N \g__tag_mc_key_tag_tl %for "outside" queries
-\tl_new:N \l__tag_mc_key_properties_tl
+\cs_new:Nn \__tag_get_data_mc_tag: { \g__tag_mc_key_tag_tl }
+\cs_new_protected:Npn \tag_mc_begin:n #1 %#1 keyval
+ {
+ \__tag_check_if_active_mc:T
+ {
+ \group_begin: %hm
+ \__tag_check_mc_if_nested:
+ \bool_gset_true:N \g__tag_in_mc_bool
+ \keys_set:nn { __tag / mc } {#1}
+ \bool_if:NTF \l__tag_mc_artifact_bool
+ { %handle artifact
+ \__tag_mc_handle_artifact:N \l__tag_mc_artifact_type_tl
+ }
+ { %handle mcid type
+ \__tag_check_mc_tag:N \l__tag_mc_key_tag_tl
+ \__tag_mc_handle_mcid:VV
+ \l__tag_mc_key_tag_tl
+ \l__tag_mc_key_properties_tl
+ \tl_if_empty:NF {\l__tag_mc_key_label_tl}
+ {
+ \exp_args:NV
+ \__tag_mc_handle_mc_label:n \l__tag_mc_key_label_tl
+ }
+ \bool_if:NF \l__tag_mc_key_stash_bool
+ {
+ \__tag_mc_handle_stash:x { \int_use:N \c@g__tag_MCID_abs_int }
+ }
+ }
+ \group_end:
+ }
+ }
+\cs_new_protected:Nn \tag_mc_end:
+ {
+ \__tag_check_if_active_mc:T
+ {
+ \__tag_check_mc_if_open:
+ \bool_gset_false:N \g__tag_in_mc_bool
+ \tl_gset:Nn \g__tag_mc_key_tag_tl { }
+ \__tag_mc_emc:
+ }
+ }
\keys_define:nn { __tag / mc }
{
- tag .code:n = % the name (H,P,Spa) etc
+ tag .code:n = % the name (H,P,Span) etc
{
- %%????????? \pdfescapename??
\tl_set:Nx \l__tag_mc_key_tag_tl { #1 }
\tl_gset:Nx \g__tag_mc_key_tag_tl { #1 }
},
@@ -181,98 +224,10 @@
\exp_args:Nnx
\keys_set:nn
{ __tag / mc }
- { artifact-bool, artifact-type=#1 }
+ { __artifact-bool, __artifact-type=#1 }
},
artifact .default:n = {notype}
}
-
-\cs_new:Nn \__tag_mc_handle_artifact:N %#1 contains the artifact type
- {
- \tl_if_empty:NTF #1
- { \__tag_mc_bmc_artifact: }
- { \exp_args:No\__tag_mc_bmc_artifact:n {#1} }
- }
-
-\cs_new:Nn \__tag_mc_handle_mcid:nn %#1 tag, #2 properties
- {
- \__tag_mc_bdc_mcid:nn {#1} {#2}
- }
-
-\cs_generate_variant:Nn \__tag_mc_handle_mcid:nn {VV}
-
-\cs_new:Nn \__tag_mc_handle_stash:n %1 mcidnum
- {
- \__tag_check_mc_used:n {#1}
- \__tag_struct_kid_mc_gput_right:nn
- { \g__tag_struct_stack_current_tl }
- {#1}
- \prop_gput:Nxx \g__tag_mc_parenttree_prop
- {#1}
- { \g__tag_struct_stack_current_tl }
- }
-
-\cs_new_protected:Nn \tag_mc_begin:n
- {
- \group_begin: %hm
- \__tag_check_mc_if_nested:
- \bool_gset_true:N \g__tag_in_mc_bool
- \keys_set:nn { __tag / mc } {#1}
- \bool_if:NTF \l__tag_mc_artifact_bool
- { %handle artifact
- \__tag_mc_handle_artifact:N \l__tag_mc_artifact_type_tl
- }
- { %handle mcid type
- \__tag_check_mc_tag:N \l__tag_mc_key_tag_tl
- \__tag_mc_handle_mcid:VV
- \l__tag_mc_key_tag_tl
- \l__tag_mc_key_properties_tl
- \tl_if_empty:NF {\l__tag_mc_key_label_tl}
- {
- \__tag_mc_handle_mc_label:n { \l__tag_mc_key_label_tl }
- }
- \bool_if:NF \l__tag_mc_key_stash_bool
- {
- \__tag_mc_handle_stash:n { \int_use:N \c@g__tag_MCID_abs_int }
- }
- }
- \group_end:
- }
-
-\cs_new_protected:Nn \tag_mc_end:
- {
- \__tag_check_mc_if_open:
- \bool_gset_false:N \g__tag_in_mc_bool
- \tl_gset:Nn \g__tag_mc_key_tag_tl { }
- \__tag_mc_emc:
- }
-
-\cs_new_protected:Nn \tag_mc_use:n %#1: label name
- {
- \tl_set:Nx \l_tmpa_tl { \__tag_ref_value:enn{tagpdf-#1}{tagmcabs}{} }
- \tl_if_empty:NTF\l_tmpa_tl
- {
- \msg_warning:nnn {tag} {mc-label-unknown} {#1}
- }
- {
- \prop_gput:Nxx
- \g__tag_mc_parenttree_prop
- {
- \__tag_ref_value:enn {tagpdf-#1} {tagmcabs} {}
- }
- {
- \g__tag_struct_stack_current_tl
- }
- \__tag_struct_kid_mc_gput_right:nn
- {
- \g__tag_struct_stack_current_tl
- }
- {
- \__tag_ref_value:enn {tagpdf-#1} {tagmcabs} {}
- }
- }
- }
-
-\cs_new:Nn \__tag_get_data_mc_tag: { \g__tag_mc_key_tag_tl }
%%
%%
%% End of file `tagpdf-mc-code-generic.sty'.