summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tagpdf/tagpdf-roles-code.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-07-05 21:45:46 +0000
committerKarl Berry <karl@freefriends.org>2018-07-05 21:45:46 +0000
commiteef245751e7d3cec3ce8db3dda9f93818e1a7118 (patch)
tree995036273168036838cec88e6ff67d05b7942319 /Master/texmf-dist/tex/latex/tagpdf/tagpdf-roles-code.sty
parentf8fda7824b2b8cdebc2f57a8dc1aefdec29b14e9 (diff)
tagpdf (5jul18)
git-svn-id: svn://tug.org/texlive/trunk@48146 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tagpdf/tagpdf-roles-code.sty')
-rw-r--r--Master/texmf-dist/tex/latex/tagpdf/tagpdf-roles-code.sty126
1 files changed, 126 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-roles-code.sty b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-roles-code.sty
new file mode 100644
index 00000000000..06489c6ea8c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-roles-code.sty
@@ -0,0 +1,126 @@
+\ProvidesExplPackage {tagpdf-roles-code} {2018/07/04} {0.1}
+ {part of tagpdf - code related to roles and structure names}
+
+\__uftag_seq_new:N \g__uftag_role_tags_seq %to get names from numbers
+\__uftag_prop_new:N \g__uftag_role_tags_prop %to get numbers from names
+
+%The list of standard adobe tags.
+\clist_const:Nn \c__uftag_role_sttags_clist
+ {%possible root elements
+ Document, %A complete document. This is the root element of any structure tree containing
+ %multiple parts or multiple articles.
+ Part, %A large-scale division of a document.
+ Art, %A relatively self-contained body of text constituting a single narrative or exposition
+ %subelements
+ Sect, %A container for grouping related content elements.
+ Div, %A generic block-level element or group of elements
+ BlockQuote, %A portion of text consisting of one or more paragraphs attributed to someone other
+ %than the author of the surrounding text.
+ Caption, %A brief portion of text describing a table or figure.
+ TOC, %A list made up of table of contents item entries (structure tag TOCI; see below)
+ %and/or other nested table of contents entries
+ TOCI, %An individual member of a table of contents. This entry's children can be any of
+ %the following structure tags:
+ %Lbl,Reference,NonStruct,P,TOC
+ Index,
+ NonStruct, %probably not needed
+ H,
+ H1,
+ H2,
+ H3,
+ H4,
+ H5,
+ H6,
+ P,
+ L, %list
+ LI, %list item (around label and list item body)
+ Lbl, %list label
+ Lbody, %list item body
+ Table,
+ TR, %table row
+ TH, %table header cell
+ TD, %table data cell
+ THead, %table header (n rows)
+ TBody, %table rows
+ TFoot, %table footer
+ Span, %generic inline marker
+ Quote, %inline quote
+ Note, % footnote, endnote. Lbl can be child
+ Reference, % A citation to content elsewhere in the document.
+ BibEntry, %bibentry
+ Code, %
+ Link, %
+ Annot,
+ Figure,
+ Formula,
+ Form,
+ Artifact
+ }
+
+% get tag name from number: \seq_item:Nn \g__uftag_role_tags_seq { n }
+%\seq_gset_from_clist:NN \g__uftag_role_tags_seq \c__uftag_role_tags_clist
+
+\clist_map_inline:Nn \c__uftag_role_sttags_clist
+ {
+ \__uftag_seq_gput_right:Nn \g__uftag_role_tags_seq { #1 }
+ }
+
+
+% get tag number from name: \prop_item:Nn \g__uftag_role_tags_prop { name }
+\int_step_inline:nnnn { 1 }{ 1 }{ \seq_count:N \g__uftag_role_tags_seq }
+ {
+ \__uftag_prop_gput:Nxn \g__uftag_role_tags_prop
+ {
+ \seq_item:Nn \g__uftag_role_tags_seq { #1 }
+ }
+ { #1 }
+ }
+
+\cs_new:Nn \__uftag_role_get_tag_from_index:nn
+ {
+ \__uftag_seq_item:cn { #1_seq } { #2 }
+ }
+
+\cs_new:Nn \__uftag_role_get_index_from_tag:nn
+ {
+ \__uftag_prop_item:cn { #1_prop } { #2 }
+ }
+
+% new tags and the rolemap
+
+\__uftag_prop_new:N \g__uftag_role_rolemap_prop
+
+\cs_new:Nn \__uftag_role_add_tag:nn %new name, reference to old
+ {
+ \__uftag_seq_gput_right:Nn \g__uftag_role_tags_seq { #1 }
+ \__uftag_prop_gput:Nnx \g__uftag_role_tags_prop { #1 }
+ {
+ \seq_count:N \g__uftag_role_tags_seq
+ }
+ \__uftag_check_add_tag_role:nn {#1}{#2}
+ \tl_if_empty:nF { #2 }
+ {
+ \__uftag_prop_gput:Nnn \g__uftag_role_rolemap_prop
+ { #1 } { #2 }
+ }
+ }
+
+\cs_generate_variant:Nn \__uftag_role_add_tag:nn {xx}
+
+\keys_define:nn { tagpdf-setup }
+ {
+ add-new-tag .code:n =
+ {
+ \seq_set_split:Nnn \l_tmpa_seq { / } {#1/}
+ \__uftag_role_add_tag:xx
+ {
+ \seq_item:Nn \l_tmpa_seq {1}
+ }
+ {
+ \seq_item:Nn \l_tmpa_seq {2}
+ }
+ }
+ }
+
+
+\endinput