diff options
author | Karl Berry <karl@freefriends.org> | 2023-10-27 19:58:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-10-27 19:58:21 +0000 |
commit | 3166e6ef8fb8bc54d43ef4c07ddaf9935f5e4857 (patch) | |
tree | 4edbc7846f7ee76cb3fa98769effb8d7ccdfaaf7 /Master | |
parent | 1bd4d7592d3d26ea9d6b670d267f81c11285920d (diff) |
tagpdf (27oct23)
git-svn-id: svn://tug.org/texlive/trunk@68676 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
45 files changed, 1048 insertions, 817 deletions
diff --git a/Master/texmf-dist/doc/latex/tagpdf/README.md b/Master/texmf-dist/doc/latex/tagpdf/README.md index 961b6e21617..b5a8a983e05 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/README.md +++ b/Master/texmf-dist/doc/latex/tagpdf/README.md @@ -1,6 +1,6 @@ #tagpdf β A package to create tagged pdf -Packageversion: 0.98l -Packagedate: 2023/08/30 +Packageversion: 0.98m +Packagedate: 2023/10/27 Author: Ulrike Fischer ## License diff --git a/Master/texmf-dist/doc/latex/tagpdf/ex-AF-file.pdf b/Master/texmf-dist/doc/latex/tagpdf/ex-AF-file.pdf index 41e750a736c..ad143617bb8 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/ex-AF-file.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/ex-AF-file.pdf @@ -1,11 +1,11 @@ %PDF-2.0 %ΜΥΑΤΕΨΠΔΖ 23 0 obj -<< /Subtype /application#2Fx-tex/Type /EmbeddedFile /Params<</ModDate (D:20230830231109+02'00') /Size 151 /CheckSum (BADAD63AAC8953B42877D379D71F03C9) >> /Length 151 >> +<< /Subtype /application#2Fx-tex/Type /EmbeddedFile /Params<</ModDate (D:20231027154221+02'00') /Size 151 /CheckSum (ACA3C0F12F8F866B0433C4C044C411ED) >> /Length 151 >> stream %% LaTeX2e file `example-input-file.tex' %% generated by the `filecontents' environment -%% from source `ex-AF-file' on 2023/08/30. +%% from source `ex-AF-file' on 2023/10/27. %% Additional info! @@ -15,7 +15,7 @@ endobj << /Type /Filespec /AFRelationship /Unspecified /F <FEFF006500780061006D0070006C0065002D0069006E007000750074002D00660069006C0065002E007400650078> /UF <FEFF006500780061006D0070006C0065002D0069006E007000750074002D00660069006C0065002E007400650078> /EF<</F 23 0 R/UF 23 0 R>> >> endobj 26 0 obj -<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20230830) >> /Length 19 >> +<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20231027) >> /Length 19 >> stream BΓ€r with teh shirt endstream @@ -24,7 +24,7 @@ endobj << /Type /Filespec /AFRelationship /Supplement /F <FEFF007400610067002D0041004600660069006C00650031002E007400780074> /UF <FEFF007400610067002D0041004600660069006C00650031002E007400780074> /EF<</F 26 0 R/UF 26 0 R>> >> endobj 29 0 obj -<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20230830) >> /Length 4 >> +<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20231027) >> /Length 4 >> stream Duck endstream @@ -242,17 +242,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2023-08-30T23:11:25+02:00</rdf:li> + <rdf:li>2023-10-27T15:42:44+02:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-AF-file.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2023-08-30T23:11:25+02:00</xmp:CreateDate> - <xmp:ModifyDate>2023-08-30T23:11:25+02:00</xmp:ModifyDate> - <xmp:MetadataDate>2023-08-30T23:11:25+02:00</xmp:MetadataDate> + <xmp:CreateDate>2023-10-27T15:42:44+02:00</xmp:CreateDate> + <xmp:ModifyDate>2023-10-27T15:42:44+02:00</xmp:ModifyDate> + <xmp:MetadataDate>2023-10-27T15:42:44+02:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:38d5a844-2217-4081-87cc-b2129dc357a6</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:4d6334e8-8cfa-44b2-8ddf-e31f3ddae4d9</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:396e9fee-5777-4b30-8277-a876d4a46909</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -332,7 +332,7 @@ endobj << /Type /Namespace /NS (http://www.w3.org/1998/Math/MathML) >> endobj 15 0 obj -<< /title [/Title 10 0 R] /part [/Title 10 0 R] /section [/H1 10 0 R] /subsection [/H2 10 0 R] /subsubsection [/H3 10 0 R] /paragraph [/H4 10 0 R] /subparagraph [/H5 10 0 R] /list [/L 10 0 R] /itemize [/L 10 0 R] /enumerate [/L 10 0 R] /description [/L 10 0 R] /quote [/BlockQuote 8 0 R] /quotation [/BlockQuote 8 0 R] /verbatim [/Div 10 0 R] /item [/LI 10 0 R] /itemlabel [/Lbl 10 0 R] /itembody [/LBody 10 0 R] /footnote [/FENote 10 0 R] /footnotemark [/Lbl 10 0 R] /footnotelabel [/Lbl 10 0 R] /text-unit [/Part 10 0 R] /text [/P 10 0 R] >> +<< /title [/Title 10 0 R] /part [/Title 10 0 R] /section [/H1 10 0 R] /subsection [/H2 10 0 R] /subsubsection [/H3 10 0 R] /paragraph [/H4 10 0 R] /subparagraph [/H5 10 0 R] /list [/L 10 0 R] /itemize [/L 10 0 R] /enumerate [/L 10 0 R] /description [/L 10 0 R] /quote [/BlockQuote 8 0 R] /quotation [/BlockQuote 8 0 R] /verbatim [/P 10 0 R] /item [/LI 10 0 R] /itemlabel [/Lbl 10 0 R] /itembody [/LBody 10 0 R] /footnote [/FENote 10 0 R] /footnotemark [/Lbl 10 0 R] /footnotelabel [/Lbl 10 0 R] /text-unit [/Part 10 0 R] /text [/P 10 0 R] /theorem-like [/Sect 10 0 R] /codeline [/Sub 10 0 R] /float [/Aside 10 0 R] /figures [/Sect 10 0 R] /tables [/Sect 10 0 R] >> endobj 14 0 obj << /Type /Namespace /NS (https://www.latex-project.org/ns/dflt/2022) /RoleMapNS 15 0 R >> @@ -350,7 +350,7 @@ endobj << /Type /Namespace /NS (https://www.latex-project.org/ns/inline/2022) /RoleMapNS 19 0 R >> endobj 20 0 obj -<< /Type /Namespace /NS (data:,CEF0968F-94E5-866F-7E1D-6C99EF80C88B) >> +<< /Type /Namespace /NS (data:,EB2B3286-C2B1-7025-F961-1B8FEB3177B1) >> endobj 7 0 obj [ 8 0 R 10 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R ] @@ -452,7 +452,7 @@ endobj << /Type /Catalog /Pages 37 0 R /MarkInfo 38 0 R/Lang (de-DE)/Metadata 32 0 R/StructTreeRoot 5 0 R >> endobj 47 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20230830231125+02'00')/ModDate (D:20230830231125+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20231027154244+02'00')/ModDate (D:20231027154244+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 48 @@ -461,51 +461,51 @@ xref 0000000003 00000 f 0000000004 00000 f 0000000009 00000 f -0000016147 00000 n +0000016268 00000 n 0000013795 00000 n -0000015570 00000 n +0000015691 00000 n 0000014006 00000 n 0000000011 00000 f 0000014074 00000 n 0000000013 00000 f 0000014144 00000 n 0000000021 00000 f -0000014786 00000 n +0000014907 00000 n 0000014225 00000 n -0000015064 00000 n -0000014893 00000 n -0000015372 00000 n -0000015171 00000 n -0000015481 00000 n +0000015185 00000 n +0000015014 00000 n +0000015493 00000 n +0000015292 00000 n +0000015602 00000 n 0000000000 00000 f -0000015638 00000 n +0000015759 00000 n 0000000020 00000 n 0000000382 00000 n -0000015751 00000 n +0000015872 00000 n 0000000673 00000 n 0000000828 00000 n -0000015883 00000 n +0000016004 00000 n 0000001062 00000 n 0000001202 00000 n -0000016015 00000 n +0000016136 00000 n 0000001436 00000 n 0000013649 00000 n 0000013514 00000 n 0000012908 00000 n -0000019885 00000 n -0000020239 00000 n +0000020006 00000 n +0000020360 00000 n 0000013759 00000 n 0000013852 00000 n 0000013969 00000 n -0000016252 00000 n -0000018701 00000 n -0000016438 00000 n -0000018922 00000 n -0000020039 00000 n -0000020301 00000 n -0000020419 00000 n +0000016373 00000 n +0000018822 00000 n +0000016559 00000 n +0000019043 00000 n +0000020160 00000 n +0000020422 00000 n +0000020540 00000 n trailer -<< /Size 48 /Root 46 0 R /Info 47 0 R /ID [ <89DE760DC5086CB2FFEDEFAA6BD2DA9B> <89DE760DC5086CB2FFEDEFAA6BD2DA9B> ] >> +<< /Size 48 /Root 46 0 R /Info 47 0 R /ID [ <C14030CFEF82565EB5A7E1E51941FD64> <C14030CFEF82565EB5A7E1E51941FD64> ] >> startxref -20642 +20763 %%EOF diff --git a/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.pdf b/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.pdf Binary files differindex 2ff37d0b048..99066ad2a93 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.pdf diff --git a/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.pdf b/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.pdf index 31963fef52a..67a1a336a96 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.pdf @@ -216,17 +216,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2023-08-30T23:12:08+02:00</rdf:li> + <rdf:li>2023-10-27T15:43:46+02:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-attribute.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2023-08-30T23:12:08+02:00</xmp:CreateDate> - <xmp:ModifyDate>2023-08-30T23:12:08+02:00</xmp:ModifyDate> - <xmp:MetadataDate>2023-08-30T23:12:08+02:00</xmp:MetadataDate> + <xmp:CreateDate>2023-10-27T15:43:46+02:00</xmp:CreateDate> + <xmp:ModifyDate>2023-10-27T15:43:46+02:00</xmp:ModifyDate> + <xmp:MetadataDate>2023-10-27T15:43:46+02:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:7a9cf910-1c19-429a-8f24-339c62d8a57f</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:d01ecca6-7bad-4daf-84dc-c57583be006a</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:2224d4af-56f8-40bb-8b90-ea889de2fd42</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -337,7 +337,7 @@ endobj << /Kids [28 0 R] >> endobj 7 0 obj -<< /Artifact /NonStruct /DocumentFragment /Art /Aside /Note /H7 /H6 /H8 /H6 /H9 /H6 /H10 /H6 /Title /P /FENote /Note /Sub /Span /Em /Span /Strong /Span /title /P /part /P /section /H1 /subsection /H2 /subsubsection /H3 /paragraph /H4 /subparagraph /H5 /list /L /itemize /L /enumerate /L /description /L /quote /BlockQuote /quotation /BlockQuote /verbatim /Div /item /LI /itemlabel /Lbl /itembody /LBody /footnote /Note /footnotemark /Lbl /footnotelabel /Lbl /text-unit /Part /text /P >> +<< /Artifact /NonStruct /DocumentFragment /Art /Aside /Note /H7 /H6 /H8 /H6 /H9 /H6 /H10 /H6 /Title /P /FENote /Note /Sub /Span /Em /Span /Strong /Span /title /P /part /P /section /H1 /subsection /H2 /subsubsection /H3 /paragraph /H4 /subparagraph /H5 /list /L /itemize /L /enumerate /L /description /L /quote /BlockQuote /quotation /BlockQuote /verbatim /P /item /LI /itemlabel /Lbl /itembody /LBody /footnote /Note /footnotemark /Lbl /footnotelabel /Lbl /text-unit /Part /text /P /theorem-like /Sect /codeline /Span /float /Note /figures /Sect /tables /Sect >> endobj 30 0 obj << /Lay-borderdotted << <</O /Layout /Borderstyle /Dotted >> >> @@ -449,7 +449,7 @@ endobj << /Type /Catalog /Pages 26 0 R /MarkInfo 27 0 R/Lang (de_DE)/Metadata 21 0 R/StructTreeRoot 5 0 R >> endobj 38 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/Title (Title)/CreationDate (D:20230830231208+02'00')/ModDate (D:20230830231208+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/Title (Title)/CreationDate (D:20231027154346+02'00')/ModDate (D:20231027154346+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 39 @@ -458,42 +458,42 @@ xref 0000000003 00000 f 0000000004 00000 f 0000000008 00000 f -0000014888 00000 n +0000014964 00000 n 0000012928 00000 n 0000013247 00000 n 0000000000 00000 f -0000013876 00000 n -0000013961 00000 n -0000014053 00000 n -0000014137 00000 n -0000014227 00000 n +0000013952 00000 n +0000014037 00000 n +0000014129 00000 n +0000014213 00000 n +0000014303 00000 n 0000000020 00000 n 0000000071 00000 n -0000014356 00000 n -0000014496 00000 n -0000014580 00000 n -0000014670 00000 n -0000014779 00000 n +0000014432 00000 n +0000014572 00000 n +0000014656 00000 n +0000014746 00000 n +0000014855 00000 n 0000000132 00000 n 0000012758 00000 n 0000012616 00000 n 0000011606 00000 n -0000017228 00000 n -0000017582 00000 n +0000017304 00000 n +0000017658 00000 n 0000012892 00000 n 0000012992 00000 n 0000013210 00000 n -0000013750 00000 n -0000015006 00000 n -0000016184 00000 n -0000015083 00000 n -0000015157 00000 n -0000016420 00000 n -0000017382 00000 n -0000017644 00000 n -0000017762 00000 n +0000013826 00000 n +0000015082 00000 n +0000016260 00000 n +0000015159 00000 n +0000015233 00000 n +0000016496 00000 n +0000017458 00000 n +0000017720 00000 n +0000017838 00000 n trailer -<< /Size 39 /Root 37 0 R /Info 38 0 R /ID [ <C0D9194F0F8325FEE262A9FEBD89B665> <C0D9194F0F8325FEE262A9FEBD89B665> ] >> +<< /Size 39 /Root 37 0 R /Info 38 0 R /ID [ <D3968930357FEE397E019F4A160C2AE3> <D3968930357FEE397E019F4A160C2AE3> ] >> startxref -17999 +18075 %%EOF diff --git a/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.pdf b/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.pdf index 229ae70db37..cc1671d7f84 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.pdf @@ -239,17 +239,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2023-08-30T23:12:29+02:00</rdf:li> + <rdf:li>2023-10-27T15:44:17+02:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-formula-problem.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2023-08-30T23:12:29+02:00</xmp:CreateDate> - <xmp:ModifyDate>2023-08-30T23:12:29+02:00</xmp:ModifyDate> - <xmp:MetadataDate>2023-08-30T23:12:29+02:00</xmp:MetadataDate> + <xmp:CreateDate>2023-10-27T15:44:17+02:00</xmp:CreateDate> + <xmp:ModifyDate>2023-10-27T15:44:17+02:00</xmp:ModifyDate> + <xmp:MetadataDate>2023-10-27T15:44:17+02:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:8eb2ce1d-b2ec-440a-8bc2-73733eb3eeb0</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:edd036c8-c70f-4410-8f43-8f745826598f</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:a3fd31b5-cd7b-4075-8f6d-1e64dd2b713b</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>2</prism:pageCount> </rdf:Description> @@ -315,7 +315,7 @@ endobj << /Kids [24 0 R] >> endobj 7 0 obj -<< /Artifact /NonStruct /DocumentFragment /Art /Aside /Note /H7 /H6 /H8 /H6 /H9 /H6 /H10 /H6 /Title /P /FENote /Note /Sub /Span /Em /Span /Strong /Span /title /P /part /P /section /H1 /subsection /H2 /subsubsection /H3 /paragraph /H4 /subparagraph /H5 /list /L /itemize /L /enumerate /L /description /L /quote /BlockQuote /quotation /BlockQuote /verbatim /Div /item /LI /itemlabel /Lbl /itembody /LBody /footnote /Note /footnotemark /Lbl /footnotelabel /Lbl /text-unit /Part /text /P >> +<< /Artifact /NonStruct /DocumentFragment /Art /Aside /Note /H7 /H6 /H8 /H6 /H9 /H6 /H10 /H6 /Title /P /FENote /Note /Sub /Span /Em /Span /Strong /Span /title /P /part /P /section /H1 /subsection /H2 /subsubsection /H3 /paragraph /H4 /subparagraph /H5 /list /L /itemize /L /enumerate /L /description /L /quote /BlockQuote /quotation /BlockQuote /verbatim /P /item /LI /itemlabel /Lbl /itembody /LBody /footnote /Note /footnotemark /Lbl /footnotelabel /Lbl /text-unit /Part /text /P /theorem-like /Sect /codeline /Span /float /Note /figures /Sect /tables /Sect >> endobj 9 0 obj << /Type /StructElem /S /Document /P 5 0 R /K [10 0 R 11 0 R 17 0 R 18 0 R] /ID (ID.01) >> @@ -425,7 +425,7 @@ endobj << /Type /Catalog /Pages 16 0 R /MarkInfo 23 0 R/Lang (de-DE)/Metadata 19 0 R/StructTreeRoot 5 0 R >> endobj 33 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20230830231229+02'00')/ModDate (D:20230830231229+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20231027154417+02'00')/ModDate (D:20231027154417+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 34 @@ -434,20 +434,20 @@ xref 0000000003 00000 f 0000000004 00000 f 0000000008 00000 f -0000014303 00000 n +0000014379 00000 n 0000012899 00000 n 0000013137 00000 n 0000000000 00000 f -0000013640 00000 n -0000013747 00000 n -0000013853 00000 n +0000013716 00000 n +0000013823 00000 n +0000013929 00000 n 0000000637 00000 n 0000000502 00000 n 0000000020 00000 n -0000018387 00000 n -0000018741 00000 n -0000013965 00000 n -0000014071 00000 n +0000018463 00000 n +0000018817 00000 n +0000014041 00000 n +0000014147 00000 n 0000000724 00000 n 0000012729 00000 n 0000012594 00000 n @@ -455,16 +455,16 @@ xref 0000012863 00000 n 0000012969 00000 n 0000013100 00000 n -0000014404 00000 n -0000017160 00000 n -0000014605 00000 n +0000014480 00000 n +0000017236 00000 n 0000014681 00000 n -0000017396 00000 n -0000018541 00000 n -0000018810 00000 n -0000018928 00000 n +0000014757 00000 n +0000017472 00000 n +0000018617 00000 n +0000018886 00000 n +0000019004 00000 n trailer -<< /Size 34 /Root 32 0 R /Info 33 0 R /ID [ <C438D9F37967D5A1217C11DDDBD5EC00> <C438D9F37967D5A1217C11DDDBD5EC00> ] >> +<< /Size 34 /Root 32 0 R /Info 33 0 R /ID [ <18CBACCFD23D931A034DDF17EC30B3A2> <18CBACCFD23D931A034DDF17EC30B3A2> ] >> startxref -19151 +19227 %%EOF diff --git a/Master/texmf-dist/doc/latex/tagpdf/ex-list.pdf b/Master/texmf-dist/doc/latex/tagpdf/ex-list.pdf index d5885d53b73..8b8c52809e6 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/ex-list.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/ex-list.pdf @@ -210,17 +210,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2023-08-30T23:12:52+02:00</rdf:li> + <rdf:li>2023-10-27T15:44:48+02:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-list.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2023-08-30T23:12:52+02:00</xmp:CreateDate> - <xmp:ModifyDate>2023-08-30T23:12:52+02:00</xmp:ModifyDate> - <xmp:MetadataDate>2023-08-30T23:12:52+02:00</xmp:MetadataDate> + <xmp:CreateDate>2023-10-27T15:44:48+02:00</xmp:CreateDate> + <xmp:ModifyDate>2023-10-27T15:44:48+02:00</xmp:ModifyDate> + <xmp:MetadataDate>2023-10-27T15:44:48+02:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:4c749825-1de7-414c-879f-29e4d0bef66e</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:4f234d81-ca31-480c-8267-5daf94e5542c</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:6465c816-cbd0-49f0-8f11-d7d38ccf3873</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -653,7 +653,7 @@ endobj << /Type /Catalog /Pages 54 0 R /MarkInfo 55 0 R/Lang (en-US)/Metadata 48 0 R/StructTreeRoot 5 0 R >> endobj 72 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20230830231252+02'00')/ModDate (D:20230830231252+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20231027154448+02'00')/ModDate (D:20231027154448+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 73 @@ -731,7 +731,7 @@ xref 0000029592 00000 n 0000029710 00000 n trailer -<< /Size 73 /Root 71 0 R /Info 72 0 R /ID [ <019D2B53AF4CC011A02E911AD5A1AC04> <019D2B53AF4CC011A02E911AD5A1AC04> ] >> +<< /Size 73 /Root 71 0 R /Info 72 0 R /ID [ <B2A7793657FCC57463973470FB017435> <B2A7793657FCC57463973470FB017435> ] >> startxref 29933 %%EOF diff --git a/Master/texmf-dist/doc/latex/tagpdf/ex-mc-manual-para-split-obsolete.pdf b/Master/texmf-dist/doc/latex/tagpdf/ex-mc-manual-para-split-obsolete.pdf index f7777952e4a..03d9baa2454 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/ex-mc-manual-para-split-obsolete.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/ex-mc-manual-para-split-obsolete.pdf @@ -243,17 +243,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2023-08-30T23:13:12+02:00</rdf:li> + <rdf:li>2023-10-27T15:45:16+02:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-mc-manual-para-split-obsolete.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2023-08-30T23:13:12+02:00</xmp:CreateDate> - <xmp:ModifyDate>2023-08-30T23:13:12+02:00</xmp:ModifyDate> - <xmp:MetadataDate>2023-08-30T23:13:12+02:00</xmp:MetadataDate> + <xmp:CreateDate>2023-10-27T15:45:16+02:00</xmp:CreateDate> + <xmp:ModifyDate>2023-10-27T15:45:16+02:00</xmp:ModifyDate> + <xmp:MetadataDate>2023-10-27T15:45:16+02:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:c33d64b4-96ec-4e48-8f27-0b3edc831547</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:2887128f-21c5-4c52-8669-a58e88f41682</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:19465596-e014-4208-8ea6-cde9c10efd13</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>2</prism:pageCount> </rdf:Description> @@ -413,7 +413,7 @@ endobj << /Type /Catalog /Pages 14 0 R /Lang (en-US)/Metadata 15 0 R >> endobj 25 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20230830231312+02'00')/ModDate (D:20230830231312+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20231027154516+02'00')/ModDate (D:20231027154516+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 26 @@ -444,7 +444,7 @@ xref 0000023897 00000 n 0000023978 00000 n trailer -<< /Size 26 /Root 24 0 R /Info 25 0 R /ID [ <470CC785A1D0B3B694D43EBE24661D19> <470CC785A1D0B3B694D43EBE24661D19> ] >> +<< /Size 26 /Root 24 0 R /Info 25 0 R /ID [ <E81B8D7D57ACDFDA45EA41C58123AB8C> <E81B8D7D57ACDFDA45EA41C58123AB8C> ] >> startxref 24201 %%EOF diff --git a/Master/texmf-dist/doc/latex/tagpdf/ex-softhyphen.pdf b/Master/texmf-dist/doc/latex/tagpdf/ex-softhyphen.pdf index 7287b6e5f29..75ac71bbbaa 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/ex-softhyphen.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/ex-softhyphen.pdf @@ -210,17 +210,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2023-08-30T23:13:31+02:00</rdf:li> + <rdf:li>2023-10-27T15:45:42+02:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-softhyphen.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2023-08-30T23:13:31+02:00</xmp:CreateDate> - <xmp:ModifyDate>2023-08-30T23:13:31+02:00</xmp:ModifyDate> - <xmp:MetadataDate>2023-08-30T23:13:31+02:00</xmp:MetadataDate> + <xmp:CreateDate>2023-10-27T15:45:42+02:00</xmp:CreateDate> + <xmp:ModifyDate>2023-10-27T15:45:42+02:00</xmp:ModifyDate> + <xmp:MetadataDate>2023-10-27T15:45:42+02:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:aa82e685-4098-469d-861c-3c45dfc700c7</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:e1838625-8288-439b-850f-8396de55e668</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:0f48bcfe-bbe2-43ab-8377-9cfd9adb7d23</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -290,7 +290,7 @@ endobj << /Kids [21 0 R] >> endobj 7 0 obj -<< /Artifact /NonStruct /DocumentFragment /Art /Aside /Note /H7 /H6 /H8 /H6 /H9 /H6 /H10 /H6 /Title /P /FENote /Note /Sub /Span /Em /Span /Strong /Span /title /P /part /P /section /H2 /subsection /H3 /subsubsection /H4 /paragraph /H5 /subparagraph /H6 /list /L /itemize /L /enumerate /L /description /L /quote /BlockQuote /quotation /BlockQuote /verbatim /Div /item /LI /itemlabel /Lbl /itembody /LBody /footnote /Note /footnotemark /Lbl /footnotelabel /Lbl /text-unit /Part /text /P /chapter /H1 >> +<< /Artifact /NonStruct /DocumentFragment /Art /Aside /Note /H7 /H6 /H8 /H6 /H9 /H6 /H10 /H6 /Title /P /FENote /Note /Sub /Span /Em /Span /Strong /Span /title /P /part /P /section /H2 /subsection /H3 /subsubsection /H4 /paragraph /H5 /subparagraph /H6 /list /L /itemize /L /enumerate /L /description /L /quote /BlockQuote /quotation /BlockQuote /verbatim /P /item /LI /itemlabel /Lbl /itembody /LBody /footnote /Note /footnotemark /Lbl /footnotelabel /Lbl /text-unit /Part /text /P /theorem-like /Sect /codeline /Span /float /Note /figures /Sect /tables /Sect /chapter /H1 >> endobj 9 0 obj << /Type /StructElem /S /Document /P 5 0 R /K [10 0 R 12 0 R] /ID (ID.01) >> @@ -393,7 +393,7 @@ endobj << /Type /Catalog /Pages 19 0 R /MarkInfo 20 0 R/Lang (en-US)/Metadata 14 0 R/StructTreeRoot 5 0 R >> endobj 30 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20230830231331+02'00')/ModDate (D:20230830231331+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20231027154542+02'00')/ModDate (D:20231027154542+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 31 @@ -402,34 +402,34 @@ xref 0000000003 00000 f 0000000004 00000 f 0000000008 00000 f -0000013665 00000 n +0000013741 00000 n 0000012446 00000 n 0000012664 00000 n 0000000000 00000 f -0000013180 00000 n -0000013273 00000 n -0000013359 00000 n -0000013469 00000 n -0000013555 00000 n +0000013256 00000 n +0000013349 00000 n +0000013435 00000 n +0000013545 00000 n +0000013631 00000 n 0000000020 00000 n 0000012276 00000 n 0000012141 00000 n 0000011495 00000 n -0000017614 00000 n -0000017978 00000 n +0000017690 00000 n +0000018054 00000 n 0000012410 00000 n 0000012496 00000 n 0000012627 00000 n -0000013766 00000 n -0000016414 00000 n -0000013920 00000 n -0000014094 00000 n -0000016654 00000 n -0000017773 00000 n -0000018040 00000 n -0000018158 00000 n +0000013842 00000 n +0000016490 00000 n +0000013996 00000 n +0000014170 00000 n +0000016730 00000 n +0000017849 00000 n +0000018116 00000 n +0000018234 00000 n trailer -<< /Size 31 /Root 29 0 R /Info 30 0 R /ID [ <6B288E973F57BDFEC84F230DEBCFA2E8> <6B288E973F57BDFEC84F230DEBCFA2E8> ] >> +<< /Size 31 /Root 29 0 R /Info 30 0 R /ID [ <55E3FDBDB8E688D88AE3ECB360B2CD8D> <55E3FDBDB8E688D88AE3ECB360B2CD8D> ] >> startxref -18381 +18457 %%EOF diff --git a/Master/texmf-dist/doc/latex/tagpdf/ex-spaceglyph-listings.pdf b/Master/texmf-dist/doc/latex/tagpdf/ex-spaceglyph-listings.pdf index 7ae6db67793..54163da4f70 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/ex-spaceglyph-listings.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/ex-spaceglyph-listings.pdf @@ -210,17 +210,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2023-08-30T23:13:48+02:00</rdf:li> + <rdf:li>2023-10-27T15:46:07+02:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-spaceglyph-listings.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2023-08-30T23:13:48+02:00</xmp:CreateDate> - <xmp:ModifyDate>2023-08-30T23:13:48+02:00</xmp:ModifyDate> - <xmp:MetadataDate>2023-08-30T23:13:48+02:00</xmp:MetadataDate> + <xmp:CreateDate>2023-10-27T15:46:07+02:00</xmp:CreateDate> + <xmp:ModifyDate>2023-10-27T15:46:07+02:00</xmp:ModifyDate> + <xmp:MetadataDate>2023-10-27T15:46:07+02:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:acdc2435-bf29-4e54-8d09-1c9b6dc32038</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:6a509f48-5cd8-4bd2-864d-46b6f7a3e3af</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:bfe06476-5d48-4964-8826-50562f0f9875</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -275,7 +275,7 @@ endobj << /Kids [17 0 R] >> endobj 7 0 obj -<< /Artifact /NonStruct /DocumentFragment /Art /Aside /Note /H7 /H6 /H8 /H6 /H9 /H6 /H10 /H6 /Title /P /FENote /Note /Sub /Span /Em /Span /Strong /Span /title /P /part /P /section /H1 /subsection /H2 /subsubsection /H3 /paragraph /H4 /subparagraph /H5 /list /L /itemize /L /enumerate /L /description /L /quote /BlockQuote /quotation /BlockQuote /verbatim /Div /item /LI /itemlabel /Lbl /itembody /LBody /footnote /Note /footnotemark /Lbl /footnotelabel /Lbl /text-unit /Part /text /P >> +<< /Artifact /NonStruct /DocumentFragment /Art /Aside /Note /H7 /H6 /H8 /H6 /H9 /H6 /H10 /H6 /Title /P /FENote /Note /Sub /Span /Em /Span /Strong /Span /title /P /part /P /section /H1 /subsection /H2 /subsubsection /H3 /paragraph /H4 /subparagraph /H5 /list /L /itemize /L /enumerate /L /description /L /quote /BlockQuote /quotation /BlockQuote /verbatim /P /item /LI /itemlabel /Lbl /itembody /LBody /footnote /Note /footnotemark /Lbl /footnotelabel /Lbl /text-unit /Part /text /P /theorem-like /Sect /codeline /Span /float /Note /figures /Sect /tables /Sect >> endobj 9 0 obj << /Type /StructElem /S /Document /P 5 0 R /ID (ID.01) >> @@ -354,7 +354,7 @@ endobj << /Type /Catalog /Pages 15 0 R /MarkInfo 16 0 R/Lang (en-US)/Metadata 10 0 R/StructTreeRoot 5 0 R >> endobj 26 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20230830231348+02'00')/ModDate (D:20230830231348+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20231027154607+02'00')/ModDate (D:20231027154607+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 27 @@ -363,30 +363,30 @@ xref 0000000003 00000 f 0000000004 00000 f 0000000008 00000 f -0000012809 00000 n +0000012885 00000 n 0000012093 00000 n 0000012232 00000 n 0000000000 00000 f -0000012735 00000 n +0000012811 00000 n 0000000020 00000 n 0000011923 00000 n 0000011788 00000 n 0000011504 00000 n -0000014992 00000 n -0000015346 00000 n +0000015068 00000 n +0000015422 00000 n 0000012057 00000 n 0000012124 00000 n 0000012195 00000 n -0000012910 00000 n -0000013976 00000 n -0000012965 00000 n -0000013040 00000 n -0000014212 00000 n -0000015146 00000 n -0000015408 00000 n -0000015526 00000 n +0000012986 00000 n +0000014052 00000 n +0000013041 00000 n +0000013116 00000 n +0000014288 00000 n +0000015222 00000 n +0000015484 00000 n +0000015602 00000 n trailer -<< /Size 27 /Root 25 0 R /Info 26 0 R /ID [ <A1D7171338063BC081A09387B55B4DC2> <A1D7171338063BC081A09387B55B4DC2> ] >> +<< /Size 27 /Root 25 0 R /Info 26 0 R /ID [ <FFAF6EF252682BD0179C52AEACF1EAD0> <FFAF6EF252682BD0179C52AEACF1EAD0> ] >> startxref -15749 +15825 %%EOF diff --git a/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.pdf b/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.pdf index 55337b9dce6..dd921f6c6a1 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.pdf @@ -210,17 +210,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2023-08-30T23:14:06+02:00</rdf:li> + <rdf:li>2023-10-27T15:46:33+02:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-structure-obsolete.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2023-08-30T23:14:06+02:00</xmp:CreateDate> - <xmp:ModifyDate>2023-08-30T23:14:06+02:00</xmp:ModifyDate> - <xmp:MetadataDate>2023-08-30T23:14:06+02:00</xmp:MetadataDate> + <xmp:CreateDate>2023-10-27T15:46:33+02:00</xmp:CreateDate> + <xmp:ModifyDate>2023-10-27T15:46:33+02:00</xmp:ModifyDate> + <xmp:MetadataDate>2023-10-27T15:46:33+02:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:bf5e4a2b-cfa9-4fc5-878c-8f9d2ee95445</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:f6360433-4c88-4e51-80e3-5dcd1d2dd103</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:3faeed81-5075-4961-87b9-5303bf7b914e</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -322,7 +322,7 @@ endobj << /Kids [28 0 R] >> endobj 7 0 obj -<< /Artifact /NonStruct /DocumentFragment /Art /Aside /Note /H7 /H6 /H8 /H6 /H9 /H6 /H10 /H6 /Title /P /FENote /Note /Sub /Span /Em /Span /Strong /Span /title /P /part /P /section /H2 /subsection /H3 /subsubsection /H4 /paragraph /H5 /subparagraph /H6 /list /L /itemize /L /enumerate /L /description /L /quote /BlockQuote /quotation /BlockQuote /verbatim /Div /item /LI /itemlabel /Lbl /itembody /LBody /footnote /Note /footnotemark /Lbl /footnotelabel /Lbl /text-unit /Part /text /P /chapter /H1 >> +<< /Artifact /NonStruct /DocumentFragment /Art /Aside /Note /H7 /H6 /H8 /H6 /H9 /H6 /H10 /H6 /Title /P /FENote /Note /Sub /Span /Em /Span /Strong /Span /title /P /part /P /section /H2 /subsection /H3 /subsubsection /H4 /paragraph /H5 /subparagraph /H6 /list /L /itemize /L /enumerate /L /description /L /quote /BlockQuote /quotation /BlockQuote /verbatim /P /item /LI /itemlabel /Lbl /itembody /LBody /footnote /Note /footnotemark /Lbl /footnotelabel /Lbl /text-unit /Part /text /P /theorem-like /Sect /codeline /Span /float /Note /figures /Sect /tables /Sect /chapter /H1 >> endobj 9 0 obj << /Type /StructElem /S /Document /P 5 0 R /K 10 0 R /ID (ID.001) >> @@ -526,7 +526,7 @@ endobj << /Type /Catalog /Pages 26 0 R /MarkInfo 27 0 R/Lang (en-US)/Metadata 20 0 R/StructTreeRoot 5 0 R >> endobj 43 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20230830231406+02'00')/ModDate (D:20230830231406+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20231027154633+02'00')/ModDate (D:20231027154633+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 44 @@ -535,47 +535,47 @@ xref 0000000003 00000 f 0000000004 00000 f 0000000008 00000 f -0000014857 00000 n +0000014933 00000 n 0000012880 00000 n 0000013229 00000 n 0000000000 00000 f -0000013745 00000 n -0000013830 00000 n -0000013928 00000 n -0000014036 00000 n -0000014144 00000 n -0000014233 00000 n -0000014323 00000 n -0000014433 00000 n -0000014545 00000 n -0000014635 00000 n -0000014745 00000 n +0000013821 00000 n +0000013906 00000 n +0000014004 00000 n +0000014112 00000 n +0000014220 00000 n +0000014309 00000 n +0000014399 00000 n +0000014509 00000 n +0000014621 00000 n +0000014711 00000 n +0000014821 00000 n 0000000020 00000 n 0000012698 00000 n 0000012563 00000 n 0000011503 00000 n -0000022940 00000 n -0000019706 00000 n -0000023288 00000 n +0000023016 00000 n +0000019782 00000 n +0000023364 00000 n 0000012844 00000 n 0000012958 00000 n 0000013192 00000 n -0000014958 00000 n -0000018437 00000 n -0000015207 00000 n -0000015282 00000 n -0000018673 00000 n -0000019860 00000 n -0000020060 00000 n -0000021828 00000 n -0000020197 00000 n +0000015034 00000 n +0000018513 00000 n +0000015283 00000 n +0000015358 00000 n +0000018749 00000 n +0000019936 00000 n +0000020136 00000 n +0000021904 00000 n 0000020273 00000 n -0000022062 00000 n -0000023091 00000 n -0000023350 00000 n -0000023468 00000 n +0000020349 00000 n +0000022138 00000 n +0000023167 00000 n +0000023426 00000 n +0000023544 00000 n trailer -<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <E81A69FEE9B9E50F0C56DE6BBF434A40> <E81A69FEE9B9E50F0C56DE6BBF434A40> ] >> +<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <9BB580D33960C81880B4ED0F31B8B5B6> <9BB580D33960C81880B4ED0F31B8B5B6> ] >> startxref -23691 +23767 %%EOF diff --git a/Master/texmf-dist/doc/latex/tagpdf/ex-tagpdf-template.pdf b/Master/texmf-dist/doc/latex/tagpdf/ex-tagpdf-template.pdf index 952a516e8f8..2a6e5ac7899 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/ex-tagpdf-template.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/ex-tagpdf-template.pdf @@ -210,17 +210,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2023-08-30T23:14:26+02:00</rdf:li> + <rdf:li>2023-10-27T15:47:00+02:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-tagpdf-template.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2023-08-30T23:14:26+02:00</xmp:CreateDate> - <xmp:ModifyDate>2023-08-30T23:14:26+02:00</xmp:ModifyDate> - <xmp:MetadataDate>2023-08-30T23:14:26+02:00</xmp:MetadataDate> + <xmp:CreateDate>2023-10-27T15:47:00+02:00</xmp:CreateDate> + <xmp:ModifyDate>2023-10-27T15:47:00+02:00</xmp:ModifyDate> + <xmp:MetadataDate>2023-10-27T15:47:00+02:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:f320abfc-f6ab-4d12-8719-d176f4d947cf</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:28e776ee-8e5e-4001-8145-84b430ec9045</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:18202c14-899a-4cda-8daf-fcc14e5f853c</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -291,7 +291,7 @@ endobj << /Type /Namespace /NS (http://www.w3.org/1998/Math/MathML) >> endobj 15 0 obj -<< /title [/Title 10 0 R] /part [/Title 10 0 R] /section [/H1 10 0 R] /subsection [/H2 10 0 R] /subsubsection [/H3 10 0 R] /paragraph [/H4 10 0 R] /subparagraph [/H5 10 0 R] /list [/L 10 0 R] /itemize [/L 10 0 R] /enumerate [/L 10 0 R] /description [/L 10 0 R] /quote [/BlockQuote 8 0 R] /quotation [/BlockQuote 8 0 R] /verbatim [/Div 10 0 R] /item [/LI 10 0 R] /itemlabel [/Lbl 10 0 R] /itembody [/LBody 10 0 R] /footnote [/FENote 10 0 R] /footnotemark [/Lbl 10 0 R] /footnotelabel [/Lbl 10 0 R] /text-unit [/Part 10 0 R] /text [/P 10 0 R] >> +<< /title [/Title 10 0 R] /part [/Title 10 0 R] /section [/H1 10 0 R] /subsection [/H2 10 0 R] /subsubsection [/H3 10 0 R] /paragraph [/H4 10 0 R] /subparagraph [/H5 10 0 R] /list [/L 10 0 R] /itemize [/L 10 0 R] /enumerate [/L 10 0 R] /description [/L 10 0 R] /quote [/BlockQuote 8 0 R] /quotation [/BlockQuote 8 0 R] /verbatim [/P 10 0 R] /item [/LI 10 0 R] /itemlabel [/Lbl 10 0 R] /itembody [/LBody 10 0 R] /footnote [/FENote 10 0 R] /footnotemark [/Lbl 10 0 R] /footnotelabel [/Lbl 10 0 R] /text-unit [/Part 10 0 R] /text [/P 10 0 R] /theorem-like [/Sect 10 0 R] /codeline [/Sub 10 0 R] /float [/Aside 10 0 R] /figures [/Sect 10 0 R] /tables [/Sect 10 0 R] >> endobj 14 0 obj << /Type /Namespace /NS (https://www.latex-project.org/ns/dflt/2022) /RoleMapNS 15 0 R >> @@ -308,11 +308,8 @@ endobj 18 0 obj << /Type /Namespace /NS (https://www.latex-project.org/ns/inline/2022) /RoleMapNS 19 0 R >> endobj -21 0 obj -<< /list [/L 10 0 R] /quote [/BlockQuote 8 0 R] /quotation [/BlockQuote 8 0 R] /theorem-like [/Sect 10 0 R] /verbatim [/P 10 0 R] /codeline [/Sub 10 0 R] /float [/Aside 10 0 R] /figures [/Sect 10 0 R] /tables [/Sect 10 0 R] >> -endobj 20 0 obj -<< /Type /Namespace /NS (data:,E037878-4DB6-BAD6-9BC4-368CC7DA7072) /RoleMapNS 21 0 R >> +<< /Type /Namespace /NS (data:,C7EF4D21-F6E9-945B-6CFB-89718A316EF8) >> endobj 7 0 obj [ 8 0 R 10 0 R 12 0 R 14 0 R 16 0 R 18 0 R 20 0 R ] @@ -321,10 +318,10 @@ endobj << /Type /StructElem /S /Document /P 5 0 R /K 25 0 R /NS 10 0 R /ID (ID.01) >> endobj 23 0 obj -<< /Type /StructElem /S /Artifact /P 5 0 R /NS 20 0 R /ID (ID.02) >> +<< /Type /StructElem /S /Artifact /P 5 0 R /NS 14 0 R /ID (ID.02) >> endobj 24 0 obj -<< /Type /StructElem /S /Artifact /P 5 0 R /NS 20 0 R /ID (ID.03) >> +<< /Type /StructElem /S /Artifact /P 5 0 R /NS 14 0 R /ID (ID.03) >> endobj 25 0 obj << /Type /StructElem /S /text-unit /P 22 0 R /K 26 0 R /NS 14 0 R /ID (ID.04) >> @@ -404,7 +401,7 @@ endobj << /Type /Catalog /Pages 32 0 R /MarkInfo 33 0 R/Lang (en-US)/Metadata 27 0 R/StructTreeRoot 5 0 R >> endobj 43 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20230830231426+02'00')/ModDate (D:20230830231426+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20231027154700+02'00')/ModDate (D:20231027154700+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 44 @@ -413,47 +410,47 @@ xref 0000000003 00000 f 0000000004 00000 f 0000000009 00000 f -0000014685 00000 n +0000014545 00000 n 0000012015 00000 n -0000014113 00000 n +0000013973 00000 n 0000012288 00000 n 0000000011 00000 f 0000012356 00000 n 0000000013 00000 f 0000012426 00000 n -0000000000 00000 f -0000013068 00000 n +0000000021 00000 f +0000013189 00000 n 0000012507 00000 n -0000013346 00000 n -0000013175 00000 n -0000013654 00000 n -0000013453 00000 n -0000014007 00000 n -0000013763 00000 n -0000014181 00000 n -0000014278 00000 n -0000014365 00000 n -0000014452 00000 n -0000014551 00000 n +0000013467 00000 n +0000013296 00000 n +0000013775 00000 n +0000013574 00000 n +0000013884 00000 n +0000000000 00000 f +0000014041 00000 n +0000014138 00000 n +0000014225 00000 n +0000014312 00000 n +0000014411 00000 n 0000000020 00000 n 0000011869 00000 n 0000011734 00000 n 0000011500 00000 n -0000017291 00000 n -0000017645 00000 n +0000017151 00000 n +0000017505 00000 n 0000011979 00000 n 0000012056 00000 n 0000012188 00000 n 0000012225 00000 n -0000014807 00000 n -0000016248 00000 n -0000014894 00000 n -0000016469 00000 n -0000017445 00000 n -0000017707 00000 n -0000017825 00000 n +0000014667 00000 n +0000016108 00000 n +0000014754 00000 n +0000016329 00000 n +0000017305 00000 n +0000017567 00000 n +0000017685 00000 n trailer -<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <176888C5B80D0D7B066E1A19F543932C> <176888C5B80D0D7B066E1A19F543932C> ] >> +<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <9D99A86289CEA95B3479F9506648B285> <9D99A86289CEA95B3479F9506648B285> ] >> startxref -18048 +17908 %%EOF diff --git a/Master/texmf-dist/doc/latex/tagpdf/tagpdf-code.pdf b/Master/texmf-dist/doc/latex/tagpdf/tagpdf-code.pdf Binary files differindex 9c508353607..f39263a0559 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/tagpdf-code.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/tagpdf-code.pdf diff --git a/Master/texmf-dist/doc/latex/tagpdf/tagpdf.pdf b/Master/texmf-dist/doc/latex/tagpdf/tagpdf.pdf Binary files differindex 0118e4bb225..76637d6bee8 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/tagpdf.pdf +++ b/Master/texmf-dist/doc/latex/tagpdf/tagpdf.pdf diff --git a/Master/texmf-dist/doc/latex/tagpdf/tagpdf.tex b/Master/texmf-dist/doc/latex/tagpdf/tagpdf.tex index 259e9dfc382..8b07c8718ed 100644 --- a/Master/texmf-dist/doc/latex/tagpdf/tagpdf.tex +++ b/Master/texmf-dist/doc/latex/tagpdf/tagpdf.tex @@ -16,8 +16,8 @@ } \DebugBlocksOff \makeatletter -\def\UlrikeFischer@package@version{0.98l} -\def\UlrikeFischer@package@date{2023-08-30} +\def\UlrikeFischer@package@version{0.98m} +\def\UlrikeFischer@package@date{2023-10-27} \makeatother \documentclass[bibliography=totoc,a4paper]{article} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx index fd13c8fd7ea..d6fcd70ff08 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx @@ -47,13 +47,13 @@ % }^^A % } % -% \date{Version 0.98l, released 2023-08-30} +% \date{Version 0.98m, released 2023-10-27} % \maketitle % \begin{implementation} % \begin{macrocode} %<@@=tag> %<*luatex> -\ProvidesExplFile {tagpdf-luatex.def} {2023-08-30} {0.98l} +\ProvidesExplFile {tagpdf-luatex.def} {2023-10-27} {0.98m} {tagpdf~driver~for~luatex} % \end{macrocode} % \section{Loading the lua} @@ -158,8 +158,8 @@ local ProvidesLuaModule = { name = "tagpdf", - version = "0.98l", --TAGVERSION - date = "2023-08-30", --TAGDATE + version = "0.98m", --TAGVERSION + date = "2023-10-27", --TAGDATE description = "tagpdf lua code", license = "The LATEX Project Public License 1.3c" } diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx index 68123ff86c9..dc1456ea308 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.98l, released 2023-08-30} +% \date{Version 0.98m, released 2023-10-27} % \maketitle % \begin{documentation} % \section{Commands} @@ -313,7 +313,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-checks-code} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-checks-code} {2023-10-27} {0.98m} {part of tagpdf - code related to checks, conditionals, debugging and messages} %</header> % \end{macrocode} @@ -717,7 +717,7 @@ \cs_new_protected:Npn \@@_check_struct_used:n #1 %#1 label { \prop_get:cnNT - {g_@@_struct_\@@_ref_value:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop} + {g_@@_struct_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop} {P} \l_@@_tmpa_tl { @@ -884,7 +884,7 @@ { \tl_set:Nx \l_@@_tmpa_tl { - \@@_ref_value_lastpage:nn + \@@_property_ref_lastpage:nn {abspage} {-1} } @@ -898,14 +898,14 @@ {1} {1} { - \@@_ref_value_lastpage:nn + \@@_property_ref_lastpage:nn {tagmcabs} {-1} } { \int_compare:nT { - \@@_ref_value:enn + \@@_property_ref:enn {mcid-####1} {tagabspage} {-1} @@ -916,7 +916,7 @@ \seq_gput_right:Nx \l_tmpa_seq { Page##1-####1- - \@@_ref_value:enn + \@@_property_ref:enn {mcid-####1} {tagmcid} {-1} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx index f5e3ca8c73b..7ad2a3f327d 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.98l, released 2023-08-30} +% \date{Version 0.98m, released 2023-10-27} % \maketitle % \begin{documentation} % This files contains a various data files which are read in @@ -60,7 +60,7 @@ % It lists the new tag, the rolemap and the namespace of the rolemap. % \begin{macrocode} %<*ns-latex> -%% \ProvidesExplFile {tagpdf-ns-latex.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-latex.def} {2023-10-27} {0.98m} %% {latex} {https://www.latex-project.org/ns/dflt/2022}{} title, Title, pdf2, part, Title, pdf2, @@ -92,7 +92,7 @@ text, P, pdf2, % It is bound to change % \begin{macrocode} %<*ns-latex-book> -%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-10-27} {0.98m} %% {latex-book} {https://www.latex-project.org/ns/book/2022}{} chapter, H1,pdf2, section, H2,pdf2, @@ -108,7 +108,7 @@ subparagraph, H6,pdf2, % loaded. % \begin{macrocode} %<*ns-latex-inline> -%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-10-27} {0.98m} %% {latex-inline} {https://www.latex-project.org/ns/inline/2022}{} chapter, Span, pdf2, section, Span, pdf2, @@ -122,7 +122,7 @@ P, Span, pdf2, % \section{The pdf namespace data} % \begin{macrocode} %<*ns-pdf> -%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-10-27} {0.98m} %% {pdf} {http://iso.org/pdf/ssn}{} StructTreeRoot,StructTreeRoot,pdf,D, Document,Document,pdf,D, @@ -190,7 +190,7 @@ Strong,Span,pdf,I, % \section{The pdf 2.0 namespace data} % \begin{macrocode} %<*ns-pdf2> -%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-10-27} {0.98m} %% {pdf2} {http://iso.org/pdf2/ssn}{} Document,Document,pdf2,D, Part,Part,pdf2,G, @@ -246,7 +246,7 @@ Strong,Strong,pdf2,I, % \section{The mathml namespace data} % \begin{macrocode} %<*ns-mathml> -%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-10-27} {0.98m} % {mathml}{http://www.w3.org/1998/Math/MathML}{} abs,abs,mathml, and,and,mathml, @@ -481,7 +481,7 @@ xor,xor,mathml, % This will perhaps change in future. % \begin{macrocode} %<*parent-child> -%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-10-27} {0.98m} ,,,StructTreeRoot,Document,Art,Part,Div,Sect,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,MC Document,both,document level,1,0..n,β
,β‘,β‘,β
,0..n,β‘,β
,β
,β
,0..n,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
Art,1.7,grouping,β
,0..n,β
,β‘,β‘,0..n,0..n,β‘,β
,β
,β
,0..n,β
,0..n,β
,β
,β
,0..1,0..1,β
,β
,β
,0..n,0..n,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,0..n,β
,β
,0..n,0..n,β
,β
,β
,0..n,0..n,β
,β
@@ -536,7 +536,7 @@ MC,both,---,β
,β
,β
,β
,β
,β
,0..n,β‘,β
,β
,β
,0..n,0..n,0..n,0..n,0.. % This will perhaps change in future. % \begin{macrocode} %<*parent-child-2> -%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-10-27} {0.98m} ,,,StructTreeRoot,Document,DocumentFragment,Art,Part,Div,Sect,Aside,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Title,Sub,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Em,Strong,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,FENote,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,math,mathml,Artifact,MC Document,both,document level,1,0..n,0..n,β
,β‘,β‘,β
,0..n,0..n,β‘,β
,β
,β
,0..n,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,0..n,β
DocumentFragment,2.0,document level,β
,0..n,0..n,0..n,β‘,β‘,0..n,0..n,0..n,β‘,β
,β
,β
,0..n,β
,β
,β
,β
*,β
,β
,β
,β
,β
,β
,β
*,β
,β
,β
,β
*,β
*,β
,β
,β
,β
,β
,β
,β
,β
,β
*,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
*,β
,β
,β
,β
,0..n,β
diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx index 13551c9a5c5..d1f6441a568 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98l, released 2023-08-30} +% \date{Version 0.98m, released 2023-10-27} % \maketitle % \begin{documentation} % \end{documentation} @@ -55,11 +55,11 @@ % \begin{macrocode} %<@@=tag> %<*generic> -\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-10-27} {0.98m} {part of tagpdf - code related to marking chunks - generic mode} %</generic> %<*debug> -\ProvidesExplPackage {tagpdf-debug-generic} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-debug-generic} {2023-10-27} {0.98m} {part of tagpdf - debugging code related to marking chunks - generic mode} %</debug> % \end{macrocode} @@ -542,11 +542,11 @@ \cs_set_protected:Npn \@@_mc_bdc_mcid:nn #1 #2 { \int_gincr:N \c@g_@@_MCID_abs_int - \@@_ref_label:en + \@@_property_record:eV { mcid-\int_use:N \c@g_@@_MCID_abs_int } - {mc} + \c_@@_property_mc_clist \@@_mc_bdc_shipout:ee {#1} { @@ -561,7 +561,7 @@ { \msg_new:nnn { tagpdf } { old-engine } { - The~engine~or~the~PDF management~is~too~old or\\ + The~engine~or~the~PDF management~is~too~old~or\\ delayed~shipout~has~been~disabled.\\ Fast~numbering~of~MC-chunks~not~available.\\ More~compilations~will~be~needed~in~generic~mode. @@ -573,14 +573,14 @@ % \end{macrocode} % revert the attribute: % \begin{macrocode} - \ref_attribute_gset:nnnn {tagmcid } {0} { now } - { \int_use:N \g_@@_MCID_tmp_bypage_int } + \@@_property_gset:nnnn {tagmcid } { now } + {0} { \int_use:N \g_@@_MCID_tmp_bypage_int } \cs_new_protected:Npn \@@_mc_bdc_mcid:nn #1 #2 { \int_gincr:N \c@g_@@_MCID_abs_int \tl_set:Nx \l_@@_mc_ref_abspage_tl { - \@@_ref_value:enn %3 args + \@@_property_ref:enn %3 args { mcid-\int_use:N \c@g_@@_MCID_abs_int } @@ -609,11 +609,11 @@ { \l_@@_mc_ref_abspage_tl } {1} } - \@@_ref_label:en + \@@_property_record:eV { mcid-\int_use:N \c@g_@@_MCID_abs_int } - { mc } + \c_@@_property_mc_clist \@@_mc_bdc:nx {#1} { /MCID~\int_eval:n { \g_@@_MCID_tmp_bypage_int }~ \exp_not:n { #2 } } diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx index 066badb9c45..7066237b76e 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98l, released 2023-08-30} +% \date{Version 0.98m, released 2023-10-27} % \maketitle % \begin{implementation} % The code is splitted into three parts: code shared by all engines, @@ -86,11 +86,11 @@ % \begin{macrocode} %<@@=tag> %<*luamode> -\ProvidesExplPackage {tagpdf-mc-code-lua} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-mc-code-lua} {2023-10-27} {0.98m} {tagpdf - mc code only for the luamode } %</luamode> %<*debug> -\ProvidesExplPackage {tagpdf-debug-lua} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-debug-lua} {2023-10-27} {0.98m} {part of tagpdf - debugging code related to marking chunks - lua mode} %</debug> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx index 1fd9ebc559a..e18f7bd1b0b 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98l, released 2023-08-30} +% \date{Version 0.98m, released 2023-10-27} % \maketitle % \begin{documentation} % \section{Public Commands} @@ -113,7 +113,7 @@ % \begin{function}[ EXP,added=2023-06-11]{\tag_mc_reset_box:N} % \begin{syntax} -% \cs{tag_mc_reset:N} \Arg{box} +% \cs{tag_mc_reset_box:N} \Arg{box} % \end{syntax} % This resets in lua mode the mc attributes to the one currently in use. % It does nothing in generic mode. @@ -181,7 +181,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-mc-code-shared} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-mc-code-shared} {2023-10-27} {0.98m} {part of tagpdf - code related to marking chunks - code shared by generic and luamode } %</header> @@ -297,7 +297,7 @@ % \begin{macrocode} \cs_new:Npn \@@_mc_handle_mc_label:e #1 { - \ref_label:en{tagpdf-#1}{tagabspage,tagmcabs} + \@@_property_record:en{tagpdf-#1}{tagabspage,tagmcabs} } % \end{macrocode} % \end{macro} @@ -328,7 +328,7 @@ { \@@_check_if_active_struct:T { - \tl_set:Nx \l_@@_tmpa_tl { \@@_ref_value:nnn{tagpdf-#1}{tagmcabs}{} } + \tl_set:Nx \l_@@_tmpa_tl { \@@_property_ref:nnn{tagpdf-#1}{tagmcabs}{} } \tl_if_empty:NTF\l_@@_tmpa_tl { \msg_warning:nnn {tag} {mc-label-unknown} {#1} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx index 0e33e7d1af7..36b46394765 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98l, released 2023-08-30} +% \date{Version 0.98m, released 2023-10-27} % \maketitle % \begin{documentation} % \begin{function} @@ -98,7 +98,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-roles-code} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-roles-code} {2023-10-27} {0.98m} {part of tagpdf - code related to roles and structure names} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx index 249460dc722..191a645b123 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98l, released 2023-08-30} +% \date{Version 0.98m, released 2023-10-27} % \maketitle % \begin{documentation} % \begin{function}{interwordspace (setup-key)} @@ -64,7 +64,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-space-code} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-space-code} {2023-10-27} {0.98m} {part of tagpdf - code related to real space chars} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx index 9e5fbe7fa69..263ae03cfa8 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98l, released 2023-08-30} +% \date{Version 0.98m, released 2023-10-27} % \maketitle % \begin{documentation} % \section{Public Commands} @@ -140,7 +140,7 @@ % must refer to an already existing, previously created structure. Such a structure % number can for example be have been stored with \cs{tag_get:n}, but one can also use % a label on the parent structure and then use -% \cs{ref_value:nn}|{tagpdfstruct-label}{tagstruct}| to retrieve it. +% \cs{property_ref:nn}|{tagpdfstruct-label}{tagstruct}| to retrieve it. % \end{function} % \begin{function}{title (struct-key),title-o (struct-key)} % This keys allows to set the dictionary entry @@ -247,7 +247,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-struct-code} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-struct-code} {2023-10-27} {0.98m} {part of tagpdf - code related to storing structure} %</header> % \end{macrocode} @@ -463,9 +463,27 @@ \@@_struct_output_prop_aux:nn {#1}{##1} } } +%</package> % \end{macrocode} % \end{macro} % +% \begin{macro}{\@@_struct_prop_gput:nnn} +% The structure props must be filled in various places. +% For this we use a common command which also takes care of the debug package: +% \begin{macrocode} +%<*package|debug> +%<package>\cs_new_protected:Npn \@@_struct_prop_gput:nnn #1 #2 #3 +%<debug>\cs_set_protected:Npn \@@_struct_prop_gput:nnn #1 #2 #3 + { + \@@_prop_gput:cnn + { g_@@_struct_#1_prop }{#2}{#3} +%<debug>\prop_gput:cnn { g_@@_struct_debug_#1_prop } {#2} {#3} + } +\cs_generate_variant:Nn \@@_struct_prop_gput:nnn {nne,nee,nno} +%</package|debug> +% \end{macrocode} +% \end{macro} + % \subsection{Initialization of the StructTreeRoot} % The first structure element, the StructTreeRoot is special, so % created manually. The underlying object is |@@/struct/0| which is currently @@ -475,60 +493,62 @@ % code. This avoid timing issues. % % \begin{macrocode} +%<*package> \tl_gset:Nn \g_@@_struct_stack_current_tl {0} % \end{macrocode} % \begin{macro}{\@@_pdf_name_e:n} % \begin{macrocode} \cs_new:Npn \@@_pdf_name_e:n #1{\pdf_name_from_unicode_e:n{#1}} +%</package> % \end{macrocode} % \end{macro} % % \begin{variable}{g_@@_struct_0_prop,g_@@_struct_kids_0_seq} % \begin{macrocode} +%<*package> \@@_prop_new:c { g_@@_struct_0_prop } \@@_new_output_prop_handler:n {0} \@@_seq_new:c { g_@@_struct_kids_0_seq } -\@@_prop_gput:cnx - { g_@@_struct_0_prop } +\@@_struct_prop_gput:nne + { 0 } { Type } { \pdf_name_from_unicode_e:n {StructTreeRoot} } -\@@_prop_gput:cnx - { g_@@_struct_0_prop } +\@@_struct_prop_gput:nne + { 0 } { S } { \pdf_name_from_unicode_e:n {StructTreeRoot} } -\@@_prop_gput:cnx - { g_@@_struct_0_prop } +\@@_struct_prop_gput:nne + { 0 } { rolemap } { {StructTreeRoot}{pdf} } -\@@_prop_gput:cnx - { g_@@_struct_0_prop } +\@@_struct_prop_gput:nne + { 0 } { parentrole } { {StructTreeRoot}{pdf} } -%</package> -%<*debug> -\prop_new:c { g_@@_struct_debug_0_prop } -\prop_gset_eq:cc - { g_@@_struct_debug_0_prop } - { g_@@_struct_0_prop } -\prop_gremove:cn { g_@@_struct_debug_0_prop }{Namespaces} -\seq_new:c { g_@@_struct_debug_kids_0_seq } -%</debug> -%<*package> + % \end{macrocode} % Namespaces are pdf 2.0. % If the code moves into the kernel, the setting must be probably delayed. % \begin{macrocode} \pdf_version_compare:NnF < {2.0} { - \@@_prop_gput:cnx - { g_@@_struct_0_prop } + \@@_struct_prop_gput:nne + { 0 } { Namespaces } { \pdf_object_ref:n { @@/tree/namespaces } } - } + } +%</package> +% \end{macrocode} +% In debug mode we have to copy the root manually as it is already setup: +% \begin{macrocode} +%<debug>\prop_new:c { g_@@_struct_debug_0_prop } +%<debug>\seq_new:c { g_@@_struct_debug_kids_0_seq } +%<debug>\prop_gset_eq:cc { g_@@_struct_debug_0_prop }{ g_@@_struct_0_prop } +%<debug>\prop_gremove:cn { g_@@_struct_debug_0_prop }{Namespaces} % \end{macrocode} % \end{variable} % @@ -537,6 +557,7 @@ % simply calculated from the structure number. % \begin{macro}{\@@_struct_get_id:n} % \begin{macrocode} +%<*package> \cs_new:Npn \@@_struct_get_id:n #1 %#1=struct num { ( @@ -561,8 +582,8 @@ \cs_new_protected:Npn \@@_struct_set_tag_info:nnn #1 #2 #3 %#1 structure number, #2 tag, #3 NS { - \@@_prop_gput:cnx - { g_@@_struct_#1_prop } + \@@_struct_prop_gput:nne + { #1 } { S } { \pdf_name_from_unicode_e:n {#2} } % } @@ -570,14 +591,14 @@ { \cs_new_protected:Npn \@@_struct_set_tag_info:nnn #1 #2 #3 { - \@@_prop_gput:cnx - { g_@@_struct_#1_prop } + \@@_struct_prop_gput:nne + { #1 } { S } { \pdf_name_from_unicode_e:n {#2} } % \prop_get:NnNT \g_@@_role_NS_prop {#3} \l_@@_get_tmpc_tl { - \@@_prop_gput:cnx - { g_@@_struct_#1_prop } + \@@_struct_prop_gput:nne + { #1 } { NS } { \l_@@_get_tmpc_tl } % } @@ -599,8 +620,8 @@ { parentrole } \l_@@_get_tmpc_tl { - \tl_set:Nx #2{\exp_last_unbraced:NV\use_i:nn \l_@@_get_tmpc_tl} - \tl_set:Nx #3{\exp_last_unbraced:NV\use_ii:nn \l_@@_get_tmpc_tl} + \tl_set:Ne #2{\exp_last_unbraced:NV\use_i:nn \l_@@_get_tmpc_tl} + \tl_set:Ne #3{\exp_last_unbraced:NV\use_ii:nn \l_@@_get_tmpc_tl} } { \tl_clear:N#2 @@ -614,7 +635,7 @@ % Commands to store the kids. Kids in a structure can be a reference to a mc-chunk, % an object reference to another structure element, or a object reference to an % annotation (through an OBJR object). -% \begin{macro}{\@@_struct_kid_mc_gput_right:nn,\@@_struct_kid_mc_gput_right:nx} +% \begin{macro}{\@@_struct_kid_mc_gput_right:nn,\@@_struct_kid_mc_gput_right:ne} % The command to store an mc-chunk, this is a dictionary of type MCR. % It would be possible to write out the content directly as unnamed object % and to store only the object reference, but probably this would be slower, @@ -631,8 +652,8 @@ /Type \c_space_tl /MCR \c_space_tl /Pg \c_space_tl - \pdf_pageobject_ref:n { \@@_ref_value:enn{mcid-#1}{tagabspage}{1} } - /MCID \c_space_tl \@@_ref_value:enn{mcid-#1}{tagmcid}{1} + \pdf_pageobject_ref:n { \@@_property_ref:enn{mcid-#1}{tagabspage}{1} } + /MCID \c_space_tl \@@_property_ref:enn{mcid-#1}{tagmcid}{1} >> } %</package> @@ -658,12 +679,12 @@ \prop_item:Nn \g_@@_struct_cont_mc_prop {#2} } } -%<package>\cs_generate_variant:Nn \@@_struct_kid_mc_gput_right:nn {nx} +%<package>\cs_generate_variant:Nn \@@_struct_kid_mc_gput_right:nn {ne} % \end{macrocode} % \end{macro} % \begin{macro} % { -% \@@_struct_kid_struct_gput_right:nn,\@@_struct_kid_struct_gput_right:xx +% \@@_struct_kid_struct_gput_right:nn,\@@_struct_kid_struct_gput_right:ee % } % This commands adds a structure as kid. We only need to record the object % reference in the sequence. @@ -683,11 +704,11 @@ %<debug> } } -%<package>\cs_generate_variant:Nn \@@_struct_kid_struct_gput_right:nn {xx} +%<package>\cs_generate_variant:Nn \@@_struct_kid_struct_gput_right:nn {ee} % \end{macrocode} % \end{macro} % \begin{macro} -% {\@@_struct_kid_OBJR_gput_right:nnn,\@@_struct_kid_OBJR_gput_right:xxx} +% {\@@_struct_kid_OBJR_gput_right:nnn,\@@_struct_kid_OBJR_gput_right:eee} % At last the command to add an OBJR object. This has to write an object first. % The first argument is the number of the parent structure, the second the % (expanded) object reference of the annotation. The last argument is the page @@ -709,7 +730,7 @@ { \pdf_object_ref_last: } -%<debug> \seq_gput_right:cx +%<debug> \seq_gput_right:ce %<debug> { g_@@_struct_debug_kids_#1_seq } %<debug> { %<debug> OBJR~reference @@ -717,7 +738,7 @@ } %</package|debug> %<*package> -\cs_generate_variant:Nn\@@_struct_kid_OBJR_gput_right:nnn { xxx } +\cs_generate_variant:Nn\@@_struct_kid_OBJR_gput_right:nnn { eee } % \end{macrocode} % \end{macro} % \begin{macro} @@ -752,7 +773,7 @@ { \seq_clear:N \l_@@_tmpa_seq \seq_map_inline:cn { g_@@_struct_kids_#1_seq } - { \seq_put_right:Nx \l_@@_tmpa_seq { ##1 } } + { \seq_put_right:Ne \l_@@_tmpa_seq { ##1 } } %\seq_show:c { g_@@_struct_kids_#1_seq } %\seq_show:N \l_@@_tmpa_seq \seq_remove_all:Nn \l_@@_tmpa_seq {} @@ -779,7 +800,9 @@ \@@_struct_exchange_kid_command:c {g_@@_struct_kids_#1_seq} } - \@@_prop_gput:cnx { g_@@_struct_#1_prop } {K} + \@@_struct_prop_gput:nne + {#1} + {K} { \seq_item:cn { @@ -790,7 +813,9 @@ } % } { %many kids, use an array - \@@_prop_gput:cnx { g_@@_struct_#1_prop } {K} + \@@_struct_prop_gput:nne + {#1} + {K} { [ \seq_use:cn @@ -823,7 +848,7 @@ _entries_seq } { - \tl_put_right:Nx + \tl_put_right:Ne #2 { \prop_if_in:cnT @@ -872,11 +897,11 @@ % \begin{macrocode} \prop_get:cnNF { g_@@_struct_#1_prop } {P}\l_@@_tmpb_tl { - \prop_gput:cnx { g_@@_struct_#1_prop } {P}{\pdf_object_ref:n { @@/struct/0 }} - \prop_gput:cnx { g_@@_struct_#1_prop } {S}{/Artifact} + \prop_gput:cne { g_@@_struct_#1_prop } {P}{\pdf_object_ref:n { @@/struct/0 }} + \prop_gput:cne { g_@@_struct_#1_prop } {S}{/Artifact} \seq_if_empty:cF {g_@@_struct_kids_#1_seq} { - \msg_warning:nnxx + \msg_warning:nnee {tag} {struct-orphan} { #1 } @@ -885,8 +910,8 @@ } \@@_struct_fill_kid_key:n { #1 } \@@_struct_get_dict_content:nN { #1 } \l_@@_tmpa_tl - \exp_args:Nx - \pdf_object_write:nnx + \exp_args:Ne + \pdf_object_write:nne { @@/struct/#1 } {dict} { @@ -939,8 +964,8 @@ } %put the obj number of the annot in the kid entry, this also creates %the OBJR object - \ref_label:nn {__tag_objr_page_#2 }{ tagabspage } - \@@_struct_kid_OBJR_gput_right:xxx + \@@_property_record:nn {@tag@objr@page@#2 }{ tagabspage } + \@@_struct_kid_OBJR_gput_right:eee { \l_@@_struct_stack_parent_tmpa_tl } @@ -948,10 +973,10 @@ #1 % } { - \pdf_pageobject_ref:n { \@@_ref_value:nnn {__tag_objr_page_#2 }{ tagabspage }{1} } + \pdf_pageobject_ref:n { \@@_property_ref:nnn {@tag@objr@page@#2 }{ tagabspage }{1} } } % add the parent obj number to the parent tree: - \exp_args:Nnx + \exp_args:Nne \@@_parenttree_add_objr:nn { #2 @@ -1053,9 +1078,9 @@ { \int_compare_p:nNn {#1}<{\c@g_@@_struct_abs_int} } - { \tl_set:Nx \l_@@_struct_stack_parent_tmpa_tl { \int_eval:n {#1} } } + { \tl_set:Ne \l_@@_struct_stack_parent_tmpa_tl { \int_eval:n {#1} } } { - \msg_warning:nnxx { tag } { struct-unknown } + \msg_warning:nnee { tag } { struct-unknown } { \int_eval:n {#1} } { parent~key~ignored } } @@ -1064,8 +1089,8 @@ tag .code:n = % S property { \seq_set_split:Nne \l_@@_tmpa_seq { / } {#1/\prop_item:Ne\g__tag_role_tags_NS_prop{#1}} - \tl_gset:Nx \g_@@_struct_tag_tl { \seq_item:Nn\l_@@_tmpa_seq {1} } - \tl_gset:Nx \g_@@_struct_tag_NS_tl{ \seq_item:Nn\l_@@_tmpa_seq {2} } + \tl_gset:Ne \g_@@_struct_tag_tl { \seq_item:Nn\l_@@_tmpa_seq {1} } + \tl_gset:Ne \g_@@_struct_tag_NS_tl{ \seq_item:Nn\l_@@_tmpa_seq {2} } \@@_check_structure_tag:N \g_@@_struct_tag_tl }, title .code:n = % T property @@ -1075,8 +1100,8 @@ { #1 } { default } { utf16/hex } - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { T } { <\l_@@_tmpa_str> } }, @@ -1087,8 +1112,8 @@ { #1 } { default } { utf16/hex } - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { T } { <\l_@@_tmpa_str> } }, @@ -1101,8 +1126,8 @@ { #1 } { default } { utf16/hex } - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { Alt } { <\l_@@_tmpa_str> } } @@ -1117,16 +1142,16 @@ { #1 } { default } { utf16/hex } - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { ActualText } { <\l_@@_tmpa_str>} } }, lang .code:n = % Lang property { - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { Lang } { (#1) } }, @@ -1138,10 +1163,11 @@ \tl_clear:N\l_@@_tmpa_tl \clist_map_inline:on {#1} { - \tl_put_right:Nx \l_@@_tmpa_tl - {~\ref_value:nn{tagpdfstruct-##1}{tagstructobj} } + \tl_put_right:Ne \l_@@_tmpa_tl + {~\@@_property_ref:en{tagpdfstruct-##1}{tagstructobj} } } - \@@_struct_gput_data_ref:ee { \int_eval:n {\c@g_@@_struct_abs_int} } {\l_@@_tmpa_tl} + \@@_struct_gput_data_ref:ee + { \int_use:N \c@g_@@_struct_abs_int } {\l_@@_tmpa_tl} }, E .code:n = % E property { @@ -1150,8 +1176,8 @@ { #1 } { default } { utf16/hex } - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { E } { <\l_@@_tmpa_str> } }, @@ -1191,10 +1217,10 @@ {tag-AFfile\int_use:N\g_@@_struct_AFobj_int.#2} {@@/fileobj\int_use:N\g_@@_struct_AFobj_int} \@@_struct_add_AF:ee - { \int_eval:n {\c@g_@@_struct_abs_int} } + { \int_use:N \c@g_@@_struct_abs_int } { \pdf_object_ref:e {@@/fileobj\int_use:N\g_@@_struct_AFobj_int} } - \@@_prop_gput:cnx - { g_@@_struct_\int_use:N\c@g_@@_struct_abs_int _prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { AF } { [ @@ -1218,10 +1244,10 @@ {tag-AFfile\int_use:N\g_@@_struct_AFobj_int.#2} \l_@@_tmpa_tl \@@_struct_add_AF:ee - { \int_eval:n {\c@g_@@_struct_abs_int} } + { \int_use:N \c@g_@@_struct_abs_int } { \l_@@_tmpa_tl } - \@@_prop_gput:cnx - { g_@@_struct_\int_use:N\c@g_@@_struct_abs_int _prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { AF } { [ @@ -1243,14 +1269,14 @@ g_@@_struct_#1_AF_tl } { - \tl_gput_right:cx + \tl_gput_right:ce { g_@@_struct_#1_AF_tl } { \c_space_tl #2 } } { \tl_new:c { g_@@_struct_#1_AF_tl } - \tl_gset:cx + \tl_gset:ce { g_@@_struct_#1_AF_tl } { #2 } } @@ -1262,9 +1288,9 @@ { \pdf_object_if_exist:nTF {#1} { - \@@_struct_add_AF:ee { \int_eval:n {\c@g_@@_struct_abs_int} }{\pdf_object_ref:n {#1}} - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_add_AF:ee { \int_use:N \c@g_@@_struct_abs_int }{\pdf_object_ref:n {#1}} + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { AF } { [ @@ -1274,7 +1300,7 @@ } } { - + % message? } }, ,AFinline .code:n = @@ -1312,8 +1338,8 @@ \pdf_object_if_exist:nTF {#1} { \@@_struct_add_AF:ee { 0 }{\pdf_object_ref:n {#1}} - \@@_prop_gput:cnx - { g_@@_struct_0_prop } + \@@_struct_prop_gput:nne + { 0 } { AF } { [ @@ -1354,23 +1380,25 @@ \exp_args:Ne \pdf_object_new:n { @@/struct/\int_eval:n { \c@g_@@_struct_abs_int } } - \@@_prop_gput:cno - { g_@@_struct_\int_eval:n { \c@g_@@_struct_abs_int }_prop } - { Type } - { /StructElem } + \@@_struct_prop_gput:nnn + { \int_use:N \c@g_@@_struct_abs_int } + { Type } + { /StructElem } \tl_set:Nn \l_@@_struct_stack_parent_tmpa_tl {-1} \keys_set:nn { @@ / struct} { #1 } % \end{macrocode} % \begin{macrocode} \@@_struct_set_tag_info:eVV - { \int_eval:n {\c@g_@@_struct_abs_int} } + { \int_use:N \c@g_@@_struct_abs_int } \g_@@_struct_tag_tl \g_@@_struct_tag_NS_tl - \@@_check_structure_has_tag:n { \int_eval:n {\c@g_@@_struct_abs_int} } + \@@_check_structure_has_tag:n { \int_use:N \c@g_@@_struct_abs_int } \tl_if_empty:NF \l_@@_struct_key_label_tl { - \@@_ref_label:en{tagpdfstruct-\l_@@_struct_key_label_tl}{struct} + \@@_property_record:eV + {tagpdfstruct-\l_@@_struct_key_label_tl} + \c_@@_property_struct_clist } % \end{macrocode} % The structure number of the parent is either taken from the stack or @@ -1394,12 +1422,12 @@ % \end{macrocode} % to target role and role NS % \begin{macrocode} - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } - { rolemap } - { - {\l_@@_struct_roletag_tl}{\l_@@_struct_roletag_NS_tl} - } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } + { rolemap } + { + {\l_@@_struct_roletag_tl}{\l_@@_struct_roletag_NS_tl} + } % \end{macrocode} % we also store which role to use for parent/child test. If the role is % one of Part, Div, NonStruct we have to retrieve it from the parent. @@ -1417,8 +1445,8 @@ { parentrole } \l_@@_get_tmpc_tl { - \@@_prop_gput:cno - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_prop_gput:nno + { \int_use:N \c@g_@@_struct_abs_int } { parentrole } { \l_@@_get_tmpc_tl @@ -1426,8 +1454,8 @@ } } { - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { parentrole } { {\l_@@_struct_roletag_tl}{\l_@@_struct_roletag_NS_tl} @@ -1435,7 +1463,7 @@ } % \end{macrocode} % \begin{macrocode} - \seq_gpush:Nx \g_@@_struct_tag_stack_seq + \seq_gpush:Ne \g_@@_struct_tag_stack_seq {{\g_@@_struct_tag_tl}{\l_@@_struct_roletag_tl}} \tl_gset:NV \g_@@_struct_stack_current_tl \c@g_@@_struct_abs_int %\seq_show:N \g_@@_struct_stack_seq @@ -1463,7 +1491,7 @@ { g_@@_struct_ \l_@@_struct_stack_parent_tmpa_tl _prop} {S} \l_@@_tmpa_tl - \msg_warning:nnxxx + \msg_warning:nneee { tag } {role-parent-child} { \l_@@_get_parent_tmpa_tl/\l_@@_get_parent_tmpb_tl } @@ -1478,15 +1506,15 @@ \cs_gset_eq:NN \g_@@_struct_tag_tl \l_@@_role_remap_tag_tl \cs_gset_eq:NN \g_@@_struct_tag_NS_tl \l_@@_role_remap_NS_tl \@@_struct_set_tag_info:eVV - { \int_eval:n {\c@g_@@_struct_abs_int} } + { \int_use:N \c@g_@@_struct_abs_int } \g_@@_struct_tag_tl \g_@@_struct_tag_NS_tl } % \end{macrocode} % Set the Parent. % \begin{macrocode} - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { P } { \pdf_object_ref:e { @@/struct/\l_@@_struct_stack_parent_tmpa_tl } @@ -1496,7 +1524,7 @@ %record this structure as kid: %\tl_show:N \g_@@_struct_stack_current_tl %\tl_show:N \l_@@_struct_stack_parent_tmpa_tl - \@@_struct_kid_struct_gput_right:xx + \@@_struct_kid_struct_gput_right:ee { \l_@@_struct_stack_parent_tmpa_tl } { \g_@@_struct_stack_current_tl } %\prop_show:c { g_@@_struct_\g_@@_struct_stack_current_tl _prop } @@ -1504,12 +1532,13 @@ } % \end{macrocode} % the debug mode stores in second prop and replaces value with more suitable ones. +% (If the structure is updated later this gets perhaps lost, but well ...) % This must be done outside of the stash boolean. % \begin{macrocode} %<debug> \prop_gset_eq:cc %<debug> { g_@@_struct_debug_\int_eval:n {\c@g_@@_struct_abs_int}_prop } %<debug> { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } -%<debug> \prop_gput:cnx +%<debug> \prop_gput:cne %<debug> { g_@@_struct_debug_\int_eval:n {\c@g_@@_struct_abs_int}_prop } %<debug> { P } %<debug> { @@ -1520,7 +1549,7 @@ %<debug> \l_@@_get_parent_tmpa_tl %<debug> } %<debug> } -%<debug> \prop_gput:cnx +%<debug> \prop_gput:cne %<debug> { g_@@_struct_debug_\int_eval:n {\c@g_@@_struct_abs_int}_prop } %<debug> { NS } %<debug> { \g_@@_struct_tag_NS_tl } @@ -1557,11 +1586,11 @@ } \seq_get:NNT \g_@@_struct_tag_stack_seq \l_@@_tmpa_tl { - \tl_gset:Nx \g_@@_struct_tag_tl + \tl_gset:Ne \g_@@_struct_tag_tl { \exp_last_unbraced:NV\use_i:nn \l_@@_tmpa_tl } \prop_get:NVNT\g_@@_role_tags_NS_prop \g_@@_struct_tag_tl\l_@@_tmpa_tl { - \tl_gset:Nx \g_@@_struct_tag_NS_tl { \l_@@_tmpa_tl } + \tl_gset:Ne \g_@@_struct_tag_NS_tl { \l_@@_tmpa_tl } } } %<debug>\@@_debug_struct_end_insert: @@ -1588,16 +1617,16 @@ \@@_check_if_active_struct:T { \prop_if_exist:cTF - { g_@@_struct_\@@_ref_value:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop } % + { g_@@_struct_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop } % { \@@_check_struct_used:n {#1} %add the label structure as kid to the current structure (can be the root) - \@@_struct_kid_struct_gput_right:xx + \@@_struct_kid_struct_gput_right:ee { \g_@@_struct_stack_current_tl } - { \@@_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0} } + { \@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0} } %add the current structure to the labeled one as parents \@@_prop_gput:cnx - { g_@@_struct_\@@_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } + { g_@@_struct_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } { P } { \pdf_object_ref:e { @@/struct/\g_@@_struct_stack_current_tl } @@ -1605,27 +1634,20 @@ % \end{macrocode} % debug code % \begin{macrocode} -%<debug> \prop_gset_eq:cc -%<debug> { g_@@_struct_debug_\@@_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } -%<debug> { g_@@_struct_\@@_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } -%<debug> \prop_gput:cnx -%<debug> { g_@@_struct_debug_\@@_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } +%<debug> \prop_gput:cne +%<debug> { g_@@_struct_debug_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } %<debug> { P } %<debug> { %<debug> parent~structure:~\g_@@_struct_stack_current_tl\c_space_tl=~ %<debug> \g_@@_struct_tag_tl %<debug> } -%<debug> \prop_gput:cnx -%<debug> { g_@@_struct_debug_\int_eval:n {\c@g_@@_struct_abs_int}_prop } -%<debug> { NS } -%<debug> { \g_@@_struct_tag_NS_tl } % \end{macrocode} % check if the tag is allowed as child. Here we have to retrieve the % tag info for the child, while the data for the parent is in % the global tl-vars: % \begin{macrocode} \@@_struct_get_parentrole:eNN - {\__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}} + {\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0}} \l_@@_tmpa_tl \l_@@_tmpb_tl \@@_check_parent_child:VVVVN @@ -1642,7 +1664,7 @@ \cs_gset_eq:NN \g_@@_struct_tag_tl \l_@@_role_remap_tag_tl \cs_gset_eq:NN \g_@@_struct_tag_NS_tl \l_@@_role_remap_NS_tl \@@_struct_set_tag_info:eVV - { \int_eval:n {\c@g_@@_struct_abs_int} } + { \int_use:N \c@g_@@_struct_abs_int } \g_@@_struct_tag_tl \g_@@_struct_tag_NS_tl } @@ -1662,7 +1684,7 @@ % TODO: decide how it should be guarded. Probably by the struct-check. % \begin{macrocode} %<base>\cs_new_protected:Npn \tag_struct_use_num:n #1 {} -%<*package> +%<*package|debug> \cs_set_protected:Npn \tag_struct_use_num:n #1 %#1 is structure number { \@@_check_if_active_struct:T @@ -1678,16 +1700,23 @@ \msg_warning:nnn { tag } {struct-used-twice} {#1} } %add the label structure as kid to the current structure (can be the root) - \@@_struct_kid_struct_gput_right:xx + \@@_struct_kid_struct_gput_right:ee { \g_@@_struct_stack_current_tl } { #1 } %add the current structure to the labeled one as parents - \@@_prop_gput:cnx - { g_@@_struct_#1_prop } + \@@_struct_prop_gput:nne + { #1 } { P } { \pdf_object_ref:e { @@/struct/\g_@@_struct_stack_current_tl } } +%<debug> \prop_gput:cne +%<debug> { g_@@_struct_debug_#1_prop } +%<debug> { P } +%<debug> { +%<debug> parent~structure:~\g_@@_struct_stack_current_tl\c_space_tl=~ +%<debug> \g_@@_struct_tag_tl +%<debug> } % \end{macrocode} % check if the tag is allowed as child. Here we have to retrieve the % tag info for the child, while the data for the parent is in @@ -1711,7 +1740,7 @@ \cs_gset_eq:NN \g_@@_struct_tag_tl \l_@@_role_remap_tag_tl \cs_gset_eq:NN \g_@@_struct_tag_NS_tl \l_@@_role_remap_NS_tl \@@_struct_set_tag_info:eVV - { \int_eval:n {\c@g_@@_struct_abs_int} } + { \int_use:N \c@g_@@_struct_abs_int } \g_@@_struct_tag_tl \g_@@_struct_tag_NS_tl } @@ -1721,7 +1750,7 @@ } } } -%</package> +%</package|debug> % \end{macrocode} % \end{macro} % \begin{macro}[EXP]{\tag_struct_object_ref:n} @@ -1741,9 +1770,13 @@ % % \begin{macro}{\tag_struct_gput:nnn} % This is a command that allows to update the data of a structure. -% The first argument is the -% number of the structure, the second a keyword referring to a function, -% the third the value. Currently the only keyword is \texttt{ref} +% This often can't done simply by replacing the value, as we have to +% preserve and extend existing content. We use therefore dedicated functions +% adjusted to the key in question. +% The first argument is the number of the structure, +% the second a keyword referring to a function, +% the third the value. Currently the only keyword is \texttt{ref} which updates +% the Ref key (an array) % \begin{macrocode} \cs_new_protected:Npn \tag_struct_gput:nnn #1 #2 #3 { @@ -1754,31 +1787,33 @@ {#1}{#3} } \cs_generate_variant:Nn \tag_struct_gput:nnn {ene,nne} +%</package> % \end{macrocode} % \end{macro} % % \begin{macro}{\@@_struct_gput_data_ref:nn} % \begin{macrocode} +%<*package> \cs_new_protected:Npn \@@_struct_gput_data_ref:nn #1 #2 - % #1 receiving struct num, #2 list of object ref + % #1 receiving struct num, #2 list of object ref { \prop_get:cnN { g_@@_struct_#1_prop } {Ref} \l_@@_get_tmpc_tl - \@@_prop_gput:cnx - { g_@@_struct_#1_prop } + \@@_struct_prop_gput:nne + { #1 } { Ref } { \quark_if_no_value:NF\l_@@_get_tmpc_tl { \l_@@_get_tmpc_tl\c_space_tl }#2 } } \cs_generate_variant:Nn \@@_struct_gput_data_ref:nn {ee} % \end{macrocode} % \end{macro} - % \begin{macro} % { % \tag_struct_insert_annot:nn, -% \tag_struct_insert_annot:xx +% \tag_struct_insert_annot:xx, +% \tag_struct_insert_annot:ee % } % \begin{macro}[EXP] % { @@ -1802,7 +1837,7 @@ } } -\cs_generate_variant:Nn \tag_struct_insert_annot:nn {xx} +\cs_generate_variant:Nn \tag_struct_insert_annot:nn {xx,ee} \cs_new:Npn \tag_struct_parent_int: {\int_use:c { c@g_@@_parenttree_obj_int }} %</package> @@ -1813,7 +1848,7 @@ % \section{Attributes and attribute classes} % \begin{macrocode} %<*header> -\ProvidesExplPackage {tagpdf-attr-code} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-attr-code} {2023-10-27} {0.98m} {part of tagpdf - code related to attributes and attribute classes} %</header> % \end{macrocode} @@ -1872,6 +1907,19 @@ } % \end{macrocode} % \end{macro} +% TEMP!!!! +% we temporarly use an internal function for the mapping. This can go +% at the next update +% \begin{macrocode} +\cs_if_free:NTF \seq_set_map_e:NNn + { + \cs_new_eq:NN \@@_seq_set_map_e:NNn \seq_set_map_x:NNn + } + { + \cs_new_eq:NN \@@_seq_set_map_e:NNn \seq_set_map_e:NNn + } +% \end{macrocode} +% % \begin{macro}{attribute-class (struct-key)} % attribute-class has to store the used attribute names so that % they can be added to the ClassMap later. @@ -1880,12 +1928,12 @@ { attribute-class .code:n = { - \clist_set:Nx \l_@@_tmpa_clist { #1 } + \clist_set:Ne \l_@@_tmpa_clist { #1 } \seq_set_from_clist:NN \l_@@_tmpb_seq \l_@@_tmpa_clist % \end{macrocode} % we convert the names into pdf names with slash % \begin{macrocode} - \seq_set_map_x:NNn \l_@@_tmpa_seq \l_@@_tmpb_seq + \@@_seq_set_map_e:NNn \l_@@_tmpa_seq \l_@@_tmpb_seq { \pdf_name_from_unicode_e:n {##1} } @@ -1897,7 +1945,7 @@ } \seq_gput_left:Nn\g_@@_attr_class_used_seq { ##1} } - \tl_set:Nx \l_@@_tmpa_tl + \tl_set:Ne \l_@@_tmpa_tl { \int_compare:nT { \seq_count:N \l_@@_tmpa_seq > 1 }{[} \seq_use:Nn \l_@@_tmpa_seq { \c_space_tl } @@ -1905,8 +1953,8 @@ } \int_compare:nT { \seq_count:N \l_@@_tmpa_seq > 0 } { - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { C } { \l_@@_tmpa_tl } %\prop_show:c { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } @@ -1921,18 +1969,18 @@ { attribute .code:n = % A property (attribute, value currently a dictionary) { - \clist_set:Nx \l_@@_tmpa_clist { #1 } + \clist_set:Ne \l_@@_tmpa_clist { #1 } \clist_if_empty:NF \l_@@_tmpa_clist { \seq_set_from_clist:NN \l_@@_tmpb_seq \l_@@_tmpa_clist % \end{macrocode} % we convert the names into pdf names with slash % \begin{macrocode} - \seq_set_map_x:NNn \l_@@_tmpa_seq \l_@@_tmpb_seq + \@@_seq_set_map_e:NNn \l_@@_tmpa_seq \l_@@_tmpb_seq { \pdf_name_from_unicode_e:n {##1} } - \tl_set:Nx \l_@@_attr_value_tl + \tl_set:Ne \l_@@_attr_value_tl { \int_compare:nT { \seq_count:N \l_@@_tmpa_seq > 1 }{[}%] } @@ -1944,27 +1992,27 @@ } \prop_if_in:NnF \g_@@_attr_objref_prop {##1} {%\prop_show:N \g_@@_attr_entries_prop - \pdf_object_unnamed_write:nx + \pdf_object_unnamed_write:ne { dict } { \prop_item:Nn\g_@@_attr_entries_prop {##1} } - \prop_gput:Nnx \g_@@_attr_objref_prop {##1} {\pdf_object_ref_last:} + \prop_gput:Nne \g_@@_attr_objref_prop {##1} {\pdf_object_ref_last:} } - \tl_put_right:Nx \l_@@_attr_value_tl + \tl_put_right:Ne \l_@@_attr_value_tl { \c_space_tl \prop_item:Nn \g_@@_attr_objref_prop {##1} } % \tl_show:N \l_@@_attr_value_tl } - \tl_put_right:Nx \l_@@_attr_value_tl + \tl_put_right:Ne \l_@@_attr_value_tl { %[ \int_compare:nT { \seq_count:N \l_@@_tmpa_seq > 1 }{]}% } % \tl_show:N \l_@@_attr_value_tl - \@@_prop_gput:cnx - { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop } + \@@_struct_prop_gput:nne + { \int_use:N \c@g_@@_struct_abs_int } { A } { \l_@@_attr_value_tl } } diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx index c84ad8a8c5c..41298b2d692 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx @@ -47,13 +47,13 @@ % }^^A % } % -% \date{Version 0.98l, released 2023-08-30} +% \date{Version 0.98m, released 2023-10-27} % \maketitle % \begin{implementation} % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-tree-code} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-tree-code} {2023-10-27} {0.98m} {part of tagpdf - code related to writing trees and dictionaries to the pdf} %</header> % \end{macrocode} @@ -136,7 +136,7 @@ \hook_gput_code:nnn{begindocument}{tagpdf} { \int_gset:Nn\g_@@_tree_id_pad_int - {\tl_count:e { \@@_ref_value_lastpage:nn{tagstruct}{1000}}+1} + {\tl_count:e { \@@_property_ref_lastpage:nn{tagstruct}{1000}}+1} } % \end{macrocode} @@ -273,7 +273,7 @@ { \int_gset:Nn \c@g_@@_parenttree_obj_int - { \@@_ref_value_lastpage:nn{abspage}{100} } + { \@@_property_ref_lastpage:nn{abspage}{100} } } % \end{macrocode} % \end{macro} @@ -313,18 +313,18 @@ \cs_new_protected:Npn \@@_tree_parenttree_rerun_msg: {} \cs_new_protected:Npn \@@_tree_fill_parenttree: { - \int_step_inline:nnnn{1}{1}{\@@_ref_value_lastpage:nn{abspage}{-1}} %not quite clear if labels are needed. See lua code + \int_step_inline:nnnn{1}{1}{\@@_property_ref_lastpage:nn{abspage}{-1}} %not quite clear if labels are needed. See lua code { %page ##1 \prop_clear:N \l_@@_tmpa_prop - \int_step_inline:nnnn{1}{1}{\@@_ref_value_lastpage:nn{tagmcabs}{-1}} + \int_step_inline:nnnn{1}{1}{\@@_property_ref_lastpage:nn{tagmcabs}{-1}} { %mcid####1 \int_compare:nT - {\@@_ref_value:enn{mcid-####1}{tagabspage}{-1}=##1} %mcid is on current page + {\@@_property_ref:enn{mcid-####1}{tagabspage}{-1}=##1} %mcid is on current page {% yes \prop_put:Nxx \l_@@_tmpa_prop - {\@@_ref_value:enn{mcid-####1}{tagmcid}{-1}} + {\@@_property_ref:enn{mcid-####1}{tagmcid}{-1}} {\prop_item:Nn \g_@@_mc_parenttree_prop {####1}} } } diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx index 518a3418128..339d79e1db0 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98l, released 2023-08-30} +% \date{Version 0.98m, released 2023-10-27} % \maketitle % \begin{documentation} % \section{Setup commands} @@ -250,7 +250,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-user} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-user} {2023-10-27} {0.98m} {tagpdf - user commands} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx b/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx index be94a640706..668d085169e 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx @@ -25,9 +25,9 @@ % \fi % \begin{documentation} % \begin{function}{\ref_value:nnn} -% This is a temporary definition which will have to -% move to l3ref. It allows to locally set a default value if the label or the attribute -% doesn't exist. See issue \#4 in Accessible-xref. +% This is a temporary definition which will be removed once properties have been +% released. It allows to locally set a default value if the label or the attribute +% doesn't exist. % \begin{syntax} % \cs{ref_value:nnn}\Arg{label}\Arg{attribute}\Arg{fallback default} % \end{syntax} @@ -93,7 +93,7 @@ % \begin{macrocode} %<@@=tag> %<*package> -\ProvidesExplPackage {tagpdf} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf} {2023-10-27} {0.98m} { A package to experiment with pdf tagging } \bool_if:nF @@ -119,7 +119,7 @@ % \end{macrocode} %<*debug> % \begin{macrocode} -\ProvidesExplPackage {tagpdf-debug} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-debug} {2023-10-27} {0.98m} { debug code for tagpdf } \@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput} % \end{macrocode} @@ -142,7 +142,7 @@ % we define a base package with dummy functions % \begin{macrocode} %<*base> -\ProvidesExplPackage {tagpdf-base} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-base} {2023-10-27} {0.98m} {part of tagpdf - provide base, no-op versions of the user commands } %</base> % \end{macrocode} @@ -200,52 +200,48 @@ % \begin{macro}{\@@_lastpagelabel:} % \begin{macrocode} %<*package> - \cs_new_protected:Npn \@@_lastpagelabel: - { - \legacy_if:nT { @filesw } - { - \exp_args:NNnx \exp_args:NNx\iow_now:Nn \@auxout - { - \token_to_str:N \newlabeldata - {@@_LastPage} - { - {abspage} { \int_use:N \g_shipout_readonly_int} - {tagmcabs}{ \int_use:N \c@g_@@_MCID_abs_int } - {tagstruct}{\int_use:N \c@g_@@_struct_abs_int } - } - } - } - } - +\cs_if_exist:NTF \property_new:nnnn + { + \cs_new_protected:Npn \@@_lastpagelabel: + { + \legacy_if:nT { @filesw } + { + \exp_args:NNnx \exp_args:NNx\iow_now:Nn \@auxout + { + \token_to_str:N \new@label@record + {@tag@LastPage} + { + {abspage} { \int_use:N \g_shipout_readonly_int} + {tagmcabs}{ \int_use:N \c@g_@@_MCID_abs_int } + {tagstruct}{\int_use:N \c@g_@@_struct_abs_int } + } + } + } + } + } + { + \cs_new_protected:Npn \@@_lastpagelabel: + { + \legacy_if:nT { @filesw } + { + \exp_args:NNnx \exp_args:NNx\iow_now:Nn \@auxout + { + \token_to_str:N \newlabeldata + {@tag@LastPage} + { + {abspage} { \int_use:N \g_shipout_readonly_int} + {tagmcabs}{ \int_use:N \c@g_@@_MCID_abs_int } + {tagstruct}{\int_use:N \c@g_@@_struct_abs_int } + } + } + } + } + } \AddToHook{enddocument/afterlastpage} {\@@_lastpagelabel:} % \end{macrocode} % \end{macro} % -% \begin{macro}{\ref_value:nnn} -% This allows to locally set a default value if the label or the attribute -% doesn't exist. -% \begin{macrocode} - \cs_if_exist:NF \ref_value:nnn - { - \cs_new:Npn \ref_value:nnn #1#2#3 - { - \exp_args:Nee - \__ref_value:nnn - { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } {#3} - } - \cs_new:Npn \__ref_value:nnn #1#2#3 - { - \tl_if_exist:cTF { g__ref_label_ #1 _ #2 _tl } - { \tl_use:c { g__ref_label_ #1 _ #2 _tl } } - { - #3 - } - } - } -% \end{macrocode} -% \end{macro} - % \section{Variables} % \begin{variable} % { @@ -282,10 +278,10 @@ % \end{variable} % Attribute lists for the label command. We have a list for % mc-related labels, and one for structures. -% \begin{macro}{\c_@@_refmc_clist,\c_@@_refstruct_clist} +% \begin{macro}{\c_@@_property_mc_clist,\c_@@_property_struct_clist} % \begin{macrocode} -\clist_const:Nn \c_@@_refmc_clist {tagabspage,tagmcabs,tagmcid} -\clist_const:Nn \c_@@_refstruct_clist {tagstruct,tagstructobj} +\clist_const:Nn \c_@@_property_mc_clist {tagabspage,tagmcabs,tagmcid} +\clist_const:Nn \c_@@_property_struct_clist {tagstruct,tagstructobj} % \end{macrocode} % \end{macro} % @@ -367,11 +363,110 @@ \cs_generate_variant:Nn \prop_gput:Nnn {Nxx,Nen} \cs_generate_variant:Nn \prop_put:Nnn {Nxx} \cs_generate_variant:Nn \prop_item:Nn {No,Ne} -\cs_generate_variant:Nn \ref_label:nn { nv } \cs_generate_variant:Nn \seq_set_split:Nnn{Nne} \cs_generate_variant:Nn \str_set_convert:Nnnn {Nonn, Noon, Nnon } \cs_generate_variant:Nn \clist_map_inline:nn {on} % \end{macrocode} +% +% \section{Label and Reference commands} +% To ease transition to properties we setup internal definition. They can be replaced +% by the property definitions once that is released. +% \begin{macro}{\@@_property_new:nnnn,\@@_property_gset:nnnn,\@@_property_ref:nnn} +% \begin{macrocode} +\cs_if_exist:NTF \property_new:nnnn + { +% \end{macrocode} +% At first a command to define new properties +% \begin{macrocode} + \cs_new_eq:NN \@@_property_new:nnnn \property_new:nnnn +% \end{macrocode} +% For the non-shipout code we need also the option to reset property +% \begin{macrocode} + \cs_new_eq:NN \@@_property_gset:nnnn \property_gset:nnnn +% \end{macrocode} +% The command to reference while giving a local default. +% \begin{macrocode} + \cs_new_eq:NN \@@_property_ref:nnn \property_ref:nnn + \cs_new_eq:NN \@@_property_ref:nn \property_ref:nn +% \end{macrocode} +% The command to record +% \begin{macrocode} + \cs_new_protected:Npn \@@_property_record:nn #1#2 + { + \@bsphack + \property_record:nn{#1}{#2} + \@esphack + } + } +% \end{macrocode} +% now the same with l3ref-tmp +% \begin{macrocode} + { + \cs_new_protected:Npn \@@_property_new:nnnn #1 #2 #3 #4 + { + \ref_attribute_gset:nnnn {#1}{#3}{#2}{#4} + } + \cs_new_protected:Npn \@@_property_gset:nnnn #1 #2 #3 #4 + { + \ref_attribute_gset:nnnn {#1}{#3}{#2}{#4} + } + \cs_new:Npn \@@_property_ref:nnn #1#2#3 + { + \exp_args:Nee + \__ref_value:nnn + { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } {#3} + } + \cs_new:Npn \__ref_value:nnn #1#2#3 + { + \tl_if_exist:cTF { g__ref_label_ #1 _ #2 _tl } + { \tl_use:c { g__ref_label_ #1 _ #2 _tl } } + { + #3 + } + } + \cs_new_eq:NN \@@_property_ref:nn \ref_value:nn + \cs_new_protected:Npn \@@_property_record:nn #1#2 + { + \@bsphack + \ref_label:nn {#1}{#2} + \@esphack + } +% \end{macrocode} +% to provide problems when switching between main and dev format: +% \begin{macrocode} + \providecommand\new@label@record[2]{} + } +% \end{macrocode} +% And a few variants +% \begin{macrocode} +\cs_generate_variant:Nn \@@_property_ref:nnn {enn} +\cs_generate_variant:Nn \@@_property_ref:nn {en} +\cs_generate_variant:Nn \@@_property_record:nn {en,eV} +% \end{macrocode} +% The graphic code in latex-lab uses an internal tagpdf command, so until the next +% release we need to provide it +% \begin{macrocode} +\cs_new:Npn \@@_ref_value:enn #1#2#3 + { + \tl_if_exist:cTF { g__ref_label_ #1 _ #2 _tl } + { \tl_use:c { g__ref_label_ #1 _ #2 _tl } } + { + #3 + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@_property_ref_lastpage:nn} +% A command to retrieve the lastpage label, this will be adapted when there +% is a proper, kernel lastpage label. +% \begin{macrocode} +\cs_new:Npn \@@_property_ref_lastpage:nn #1 #2 + { + \@@_property_ref:nnn {@tag@LastPage}{#1}{#2} + } +% \end{macrocode} +%\end{macro} % \section{Setup label attributes} % \begin{macro}{tagstruct,tagstructobj,tagabspage,tagmcabs,tagmcid} @@ -385,68 +480,29 @@ % With mc-chunks we store the absolute page number |tagabspage|, % the absolute id |tagmcabc|, and the id on the page |tagmcid|. % \begin{macrocode} -\ref_attribute_gset:nnnn { tagstruct } {0} { now } - { \int_use:N \c@g_@@_struct_abs_int } -\ref_attribute_gset:nnnn { tagstructobj } {} { now } +\@@_property_new:nnnn + { tagstruct } { now } + {0} { \int_use:N \c@g_@@_struct_abs_int } +\@@_property_new:nnnn { tagstructobj } { now } {} { \pdf_object_if_exist:eT {@@/struct/\int_use:N \c@g__tag_struct_abs_int} { \pdf_object_ref:e{@@/struct/\int_use:N \c@g_@@_struct_abs_int} } } -\ref_attribute_gset:nnnn { tagabspage } {0} { shipout } - { \int_use:N \g_shipout_readonly_int } -\ref_attribute_gset:nnnn { tagmcabs } {0} { now } - { \int_use:N \c@g_@@_MCID_abs_int } +\@@_property_new:nnnn + { tagabspage } { shipout } + {0} { \int_use:N \g_shipout_readonly_int } +\@@_property_new:nnnn { tagmcabs } { now } + {0} { \int_use:N \c@g_@@_MCID_abs_int } \flag_new:n { @@/mcid } -\ref_attribute_gset:nnnn {tagmcid } {0} { shipout } - { \flag_height:n { @@/mcid } } +\@@_property_new:nnnn {tagmcid } { shipout } + {0} { \flag_height:n { @@/mcid } } % \end{macrocode} % \end{macro} % -% \section{Label commands} -% \begin{macro}{\@@_ref_label:nn} -% A version of |\ref_label:nn| to set a label -% which takes a keyword |mc| or |struct| to -% call the relevant lists. -% TODO: check if |\@bsphack| and |\@esphack| make sense here. -% \begin{macrocode} -\cs_new_protected:Npn \@@_ref_label:nn #1 #2 %#1 label, #2 name of list mc or struct - { - \@bsphack - \ref_label:nv {#1}{c_@@_ref#2_clist} - \@esphack - } -\cs_generate_variant:Nn \@@_ref_label:nn {en} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\@@_ref_value:nnn} -% A local version to retrieve the value. It is a direct wrapper, -% but to keep naming consistent \ldots. It uses the variant defined temporarly -% above. -% \begin{macrocode} -\cs_new:Npn \@@_ref_value:nnn #1 #2 #3 %#1 label, #2 attribute, #3 default - { - \ref_value:nnn {#1}{#2}{#3} - } -\cs_generate_variant:Nn \@@_ref_value:nnn {enn} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@@_ref_value_lastpage:nn} -% A command to retrieve the lastpage label, this will be adapted when there -% is a proper, kernel lastpage label. -% \begin{macrocode} -\cs_new:Npn \@@_ref_value_lastpage:nn #1 #2 - { - \ref_value:nnn {@@_LastPage}{#1}{#2} - } -% \end{macrocode} -%\end{macro} - - %\section{Commands to fill seq and prop} % With most engines these are simply copies of the expl3 commands, diff --git a/Master/texmf-dist/source/latex/tagpdf/tagpdf.ins b/Master/texmf-dist/source/latex/tagpdf/tagpdf.ins index d17e709b25f..bdb9b2d1c22 100644 --- a/Master/texmf-dist/source/latex/tagpdf/tagpdf.ins +++ b/Master/texmf-dist/source/latex/tagpdf/tagpdf.ins @@ -2,7 +2,7 @@ File: tagpdf.ins -Copyright (C) 2019-2022 Ulrike Fischer +Copyright (C) 2019-2023 Ulrike Fischer It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-base.sty b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-base.sty index c026c9924ca..ee7a468f62a 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-base.sty +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-base.sty @@ -25,7 +25,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf.dtx -\ProvidesExplPackage {tagpdf-base} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-base} {2023-10-27} {0.98m} {part of tagpdf - provide base, no-op versions of the user commands } \AddToHook{begindocument} { @@ -69,6 +69,7 @@ \tl_new:N \g__tag_struct_stack_current_tl \tl_gset:Nn \g__tag_struct_stack_current_tl {\int_use:N\c@g__tag_struct_abs_int} \prop_new:N \g__tag_struct_dest_num_prop + \cs_new:Npn \__tag_get_data_struct_num: { \g__tag_struct_stack_current_tl diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-generic.sty b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-generic.sty index 87ef709e170..d0144d10021 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-generic.sty +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-generic.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-mc-generic.dtx -\ProvidesExplPackage {tagpdf-debug-generic} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-debug-generic} {2023-10-27} {0.98m} {part of tagpdf - debugging code related to marking chunks - generic mode} \cs_set_protected:Npn \tag_mc_begin:n #1 %#1 keyval { diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-lua.sty b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-lua.sty index 5e5c76cf37c..3a08ff7bfed 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-lua.sty +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-lua.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-mc-luacode.dtx -\ProvidesExplPackage {tagpdf-debug-lua} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-debug-lua} {2023-10-27} {0.98m} {part of tagpdf - debugging code related to marking chunks - lua mode} \cs_set_protected:Npn \__tag_mc_handle_stash:n #1 %1 mcidnum { diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug.sty b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug.sty index 8cfd07c1274..8946732aafb 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug.sty +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug.sty @@ -26,7 +26,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf.dtx -\ProvidesExplPackage {tagpdf-debug} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-debug} {2023-10-27} {0.98m} { debug code for tagpdf } \@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput} \prop_gput:Nnn \g_msg_module_type_prop { tag / debug} {} @@ -189,12 +189,18 @@ %% File: tagpdf-tree.dtx %% File: tagpdf-roles.dtx %% File: tagpdf-struct.dtx +\cs_set_protected:Npn \__tag_struct_prop_gput:nnn #1 #2 #3 + { + \__tag_prop_gput:cnn + { g__tag_struct_#1_prop }{#2}{#3} +\prop_gput:cnn { g__tag_struct_debug_#1_prop } {#2} {#3} + } +\cs_generate_variant:Nn \__tag_struct_prop_gput:nnn {nne,nee,nno} + \prop_new:c { g__tag_struct_debug_0_prop } -\prop_gset_eq:cc - { g__tag_struct_debug_0_prop } - { g__tag_struct_0_prop } -\prop_gremove:cn { g__tag_struct_debug_0_prop }{Namespaces} \seq_new:c { g__tag_struct_debug_kids_0_seq } +\prop_gset_eq:cc { g__tag_struct_debug_0_prop }{ g__tag_struct_0_prop } +\prop_gremove:cn { g__tag_struct_debug_0_prop }{Namespaces} \cs_set_protected:Npn \__tag_struct_kid_mc_gput_right:nn #1 #2 %#1 structure num, #2 MCID absnum% { \__tag_seq_gput_right:cx @@ -239,7 +245,7 @@ { \pdf_object_ref_last: } - \seq_gput_right:cx + \seq_gput_right:ce { g__tag_struct_debug_kids_#1_seq } { OBJR~reference @@ -259,21 +265,23 @@ \exp_args:Ne \pdf_object_new:n { __tag/struct/\int_eval:n { \c@g__tag_struct_abs_int } } - \__tag_prop_gput:cno - { g__tag_struct_\int_eval:n { \c@g__tag_struct_abs_int }_prop } - { Type } - { /StructElem } + \__tag_struct_prop_gput:nnn + { \int_use:N \c@g__tag_struct_abs_int } + { Type } + { /StructElem } \tl_set:Nn \l__tag_struct_stack_parent_tmpa_tl {-1} \keys_set:nn { __tag / struct} { #1 } \__tag_struct_set_tag_info:eVV - { \int_eval:n {\c@g__tag_struct_abs_int} } + { \int_use:N \c@g__tag_struct_abs_int } \g__tag_struct_tag_tl \g__tag_struct_tag_NS_tl - \__tag_check_structure_has_tag:n { \int_eval:n {\c@g__tag_struct_abs_int} } + \__tag_check_structure_has_tag:n { \int_use:N \c@g__tag_struct_abs_int } \tl_if_empty:NF \l__tag_struct_key_label_tl { - \__tag_ref_label:en{tagpdfstruct-\l__tag_struct_key_label_tl}{struct} + \__tag_property_record:eV + {tagpdfstruct-\l__tag_struct_key_label_tl} + \c__tag_property_struct_clist } \int_compare:nNnT { \l__tag_struct_stack_parent_tmpa_tl } = { -1 } { @@ -290,12 +298,12 @@ \g__tag_struct_tag_NS_tl \l__tag_struct_roletag_tl \l__tag_struct_roletag_NS_tl - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } - { rolemap } - { - {\l__tag_struct_roletag_tl}{\l__tag_struct_roletag_NS_tl} - } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } + { rolemap } + { + {\l__tag_struct_roletag_tl}{\l__tag_struct_roletag_NS_tl} + } \str_case:VnTF \l__tag_struct_roletag_tl { {Part} {} @@ -308,8 +316,8 @@ { parentrole } \l__tag_get_tmpc_tl { - \__tag_prop_gput:cno - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nno + { \int_use:N \c@g__tag_struct_abs_int } { parentrole } { \l__tag_get_tmpc_tl @@ -317,14 +325,14 @@ } } { - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { parentrole } { {\l__tag_struct_roletag_tl}{\l__tag_struct_roletag_NS_tl} } } - \seq_gpush:Nx \g__tag_struct_tag_stack_seq + \seq_gpush:Ne \g__tag_struct_tag_stack_seq {{\g__tag_struct_tag_tl}{\l__tag_struct_roletag_tl}} \tl_gset:NV \g__tag_struct_stack_current_tl \c@g__tag_struct_abs_int %\seq_show:N \g__tag_struct_stack_seq @@ -347,7 +355,7 @@ { g__tag_struct_ \l__tag_struct_stack_parent_tmpa_tl _prop} {S} \l__tag_tmpa_tl - \msg_warning:nnxxx + \msg_warning:nneee { tag } {role-parent-child} { \l__tag_get_parent_tmpa_tl/\l__tag_get_parent_tmpb_tl } @@ -362,12 +370,12 @@ \cs_gset_eq:NN \g__tag_struct_tag_tl \l__tag_role_remap_tag_tl \cs_gset_eq:NN \g__tag_struct_tag_NS_tl \l__tag_role_remap_NS_tl \__tag_struct_set_tag_info:eVV - { \int_eval:n {\c@g__tag_struct_abs_int} } + { \int_use:N \c@g__tag_struct_abs_int } \g__tag_struct_tag_tl \g__tag_struct_tag_NS_tl } - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { P } { \pdf_object_ref:e { __tag/struct/\l__tag_struct_stack_parent_tmpa_tl } @@ -375,7 +383,7 @@ %record this structure as kid: %\tl_show:N \g__tag_struct_stack_current_tl %\tl_show:N \l__tag_struct_stack_parent_tmpa_tl - \__tag_struct_kid_struct_gput_right:xx + \__tag_struct_kid_struct_gput_right:ee { \l__tag_struct_stack_parent_tmpa_tl } { \g__tag_struct_stack_current_tl } %\prop_show:c { g__tag_struct_\g__tag_struct_stack_current_tl _prop } @@ -384,7 +392,7 @@ \prop_gset_eq:cc { g__tag_struct_debug_\int_eval:n {\c@g__tag_struct_abs_int}_prop } { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } - \prop_gput:cnx + \prop_gput:cne { g__tag_struct_debug_\int_eval:n {\c@g__tag_struct_abs_int}_prop } { P } { @@ -395,7 +403,7 @@ \l__tag_get_parent_tmpa_tl } } - \prop_gput:cnx + \prop_gput:cne { g__tag_struct_debug_\int_eval:n {\c@g__tag_struct_abs_int}_prop } { NS } { \g__tag_struct_tag_NS_tl } @@ -428,11 +436,11 @@ } \seq_get:NNT \g__tag_struct_tag_stack_seq \l__tag_tmpa_tl { - \tl_gset:Nx \g__tag_struct_tag_tl + \tl_gset:Ne \g__tag_struct_tag_tl { \exp_last_unbraced:NV\use_i:nn \l__tag_tmpa_tl } \prop_get:NVNT\g__tag_role_tags_NS_prop \g__tag_struct_tag_tl\l__tag_tmpa_tl { - \tl_gset:Nx \g__tag_struct_tag_NS_tl { \l__tag_tmpa_tl } + \tl_gset:Ne \g__tag_struct_tag_NS_tl { \l__tag_tmpa_tl } } } \__tag_debug_struct_end_insert: @@ -450,36 +458,89 @@ \__tag_check_if_active_struct:T { \prop_if_exist:cTF - { g__tag_struct_\__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop } % + { g__tag_struct_\__tag_property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop } % { \__tag_check_struct_used:n {#1} %add the label structure as kid to the current structure (can be the root) - \__tag_struct_kid_struct_gput_right:xx + \__tag_struct_kid_struct_gput_right:ee { \g__tag_struct_stack_current_tl } - { \__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0} } + { \__tag_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0} } %add the current structure to the labeled one as parents \__tag_prop_gput:cnx - { g__tag_struct_\__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } + { g__tag_struct_\__tag_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } { P } { \pdf_object_ref:e { __tag/struct/\g__tag_struct_stack_current_tl } } - \prop_gset_eq:cc - { g__tag_struct_debug_\__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } - { g__tag_struct_\__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } - \prop_gput:cnx - { g__tag_struct_debug_\__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } + \prop_gput:cne + { g__tag_struct_debug_\__tag_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } + { P } + { + parent~structure:~\g__tag_struct_stack_current_tl\c_space_tl=~ + \g__tag_struct_tag_tl + } + \__tag_struct_get_parentrole:eNN + {\__tag_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0}} + \l__tag_tmpa_tl + \l__tag_tmpb_tl + \__tag_check_parent_child:VVVVN + \g__tag_struct_tag_tl + \g__tag_struct_tag_NS_tl + \l__tag_tmpa_tl + \l__tag_tmpb_tl + \l__tag_parent_child_check_tl + \int_compare:nNnT {\l__tag_parent_child_check_tl}<0 + { + \cs_set_eq:NN \l__tag_role_remap_tag_tl \g__tag_struct_tag_tl + \cs_set_eq:NN \l__tag_role_remap_NS_tl \g__tag_struct_tag_NS_tl + \__tag_role_remap: + \cs_gset_eq:NN \g__tag_struct_tag_tl \l__tag_role_remap_tag_tl + \cs_gset_eq:NN \g__tag_struct_tag_NS_tl \l__tag_role_remap_NS_tl + \__tag_struct_set_tag_info:eVV + { \int_use:N \c@g__tag_struct_abs_int } + \g__tag_struct_tag_tl + \g__tag_struct_tag_NS_tl + } + } + { + \msg_warning:nnn{ tag }{struct-label-unknown}{#1} + } + } + } +\cs_set_protected:Npn \tag_struct_use_num:n #1 %#1 is structure number + { + \__tag_check_if_active_struct:T + { + \prop_if_exist:cTF + { g__tag_struct_#1_prop } % + { + \prop_get:cnNT + {g__tag_struct_#1_prop} + {P} + \l__tag_tmpa_tl + { + \msg_warning:nnn { tag } {struct-used-twice} {#1} + } + %add the label structure as kid to the current structure (can be the root) + \__tag_struct_kid_struct_gput_right:ee + { \g__tag_struct_stack_current_tl } + { #1 } + %add the current structure to the labeled one as parents + \__tag_struct_prop_gput:nne + { #1 } + { P } + { + \pdf_object_ref:e { __tag/struct/\g__tag_struct_stack_current_tl } + } + \prop_gput:cne + { g__tag_struct_debug_#1_prop } { P } { parent~structure:~\g__tag_struct_stack_current_tl\c_space_tl=~ \g__tag_struct_tag_tl } - \prop_gput:cnx - { g__tag_struct_debug_\int_eval:n {\c@g__tag_struct_abs_int}_prop } - { NS } - { \g__tag_struct_tag_NS_tl } \__tag_struct_get_parentrole:eNN - {\__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}} + {#1} \l__tag_tmpa_tl \l__tag_tmpb_tl \__tag_check_parent_child:VVVVN @@ -496,7 +557,7 @@ \cs_gset_eq:NN \g__tag_struct_tag_tl \l__tag_role_remap_tag_tl \cs_gset_eq:NN \g__tag_struct_tag_NS_tl \l__tag_role_remap_NS_tl \__tag_struct_set_tag_info:eVV - { \int_eval:n {\c@g__tag_struct_abs_int} } + { \int_use:N \c@g__tag_struct_abs_int } \g__tag_struct_tag_tl \g__tag_struct_tag_NS_tl } diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-luatex.def b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-luatex.def index 5c0351d1fa0..4d4113210b9 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-luatex.def +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-luatex.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-backend.dtx -\ProvidesExplFile {tagpdf-luatex.def} {2023-08-30} {0.98l} +\ProvidesExplFile {tagpdf-luatex.def} {2023-10-27} {0.98m} {tagpdf~driver~for~luatex} { \fontencoding{TU}\fontfamily{lmr}\fontseries{m}\fontshape{n}\fontsize{10pt}{10pt}\selectfont 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 d7d065980bd..c6aa8b5fc86 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 @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-mc-generic.dtx -\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-10-27} {0.98m} {part of tagpdf - code related to marking chunks - generic mode} \tl_new:N \l__tag_mc_ref_abspage_tl @@ -251,11 +251,11 @@ \cs_set_protected:Npn \__tag_mc_bdc_mcid:nn #1 #2 { \int_gincr:N \c@g__tag_MCID_abs_int - \__tag_ref_label:en + \__tag_property_record:eV { mcid-\int_use:N \c@g__tag_MCID_abs_int } - {mc} + \c__tag_property_mc_clist \__tag_mc_bdc_shipout:ee {#1} { @@ -267,7 +267,7 @@ { \msg_new:nnn { tagpdf } { old-engine } { - The~engine~or~the~PDF management~is~too~old or\\ + The~engine~or~the~PDF management~is~too~old~or\\ delayed~shipout~has~been~disabled.\\ Fast~numbering~of~MC-chunks~not~available.\\ More~compilations~will~be~needed~in~generic~mode. @@ -276,14 +276,14 @@ \__tag_prop_new:N \g__tag_MCID_byabspage_prop \int_new:N \g__tag_MCID_tmp_bypage_int \cs_generate_variant:Nn \__tag_mc_bdc:nn {nx} - \ref_attribute_gset:nnnn {tagmcid } {0} { now } - { \int_use:N \g__tag_MCID_tmp_bypage_int } + \__tag_property_gset:nnnn {tagmcid } { now } + {0} { \int_use:N \g__tag_MCID_tmp_bypage_int } \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 { - \__tag_ref_value:enn %3 args + \__tag_property_ref:enn %3 args { mcid-\int_use:N \c@g__tag_MCID_abs_int } @@ -312,11 +312,11 @@ { \l__tag_mc_ref_abspage_tl } {1} } - \__tag_ref_label:en + \__tag_property_record:eV { mcid-\int_use:N \c@g__tag_MCID_abs_int } - { mc } + \c__tag_property_mc_clist \__tag_mc_bdc:nx {#1} { /MCID~\int_eval:n { \g__tag_MCID_tmp_bypage_int }~ \exp_not:n { #2 } } diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-lua.sty b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-lua.sty index 1a9936f60c8..9167652ac6c 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-lua.sty +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-lua.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-mc-luacode.dtx -\ProvidesExplPackage {tagpdf-mc-code-lua} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf-mc-code-lua} {2023-10-27} {0.98m} {tagpdf - mc code only for the luamode } \hook_gput_code:nnn{begindocument}{tagpdf/mc} { diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-book.def b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-book.def index 469d8cd5b89..eb23d7191e7 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-book.def +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-book.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-10-27} {0.98m} %% {latex-book} {https://www.latex-project.org/ns/book/2022}{} chapter, H1,pdf2, section, H2,pdf2, diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-inline.def b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-inline.def index c46c4fa6129..70fb1ac7cf1 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-inline.def +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-inline.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-10-27} {0.98m} %% {latex-inline} {https://www.latex-project.org/ns/inline/2022}{} chapter, Span, pdf2, section, Span, pdf2, diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex.def b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex.def index b83a263de52..754408dbc16 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex.def +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-ns-latex.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-latex.def} {2023-10-27} {0.98m} %% {latex} {https://www.latex-project.org/ns/dflt/2022}{} title, Title, pdf2, part, Title, pdf2, diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-mathml.def b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-mathml.def index 94a527ac719..e0a3aa6b842 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-mathml.def +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-mathml.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-10-27} {0.98m} abs,abs,mathml, and,and,mathml, annotation,annotation,mathml, diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf.def b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf.def index dd901d7081a..18c676a1104 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf.def +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-10-27} {0.98m} %% {pdf} {http://iso.org/pdf/ssn}{} StructTreeRoot,StructTreeRoot,pdf,D, Document,Document,pdf,D, diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf2.def b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf2.def index 079675945b6..76c249b8c59 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf2.def +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf2.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-10-27} {0.98m} %% {pdf2} {http://iso.org/pdf2/ssn}{} Document,Document,pdf2,D, Part,Part,pdf2,G, diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child-2.csv b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child-2.csv index 37a3f74a6fb..0daead0d9f4 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child-2.csv +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child-2.csv @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-10-27} {0.98m} ,,,StructTreeRoot,Document,DocumentFragment,Art,Part,Div,Sect,Aside,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Title,Sub,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Em,Strong,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,FENote,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,math,mathml,Artifact,MC Document,both,document level,1,0..n,0..n,β
,β‘,β‘,β
,0..n,0..n,β‘,β
,β
,β
,0..n,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,0..n,β
DocumentFragment,2.0,document level,β
,0..n,0..n,0..n,β‘,β‘,0..n,0..n,0..n,β‘,β
,β
,β
,0..n,β
,β
,β
,β
*,β
,β
,β
,β
,β
,β
,β
*,β
,β
,β
,β
*,β
*,β
,β
,β
,β
,β
,β
,β
,β
,β
*,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
*,β
,β
,β
,β
,0..n,β
diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child.csv b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child.csv index 299d2906184..3a5e8eee93e 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child.csv +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child.csv @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf-data.dtx -%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-08-30} {0.98l} +%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-10-27} {0.98m} ,,,StructTreeRoot,Document,Art,Part,Div,Sect,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,MC Document,both,document level,1,0..n,β
,β‘,β‘,β
,0..n,β‘,β
,β
,β
,0..n,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
Art,1.7,grouping,β
,0..n,β
,β‘,β‘,0..n,0..n,β‘,β
,β
,β
,0..n,β
,0..n,β
,β
,β
,0..1,0..1,β
,β
,β
,0..n,0..n,β
,β
,β
,β
,β
,β
,β
,β
,β
,β
,0..n,β
,β
,0..n,0..n,β
,β
,β
,0..n,0..n,β
,β
diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua b/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua index c499499e793..abfc31bc409 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua @@ -24,8 +24,8 @@ local ProvidesLuaModule = { name = "tagpdf", - version = "0.98l", --TAGVERSION - date = "2023-08-30", --TAGDATE + version = "0.98m", --TAGVERSION + date = "2023-10-27", --TAGDATE description = "tagpdf lua code", license = "The LATEX Project Public License 1.3c" } diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdf.sty b/Master/texmf-dist/tex/latex/tagpdf/tagpdf.sty index 8a21cf2a4bc..8b32f11ab51 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdf.sty +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdf.sty @@ -28,7 +28,7 @@ %% and all files in that bundle must be distributed together. %% %% File: tagpdf.dtx -\ProvidesExplPackage {tagpdf} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdf} {2023-10-27} {0.98m} { A package to experiment with pdf tagging } \bool_if:nF @@ -67,43 +67,45 @@ \RequirePackage{l3ref-tmp} \RequirePackage{tagpdf-base} - \cs_new_protected:Npn \__tag_lastpagelabel: - { - \legacy_if:nT { @filesw } - { - \exp_args:NNnx \exp_args:NNx\iow_now:Nn \@auxout - { - \token_to_str:N \newlabeldata - {__tag_LastPage} - { - {abspage} { \int_use:N \g_shipout_readonly_int} - {tagmcabs}{ \int_use:N \c@g__tag_MCID_abs_int } - {tagstruct}{\int_use:N \c@g__tag_struct_abs_int } - } - } - } - } - +\cs_if_exist:NTF \property_new:nnnn + { + \cs_new_protected:Npn \__tag_lastpagelabel: + { + \legacy_if:nT { @filesw } + { + \exp_args:NNnx \exp_args:NNx\iow_now:Nn \@auxout + { + \token_to_str:N \new@label@record + {@tag@LastPage} + { + {abspage} { \int_use:N \g_shipout_readonly_int} + {tagmcabs}{ \int_use:N \c@g__tag_MCID_abs_int } + {tagstruct}{\int_use:N \c@g__tag_struct_abs_int } + } + } + } + } + } + { + \cs_new_protected:Npn \__tag_lastpagelabel: + { + \legacy_if:nT { @filesw } + { + \exp_args:NNnx \exp_args:NNx\iow_now:Nn \@auxout + { + \token_to_str:N \newlabeldata + {@tag@LastPage} + { + {abspage} { \int_use:N \g_shipout_readonly_int} + {tagmcabs}{ \int_use:N \c@g__tag_MCID_abs_int } + {tagstruct}{\int_use:N \c@g__tag_struct_abs_int } + } + } + } + } + } \AddToHook{enddocument/afterlastpage} {\__tag_lastpagelabel:} - \cs_if_exist:NF \ref_value:nnn - { - \cs_new:Npn \ref_value:nnn #1#2#3 - { - \exp_args:Nee - \__ref_value:nnn - { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } {#3} - } - \cs_new:Npn \__ref_value:nnn #1#2#3 - { - \tl_if_exist:cTF { g__ref_label_ #1 _ #2 _tl } - { \tl_use:c { g__ref_label_ #1 _ #2 _tl } } - { - #3 - } - } - } - \tl_new:N \l__tag_tmpa_tl \tl_new:N \l__tag_tmpb_tl \tl_new:N \l__tag_get_tmpc_tl @@ -117,8 +119,8 @@ \int_new:N \l__tag_tmpa_int \box_new:N \l__tag_tmpa_box \box_new:N \l__tag_tmpb_box -\clist_const:Nn \c__tag_refmc_clist {tagabspage,tagmcabs,tagmcid} -\clist_const:Nn \c__tag_refstruct_clist {tagstruct,tagstructobj} +\clist_const:Nn \c__tag_property_mc_clist {tagabspage,tagmcabs,tagmcid} +\clist_const:Nn \c__tag_property_struct_clist {tagstruct,tagstructobj} \int_new:N \l__tag_loglevel_int \bool_new:N \g__tag_active_space_bool \bool_new:N \g__tag_active_mc_bool @@ -139,46 +141,91 @@ \cs_generate_variant:Nn \prop_gput:Nnn {Nxx,Nen} \cs_generate_variant:Nn \prop_put:Nnn {Nxx} \cs_generate_variant:Nn \prop_item:Nn {No,Ne} -\cs_generate_variant:Nn \ref_label:nn { nv } \cs_generate_variant:Nn \seq_set_split:Nnn{Nne} \cs_generate_variant:Nn \str_set_convert:Nnnn {Nonn, Noon, Nnon } \cs_generate_variant:Nn \clist_map_inline:nn {on} - -\ref_attribute_gset:nnnn { tagstruct } {0} { now } - { \int_use:N \c@g__tag_struct_abs_int } -\ref_attribute_gset:nnnn { tagstructobj } {} { now } +\cs_if_exist:NTF \property_new:nnnn { - \pdf_object_if_exist:eT {__tag/struct/\int_use:N \c@g__tag_struct_abs_int} + \cs_new_eq:NN \__tag_property_new:nnnn \property_new:nnnn + \cs_new_eq:NN \__tag_property_gset:nnnn \property_gset:nnnn + \cs_new_eq:NN \__tag_property_ref:nnn \property_ref:nnn + \cs_new_eq:NN \__tag_property_ref:nn \property_ref:nn + \cs_new_protected:Npn \__tag_property_record:nn #1#2 { - \pdf_object_ref:e{__tag/struct/\int_use:N \c@g__tag_struct_abs_int} + \@bsphack + \property_record:nn{#1}{#2} + \@esphack } } -\ref_attribute_gset:nnnn { tagabspage } {0} { shipout } - { \int_use:N \g_shipout_readonly_int } -\ref_attribute_gset:nnnn { tagmcabs } {0} { now } - { \int_use:N \c@g__tag_MCID_abs_int } - -\flag_new:n { __tag/mcid } -\ref_attribute_gset:nnnn {tagmcid } {0} { shipout } - { \flag_height:n { __tag/mcid } } - -\cs_new_protected:Npn \__tag_ref_label:nn #1 #2 %#1 label, #2 name of list mc or struct { - \@bsphack - \ref_label:nv {#1}{c__tag_ref#2_clist} - \@esphack + \cs_new_protected:Npn \__tag_property_new:nnnn #1 #2 #3 #4 + { + \ref_attribute_gset:nnnn {#1}{#3}{#2}{#4} + } + \cs_new_protected:Npn \__tag_property_gset:nnnn #1 #2 #3 #4 + { + \ref_attribute_gset:nnnn {#1}{#3}{#2}{#4} + } + \cs_new:Npn \__tag_property_ref:nnn #1#2#3 + { + \exp_args:Nee + \__ref_value:nnn + { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } {#3} + } + \cs_new:Npn \__ref_value:nnn #1#2#3 + { + \tl_if_exist:cTF { g__ref_label_ #1 _ #2 _tl } + { \tl_use:c { g__ref_label_ #1 _ #2 _tl } } + { + #3 + } + } + \cs_new_eq:NN \__tag_property_ref:nn \ref_value:nn + \cs_new_protected:Npn \__tag_property_record:nn #1#2 + { + \@bsphack + \ref_label:nn {#1}{#2} + \@esphack + } + \providecommand\new@label@record[2]{} } -\cs_generate_variant:Nn \__tag_ref_label:nn {en} -\cs_new:Npn \__tag_ref_value:nnn #1 #2 #3 %#1 label, #2 attribute, #3 default +\cs_generate_variant:Nn \__tag_property_ref:nnn {enn} +\cs_generate_variant:Nn \__tag_property_ref:nn {en} +\cs_generate_variant:Nn \__tag_property_record:nn {en,eV} +\cs_new:Npn \__tag_ref_value:enn #1#2#3 { - \ref_value:nnn {#1}{#2}{#3} + \tl_if_exist:cTF { g__ref_label_ #1 _ #2 _tl } + { \tl_use:c { g__ref_label_ #1 _ #2 _tl } } + { + #3 + } } -\cs_generate_variant:Nn \__tag_ref_value:nnn {enn} -\cs_new:Npn \__tag_ref_value_lastpage:nn #1 #2 +\cs_new:Npn \__tag_property_ref_lastpage:nn #1 #2 { - \ref_value:nnn {__tag_LastPage}{#1}{#2} + \__tag_property_ref:nnn {@tag@LastPage}{#1}{#2} } +\__tag_property_new:nnnn + { tagstruct } { now } + {0} { \int_use:N \c@g__tag_struct_abs_int } +\__tag_property_new:nnnn { tagstructobj } { now } {} + { + \pdf_object_if_exist:eT {__tag/struct/\int_use:N \c@g__tag_struct_abs_int} + { + \pdf_object_ref:e{__tag/struct/\int_use:N \c@g__tag_struct_abs_int} + } + } +\__tag_property_new:nnnn + { tagabspage } { shipout } + {0} { \int_use:N \g_shipout_readonly_int } +\__tag_property_new:nnnn { tagmcabs } { now } + {0} { \int_use:N \c@g__tag_MCID_abs_int } + +\flag_new:n { __tag/mcid } +\__tag_property_new:nnnn {tagmcid } { shipout } + {0} { \flag_height:n { __tag/mcid } } + + \cs_set_eq:NN \__tag_prop_new:N \prop_new:N \cs_set_eq:NN \__tag_seq_new:N \seq_new:N \cs_set_eq:NN \__tag_prop_gput:Nnn \prop_gput:Nnn @@ -407,7 +454,7 @@ \cs_new_protected:Npn \__tag_check_struct_used:n #1 %#1 label { \prop_get:cnNT - {g__tag_struct_\__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop} + {g__tag_struct_\__tag_property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop} {P} \l__tag_tmpa_tl { @@ -519,7 +566,7 @@ { \tl_set:Nx \l__tag_tmpa_tl { - \__tag_ref_value_lastpage:nn + \__tag_property_ref_lastpage:nn {abspage} {-1} } @@ -533,14 +580,14 @@ {1} {1} { - \__tag_ref_value_lastpage:nn + \__tag_property_ref_lastpage:nn {tagmcabs} {-1} } { \int_compare:nT { - \__tag_ref_value:enn + \__tag_property_ref:enn {mcid-####1} {tagabspage} {-1} @@ -551,7 +598,7 @@ \seq_gput_right:Nx \l_tmpa_seq { Page##1-####1- - \__tag_ref_value:enn + \__tag_property_ref:enn {mcid-####1} {tagmcid} {-1} @@ -601,7 +648,7 @@ \tl_new:N \l__tag_mc_key_properties_tl \cs_new:Npn \__tag_mc_handle_mc_label:e #1 { - \ref_label:en{tagpdf-#1}{tagabspage,tagmcabs} + \__tag_property_record:en{tagpdf-#1}{tagabspage,tagmcabs} } \cs_new_protected:Npn \__tag_mc_set_label_used:n #1 %#1 labelname { @@ -611,7 +658,7 @@ { \__tag_check_if_active_struct:T { - \tl_set:Nx \l__tag_tmpa_tl { \__tag_ref_value:nnn{tagpdf-#1}{tagmcabs}{} } + \tl_set:Nx \l__tag_tmpa_tl { \__tag_property_ref:nnn{tagpdf-#1}{tagmcabs}{} } \tl_if_empty:NTF\l__tag_tmpa_tl { \msg_warning:nnn {tag} {mc-label-unknown} {#1} @@ -768,7 +815,7 @@ \hook_gput_code:nnn{begindocument}{tagpdf} { \int_gset:Nn\g__tag_tree_id_pad_int - {\tl_count:e { \__tag_ref_value_lastpage:nn{tagstruct}{1000}}+1} + {\tl_count:e { \__tag_property_ref_lastpage:nn{tagstruct}{1000}}+1} } \cs_new_protected:Npn \__tag_tree_write_idtree: @@ -863,7 +910,7 @@ { \int_gset:Nn \c@g__tag_parenttree_obj_int - { \__tag_ref_value_lastpage:nn{abspage}{100} } + { \__tag_property_ref_lastpage:nn{abspage}{100} } } \tl_new:N \g__tag_parenttree_objr_tl \cs_new_protected:Npn \__tag_parenttree_add_objr:nn #1 #2 %#1 StructParent number, #2 objref @@ -877,18 +924,18 @@ \cs_new_protected:Npn \__tag_tree_parenttree_rerun_msg: {} \cs_new_protected:Npn \__tag_tree_fill_parenttree: { - \int_step_inline:nnnn{1}{1}{\__tag_ref_value_lastpage:nn{abspage}{-1}} %not quite clear if labels are needed. See lua code + \int_step_inline:nnnn{1}{1}{\__tag_property_ref_lastpage:nn{abspage}{-1}} %not quite clear if labels are needed. See lua code { %page ##1 \prop_clear:N \l__tag_tmpa_prop - \int_step_inline:nnnn{1}{1}{\__tag_ref_value_lastpage:nn{tagmcabs}{-1}} + \int_step_inline:nnnn{1}{1}{\__tag_property_ref_lastpage:nn{tagmcabs}{-1}} { %mcid####1 \int_compare:nT - {\__tag_ref_value:enn{mcid-####1}{tagabspage}{-1}=##1} %mcid is on current page + {\__tag_property_ref:enn{mcid-####1}{tagabspage}{-1}=##1} %mcid is on current page {% yes \prop_put:Nxx \l__tag_tmpa_prop - {\__tag_ref_value:enn{mcid-####1}{tagmcid}{-1}} + {\__tag_property_ref:enn{mcid-####1}{tagmcid}{-1}} {\prop_item:Nn \g__tag_mc_parenttree_prop {####1}} } } @@ -1892,35 +1939,43 @@ \__tag_struct_output_prop_aux:nn {#1}{##1} } } +\cs_new_protected:Npn \__tag_struct_prop_gput:nnn #1 #2 #3 + { + \__tag_prop_gput:cnn + { g__tag_struct_#1_prop }{#2}{#3} + } +\cs_generate_variant:Nn \__tag_struct_prop_gput:nnn {nne,nee,nno} + \tl_gset:Nn \g__tag_struct_stack_current_tl {0} \cs_new:Npn \__tag_pdf_name_e:n #1{\pdf_name_from_unicode_e:n{#1}} \__tag_prop_new:c { g__tag_struct_0_prop } \__tag_new_output_prop_handler:n {0} \__tag_seq_new:c { g__tag_struct_kids_0_seq } -\__tag_prop_gput:cnx - { g__tag_struct_0_prop } +\__tag_struct_prop_gput:nne + { 0 } { Type } { \pdf_name_from_unicode_e:n {StructTreeRoot} } -\__tag_prop_gput:cnx - { g__tag_struct_0_prop } +\__tag_struct_prop_gput:nne + { 0 } { S } { \pdf_name_from_unicode_e:n {StructTreeRoot} } -\__tag_prop_gput:cnx - { g__tag_struct_0_prop } +\__tag_struct_prop_gput:nne + { 0 } { rolemap } { {StructTreeRoot}{pdf} } -\__tag_prop_gput:cnx - { g__tag_struct_0_prop } +\__tag_struct_prop_gput:nne + { 0 } { parentrole } { {StructTreeRoot}{pdf} } + \pdf_version_compare:NnF < {2.0} { - \__tag_prop_gput:cnx - { g__tag_struct_0_prop } + \__tag_struct_prop_gput:nne + { 0 } { Namespaces } { \pdf_object_ref:n { __tag/tree/namespaces } } } @@ -1940,8 +1995,8 @@ \cs_new_protected:Npn \__tag_struct_set_tag_info:nnn #1 #2 #3 %#1 structure number, #2 tag, #3 NS { - \__tag_prop_gput:cnx - { g__tag_struct_#1_prop } + \__tag_struct_prop_gput:nne + { #1 } { S } { \pdf_name_from_unicode_e:n {#2} } % } @@ -1949,14 +2004,14 @@ { \cs_new_protected:Npn \__tag_struct_set_tag_info:nnn #1 #2 #3 { - \__tag_prop_gput:cnx - { g__tag_struct_#1_prop } + \__tag_struct_prop_gput:nne + { #1 } { S } { \pdf_name_from_unicode_e:n {#2} } % \prop_get:NnNT \g__tag_role_NS_prop {#3} \l__tag_get_tmpc_tl { - \__tag_prop_gput:cnx - { g__tag_struct_#1_prop } + \__tag_struct_prop_gput:nne + { #1 } { NS } { \l__tag_get_tmpc_tl } % } @@ -1971,8 +2026,8 @@ { parentrole } \l__tag_get_tmpc_tl { - \tl_set:Nx #2{\exp_last_unbraced:NV\use_i:nn \l__tag_get_tmpc_tl} - \tl_set:Nx #3{\exp_last_unbraced:NV\use_ii:nn \l__tag_get_tmpc_tl} + \tl_set:Ne #2{\exp_last_unbraced:NV\use_i:nn \l__tag_get_tmpc_tl} + \tl_set:Ne #3{\exp_last_unbraced:NV\use_ii:nn \l__tag_get_tmpc_tl} } { \tl_clear:N#2 @@ -1986,8 +2041,8 @@ /Type \c_space_tl /MCR \c_space_tl /Pg \c_space_tl - \pdf_pageobject_ref:n { \__tag_ref_value:enn{mcid-#1}{tagabspage}{1} } - /MCID \c_space_tl \__tag_ref_value:enn{mcid-#1}{tagmcid}{1} + \pdf_pageobject_ref:n { \__tag_property_ref:enn{mcid-#1}{tagabspage}{1} } + /MCID \c_space_tl \__tag_property_ref:enn{mcid-#1}{tagmcid}{1} >> } \cs_new_protected:Npn \__tag_struct_kid_mc_gput_right:nn #1 #2 %#1 structure num, #2 MCID absnum% @@ -2003,7 +2058,7 @@ \prop_item:Nn \g__tag_struct_cont_mc_prop {#2} } } -\cs_generate_variant:Nn \__tag_struct_kid_mc_gput_right:nn {nx} +\cs_generate_variant:Nn \__tag_struct_kid_mc_gput_right:nn {ne} \cs_new_protected:Npn\__tag_struct_kid_struct_gput_right:nn #1 #2 %#1 num of parent struct, #2 kid struct { \__tag_seq_gput_right:cx @@ -2013,7 +2068,7 @@ } } -\cs_generate_variant:Nn \__tag_struct_kid_struct_gput_right:nn {xx} +\cs_generate_variant:Nn \__tag_struct_kid_struct_gput_right:nn {ee} \cs_new_protected:Npn\__tag_struct_kid_OBJR_gput_right:nnn #1 #2 #3 %#1 num of parent struct, %#2 obj reference %#3 page object reference @@ -2029,7 +2084,7 @@ \pdf_object_ref_last: } } -\cs_generate_variant:Nn\__tag_struct_kid_OBJR_gput_right:nnn { xxx } +\cs_generate_variant:Nn\__tag_struct_kid_OBJR_gput_right:nnn { eee } \cs_new_protected:Npn\__tag_struct_exchange_kid_command:N #1 %#1 = seq var { \seq_gpop_left:NN #1 \l__tag_tmpa_tl @@ -2047,7 +2102,7 @@ { \seq_clear:N \l__tag_tmpa_seq \seq_map_inline:cn { g__tag_struct_kids_#1_seq } - { \seq_put_right:Nx \l__tag_tmpa_seq { ##1 } } + { \seq_put_right:Ne \l__tag_tmpa_seq { ##1 } } %\seq_show:c { g__tag_struct_kids_#1_seq } %\seq_show:N \l__tag_tmpa_seq \seq_remove_all:Nn \l__tag_tmpa_seq {} @@ -2074,7 +2129,9 @@ \__tag_struct_exchange_kid_command:c {g__tag_struct_kids_#1_seq} } - \__tag_prop_gput:cnx { g__tag_struct_#1_prop } {K} + \__tag_struct_prop_gput:nne + {#1} + {K} { \seq_item:cn { @@ -2085,7 +2142,9 @@ } % } { %many kids, use an array - \__tag_prop_gput:cnx { g__tag_struct_#1_prop } {K} + \__tag_struct_prop_gput:nne + {#1} + {K} { [ \seq_use:cn @@ -2110,7 +2169,7 @@ _entries_seq } { - \tl_put_right:Nx + \tl_put_right:Ne #2 { \prop_if_in:cnT @@ -2137,11 +2196,11 @@ { \prop_get:cnNF { g__tag_struct_#1_prop } {P}\l__tag_tmpb_tl { - \prop_gput:cnx { g__tag_struct_#1_prop } {P}{\pdf_object_ref:n { __tag/struct/0 }} - \prop_gput:cnx { g__tag_struct_#1_prop } {S}{/Artifact} + \prop_gput:cne { g__tag_struct_#1_prop } {P}{\pdf_object_ref:n { __tag/struct/0 }} + \prop_gput:cne { g__tag_struct_#1_prop } {S}{/Artifact} \seq_if_empty:cF {g__tag_struct_kids_#1_seq} { - \msg_warning:nnxx + \msg_warning:nnee {tag} {struct-orphan} { #1 } @@ -2150,8 +2209,8 @@ } \__tag_struct_fill_kid_key:n { #1 } \__tag_struct_get_dict_content:nN { #1 } \l__tag_tmpa_tl - \exp_args:Nx - \pdf_object_write:nnx + \exp_args:Ne + \pdf_object_write:nne { __tag/struct/#1 } {dict} { @@ -2178,8 +2237,8 @@ } %put the obj number of the annot in the kid entry, this also creates %the OBJR object - \ref_label:nn {__tag_objr_page_#2 }{ tagabspage } - \__tag_struct_kid_OBJR_gput_right:xxx + \__tag_property_record:nn {@tag@objr@page@#2 }{ tagabspage } + \__tag_struct_kid_OBJR_gput_right:eee { \l__tag_struct_stack_parent_tmpa_tl } @@ -2187,10 +2246,10 @@ #1 % } { - \pdf_pageobject_ref:n { \__tag_ref_value:nnn {__tag_objr_page_#2 }{ tagabspage }{1} } + \pdf_pageobject_ref:n { \__tag_property_ref:nnn {@tag@objr@page@#2 }{ tagabspage }{1} } } % add the parent obj number to the parent tree: - \exp_args:Nnx + \exp_args:Nne \__tag_parenttree_add_objr:nn { #2 @@ -2227,9 +2286,9 @@ { \int_compare_p:nNn {#1}<{\c@g__tag_struct_abs_int} } - { \tl_set:Nx \l__tag_struct_stack_parent_tmpa_tl { \int_eval:n {#1} } } + { \tl_set:Ne \l__tag_struct_stack_parent_tmpa_tl { \int_eval:n {#1} } } { - \msg_warning:nnxx { tag } { struct-unknown } + \msg_warning:nnee { tag } { struct-unknown } { \int_eval:n {#1} } { parent~key~ignored } } @@ -2238,8 +2297,8 @@ tag .code:n = % S property { \seq_set_split:Nne \l__tag_tmpa_seq { / } {#1/\prop_item:Ne\g__tag_role_tags_NS_prop{#1}} - \tl_gset:Nx \g__tag_struct_tag_tl { \seq_item:Nn\l__tag_tmpa_seq {1} } - \tl_gset:Nx \g__tag_struct_tag_NS_tl{ \seq_item:Nn\l__tag_tmpa_seq {2} } + \tl_gset:Ne \g__tag_struct_tag_tl { \seq_item:Nn\l__tag_tmpa_seq {1} } + \tl_gset:Ne \g__tag_struct_tag_NS_tl{ \seq_item:Nn\l__tag_tmpa_seq {2} } \__tag_check_structure_tag:N \g__tag_struct_tag_tl }, title .code:n = % T property @@ -2249,8 +2308,8 @@ { #1 } { default } { utf16/hex } - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { T } { <\l__tag_tmpa_str> } }, @@ -2261,8 +2320,8 @@ { #1 } { default } { utf16/hex } - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { T } { <\l__tag_tmpa_str> } }, @@ -2275,8 +2334,8 @@ { #1 } { default } { utf16/hex } - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { Alt } { <\l__tag_tmpa_str> } } @@ -2291,16 +2350,16 @@ { #1 } { default } { utf16/hex } - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { ActualText } { <\l__tag_tmpa_str>} } }, lang .code:n = % Lang property { - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { Lang } { (#1) } }, @@ -2309,10 +2368,11 @@ \tl_clear:N\l__tag_tmpa_tl \clist_map_inline:on {#1} { - \tl_put_right:Nx \l__tag_tmpa_tl - {~\ref_value:nn{tagpdfstruct-##1}{tagstructobj} } + \tl_put_right:Ne \l__tag_tmpa_tl + {~\__tag_property_ref:en{tagpdfstruct-##1}{tagstructobj} } } - \__tag_struct_gput_data_ref:ee { \int_eval:n {\c@g__tag_struct_abs_int} } {\l__tag_tmpa_tl} + \__tag_struct_gput_data_ref:ee + { \int_use:N \c@g__tag_struct_abs_int } {\l__tag_tmpa_tl} }, E .code:n = % E property { @@ -2321,8 +2381,8 @@ { #1 } { default } { utf16/hex } - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { E } { <\l__tag_tmpa_str> } }, @@ -2342,10 +2402,10 @@ {tag-AFfile\int_use:N\g__tag_struct_AFobj_int.#2} {__tag/fileobj\int_use:N\g__tag_struct_AFobj_int} \__tag_struct_add_AF:ee - { \int_eval:n {\c@g__tag_struct_abs_int} } + { \int_use:N \c@g__tag_struct_abs_int } { \pdf_object_ref:e {__tag/fileobj\int_use:N\g__tag_struct_AFobj_int} } - \__tag_prop_gput:cnx - { g__tag_struct_\int_use:N\c@g__tag_struct_abs_int _prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { AF } { [ @@ -2369,10 +2429,10 @@ {tag-AFfile\int_use:N\g__tag_struct_AFobj_int.#2} \l__tag_tmpa_tl \__tag_struct_add_AF:ee - { \int_eval:n {\c@g__tag_struct_abs_int} } + { \int_use:N \c@g__tag_struct_abs_int } { \l__tag_tmpa_tl } - \__tag_prop_gput:cnx - { g__tag_struct_\int_use:N\c@g__tag_struct_abs_int _prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { AF } { [ @@ -2391,14 +2451,14 @@ g__tag_struct_#1_AF_tl } { - \tl_gput_right:cx + \tl_gput_right:ce { g__tag_struct_#1_AF_tl } { \c_space_tl #2 } } { \tl_new:c { g__tag_struct_#1_AF_tl } - \tl_gset:cx + \tl_gset:ce { g__tag_struct_#1_AF_tl } { #2 } } @@ -2410,9 +2470,9 @@ { \pdf_object_if_exist:nTF {#1} { - \__tag_struct_add_AF:ee { \int_eval:n {\c@g__tag_struct_abs_int} }{\pdf_object_ref:n {#1}} - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_add_AF:ee { \int_use:N \c@g__tag_struct_abs_int }{\pdf_object_ref:n {#1}} + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { AF } { [ @@ -2422,7 +2482,7 @@ } } { - + % message? } }, ,AFinline .code:n = @@ -2451,8 +2511,8 @@ \pdf_object_if_exist:nTF {#1} { \__tag_struct_add_AF:ee { 0 }{\pdf_object_ref:n {#1}} - \__tag_prop_gput:cnx - { g__tag_struct_0_prop } + \__tag_struct_prop_gput:nne + { 0 } { AF } { [ @@ -2478,21 +2538,23 @@ \exp_args:Ne \pdf_object_new:n { __tag/struct/\int_eval:n { \c@g__tag_struct_abs_int } } - \__tag_prop_gput:cno - { g__tag_struct_\int_eval:n { \c@g__tag_struct_abs_int }_prop } - { Type } - { /StructElem } + \__tag_struct_prop_gput:nnn + { \int_use:N \c@g__tag_struct_abs_int } + { Type } + { /StructElem } \tl_set:Nn \l__tag_struct_stack_parent_tmpa_tl {-1} \keys_set:nn { __tag / struct} { #1 } \__tag_struct_set_tag_info:eVV - { \int_eval:n {\c@g__tag_struct_abs_int} } + { \int_use:N \c@g__tag_struct_abs_int } \g__tag_struct_tag_tl \g__tag_struct_tag_NS_tl - \__tag_check_structure_has_tag:n { \int_eval:n {\c@g__tag_struct_abs_int} } + \__tag_check_structure_has_tag:n { \int_use:N \c@g__tag_struct_abs_int } \tl_if_empty:NF \l__tag_struct_key_label_tl { - \__tag_ref_label:en{tagpdfstruct-\l__tag_struct_key_label_tl}{struct} + \__tag_property_record:eV + {tagpdfstruct-\l__tag_struct_key_label_tl} + \c__tag_property_struct_clist } \int_compare:nNnT { \l__tag_struct_stack_parent_tmpa_tl } = { -1 } { @@ -2509,12 +2571,12 @@ \g__tag_struct_tag_NS_tl \l__tag_struct_roletag_tl \l__tag_struct_roletag_NS_tl - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } - { rolemap } - { - {\l__tag_struct_roletag_tl}{\l__tag_struct_roletag_NS_tl} - } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } + { rolemap } + { + {\l__tag_struct_roletag_tl}{\l__tag_struct_roletag_NS_tl} + } \str_case:VnTF \l__tag_struct_roletag_tl { {Part} {} @@ -2527,8 +2589,8 @@ { parentrole } \l__tag_get_tmpc_tl { - \__tag_prop_gput:cno - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nno + { \int_use:N \c@g__tag_struct_abs_int } { parentrole } { \l__tag_get_tmpc_tl @@ -2536,14 +2598,14 @@ } } { - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { parentrole } { {\l__tag_struct_roletag_tl}{\l__tag_struct_roletag_NS_tl} } } - \seq_gpush:Nx \g__tag_struct_tag_stack_seq + \seq_gpush:Ne \g__tag_struct_tag_stack_seq {{\g__tag_struct_tag_tl}{\l__tag_struct_roletag_tl}} \tl_gset:NV \g__tag_struct_stack_current_tl \c@g__tag_struct_abs_int %\seq_show:N \g__tag_struct_stack_seq @@ -2566,7 +2628,7 @@ { g__tag_struct_ \l__tag_struct_stack_parent_tmpa_tl _prop} {S} \l__tag_tmpa_tl - \msg_warning:nnxxx + \msg_warning:nneee { tag } {role-parent-child} { \l__tag_get_parent_tmpa_tl/\l__tag_get_parent_tmpb_tl } @@ -2581,12 +2643,12 @@ \cs_gset_eq:NN \g__tag_struct_tag_tl \l__tag_role_remap_tag_tl \cs_gset_eq:NN \g__tag_struct_tag_NS_tl \l__tag_role_remap_NS_tl \__tag_struct_set_tag_info:eVV - { \int_eval:n {\c@g__tag_struct_abs_int} } + { \int_use:N \c@g__tag_struct_abs_int } \g__tag_struct_tag_tl \g__tag_struct_tag_NS_tl } - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { P } { \pdf_object_ref:e { __tag/struct/\l__tag_struct_stack_parent_tmpa_tl } @@ -2594,7 +2656,7 @@ %record this structure as kid: %\tl_show:N \g__tag_struct_stack_current_tl %\tl_show:N \l__tag_struct_stack_parent_tmpa_tl - \__tag_struct_kid_struct_gput_right:xx + \__tag_struct_kid_struct_gput_right:ee { \l__tag_struct_stack_parent_tmpa_tl } { \g__tag_struct_stack_current_tl } %\prop_show:c { g__tag_struct_\g__tag_struct_stack_current_tl _prop } @@ -2627,11 +2689,11 @@ } \seq_get:NNT \g__tag_struct_tag_stack_seq \l__tag_tmpa_tl { - \tl_gset:Nx \g__tag_struct_tag_tl + \tl_gset:Ne \g__tag_struct_tag_tl { \exp_last_unbraced:NV\use_i:nn \l__tag_tmpa_tl } \prop_get:NVNT\g__tag_role_tags_NS_prop \g__tag_struct_tag_tl\l__tag_tmpa_tl { - \tl_gset:Nx \g__tag_struct_tag_NS_tl { \l__tag_tmpa_tl } + \tl_gset:Ne \g__tag_struct_tag_NS_tl { \l__tag_tmpa_tl } } } } @@ -2646,22 +2708,22 @@ \__tag_check_if_active_struct:T { \prop_if_exist:cTF - { g__tag_struct_\__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop } % + { g__tag_struct_\__tag_property_ref:enn{tagpdfstruct-#1}{tagstruct}{unknown}_prop } % { \__tag_check_struct_used:n {#1} %add the label structure as kid to the current structure (can be the root) - \__tag_struct_kid_struct_gput_right:xx + \__tag_struct_kid_struct_gput_right:ee { \g__tag_struct_stack_current_tl } - { \__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0} } + { \__tag_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0} } %add the current structure to the labeled one as parents \__tag_prop_gput:cnx - { g__tag_struct_\__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } + { g__tag_struct_\__tag_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } { P } { \pdf_object_ref:e { __tag/struct/\g__tag_struct_stack_current_tl } } \__tag_struct_get_parentrole:eNN - {\__tag_ref_value:enn{tagpdfstruct-#1}{tagstruct}{0}} + {\__tag_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0}} \l__tag_tmpa_tl \l__tag_tmpb_tl \__tag_check_parent_child:VVVVN @@ -2678,7 +2740,7 @@ \cs_gset_eq:NN \g__tag_struct_tag_tl \l__tag_role_remap_tag_tl \cs_gset_eq:NN \g__tag_struct_tag_NS_tl \l__tag_role_remap_NS_tl \__tag_struct_set_tag_info:eVV - { \int_eval:n {\c@g__tag_struct_abs_int} } + { \int_use:N \c@g__tag_struct_abs_int } \g__tag_struct_tag_tl \g__tag_struct_tag_NS_tl } @@ -2703,12 +2765,12 @@ \msg_warning:nnn { tag } {struct-used-twice} {#1} } %add the label structure as kid to the current structure (can be the root) - \__tag_struct_kid_struct_gput_right:xx + \__tag_struct_kid_struct_gput_right:ee { \g__tag_struct_stack_current_tl } { #1 } %add the current structure to the labeled one as parents - \__tag_prop_gput:cnx - { g__tag_struct_#1_prop } + \__tag_struct_prop_gput:nne + { #1 } { P } { \pdf_object_ref:e { __tag/struct/\g__tag_struct_stack_current_tl } @@ -2731,7 +2793,7 @@ \cs_gset_eq:NN \g__tag_struct_tag_tl \l__tag_role_remap_tag_tl \cs_gset_eq:NN \g__tag_struct_tag_NS_tl \l__tag_role_remap_NS_tl \__tag_struct_set_tag_info:eVV - { \int_eval:n {\c@g__tag_struct_abs_int} } + { \int_use:N \c@g__tag_struct_abs_int } \g__tag_struct_tag_tl \g__tag_struct_tag_NS_tl } @@ -2756,19 +2818,18 @@ } \cs_generate_variant:Nn \tag_struct_gput:nnn {ene,nne} \cs_new_protected:Npn \__tag_struct_gput_data_ref:nn #1 #2 - % #1 receiving struct num, #2 list of object ref + % #1 receiving struct num, #2 list of object ref { \prop_get:cnN { g__tag_struct_#1_prop } {Ref} \l__tag_get_tmpc_tl - \__tag_prop_gput:cnx - { g__tag_struct_#1_prop } + \__tag_struct_prop_gput:nne + { #1 } { Ref } { \quark_if_no_value:NF\l__tag_get_tmpc_tl { \l__tag_get_tmpc_tl\c_space_tl }#2 } } \cs_generate_variant:Nn \__tag_struct_gput_data_ref:nn {ee} - \cs_new_protected:Npn \tag_struct_insert_annot:nn #1 #2 %#1 should be an object reference %#2 struct parent num { @@ -2778,7 +2839,7 @@ } } -\cs_generate_variant:Nn \tag_struct_insert_annot:nn {xx} +\cs_generate_variant:Nn \tag_struct_insert_annot:nn {xx,ee} \cs_new:Npn \tag_struct_parent_int: {\int_use:c { c@g__tag_parenttree_obj_int }} @@ -2799,13 +2860,20 @@ \__tag_attr_new_entry:nn #1 } } +\cs_if_free:NTF \seq_set_map_e:NNn + { + \cs_new_eq:NN \__tag_seq_set_map_e:NNn \seq_set_map_x:NNn + } + { + \cs_new_eq:NN \__tag_seq_set_map_e:NNn \seq_set_map_e:NNn + } \keys_define:nn { __tag / struct } { attribute-class .code:n = { - \clist_set:Nx \l__tag_tmpa_clist { #1 } + \clist_set:Ne \l__tag_tmpa_clist { #1 } \seq_set_from_clist:NN \l__tag_tmpb_seq \l__tag_tmpa_clist - \seq_set_map_x:NNn \l__tag_tmpa_seq \l__tag_tmpb_seq + \__tag_seq_set_map_e:NNn \l__tag_tmpa_seq \l__tag_tmpb_seq { \pdf_name_from_unicode_e:n {##1} } @@ -2817,7 +2885,7 @@ } \seq_gput_left:Nn\g__tag_attr_class_used_seq { ##1} } - \tl_set:Nx \l__tag_tmpa_tl + \tl_set:Ne \l__tag_tmpa_tl { \int_compare:nT { \seq_count:N \l__tag_tmpa_seq > 1 }{[} \seq_use:Nn \l__tag_tmpa_seq { \c_space_tl } @@ -2825,8 +2893,8 @@ } \int_compare:nT { \seq_count:N \l__tag_tmpa_seq > 0 } { - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { C } { \l__tag_tmpa_tl } %\prop_show:c { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } @@ -2837,15 +2905,15 @@ { attribute .code:n = % A property (attribute, value currently a dictionary) { - \clist_set:Nx \l__tag_tmpa_clist { #1 } + \clist_set:Ne \l__tag_tmpa_clist { #1 } \clist_if_empty:NF \l__tag_tmpa_clist { \seq_set_from_clist:NN \l__tag_tmpb_seq \l__tag_tmpa_clist - \seq_set_map_x:NNn \l__tag_tmpa_seq \l__tag_tmpb_seq + \__tag_seq_set_map_e:NNn \l__tag_tmpa_seq \l__tag_tmpb_seq { \pdf_name_from_unicode_e:n {##1} } - \tl_set:Nx \l__tag_attr_value_tl + \tl_set:Ne \l__tag_attr_value_tl { \int_compare:nT { \seq_count:N \l__tag_tmpa_seq > 1 }{[}%] } @@ -2857,27 +2925,27 @@ } \prop_if_in:NnF \g__tag_attr_objref_prop {##1} {%\prop_show:N \g__tag_attr_entries_prop - \pdf_object_unnamed_write:nx + \pdf_object_unnamed_write:ne { dict } { \prop_item:Nn\g__tag_attr_entries_prop {##1} } - \prop_gput:Nnx \g__tag_attr_objref_prop {##1} {\pdf_object_ref_last:} + \prop_gput:Nne \g__tag_attr_objref_prop {##1} {\pdf_object_ref_last:} } - \tl_put_right:Nx \l__tag_attr_value_tl + \tl_put_right:Ne \l__tag_attr_value_tl { \c_space_tl \prop_item:Nn \g__tag_attr_objref_prop {##1} } % \tl_show:N \l__tag_attr_value_tl } - \tl_put_right:Nx \l__tag_attr_value_tl + \tl_put_right:Ne \l__tag_attr_value_tl { %[ \int_compare:nT { \seq_count:N \l__tag_tmpa_seq > 1 }{]}% } % \tl_show:N \l__tag_attr_value_tl - \__tag_prop_gput:cnx - { g__tag_struct_\int_eval:n {\c@g__tag_struct_abs_int}_prop } + \__tag_struct_prop_gput:nne + { \int_use:N \c@g__tag_struct_abs_int } { A } { \l__tag_attr_value_tl } } diff --git a/Master/texmf-dist/tex/latex/tagpdf/tagpdfdocu-patches.sty b/Master/texmf-dist/tex/latex/tagpdf/tagpdfdocu-patches.sty index af9efe1f754..dd08c7e2acd 100644 --- a/Master/texmf-dist/tex/latex/tagpdf/tagpdfdocu-patches.sty +++ b/Master/texmf-dist/tex/latex/tagpdf/tagpdfdocu-patches.sty @@ -1,5 +1,5 @@ %\RequirePackage[enable-debug]{expl3}[2018/06/14] -\ProvidesExplPackage {tagpdfdocu-patches} {2023-08-30} {0.98l} +\ProvidesExplPackage {tagpdfdocu-patches} {2023-10-27} {0.98m} {patches/commands for the tagpdf documentation} \RequirePackage{etoolbox,xpatch} |