diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tagpdf/tagpdf-pdftex.def')
-rw-r--r-- | Master/texmf-dist/tex/latex/tagpdf/tagpdf-pdftex.def | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-pdftex.def b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-pdftex.def new file mode 100644 index 00000000000..af728c69d90 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-pdftex.def @@ -0,0 +1,125 @@ +\ProvidesExplFile {tagpdf-pdftex.def} {2018/07/04} {0.1} + {tagpdf driver for pdftex} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% driver (pdflatex) commands +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%literal +\cs_new:Nn \__uftag_pdfliteral_page:n { \__uftag_tex_pdfliteral:D page { #1} } +\cs_new:Nn \__uftag_pdfcatalog:n { \__uftag_tex_pdfcatalog:D { #1 } } + +% reserve an object num and store the number +\cs_new:Nn \__uftag_pdfreserveobjnum:N % #1 = macro name to be populated with object number + { + \__uftag_tex_pdfobj:D reserveobjnum + \tl_set:Nx #1 { \int_use:N \__uftag_tex_pdflastobj:D }% + } + +% add content to an object num stored in a macro +\cs_new:Nn \__uftag_pdfuseobjnum:Nn + { + % #1 = macro containing the object number + % #2 = object contents, as valid PDF + % should #2 be filtered through \pdfstringdef ??? + \__uftag_tex_immediate:D \__uftag_tex_pdfobj:D useobjnum~#1~{#2}% + } + +\cs_new:Nn \__uftag_pdfuseobjnum:nn + { + % #1 = a number the object number + % #2 = object contents, as valid PDF + % should #2 be filtered through \pdfstringdef ??? + \__uftag_check_record_pdfobj_num:n {#1} + \__uftag_tex_immediate:D \__uftag_tex_pdfobj:D useobjnum~#1~{#2}% + } + +% obj num of the dictionary for a page: +% the page count starts by 1 +% pages can referenced before they are actually created +% no error if the page later doesn't exist +\cs_new:Nn \__uftag_store_pdfpageref:Nn + { + % #1 = macro name to be populated with current page object number + % #2 = number or counter identifying the required page + \tl_set:Nx #1 { \__uftag_tex_pdfpageref:D #2}% + } + +% a global version of the command +\cs_new:Nn \__uftag_gstore_pdfpageref:Nn + { + \tl_gset:Nx #1 { \__uftag_tex_pdfpageref:D #2}% + } + +\cs_new:Nn \__uftag_pdfobj:Nn + { + % #1 = macro name to refer to this object + % #2 = object contents, as valid PDF + % should #2 be filtered through \pdfstringdef ??? + \__uftag_tex_immediate:D \__uftag_tex_pdfobj:D { #2 } + \tl_set:Nx #1 {\int_use:N \__uftag_tex_pdflastobj:D }% + } + +% pdfpage**s**attr: for all pages +%% is global needed? Yes. Without it the setting is lost if issued in a group +% +\cs_new:Nn \__uftag_gset_pdfpagesattr:n + { + \__uftag_tex_global:D \__uftag_tex_pdfpagesattr:D { #1 } + } + +\cs_new:Nn \__uftag_gadd_pdfpagesattr:n + { + \exp_args:No \__uftag_gset_pdfpagesattr:n { \__uftag_tex_the:D \__uftag_tex_pdfpagesattr:D #1 } + } + +% pdfpageattr for one page +% I must avoid to overwrite other entries, +% And I must avoid to add more and more /StructParens +% do we need an immediate version?? +\cs_new:Nn \__uftag_gset_pdfpageattr:n + { + \__uftag_tex_global:D \__uftag_tex_pdfpageattr:D { #1 } + } + +\cs_new:Nn \__uftag_gadd_pdfpageattr:n + { + \exp_args:No \__uftag_gset_pdfpageattr:n { \__uftag_tex_the:D \__uftag_tex_pdfpageattr:D #1} + } + +\cs_new:Nn \__uftag_get_pdfpageattr:N + { + \tl_set:No #1 { \__uftag_tex_the:D \__uftag_tex_pdfpageattr:D } + } +\cs_new:Nn \__uftag_pdfcompresslevel:n + { + \__uftag_tex_pdfcompresslevel:D #1 + } + +\cs_new:Nn \__uftag_pdfobjcompresslevel:n + { + \__uftag_tex_pdfobjcompresslevel:D #1 + } + + +% These commands are only aliases for pdflatex but are defined differently with luatex +% to get also lua tables. +\cs_set_eq:NN \__uftag_prop_new:N \prop_new:N + +\cs_set_eq:NN \__uftag_seq_new:N \seq_new:N + +\cs_set_eq:NN \__uftag_prop_gput:Nnn \prop_gput:Nnn + +\cs_set_eq:NN \__uftag_seq_gput_right:Nn \seq_gput_right:Nn + +\cs_set_eq:NN \__uftag_seq_item:cn \seq_item:cn + +\cs_set_eq:NN \__uftag_prop_item:cn \prop_item:cn + +\cs_set_eq:NN \__uftag_seq_show:N \seq_show:N + +\cs_set_eq:NN \__uftag_prop_show:N \prop_show:N + + + +\endinput |