From ad42b96b7e6aa836e884a18da3f45d53dc779145 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 14 Apr 2024 03:00:50 +0000 Subject: CTAN sync 202404140300 --- macros/latex/contrib/tagpdf/README.md | 4 +- macros/latex/contrib/tagpdf/ex-AF-file.pdf | 66 +++++++-------- macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf | Bin 34295 -> 34295 bytes macros/latex/contrib/tagpdf/ex-attribute.pdf | 36 ++++---- macros/latex/contrib/tagpdf/ex-formula-problem.pdf | 26 +++--- macros/latex/contrib/tagpdf/ex-list.pdf | 94 ++++++++++----------- .../tagpdf/ex-mc-manual-para-split-obsolete.pdf | 14 +-- macros/latex/contrib/tagpdf/ex-softhyphen.pdf | 26 +++--- .../contrib/tagpdf/ex-spaceglyph-listings.pdf | 18 ++-- .../latex/contrib/tagpdf/ex-structure-obsolete.pdf | 38 ++++----- macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf | 62 +++++++------- macros/latex/contrib/tagpdf/tagpdf-backend.dtx | 38 ++++++--- macros/latex/contrib/tagpdf/tagpdf-checks.dtx | 4 +- macros/latex/contrib/tagpdf/tagpdf-code.pdf | Bin 1688215 -> 1713045 bytes macros/latex/contrib/tagpdf/tagpdf-data.dtx | 16 ++-- macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx | 6 +- macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx | 6 +- macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx | 4 +- macros/latex/contrib/tagpdf/tagpdf-roles.dtx | 4 +- macros/latex/contrib/tagpdf/tagpdf-space.dtx | 68 ++++++++++++++- macros/latex/contrib/tagpdf/tagpdf-struct.dtx | 94 ++++++++++----------- macros/latex/contrib/tagpdf/tagpdf-tree.dtx | 56 ++++++------ macros/latex/contrib/tagpdf/tagpdf-user.dtx | 10 +-- macros/latex/contrib/tagpdf/tagpdf.dtx | 38 +++++++-- macros/latex/contrib/tagpdf/tagpdf.pdf | Bin 1169481 -> 1171785 bytes macros/latex/contrib/tagpdf/tagpdf.tex | 18 +++- macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty | 2 +- 27 files changed, 427 insertions(+), 321 deletions(-) (limited to 'macros/latex/contrib/tagpdf') diff --git a/macros/latex/contrib/tagpdf/README.md b/macros/latex/contrib/tagpdf/README.md index 2dd2455fcf..d5ec6a6054 100644 --- a/macros/latex/contrib/tagpdf/README.md +++ b/macros/latex/contrib/tagpdf/README.md @@ -1,6 +1,6 @@ #tagpdf β€” A package to create tagged pdf -Packageversion: 0.99a -Packagedate: 2024/03/27 +Packageversion: 0.99b +Packagedate: 2024/04/12 Author: Ulrike Fischer, LaTeX Project Team ## License diff --git a/macros/latex/contrib/tagpdf/ex-AF-file.pdf b/macros/latex/contrib/tagpdf/ex-AF-file.pdf index d60ba4c719..88cce58755 100644 --- a/macros/latex/contrib/tagpdf/ex-AF-file.pdf +++ b/macros/latex/contrib/tagpdf/ex-AF-file.pdf @@ -1,11 +1,11 @@ %PDF-2.0 %ΜΥΑΤΕΨΠΔΖ 22 0 obj -<< /Subtype /application#2Fx-tex/Type /EmbeddedFile /Params<> /Length 151 >> +<< /Subtype /application#2Fx-tex/Type /EmbeddedFile /Params<> /Length 151 >> stream %% LaTeX2e file `example-input-file.tex' %% generated by the `filecontents' environment -%% from source `ex-AF-file' on 2024/03/26. +%% from source `ex-AF-file' on 2024/04/12. %% Additional info! @@ -15,7 +15,7 @@ endobj << /Type /Filespec /AFRelationship /Unspecified /F (example-input-file.tex) /UF /EF<> >> endobj 25 0 obj -<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<> /Length 19 >> +<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<> /Length 19 >> stream BΓ€r with teh shirt endstream @@ -24,7 +24,7 @@ endobj << /Type /Filespec /AFRelationship /Supplement /F (tag-AFfile1.txt) /UF /EF<> >> endobj 28 0 obj -<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<> /Length 4 >> +<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<> /Length 4 >> stream Duck endstream @@ -242,17 +242,17 @@ stream - 2024-03-26T12:37:25+01:00 + 2024-04-12T22:43:57+02:00 application/pdf ex-AF-file.tex LaTeX - 2024-03-26T12:37:25+01:00 - 2024-03-26T12:37:25+01:00 - 2024-03-26T12:37:25+01:00 + 2024-04-12T22:43:57+02:00 + 2024-04-12T22:43:57+02:00 + 2024-04-12T22:43:57+02:00 uuid:38d5a844-2217-4081-87cc-b2129dc357a6 - uuid:ad44a459-698d-4e23-82da-7687a47c02a1 + uuid:6b06569f-01cc-4520-8f3e-f24784f393ab three 1 @@ -317,7 +317,7 @@ endobj ] >> endobj 38 0 obj -<< /Limits [(ID.01) (ID.04)]/Names [(ID.01) 21 0 R (ID.02) 24 0 R (ID.03) 27 0 R (ID.04) 30 0 R ] >> +<< /Limits [(ID.02) (ID.05)]/Names [(ID.02) 21 0 R (ID.03) 24 0 R (ID.04) 27 0 R (ID.05) 30 0 R ] >> endobj 39 0 obj << /Kids [38 0 R] >> @@ -347,22 +347,22 @@ endobj << /Type /Namespace /NS (https://www.latex-project.org/ns/book/2022) /RoleMapNS 18 0 R >> endobj 19 0 obj -<< /Type /Namespace /NS (data:,1E5AC41C-2554-3F25-6E65-E30725E676D0) >> +<< /Type /Namespace /NS (data:,F7B920C5-38F1-B398-9D50-A556845632C) >> endobj 8 0 obj [ 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R ] endobj 21 0 obj -<< /Type /StructElem /S /Document /NS 11 0 R /P 5 0 R /K [24 0 R 27 0 R 30 0 R] /ID (ID.01) >> +<< /Type /StructElem /S /Document /NS 11 0 R /P 5 0 R /K [24 0 R 27 0 R 30 0 R] /ID (ID.02) >> endobj 24 0 obj -<< /Type /StructElem /AF [26 0 R] /S /P /NS 11 0 R /P 21 0 R /K <> /ID (ID.02) >> +<< /Type /StructElem /AF [26 0 R] /S /P /NS 11 0 R /P 21 0 R /K <> /ID (ID.03) >> endobj 27 0 obj -<< /Type /StructElem /AF [29 0 R] /S /P /NS 11 0 R /P 21 0 R /K <> /ID (ID.03) >> +<< /Type /StructElem /AF [29 0 R] /S /P /NS 11 0 R /P 21 0 R /K <> /ID (ID.04) >> endobj 30 0 obj -<< /Type /StructElem /AF [23 0 R] /S /P /NS 11 0 R /P 21 0 R /K <> /ID (ID.04) >> +<< /Type /StructElem /AF [23 0 R] /S /P /NS 11 0 R /P 21 0 R /K <> /ID (ID.05) >> endobj 5 0 obj << /Type /StructTreeRoot /Namespaces 8 0 R /IDTree 39 0 R /ParentTree 6 0 R /RoleMap 7 0 R /K 21 0 R >> @@ -449,7 +449,7 @@ endobj << /Type /Catalog /Pages 36 0 R /MarkInfo 37 0 R/Lang (de-DE)/Metadata 31 0 R/StructTreeRoot 5 0 R >> endobj 46 0 obj -<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240326123725+01'00')/ModDate (D:20240326123725+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> +<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240412224357+02'00')/ModDate (D:20240412224357+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> endobj xref 0 47 @@ -458,10 +458,10 @@ xref 0000000003 00000 f 0000000004 00000 f 0000000010 00000 f -0000016362 00000 n +0000016361 00000 n 0000013627 00000 n 0000013838 00000 n -0000015792 00000 n +0000015791 00000 n 0000014417 00000 n 0000000012 00000 f 0000014485 00000 n @@ -474,34 +474,34 @@ xref 0000015425 00000 n 0000015703 00000 n 0000000000 00000 f -0000015853 00000 n +0000015852 00000 n 0000000020 00000 n 0000000382 00000 n -0000015966 00000 n +0000015965 00000 n 0000000603 00000 n 0000000758 00000 n -0000016098 00000 n +0000016097 00000 n 0000000943 00000 n 0000001083 00000 n -0000016230 00000 n +0000016229 00000 n 0000001268 00000 n 0000013481 00000 n 0000013346 00000 n 0000012740 00000 n -0000020115 00000 n -0000020469 00000 n +0000020114 00000 n +0000020468 00000 n 0000013591 00000 n 0000013684 00000 n 0000013801 00000 n -0000016482 00000 n -0000018931 00000 n -0000016668 00000 n -0000019152 00000 n -0000020269 00000 n -0000020531 00000 n -0000020649 00000 n +0000016481 00000 n +0000018930 00000 n +0000016667 00000 n +0000019151 00000 n +0000020268 00000 n +0000020530 00000 n +0000020648 00000 n trailer -<< /Size 47 /Root 45 0 R /Info 46 0 R /ID [ <84F6CFEAE9C5A0FD2B6A9EA6CD2F0427> <84F6CFEAE9C5A0FD2B6A9EA6CD2F0427> ] >> +<< /Size 47 /Root 45 0 R /Info 46 0 R /ID [ <94D14D0D874136BA8E3138318B983D46> <94D14D0D874136BA8E3138318B983D46> ] >> startxref -20872 +20871 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf b/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf index 3287b8c4b7..2ee461f0b5 100644 Binary files a/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf and b/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf differ diff --git a/macros/latex/contrib/tagpdf/ex-attribute.pdf b/macros/latex/contrib/tagpdf/ex-attribute.pdf index 040eb74831..cf0457f4ce 100644 --- a/macros/latex/contrib/tagpdf/ex-attribute.pdf +++ b/macros/latex/contrib/tagpdf/ex-attribute.pdf @@ -216,17 +216,17 @@ stream - 2024-03-26T12:38:18+01:00 + 2024-04-12T22:45:00+02:00 application/pdf ex-attribute.tex LaTeX - 2024-03-26T12:38:18+01:00 - 2024-03-26T12:38:18+01:00 - 2024-03-26T12:38:18+01:00 + 2024-04-12T22:45:00+02:00 + 2024-04-12T22:45:00+02:00 + 2024-04-12T22:45:00+02:00 uuid:7a9cf910-1c19-429a-8f24-339c62d8a57f - uuid:01f40ebc-3025-46da-83d0-53b45ddca7a8 + uuid:ebb76e7a-6558-411c-8644-ae16263a1ccf three 1 @@ -331,7 +331,7 @@ endobj ] >> endobj 28 0 obj -<< /Limits [(ID.001) (ID.010)]/Names [(ID.001) 9 0 R (ID.002) 10 0 R (ID.003) 11 0 R (ID.004) 12 0 R (ID.005) 13 0 R (ID.006) 16 0 R (ID.007) 17 0 R (ID.008) 18 0 R (ID.009) 19 0 R (ID.010) 20 0 R ] >> +<< /Limits [(ID.002) (ID.011)]/Names [(ID.002) 9 0 R (ID.003) 10 0 R (ID.004) 11 0 R (ID.005) 12 0 R (ID.006) 13 0 R (ID.007) 16 0 R (ID.008) 17 0 R (ID.009) 18 0 R (ID.010) 19 0 R (ID.011) 20 0 R ] >> endobj 29 0 obj << /Kids [28 0 R] >> @@ -345,34 +345,34 @@ endobj >> endobj 9 0 obj -<< /Type /StructElem /S /Document /P 5 0 R /K 10 0 R /ID (ID.001) >> +<< /Type /StructElem /S /Document /P 5 0 R /K 10 0 R /ID (ID.002) >> endobj 10 0 obj -<< /Type /StructElem /S /Table /P 9 0 R /K [11 0 R 17 0 R] /ID (ID.002) >> +<< /Type /StructElem /S /Table /P 9 0 R /K [11 0 R 17 0 R] /ID (ID.003) >> endobj 11 0 obj -<< /Type /StructElem /S /THead /P 10 0 R /K 12 0 R /ID (ID.003) >> +<< /Type /StructElem /S /THead /P 10 0 R /K 12 0 R /ID (ID.004) >> endobj 12 0 obj -<< /Type /StructElem /S /TR /P 11 0 R /K [13 0 R 16 0 R] /ID (ID.004) >> +<< /Type /StructElem /S /TR /P 11 0 R /K [13 0 R 16 0 R] /ID (ID.005) >> endobj 13 0 obj -<< /Type /StructElem /A [ 14 0 R 15 0 R] /S /TH /P 12 0 R /K <> /ID (ID.005) >> +<< /Type /StructElem /A [ 14 0 R 15 0 R] /S /TH /P 12 0 R /K <> /ID (ID.006) >> endobj 16 0 obj -<< /Type /StructElem /C [/TH-col /Lay-borderdotted] /S /TH /P 12 0 R /K <> /ID (ID.006) >> +<< /Type /StructElem /C [/TH-col /Lay-borderdotted] /S /TH /P 12 0 R /K <> /ID (ID.007) >> endobj 17 0 obj -<< /Type /StructElem /S /TBody /P 10 0 R /K 18 0 R /ID (ID.007) >> +<< /Type /StructElem /S /TBody /P 10 0 R /K 18 0 R /ID (ID.008) >> endobj 18 0 obj -<< /Type /StructElem /S /TR /P 17 0 R /K [19 0 R 20 0 R] /ID (ID.008) >> +<< /Type /StructElem /S /TR /P 17 0 R /K [19 0 R 20 0 R] /ID (ID.009) >> endobj 19 0 obj -<< /Type /StructElem /S /TD /P 18 0 R /K <> /ID (ID.009) >> +<< /Type /StructElem /S /TD /P 18 0 R /K <> /ID (ID.010) >> endobj 20 0 obj -<< /Type /StructElem /S /TD /P 18 0 R /K <> /ID (ID.010) >> +<< /Type /StructElem /S /TD /P 18 0 R /K <> /ID (ID.011) >> endobj 5 0 obj << /Type /StructTreeRoot /IDTree 29 0 R /ClassMap 30 0 R /ParentTree 6 0 R /RoleMap 7 0 R /K 9 0 R >> @@ -450,7 +450,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.18.0)/Creator (LaTeX)/Title (Title)/CreationDate (D:20240326123818+01'00')/ModDate (D:20240326123818+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> +<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/Title (Title)/CreationDate (D:20240412224500+02'00')/ModDate (D:20240412224500+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> endobj xref 0 39 @@ -494,7 +494,7 @@ xref 0000017721 00000 n 0000017839 00000 n trailer -<< /Size 39 /Root 37 0 R /Info 38 0 R /ID [ <7CB01A17A29E54AFE61F74619149BAA2> <7CB01A17A29E54AFE61F74619149BAA2> ] >> +<< /Size 39 /Root 37 0 R /Info 38 0 R /ID [ ] >> startxref 18076 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-formula-problem.pdf b/macros/latex/contrib/tagpdf/ex-formula-problem.pdf index b6d83ea778..4f52377221 100644 --- a/macros/latex/contrib/tagpdf/ex-formula-problem.pdf +++ b/macros/latex/contrib/tagpdf/ex-formula-problem.pdf @@ -239,17 +239,17 @@ stream - 2024-03-26T12:38:44+01:00 + 2024-04-12T22:45:21+02:00 application/pdf ex-formula-problem.tex LaTeX - 2024-03-26T12:38:44+01:00 - 2024-03-26T12:38:44+01:00 - 2024-03-26T12:38:44+01:00 + 2024-04-12T22:45:21+02:00 + 2024-04-12T22:45:21+02:00 + 2024-04-12T22:45:21+02:00 uuid:8eb2ce1d-b2ec-440a-8bc2-73733eb3eeb0 - uuid:ddd0eb59-f589-4121-8907-771096906955 + uuid:b235cb52-00e7-4b87-80da-099ff7a08959 three 2 @@ -309,7 +309,7 @@ endobj ] >> endobj 24 0 obj -<< /Limits [(ID.01) (ID.05)]/Names [(ID.01) 9 0 R (ID.02) 10 0 R (ID.03) 11 0 R (ID.04) 17 0 R (ID.05) 18 0 R ] >> +<< /Limits [(ID.02) (ID.06)]/Names [(ID.02) 9 0 R (ID.03) 10 0 R (ID.04) 11 0 R (ID.05) 17 0 R (ID.06) 18 0 R ] >> endobj 25 0 obj << /Kids [24 0 R] >> @@ -318,19 +318,19 @@ endobj << /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) >> +<< /Type /StructElem /S /Document /P 5 0 R /K [10 0 R 11 0 R 17 0 R 18 0 R] /ID (ID.02) >> endobj 10 0 obj -<< /Type /StructElem /S /P /P 9 0 R /K <> /ID (ID.02) >> +<< /Type /StructElem /S /P /P 9 0 R /K <> /ID (ID.03) >> endobj 11 0 obj -<< /Type /StructElem /S /Formula /P 9 0 R /K <> /ID (ID.03) >> +<< /Type /StructElem /S /Formula /P 9 0 R /K <> /ID (ID.04) >> endobj 17 0 obj -<< /Type /StructElem /S /P /P 9 0 R /K <> /ID (ID.04) >> +<< /Type /StructElem /S /P /P 9 0 R /K <> /ID (ID.05) >> endobj 18 0 obj -<< /Type /StructElem /Alt /S /Formula /P 9 0 R /K <> /ID (ID.05) >> +<< /Type /StructElem /Alt /S /Formula /P 9 0 R /K <> /ID (ID.06) >> endobj 5 0 obj << /Type /StructTreeRoot /IDTree 25 0 R /ParentTree 6 0 R /RoleMap 7 0 R /K 9 0 R >> @@ -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.18.0)/Creator (LaTeX)/CreationDate (D:20240326123844+01'00')/ModDate (D:20240326123844+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> +<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240412224521+02'00')/ModDate (D:20240412224521+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> endobj xref 0 34 @@ -464,7 +464,7 @@ xref 0000018886 00000 n 0000019004 00000 n trailer -<< /Size 34 /Root 32 0 R /Info 33 0 R /ID [ <261B190B1D69BD2C62C12E52CE4751E9> <261B190B1D69BD2C62C12E52CE4751E9> ] >> +<< /Size 34 /Root 32 0 R /Info 33 0 R /ID [ ] >> startxref 19227 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-list.pdf b/macros/latex/contrib/tagpdf/ex-list.pdf index ccb7061fda..68136b26fc 100644 --- a/macros/latex/contrib/tagpdf/ex-list.pdf +++ b/macros/latex/contrib/tagpdf/ex-list.pdf @@ -210,17 +210,17 @@ stream - 2024-03-26T12:39:11+01:00 + 2024-04-12T22:45:43+02:00 application/pdf ex-list.tex LaTeX - 2024-03-26T12:39:11+01:00 - 2024-03-26T12:39:11+01:00 - 2024-03-26T12:39:11+01:00 + 2024-04-12T22:45:43+02:00 + 2024-04-12T22:45:43+02:00 + 2024-04-12T22:45:43+02:00 uuid:4c749825-1de7-414c-879f-29e4d0bef66e - uuid:265453a1-69b8-4a8b-89ff-82f48c105aba + uuid:2a093094-e2b9-4472-8f3a-4dbbebc7fd1c three 1 @@ -339,7 +339,7 @@ endobj ] >> endobj 56 0 obj -<< /Limits [(ID.001) (ID.039)]/Names [(ID.001) 9 0 R (ID.002) 10 0 R (ID.003) 11 0 R (ID.004) 12 0 R (ID.005) 13 0 R (ID.006) 14 0 R (ID.007) 15 0 R (ID.008) 16 0 R (ID.009) 17 0 R (ID.010) 18 0 R (ID.011) 19 0 R (ID.012) 20 0 R (ID.013) 21 0 R (ID.014) 22 0 R (ID.015) 23 0 R (ID.016) 24 0 R (ID.017) 25 0 R (ID.018) 26 0 R (ID.019) 27 0 R (ID.020) 28 0 R (ID.021) 29 0 R (ID.022) 30 0 R (ID.023) 31 0 R (ID.024) 32 0 R (ID.025) 33 0 R (ID.026) 34 0 R (ID.027) 35 0 R (ID.028) 36 0 R (ID.029) 37 0 R (ID.030) 38 0 R (ID.031) 39 0 R (ID.032) 40 0 R (ID.033) 41 0 R (ID.034) 42 0 R (ID.035) 43 0 R (ID.036) 44 0 R (ID.037) 45 0 R (ID.038) 46 0 R (ID.039) 47 0 R ] >> +<< /Limits [(ID.002) (ID.040)]/Names [(ID.002) 9 0 R (ID.003) 10 0 R (ID.004) 11 0 R (ID.005) 12 0 R (ID.006) 13 0 R (ID.007) 14 0 R (ID.008) 15 0 R (ID.009) 16 0 R (ID.010) 17 0 R (ID.011) 18 0 R (ID.012) 19 0 R (ID.013) 20 0 R (ID.014) 21 0 R (ID.015) 22 0 R (ID.016) 23 0 R (ID.017) 24 0 R (ID.018) 25 0 R (ID.019) 26 0 R (ID.020) 27 0 R (ID.021) 28 0 R (ID.022) 29 0 R (ID.023) 30 0 R (ID.024) 31 0 R (ID.025) 32 0 R (ID.026) 33 0 R (ID.027) 34 0 R (ID.028) 35 0 R (ID.029) 36 0 R (ID.030) 37 0 R (ID.031) 38 0 R (ID.032) 39 0 R (ID.033) 40 0 R (ID.034) 41 0 R (ID.035) 42 0 R (ID.036) 43 0 R (ID.037) 44 0 R (ID.038) 45 0 R (ID.039) 46 0 R (ID.040) 47 0 R ] >> endobj 57 0 obj << /Kids [56 0 R] >> @@ -355,121 +355,121 @@ endobj >> endobj 9 0 obj -<< /Type /StructElem /S /Document /P 5 0 R /K [12 0 R 24 0 R 36 0 R] /ID (ID.001) >> +<< /Type /StructElem /S /Document /P 5 0 R /K [12 0 R 24 0 R 36 0 R] /ID (ID.002) >> endobj 10 0 obj -<< /Type /StructElem /S /Artifact /P 5 0 R /ID (ID.002) >> +<< /Type /StructElem /S /Artifact /P 5 0 R /ID (ID.003) >> endobj 11 0 obj -<< /Type /StructElem /S /Artifact /P 5 0 R /ID (ID.003) >> +<< /Type /StructElem /S /Artifact /P 5 0 R /ID (ID.004) >> endobj 12 0 obj -<< /Type /StructElem /S /text-unit /P 9 0 R /K 13 0 R /ID (ID.004) >> +<< /Type /StructElem /S /text-unit /P 9 0 R /K 13 0 R /ID (ID.005) >> endobj 13 0 obj -<< /Type /StructElem /C /itemize /S /itemize /P 12 0 R /K [14 0 R 19 0 R] /ID (ID.005) >> +<< /Type /StructElem /C /itemize /S /itemize /P 12 0 R /K [14 0 R 19 0 R] /ID (ID.006) >> endobj 14 0 obj -<< /Type /StructElem /S /LI /P 13 0 R /K [15 0 R 16 0 R] /ID (ID.006) >> +<< /Type /StructElem /S /LI /P 13 0 R /K [15 0 R 16 0 R] /ID (ID.007) >> endobj 15 0 obj -<< /Type /StructElem /S /Lbl /P 14 0 R /K <> /ID (ID.007) >> +<< /Type /StructElem /S /Lbl /P 14 0 R /K <> /ID (ID.008) >> endobj 16 0 obj -<< /Type /StructElem /S /LBody /P 14 0 R /K 17 0 R /ID (ID.008) >> +<< /Type /StructElem /S /LBody /P 14 0 R /K 17 0 R /ID (ID.009) >> endobj 17 0 obj -<< /Type /StructElem /S /text-unit /P 16 0 R /K 18 0 R /ID (ID.009) >> +<< /Type /StructElem /S /text-unit /P 16 0 R /K 18 0 R /ID (ID.010) >> endobj 18 0 obj -<< /Type /StructElem /C /justify /S /text /P 17 0 R /K <> /ID (ID.010) >> +<< /Type /StructElem /C /justify /S /text /P 17 0 R /K <> /ID (ID.011) >> endobj 19 0 obj -<< /Type /StructElem /S /LI /P 13 0 R /K [20 0 R 21 0 R] /ID (ID.011) >> +<< /Type /StructElem /S /LI /P 13 0 R /K [20 0 R 21 0 R] /ID (ID.012) >> endobj 20 0 obj -<< /Type /StructElem /S /Lbl /P 19 0 R /K <> /ID (ID.012) >> +<< /Type /StructElem /S /Lbl /P 19 0 R /K <> /ID (ID.013) >> endobj 21 0 obj -<< /Type /StructElem /S /LBody /P 19 0 R /K 22 0 R /ID (ID.013) >> +<< /Type /StructElem /S /LBody /P 19 0 R /K 22 0 R /ID (ID.014) >> endobj 22 0 obj -<< /Type /StructElem /S /text-unit /P 21 0 R /K 23 0 R /ID (ID.014) >> +<< /Type /StructElem /S /text-unit /P 21 0 R /K 23 0 R /ID (ID.015) >> endobj 23 0 obj -<< /Type /StructElem /C /justify /S /text /P 22 0 R /K <> /ID (ID.015) >> +<< /Type /StructElem /C /justify /S /text /P 22 0 R /K <> /ID (ID.016) >> endobj 24 0 obj -<< /Type /StructElem /S /text-unit /P 9 0 R /K 25 0 R /ID (ID.016) >> +<< /Type /StructElem /S /text-unit /P 9 0 R /K 25 0 R /ID (ID.017) >> endobj 25 0 obj -<< /Type /StructElem /C /enumerate /S /enumerate /P 24 0 R /K [26 0 R 31 0 R] /ID (ID.017) >> +<< /Type /StructElem /C /enumerate /S /enumerate /P 24 0 R /K [26 0 R 31 0 R] /ID (ID.018) >> endobj 26 0 obj -<< /Type /StructElem /S /LI /P 25 0 R /K [27 0 R 28 0 R] /ID (ID.018) >> +<< /Type /StructElem /S /LI /P 25 0 R /K [27 0 R 28 0 R] /ID (ID.019) >> endobj 27 0 obj -<< /Type /StructElem /S /Lbl /P 26 0 R /K <> /ID (ID.019) >> +<< /Type /StructElem /S /Lbl /P 26 0 R /K <> /ID (ID.020) >> endobj 28 0 obj -<< /Type /StructElem /S /LBody /P 26 0 R /K 29 0 R /ID (ID.020) >> +<< /Type /StructElem /S /LBody /P 26 0 R /K 29 0 R /ID (ID.021) >> endobj 29 0 obj -<< /Type /StructElem /S /text-unit /P 28 0 R /K 30 0 R /ID (ID.021) >> +<< /Type /StructElem /S /text-unit /P 28 0 R /K 30 0 R /ID (ID.022) >> endobj 30 0 obj -<< /Type /StructElem /C /justify /S /text /P 29 0 R /K <> /ID (ID.022) >> +<< /Type /StructElem /C /justify /S /text /P 29 0 R /K <> /ID (ID.023) >> endobj 31 0 obj -<< /Type /StructElem /S /LI /P 25 0 R /K [32 0 R 33 0 R] /ID (ID.023) >> +<< /Type /StructElem /S /LI /P 25 0 R /K [32 0 R 33 0 R] /ID (ID.024) >> endobj 32 0 obj -<< /Type /StructElem /S /Lbl /P 31 0 R /K <> /ID (ID.024) >> +<< /Type /StructElem /S /Lbl /P 31 0 R /K <> /ID (ID.025) >> endobj 33 0 obj -<< /Type /StructElem /S /LBody /P 31 0 R /K 34 0 R /ID (ID.025) >> +<< /Type /StructElem /S /LBody /P 31 0 R /K 34 0 R /ID (ID.026) >> endobj 34 0 obj -<< /Type /StructElem /S /text-unit /P 33 0 R /K 35 0 R /ID (ID.026) >> +<< /Type /StructElem /S /text-unit /P 33 0 R /K 35 0 R /ID (ID.027) >> endobj 35 0 obj -<< /Type /StructElem /C /justify /S /text /P 34 0 R /K <> /ID (ID.027) >> +<< /Type /StructElem /C /justify /S /text /P 34 0 R /K <> /ID (ID.028) >> endobj 36 0 obj -<< /Type /StructElem /S /text-unit /P 9 0 R /K 37 0 R /ID (ID.028) >> +<< /Type /StructElem /S /text-unit /P 9 0 R /K 37 0 R /ID (ID.029) >> endobj 37 0 obj -<< /Type /StructElem /C /description /S /description /P 36 0 R /K [38 0 R 43 0 R] /ID (ID.029) >> +<< /Type /StructElem /C /description /S /description /P 36 0 R /K [38 0 R 43 0 R] /ID (ID.030) >> endobj 38 0 obj -<< /Type /StructElem /S /LI /P 37 0 R /K [39 0 R 40 0 R] /ID (ID.030) >> +<< /Type /StructElem /S /LI /P 37 0 R /K [39 0 R 40 0 R] /ID (ID.031) >> endobj 39 0 obj -<< /Type /StructElem /S /Lbl /P 38 0 R /K <> /ID (ID.031) >> +<< /Type /StructElem /S /Lbl /P 38 0 R /K <> /ID (ID.032) >> endobj 40 0 obj -<< /Type /StructElem /S /LBody /P 38 0 R /K 41 0 R /ID (ID.032) >> +<< /Type /StructElem /S /LBody /P 38 0 R /K 41 0 R /ID (ID.033) >> endobj 41 0 obj -<< /Type /StructElem /S /text-unit /P 40 0 R /K 42 0 R /ID (ID.033) >> +<< /Type /StructElem /S /text-unit /P 40 0 R /K 42 0 R /ID (ID.034) >> endobj 42 0 obj -<< /Type /StructElem /C /justify /S /text /P 41 0 R /K <> /ID (ID.034) >> +<< /Type /StructElem /C /justify /S /text /P 41 0 R /K <> /ID (ID.035) >> endobj 43 0 obj -<< /Type /StructElem /S /LI /P 37 0 R /K [44 0 R 45 0 R] /ID (ID.035) >> +<< /Type /StructElem /S /LI /P 37 0 R /K [44 0 R 45 0 R] /ID (ID.036) >> endobj 44 0 obj -<< /Type /StructElem /S /Lbl /P 43 0 R /K <> /ID (ID.036) >> +<< /Type /StructElem /S /Lbl /P 43 0 R /K <> /ID (ID.037) >> endobj 45 0 obj -<< /Type /StructElem /S /LBody /P 43 0 R /K 46 0 R /ID (ID.037) >> +<< /Type /StructElem /S /LBody /P 43 0 R /K 46 0 R /ID (ID.038) >> endobj 46 0 obj -<< /Type /StructElem /S /text-unit /P 45 0 R /K 47 0 R /ID (ID.038) >> +<< /Type /StructElem /S /text-unit /P 45 0 R /K 47 0 R /ID (ID.039) >> endobj 47 0 obj -<< /Type /StructElem /C /justify /S /text /P 46 0 R /K <> /ID (ID.039) >> +<< /Type /StructElem /C /justify /S /text /P 46 0 R /K <> /ID (ID.040) >> endobj 5 0 obj << /Type /StructTreeRoot /IDTree 57 0 R /ClassMap 58 0 R /ParentTree 6 0 R /RoleMap 7 0 R /K 9 0 R >> @@ -654,7 +654,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.18.0)/Creator (LaTeX)/CreationDate (D:20240326123911+01'00')/ModDate (D:20240326123911+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> +<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240412224543+02'00')/ModDate (D:20240412224543+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> endobj xref 0 73 @@ -732,7 +732,7 @@ xref 0000029593 00000 n 0000029711 00000 n trailer -<< /Size 73 /Root 71 0 R /Info 72 0 R /ID [ ] >> +<< /Size 73 /Root 71 0 R /Info 72 0 R /ID [ ] >> startxref 29934 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf b/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf index 652800313d..05f6c08b7e 100644 --- a/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf +++ b/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf @@ -243,17 +243,17 @@ stream - 2024-03-26T12:39:35+01:00 + 2024-04-12T22:46:02+02:00 application/pdf ex-mc-manual-para-split-obsolete.tex LaTeX - 2024-03-26T12:39:35+01:00 - 2024-03-26T12:39:35+01:00 - 2024-03-26T12:39:35+01:00 + 2024-04-12T22:46:02+02:00 + 2024-04-12T22:46:02+02:00 + 2024-04-12T22:46:02+02:00 uuid:c33d64b4-96ec-4e48-8f27-0b3edc831547 - uuid:12bee4ab-8ca2-46c2-859d-4cd10811d754 + uuid:bcd2c2e1-c962-4de2-807b-cf19c4e0788a three 2 @@ -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.18.0)/Creator (LaTeX)/CreationDate (D:20240326123935+01'00')/ModDate (D:20240326123935+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> +<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240412224602+02'00')/ModDate (D:20240412224602+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> 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 [ <57215501A1810E2849ED12EDF63B1113> <57215501A1810E2849ED12EDF63B1113> ] >> +<< /Size 26 /Root 24 0 R /Info 25 0 R /ID [ ] >> startxref 24201 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-softhyphen.pdf b/macros/latex/contrib/tagpdf/ex-softhyphen.pdf index a720c2fbb0..167f4c4098 100644 --- a/macros/latex/contrib/tagpdf/ex-softhyphen.pdf +++ b/macros/latex/contrib/tagpdf/ex-softhyphen.pdf @@ -210,17 +210,17 @@ stream - 2024-03-26T12:39:57+01:00 + 2024-04-12T22:46:20+02:00 application/pdf ex-softhyphen.tex LaTeX - 2024-03-26T12:39:57+01:00 - 2024-03-26T12:39:57+01:00 - 2024-03-26T12:39:57+01:00 + 2024-04-12T22:46:20+02:00 + 2024-04-12T22:46:20+02:00 + 2024-04-12T22:46:20+02:00 uuid:aa82e685-4098-469d-861c-3c45dfc700c7 - uuid:f76d8e6c-0c4b-405b-84b2-774e0fc02ef3 + uuid:519a7795-b9d2-4e15-8969-b897a5a4ef22 three 1 @@ -284,7 +284,7 @@ endobj ] >> endobj 21 0 obj -<< /Limits [(ID.01) (ID.05)]/Names [(ID.01) 9 0 R (ID.02) 10 0 R (ID.03) 11 0 R (ID.04) 12 0 R (ID.05) 13 0 R ] >> +<< /Limits [(ID.02) (ID.06)]/Names [(ID.02) 9 0 R (ID.03) 10 0 R (ID.04) 11 0 R (ID.05) 12 0 R (ID.06) 13 0 R ] >> endobj 22 0 obj << /Kids [21 0 R] >> @@ -293,19 +293,19 @@ endobj << /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) >> +<< /Type /StructElem /S /Document /P 5 0 R /K [10 0 R 12 0 R] /ID (ID.02) >> endobj 10 0 obj -<< /Type /StructElem /S /text-unit /P 9 0 R /K 11 0 R /ID (ID.02) >> +<< /Type /StructElem /S /text-unit /P 9 0 R /K 11 0 R /ID (ID.03) >> endobj 11 0 obj -<< /Type /StructElem /S /text /P 10 0 R /K <> /ID (ID.03) >> +<< /Type /StructElem /S /text /P 10 0 R /K <> /ID (ID.04) >> endobj 12 0 obj -<< /Type /StructElem /S /text-unit /P 9 0 R /K 13 0 R /ID (ID.04) >> +<< /Type /StructElem /S /text-unit /P 9 0 R /K 13 0 R /ID (ID.05) >> endobj 13 0 obj -<< /Type /StructElem /S /text /P 12 0 R /K <> /ID (ID.05) >> +<< /Type /StructElem /S /text /P 12 0 R /K <> /ID (ID.06) >> endobj 5 0 obj << /Type /StructTreeRoot /IDTree 22 0 R /ParentTree 6 0 R /RoleMap 7 0 R /K 9 0 R >> @@ -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.18.0)/Creator (LaTeX)/CreationDate (D:20240326123957+01'00')/ModDate (D:20240326123957+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> +<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240412224620+02'00')/ModDate (D:20240412224620+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> endobj xref 0 31 @@ -429,7 +429,7 @@ xref 0000018116 00000 n 0000018234 00000 n trailer -<< /Size 31 /Root 29 0 R /Info 30 0 R /ID [ <95EFC9564CFCC32D88728B22057337B9> <95EFC9564CFCC32D88728B22057337B9> ] >> +<< /Size 31 /Root 29 0 R /Info 30 0 R /ID [ ] >> startxref 18457 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf b/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf index 02d1bce7c7..3925dd28a1 100644 --- a/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf +++ b/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf @@ -210,17 +210,17 @@ stream - 2024-03-26T12:40:18+01:00 + 2024-04-12T22:46:38+02:00 application/pdf ex-spaceglyph-listings.tex LaTeX - 2024-03-26T12:40:18+01:00 - 2024-03-26T12:40:18+01:00 - 2024-03-26T12:40:18+01:00 + 2024-04-12T22:46:38+02:00 + 2024-04-12T22:46:38+02:00 + 2024-04-12T22:46:38+02:00 uuid:acdc2435-bf29-4e54-8d09-1c9b6dc32038 - uuid:1904eb5f-c1d3-4914-8986-45c554fbcee7 + uuid:6c942f83-dfd6-4e6f-8910-a9170ff614fd three 1 @@ -269,7 +269,7 @@ endobj ] >> endobj 17 0 obj -<< /Limits [(ID.01) (ID.01)]/Names [(ID.01) 9 0 R ] >> +<< /Limits [(ID.02) (ID.02)]/Names [(ID.02) 9 0 R ] >> endobj 18 0 obj << /Kids [17 0 R] >> @@ -278,7 +278,7 @@ endobj << /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) >> +<< /Type /StructElem /S /Document /P 5 0 R /ID (ID.02) >> endobj 5 0 obj << /Type /StructTreeRoot /IDTree 18 0 R /ParentTree 6 0 R /RoleMap 7 0 R /K 9 0 R >> @@ -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.18.0)/Creator (LaTeX)/CreationDate (D:20240326124018+01'00')/ModDate (D:20240326124018+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> +<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240412224638+02'00')/ModDate (D:20240412224638+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> endobj xref 0 27 @@ -386,7 +386,7 @@ xref 0000015488 00000 n 0000015606 00000 n trailer -<< /Size 27 /Root 25 0 R /Info 26 0 R /ID [ ] >> +<< /Size 27 /Root 25 0 R /Info 26 0 R /ID [ <4F03E017A0AB75B1D9F70C4C092338B6> <4F03E017A0AB75B1D9F70C4C092338B6> ] >> startxref 15829 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf b/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf index 8cdd375048..4e1d3bd333 100644 --- a/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf +++ b/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf @@ -210,17 +210,17 @@ stream - 2024-03-26T12:40:40+01:00 + 2024-04-12T22:46:56+02:00 application/pdf ex-structure-obsolete.tex LaTeX - 2024-03-26T12:40:40+01:00 - 2024-03-26T12:40:40+01:00 - 2024-03-26T12:40:40+01:00 + 2024-04-12T22:46:56+02:00 + 2024-04-12T22:46:56+02:00 + 2024-04-12T22:46:56+02:00 uuid:bf5e4a2b-cfa9-4fc5-878c-8f9d2ee95445 - uuid:32de8dd7-b94e-4d73-8082-8944bacf31fe + uuid:dfe9a42c-3fb3-4d0b-8cff-cbabbd4c8758 three 1 @@ -316,7 +316,7 @@ endobj ] >> endobj 28 0 obj -<< /Limits [(ID.001) (ID.011)]/Names [(ID.001) 9 0 R (ID.002) 10 0 R (ID.003) 11 0 R (ID.004) 12 0 R (ID.005) 13 0 R (ID.006) 14 0 R (ID.007) 15 0 R (ID.008) 16 0 R (ID.009) 17 0 R (ID.010) 18 0 R (ID.011) 19 0 R ] >> +<< /Limits [(ID.002) (ID.012)]/Names [(ID.002) 9 0 R (ID.003) 10 0 R (ID.004) 11 0 R (ID.005) 12 0 R (ID.006) 13 0 R (ID.007) 14 0 R (ID.008) 15 0 R (ID.009) 16 0 R (ID.010) 17 0 R (ID.011) 18 0 R (ID.012) 19 0 R ] >> endobj 29 0 obj << /Kids [28 0 R] >> @@ -325,37 +325,37 @@ endobj << /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) >> +<< /Type /StructElem /S /Document /P 5 0 R /K 10 0 R /ID (ID.002) >> endobj 10 0 obj -<< /Type /StructElem /S /Sect /P 9 0 R /K [11 0 R 12 0 R 13 0 R] /ID (ID.002) >> +<< /Type /StructElem /S /Sect /P 9 0 R /K [11 0 R 12 0 R 13 0 R] /ID (ID.003) >> endobj 11 0 obj -<< /Type /StructElem /S /H /P 10 0 R /K <> /ID (ID.003) >> +<< /Type /StructElem /S /H /P 10 0 R /K <> /ID (ID.004) >> endobj 12 0 obj -<< /Type /StructElem /S /P /P 10 0 R /K <> /ID (ID.004) >> +<< /Type /StructElem /S /P /P 10 0 R /K <> /ID (ID.005) >> endobj 13 0 obj -<< /Type /StructElem /S /L /P 10 0 R /K [14 0 R 17 0 R] /ID (ID.005) >> +<< /Type /StructElem /S /L /P 10 0 R /K [14 0 R 17 0 R] /ID (ID.006) >> endobj 14 0 obj -<< /Type /StructElem /S /LI /P 13 0 R /K [15 0 R 16 0 R] /ID (ID.006) >> +<< /Type /StructElem /S /LI /P 13 0 R /K [15 0 R 16 0 R] /ID (ID.007) >> endobj 15 0 obj -<< /Type /StructElem /S /Lbl /P 14 0 R /K <> /ID (ID.007) >> +<< /Type /StructElem /S /Lbl /P 14 0 R /K <> /ID (ID.008) >> endobj 16 0 obj -<< /Type /StructElem /S /LBody /P 14 0 R /K <> /ID (ID.008) >> +<< /Type /StructElem /S /LBody /P 14 0 R /K <> /ID (ID.009) >> endobj 17 0 obj -<< /Type /StructElem /S /LI /P 13 0 R /K [18 0 R 19 0 R] /ID (ID.009) >> +<< /Type /StructElem /S /LI /P 13 0 R /K [18 0 R 19 0 R] /ID (ID.010) >> endobj 18 0 obj -<< /Type /StructElem /S /Lbl /P 17 0 R /K <> /ID (ID.010) >> +<< /Type /StructElem /S /Lbl /P 17 0 R /K <> /ID (ID.011) >> endobj 19 0 obj -<< /Type /StructElem /S /LBody /P 17 0 R /K <> /ID (ID.011) >> +<< /Type /StructElem /S /LBody /P 17 0 R /K <> /ID (ID.012) >> endobj 5 0 obj << /Type /StructTreeRoot /IDTree 29 0 R /ParentTree 6 0 R /RoleMap 7 0 R /K 9 0 R >> @@ -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.18.0)/Creator (LaTeX)/CreationDate (D:20240326124040+01'00')/ModDate (D:20240326124040+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> +<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240412224656+02'00')/ModDate (D:20240412224656+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> endobj xref 0 44 @@ -575,7 +575,7 @@ xref 0000023426 00000 n 0000023544 00000 n trailer -<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <3FCC1FA6E2ABE954C0528DFC6D779B79> <3FCC1FA6E2ABE954C0528DFC6D779B79> ] >> +<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <070B43978F0B9DD29A40F81836E2FD94> <070B43978F0B9DD29A40F81836E2FD94> ] >> startxref 23767 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf b/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf index f37921e4b8..1edb5a1526 100644 --- a/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf +++ b/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf @@ -210,17 +210,17 @@ stream - 2024-03-26T12:41:03+01:00 + 2024-04-12T22:47:14+02:00 application/pdf ex-tagpdf-template.tex LaTeX - 2024-03-26T12:41:03+01:00 - 2024-03-26T12:41:03+01:00 - 2024-03-26T12:41:03+01:00 + 2024-04-12T22:47:14+02:00 + 2024-04-12T22:47:14+02:00 + 2024-04-12T22:47:14+02:00 uuid:f320abfc-f6ab-4d12-8719-d176f4d947cf - uuid:84306d89-0443-4615-8b86-67eb3a82fb4c + uuid:a58b5e07-b0ee-4a81-8000-b7d421e306ee three 1 @@ -273,7 +273,7 @@ endobj ] >> endobj 33 0 obj -<< /Limits [(ID.01) (ID.05)]/Names [(ID.01) 21 0 R (ID.02) 22 0 R (ID.03) 23 0 R (ID.04) 24 0 R (ID.05) 25 0 R ] >> +<< /Limits [(ID.02) (ID.06)]/Names [(ID.02) 21 0 R (ID.03) 22 0 R (ID.04) 23 0 R (ID.05) 24 0 R (ID.06) 25 0 R ] >> endobj 34 0 obj << /Kids [33 0 R] >> @@ -307,25 +307,25 @@ endobj << /Type /Namespace /NS (https://www.latex-project.org/ns/book/2022) /RoleMapNS 18 0 R >> endobj 19 0 obj -<< /Type /Namespace /NS (data:,626E17C6-5B4F-1E3-226B-789BC1772C4D) >> +<< /Type /Namespace /NS (data:,116ADA92-7CCD-B12C-F093-B4B64DA61C) >> endobj 8 0 obj [ 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R ] endobj 21 0 obj -<< /Type /StructElem /S /Document /NS 11 0 R /P 5 0 R /K 24 0 R /ID (ID.01) >> +<< /Type /StructElem /S /Document /NS 11 0 R /P 5 0 R /K 24 0 R /ID (ID.02) >> endobj 22 0 obj -<< /Type /StructElem /S /Artifact /NS 15 0 R /P 5 0 R /ID (ID.02) >> +<< /Type /StructElem /S /Artifact /NS 15 0 R /P 5 0 R /ID (ID.03) >> endobj 23 0 obj -<< /Type /StructElem /S /Artifact /NS 15 0 R /P 5 0 R /ID (ID.03) >> +<< /Type /StructElem /S /Artifact /NS 15 0 R /P 5 0 R /ID (ID.04) >> endobj 24 0 obj -<< /Type /StructElem /S /text-unit /NS 15 0 R /P 21 0 R /K 25 0 R /ID (ID.04) >> +<< /Type /StructElem /S /text-unit /NS 15 0 R /P 21 0 R /K 25 0 R /ID (ID.05) >> endobj 25 0 obj -<< /Type /StructElem /C /justify /S /text /NS 15 0 R /P 24 0 R /K <> /ID (ID.05) >> +<< /Type /StructElem /C /justify /S /text /NS 15 0 R /P 24 0 R /K <> /ID (ID.06) >> endobj 5 0 obj << /Type /StructTreeRoot /Namespaces 8 0 R /IDTree 34 0 R /ClassMap 35 0 R /ParentTree 6 0 R /RoleMap 7 0 R /K 21 0 R >> @@ -399,7 +399,7 @@ endobj << /Type /Catalog /Pages 31 0 R /MarkInfo 32 0 R/Lang (en-US)/Metadata 26 0 R/StructTreeRoot 5 0 R >> endobj 42 0 obj -<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240326124103+01'00')/ModDate (D:20240326124103+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> +<< /Producer (luahbtex-1.18.0)/Creator (LaTeX)/CreationDate (D:20240412224714+02'00')/ModDate (D:20240412224714+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)) >> endobj xref 0 43 @@ -408,10 +408,10 @@ xref 0000000003 00000 f 0000000004 00000 f 0000000010 00000 f -0000014807 00000 n +0000014806 00000 n 0000012015 00000 n 0000012225 00000 n -0000014242 00000 n +0000014241 00000 n 0000012868 00000 n 0000000012 00000 f 0000012936 00000 n @@ -424,30 +424,30 @@ xref 0000013876 00000 n 0000014154 00000 n 0000000000 00000 f -0000014303 00000 n -0000014400 00000 n -0000014487 00000 n -0000014574 00000 n -0000014673 00000 n +0000014302 00000 n +0000014399 00000 n +0000014486 00000 n +0000014573 00000 n +0000014672 00000 n 0000000020 00000 n 0000011869 00000 n 0000011734 00000 n 0000011500 00000 n -0000017428 00000 n -0000017782 00000 n +0000017427 00000 n +0000017781 00000 n 0000011979 00000 n 0000012056 00000 n 0000012188 00000 n 0000012804 00000 n -0000014944 00000 n -0000016385 00000 n -0000015031 00000 n -0000016606 00000 n -0000017582 00000 n -0000017844 00000 n -0000017962 00000 n +0000014943 00000 n +0000016384 00000 n +0000015030 00000 n +0000016605 00000 n +0000017581 00000 n +0000017843 00000 n +0000017961 00000 n trailer -<< /Size 43 /Root 41 0 R /Info 42 0 R /ID [ <4E141C6BCFC9003D8E382C7DD3DAFCC7> <4E141C6BCFC9003D8E382C7DD3DAFCC7> ] >> +<< /Size 43 /Root 41 0 R /Info 42 0 R /ID [ <6A478CD03D1F91A40D3812163E3E3FC9> <6A478CD03D1F91A40D3812163E3E3FC9> ] >> startxref -18185 +18184 %%EOF diff --git a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx index e15316252e..0f388b2542 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx @@ -47,13 +47,13 @@ % }^^A % } % -% \date{Version 0.99a, released 2024-03-27} +% \date{Version 0.99b, released 2024-04-12} % \maketitle % \begin{implementation} % \begin{macrocode} %<@@=tag> %<*luatex> -\ProvidesExplFile {tagpdf-luatex.def} {2024-03-27} {0.99a} +\ProvidesExplFile {tagpdf-luatex.def} {2024-04-12} {0.99b} {tagpdf~driver~for~luatex} % \end{macrocode} % \section{Loading the lua} @@ -164,8 +164,8 @@ local ProvidesLuaModule = { name = "tagpdf", - version = "0.99a", --TAGVERSION - date = "2024-03-27", --TAGDATE + version = "0.99b", --TAGVERSION + date = "2024-04-12", --TAGDATE description = "tagpdf lua code", license = "The LATEX Project Public License 1.3c" } @@ -215,7 +215,7 @@ functions ltx.@@.func.mark_shipout (): a wrapper around the core function which inserts the last EMC ltx.@@.func.fill_parent_tree_line (page): outputs the entries of the parenttree for this page ltx.@@.func.output_parenttree(): outputs the content of the parenttree - ltx.@@.func.pdf_object_ref(name): outputs the object reference for the object name + ltx.@@.func.pdf_object_ref(name,index): outputs the object reference for the object name ltx.@@.func.markspaceon(), ltx.@@.func.markspaceoff(): (de)activates the marking of positions for space chars ltx.@@.trace.show_mc_data (num,loglevel): shows ltx.@@.mc[num] is the current log level is >= loglevel ltx.@@.trace.show_all_mc_data (max,loglevel): shows a maximum about mc's if the current log level is >= loglevel @@ -237,9 +237,12 @@ functions % The interwordfont attr is set by the function |@@_mark_spaces| too and % stores the font, so that we can decide which font % to use for the real space char. +% The interwordspaceOff attr allows to locally suppress the insertion of +% real space chars, e.g. when they are inserted by other means (e.g. with |\char|). % \begin{macrocode} local mctypeattributeid = luatexbase.new_attribute ("g_@@_mc_type_attr") local mccntattributeid = luatexbase.new_attribute ("g_@@_mc_cnt_attr") +local iwspaceOffattributeid = luatexbase.new_attribute ("g__tag_interwordspaceOff_attr") local iwspaceattributeid = luatexbase.new_attribute ("g_@@_interwordspace_attr") local iwfontattributeid = luatexbase.new_attribute ("g_@@_interwordfont_attr") % \end{macrocode} @@ -698,17 +701,21 @@ local function @@_insert_bdc_node (head,current,tag,dict) end % \end{macrocode} % \end{macro} -% \begin{macro}{@@_pdf_object_ref,ltx.@@.func.pdf_object_ref} +% \begin{macro}{@@_pdf_object_ref} % This allows to reference a pdf object reserved with the l3pdf command by name. % The return value is |n 0 R|, if the object doesn't exist, n is 0. -% TODO: is uses internal l3pdf commands, this should be properly supported by l3pdf % \begin{macrocode} -local function @@_pdf_object_ref (name) - local tokenname = 'c__pdf_object_'..name..'_int' - local object = token.create(tokenname).mode ..' 0 R' +local function @@_pdf_object_ref (name,index) + local object + if ltx.pdf.object_id then + object = ltx.pdf.object_id (name,index) ..' 0 R' + else + local tokenname = 'c__pdf_object_'..name..'/'..index..'_int' + object = token.create(tokenname).mode ..' 0 R' + end return object end -ltx.@@.func.pdf_object_ref=@@_pdf_object_ref +ltx.@@.func.pdf_object_ref = @@_pdf_object_ref % \end{macrocode} % \end{macro} % @@ -877,7 +884,10 @@ local function @@_space_chars_shipout (box) local head = box.head if head then for n in node.traverse(head) do - local spaceattr = nodegetattribute(n,iwspaceattributeid) or -1 + local spaceattr = -1 + if not nodehasattribute(n,iwspaceOffattributeid) then + spaceattr = nodegetattribute(n,iwspaceattributeid) or -1 + end if n.id == HLIST then -- enter the hlist @@_space_chars_shipout (n) elseif n.id == VLIST then -- enter the vlist @@ -1222,7 +1232,7 @@ function ltx.@@.func.fill_parent_tree_line (page) local structnum = ltx.@@.mc[mcnum]["parent"] local propname = "g_@@_struct_"..structnum.."_prop" --local objref = ltx.@@.tables[propname]["objref"] or "XXXX" - local objref = @@_pdf_object_ref('@@/struct/'..structnum) + local objref = @@_pdf_object_ref('@@/struct',structnum) ltx.@@.trace.log("INFO PARENTTREE-STRUCT-OBJREF: =====>".. tostring(objref),5) numsentry = pdfpage .. " [".. objref .. "]" @@ -1235,7 +1245,7 @@ function ltx.@@.func.fill_parent_tree_line (page) local structnum = ltx.@@.mc[mcnum]["parent"] or 0 local propname = "g_@@_struct_"..structnum.."_prop" --local objref = ltx.@@.tables[propname]["objref"] or "XXXX" - local objref = @@_pdf_object_ref('@@/struct/'..structnum) + local objref = @@_pdf_object_ref('@@/struct',structnum) numsentry = numsentry .. " ".. objref end numsentry = numsentry .. "] " diff --git a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx index 63b0185c47..f786ede615 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.99a, released 2024-03-27} +% \date{Version 0.99b, released 2024-04-12} % \maketitle % \begin{documentation} % \section{Commands} @@ -331,7 +331,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-checks-code} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-checks-code} {2024-04-12} {0.99b} {part of tagpdf - code related to checks, conditionals, debugging and messages} % % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-code.pdf b/macros/latex/contrib/tagpdf/tagpdf-code.pdf index ffb7984b16..10a9c1dc8d 100644 Binary files a/macros/latex/contrib/tagpdf/tagpdf-code.pdf and b/macros/latex/contrib/tagpdf/tagpdf-code.pdf differ diff --git a/macros/latex/contrib/tagpdf/tagpdf-data.dtx b/macros/latex/contrib/tagpdf/tagpdf-data.dtx index fd99bcfdec..d8cba42142 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-data.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-data.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.99a, released 2024-03-27} +% \date{Version 0.99b, released 2024-04-12} % \maketitle % \begin{documentation} % This files contains a various data files which are read in @@ -61,7 +61,7 @@ % latex-lab has also a namespace module, which takes precendence! % \begin{macrocode} %<*ns-latex> -%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-03-27} {0.99a} +%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-04-12} {0.99b} %% {latex} {https://www.latex-project.org/ns/dflt/2022}{} title, Title, pdf2, part, Title, pdf2, @@ -93,7 +93,7 @@ text, P, pdf2, % It is bound to change % \begin{macrocode} %<*ns-latex-book> -%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-03-27} {0.99a} +%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-04-12} {0.99b} %% {latex-book} {https://www.latex-project.org/ns/book/2022}{} chapter, H1,pdf2, section, H2,pdf2, @@ -107,7 +107,7 @@ subparagraph, H6,pdf2, % \section{The pdf namespace data} % \begin{macrocode} %<*ns-pdf> -%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-03-27} {0.99a} +%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-04-12} {0.99b} %% {pdf} {http://iso.org/pdf/ssn}{} StructTreeRoot,StructTreeRoot,pdf,D, Document,Document,pdf,D, @@ -175,7 +175,7 @@ Strong,Span,pdf,I, % \section{The pdf 2.0 namespace data} % \begin{macrocode} %<*ns-pdf2> -%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-03-27} {0.99a} +%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-04-12} {0.99b} %% {pdf2} {http://iso.org/pdf2/ssn}{} StructTreeRoot,StructTreeRoot,pdf2,D, Document,Document,pdf2,D, @@ -232,7 +232,7 @@ Strong,Strong,pdf2,I, % \section{The mathml namespace data} % \begin{macrocode} %<*ns-mathml> -%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-03-27} {0.99a} +%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-04-12} {0.99b} % {mathml}{http://www.w3.org/1998/Math/MathML}{} abs,abs,mathml, and,and,mathml, @@ -467,7 +467,7 @@ xor,xor,mathml, % This will perhaps change in future. % \begin{macrocode} %<*parent-child> -%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-03-27} {0.99a} +%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-04-12} {0.99b} ,,,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,βˆ…,βˆ… @@ -522,7 +522,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} {2024-03-27} {0.99a} +%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-04-12} {0.99b} ,,,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/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx index e5477fe165..b1ce874db6 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99a, released 2024-03-27} +% \date{Version 0.99b, released 2024-04-12} % \maketitle % \begin{documentation} % \end{documentation} @@ -55,11 +55,11 @@ % \begin{macrocode} %<@@=tag> %<*generic> -\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-04-12} {0.99b} {part of tagpdf - code related to marking chunks - generic mode} % %<*debug> -\ProvidesExplPackage {tagpdf-debug-generic} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-debug-generic} {2024-04-12} {0.99b} {part of tagpdf - debugging code related to marking chunks - generic mode} % % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx index c3789356d9..9db6cc95fa 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99a, released 2024-03-27} +% \date{Version 0.99b, released 2024-04-12} % \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} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-04-12} {0.99b} {tagpdf - mc code only for the luamode } % %<*debug> -\ProvidesExplPackage {tagpdf-debug-lua} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-debug-lua} {2024-04-12} {0.99b} {part of tagpdf - debugging code related to marking chunks - lua mode} % % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx index 54f5f2dca6..aeadb889d4 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99a, released 2024-03-27} +% \date{Version 0.99b, released 2024-04-12} % \maketitle % \begin{documentation} % \section{Public Commands} @@ -181,7 +181,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-mc-code-shared} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-mc-code-shared} {2024-04-12} {0.99b} {part of tagpdf - code related to marking chunks - code shared by generic and luamode } % diff --git a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx index 77379192d5..de239c2db7 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99a, released 2024-03-27} +% \date{Version 0.99b, released 2024-04-12} % \maketitle % \begin{documentation} % \begin{function} @@ -98,7 +98,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-roles-code} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-roles-code} {2024-04-12} {0.99b} {part of tagpdf - code related to roles and structure names} % % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-space.dtx b/macros/latex/contrib/tagpdf/tagpdf-space.dtx index 16adb24051..62c9fd1eca 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-space.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-space.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99a, released 2024-03-27} +% \date{Version 0.99b, released 2024-04-12} % \maketitle % \begin{documentation} % \begin{function}{activate/space (setup-key),interwordspace (deprecated)} @@ -66,7 +66,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-space-code} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-space-code} {2024-04-12} {0.99b} {part of tagpdf - code related to real space chars} % % \end{macrocode} @@ -106,8 +106,8 @@ \pdfglyphtounicode{space}{0020} \keys_define:nn { @@ / setup } { - activate/spaces/true .code:n = { \pdfinterwordspaceon }, - activate/spaces/false .code:n = { \pdfinterwordspaceoff }, + activate/spaces/true .code:n = { \AddToHook{shipout/firstpage}[tagpdf/space]{\pdfinterwordspaceon} }, + activate/spaces/false .code:n = { \RemoveFromHook{shipout/firstpage}[tagpdf/space] }, activate/spaces .default:n = true, } } @@ -161,6 +161,66 @@ \group_end: } } +% \end{macrocode} +% +% We need also a command to interrupt the insertion of real space +% chars in places where we want to insert manually special spaces. +% In pdftex this can be done with \cs{pdfinterwordspaceoff} +% and \cs{pdfinterwordspaceon}. These commands insert whatsits +% and this mean they act globally. In luatex a attribute is +% used to this effect, for consistency this is also set globally. +% +% +% \begin{macro}{\tag_spacechar_on:,\tag_spacechar_off:} +% The off command sets the attributes in luatex. +% \begin{macrocode} +\cs_new_protected:Npn \tag_spacechar_off: {} +\cs_new_protected:Npn \tag_spacechar_on: {} + +\sys_if_engine_luatex:T + { + \cs_set_protected:Npn \tag_spacechar_off: + { + \lua_now:e + { + tex.setattribute + ( + "global", + luatexbase.attributes.g_@@_interwordspaceOff_attr, + 1 + ) + } + } + \cs_set_protected:Npn \tag_spacechar_on: + { + \lua_now:e + { + tex.setattribute + ( + "global", + luatexbase.attributes.g_@@_interwordspaceOff_attr, + -2147483647 + ) + } + } + } +\sys_if_engine_pdftex:T + { + \sys_if_output_pdf:T + { + \cs_set_protected:Npn \tag_spacechar_off: + { + \pdfinterwordspaceoff + } + \cs_set_protected:Npn \tag_spacechar_on: + { + \pdfinterwordspaceon + } + } + } +% \end{macrocode} +% \end{macro} +% \begin{macrocode} % % \end{macrocode} % \end{macro} diff --git a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx index 8b1a9555d5..04ffa900cc 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99a, released 2024-03-27} +% \date{Version 0.99b, released 2024-04-12} % \maketitle % \begin{documentation} % \section{Public Commands} @@ -285,7 +285,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-struct-code} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-struct-code} {2024-04-12} {0.99b} {part of tagpdf - code related to storing structure} % % \end{macrocode} @@ -297,7 +297,7 @@ % % \begin{macrocode} %\newcounter { g_@@_struct_abs_int } -%\int_gzero:N \c@g_@@_struct_abs_int +%\int_gset:Nn \c@g_@@_struct_abs_int { 1 } % \end{macrocode} % \end{variable} % @@ -334,7 +334,7 @@ % When a sequence is opened it's number is put on the stack. % \begin{macrocode} \seq_new:N \g_@@_struct_stack_seq -\seq_gpush:Nn \g_@@_struct_stack_seq {0} +\seq_gpush:Nn \g_@@_struct_stack_seq {1} % \end{macrocode} % \end{variable} % @@ -365,8 +365,8 @@ % normally it should have only one kid, e.g. the document element. % The data of the StructTreeRoot and the StructElem are in properties: -% |\g_@@_struct_0_prop| for the root and -% |\g_@@_struct_N_prop|, $N \geq =1$ for the other. +% |\g_@@_struct_1_prop| for the root and +% |\g_@@_struct_N_prop|, $N \geq =2$ for the other. % % This creates quite a number of properties, so perhaps we will have to % do this more efficiently in the future. @@ -530,7 +530,7 @@ % \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 +% created manually. The underlying object is |@@/struct/1| which is currently % created in the tree code (TODO move it here). % The |ParentTree| and |RoleMap| entries are added at begin document % in the tree code as they refer to object which are setup in other parts of the @@ -538,7 +538,7 @@ % % \begin{macrocode} %<*package> -\tl_gset:Nn \g_@@_struct_stack_current_tl {0} +\tl_gset:Nn \g_@@_struct_stack_current_tl {1} % \end{macrocode} % \begin{macro}{\@@_pdf_name_e:n} % \begin{macrocode} @@ -547,30 +547,30 @@ % \end{macrocode} % \end{macro} % -% \begin{variable}{g_@@_struct_0_prop,g_@@_struct_kids_0_seq} +% \begin{variable}{g_@@_struct_1_prop,g_@@_struct_kids_1_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_new:c { g_@@_struct_1_prop } +\@@_new_output_prop_handler:n {1} +\@@_seq_new:c { g_@@_struct_kids_1_seq } \@@_struct_prop_gput:nne - { 0 } + { 1 } { Type } { \pdf_name_from_unicode_e:n {StructTreeRoot} } \@@_struct_prop_gput:nne - { 0 } + { 1 } { S } { \pdf_name_from_unicode_e:n {StructTreeRoot} } \@@_struct_prop_gput:nne - { 0 } + { 1 } { rolemap } { {StructTreeRoot}{pdf} } \@@_struct_prop_gput:nne - { 0 } + { 1 } { parentrole } { {StructTreeRoot}{pdf} } @@ -581,7 +581,7 @@ \pdf_version_compare:NnF < {2.0} { \@@_struct_prop_gput:nne - { 0 } + { 1 } { Namespaces } { \pdf_object_ref:n { @@/tree/namespaces } } } @@ -589,10 +589,10 @@ % \end{macrocode} % In debug mode we have to copy the root manually as it is already setup: % \begin{macrocode} -%\prop_new:c { g_@@_struct_debug_0_prop } -%\seq_new:c { g_@@_struct_debug_kids_0_seq } -%\prop_gset_eq:cc { g_@@_struct_debug_0_prop }{ g_@@_struct_0_prop } -%\prop_gremove:cn { g_@@_struct_debug_0_prop }{Namespaces} +%\prop_new:c { g_@@_struct_debug_1_prop } +%\seq_new:c { g_@@_struct_debug_kids_1_seq } +%\prop_gset_eq:cc { g_@@_struct_debug_1_prop }{ g_@@_struct_1_prop } +%\prop_gremove:cn { g_@@_struct_debug_1_prop }{Namespaces} % \end{macrocode} % \end{variable} % @@ -739,7 +739,7 @@ \@@_seq_gput_right:ce { g_@@_struct_kids_#1_seq } { - \pdf_object_ref:n { @@/struct/#2 } + \pdf_object_ref_indexed:nn { @@/struct }{ #2 } } % \seq_gput_right:cn % { g_@@_struct_debug_kids_#1_seq } @@ -944,7 +944,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_struct_write_obj:n #1 % #1 is the struct num { - \pdf_object_if_exist:nTF { @@/struct/#1 } + \prop_if_exist:cTF { g_@@_struct_#1_prop } { % \end{macrocode} % It can happen that a structure is not used and so has not parent. @@ -953,7 +953,7 @@ % \begin{macrocode} \prop_get:cnNF { g_@@_struct_#1_prop } {P}\l_@@_tmpb_tl { - \prop_gput:cne { g_@@_struct_#1_prop } {P}{\pdf_object_ref:n { @@/struct/0 }} + \prop_gput:cne { g_@@_struct_#1_prop } {P}{\pdf_object_ref_indexed:nn { @@/struct }{1}} \prop_gput:cne { g_@@_struct_#1_prop } {S}{/Artifact} \seq_if_empty:cF {g_@@_struct_kids_#1_seq} { @@ -966,14 +966,13 @@ } \@@_struct_fill_kid_key:n { #1 } \@@_struct_get_dict_content:nN { #1 } \l_@@_tmpa_tl - \exp_args:Ne - \pdf_object_write:nne - { @@/struct/#1 } - {dict} - { - \l_@@_tmpa_tl\c_space_tl - /ID~\@@_struct_get_id:n{#1} - } + \pdf_object_write_indexed:nnne + { @@/struct }{ #1 } + {dict} + { + \l_@@_tmpa_tl\c_space_tl + /ID~\@@_struct_get_id:n{#1} + } } { @@ -1038,7 +1037,7 @@ #2 } { - \pdf_object_ref:e { @@/struct/\l_@@_struct_stack_parent_tmpa_tl } + \pdf_object_ref_indexed:nn { @@/struct }{ \l_@@_struct_stack_parent_tmpa_tl } } % increase the int: \int_gincr:N \c@g_@@_parenttree_obj_int @@ -1409,14 +1408,14 @@ { \pdf_object_if_exist:nTF {#1} { - \@@_struct_add_AF:ee { 0 }{\pdf_object_ref:n {#1}} + \@@_struct_add_AF:ee { 1 }{\pdf_object_ref:n {#1}} \@@_struct_prop_gput:nne - { 0 } + { 1 } { AF } { [ \tl_use:c - { g_@@_struct_0_AF_tl } + { g_@@_struct_1_AF_tl } ] } } @@ -1455,9 +1454,8 @@ \@@_new_output_prop_handler:n {\int_eval:n { \c@g_@@_struct_abs_int }} \@@_seq_new:c { g_@@_struct_kids_\int_eval:n { \c@g_@@_struct_abs_int }_seq} % \seq_new:c { g_@@_struct_debug_kids_\int_eval:n {\c@g_@@_struct_abs_int}_seq } - \exp_args:Ne - \pdf_object_new:n - { @@/struct/\int_eval:n { \c@g_@@_struct_abs_int } } + \pdf_object_new_indexed:nn { @@/struct } + { \c@g_@@_struct_abs_int } \@@_struct_prop_gput:nnn { \int_use:N \c@g_@@_struct_abs_int } { Type } @@ -1607,7 +1605,7 @@ { \int_use:N \c@g_@@_struct_abs_int } { P } { - \pdf_object_ref:e { @@/struct/\l_@@_struct_stack_parent_tmpa_tl } + \pdf_object_ref_indexed:nn { @@/struct} { \l_@@_struct_stack_parent_tmpa_tl } } % \end{macrocode} % \begin{macrocode} @@ -1713,19 +1711,19 @@ %add the label structure as kid to the current structure (can be the root) \@@_struct_kid_struct_gput_right:ee { \g_@@_struct_stack_current_tl } - { \@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0} } + { \@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1} } %add the current structure to the labeled one as parents \@@_prop_gput:cne - { g_@@_struct_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } + { g_@@_struct_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}_prop } { P } { - \pdf_object_ref:e { @@/struct/\g_@@_struct_stack_current_tl } + \pdf_object_ref_indexed:nn { @@/struct } { \g_@@_struct_stack_current_tl } } % \end{macrocode} % debug code % \begin{macrocode} % \prop_gput:cne -% { g_@@_struct_debug_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0}_prop } +% { g_@@_struct_debug_\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}_prop } % { P } % { % parent~structure:~\g_@@_struct_stack_current_tl\c_space_tl=~ @@ -1737,7 +1735,7 @@ % the global tl-vars: % \begin{macrocode} \@@_struct_get_parentrole:eNN - {\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{0}} + {\@@_property_ref:enn{tagpdfstruct-#1}{tagstruct}{1}} \l_@@_tmpa_tl \l_@@_tmpb_tl \@@_check_parent_child:VVVVN @@ -1798,7 +1796,7 @@ { #1 } { P } { - \pdf_object_ref:e { @@/struct/\g_@@_struct_stack_current_tl } + \pdf_object_ref_indexed:nn { @@/struct }{ \g_@@_struct_stack_current_tl } } % \prop_gput:cne % { g_@@_struct_debug_#1_prop } @@ -1851,7 +1849,7 @@ %<*package> \cs_new:Npn \tag_struct_object_ref:n #1 { - \pdf_object_ref:n {@@/struct/#1} + \pdf_object_ref_indexed:nn {@@/struct}{ #1 } } \cs_generate_variant:Nn \tag_struct_object_ref:n {e} % \end{macrocode} @@ -1938,7 +1936,7 @@ % \section{Attributes and attribute classes} % \begin{macrocode} %<*header> -\ProvidesExplPackage {tagpdf-attr-code} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-attr-code} {2024-04-12} {0.99b} {part of tagpdf - code related to attributes and attribute classes} % % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx index bfcbd6b6c9..6319250523 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx @@ -47,13 +47,13 @@ % }^^A % } % -% \date{Version 0.99a, released 2024-03-27} +% \date{Version 0.99b, released 2024-04-12} % \maketitle % \begin{implementation} % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-tree-code} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-tree-code} {2024-04-12} {0.99b} {part of tagpdf - code related to writing trees and dictionaries to the pdf} % % \end{macrocode} @@ -102,19 +102,19 @@ % If there is an OpenAction entry we must update it, % so that it contains also a structure destination. % We do it late so that we can win, but before the pdfmanagement hook. -% \begin{macro}{@@/struct/0} +% \begin{macro}{@@/struct/1} % This is the object for the root object, the StructTreeRoot % \begin{macrocode} -\pdf_object_new:n { @@/struct/0 } +\pdf_object_new_indexed:nn { @@/struct }{ 1 } % \end{macrocode} % \end{macro} % % \begin{variable}{\g_@@_tree_openaction_struct_tl} % We need a variable that indicates which structure is wanted in the OpenAction. By default we use -% 1 (the Document structure). +% 2 (the Document structure). % \begin{macrocode} \tl_new:N \g_@@_tree_openaction_struct_tl -\tl_gset:Nn \g_@@_tree_openaction_struct_tl {1} +\tl_gset:Nn \g_@@_tree_openaction_struct_tl { 2 } % \end{macrocode} % \end{variable} % @@ -155,7 +155,7 @@ << /S/GoTo \c_space_tl /D~\l_@@_tmpa_tl\c_space_tl - /SD~[\pdf_object_ref:e{__tag/struct/\g_@@_tree_openaction_struct_tl} + /SD~[\pdf_object_ref_indexed:nn{@@/struct}{\g_@@_tree_openaction_struct_tl} % \end{macrocode} % there should be always a /Fit etc in the array but better play safe here ... % \begin{macrocode} @@ -178,7 +178,7 @@ \pdfmanagement_add:nne { Catalog } { StructTreeRoot } - { \pdf_object_ref:n { @@/struct/0 } } + { \pdf_object_ref_indexed:nn { @@/struct } { 1 } } \@@_tree_update_openaction: } } @@ -214,12 +214,12 @@ \tl_clear:N \l_@@_tmpa_tl \tl_clear:N \l_@@_tmpb_tl \int_zero:N \l_@@_tmpa_int - \int_step_inline:nn {\c@g_@@_struct_abs_int} + \int_step_inline:nnn {2} {\c@g_@@_struct_abs_int} { \int_incr:N\l_@@_tmpa_int \tl_put_right:Ne \l_@@_tmpa_tl { - \@@_struct_get_id:n{##1}~\pdf_object_ref:n{@@/struct/##1}~ + \@@_struct_get_id:n{##1}~\pdf_object_ref_indexed:nn {@@/struct}{##1}~ } \int_compare:nNnF {\l_@@_tmpa_int}<{50} % { @@ -245,7 +245,7 @@ } \pdf_object_unnamed_write:ne {dict}{/Kids~[\l_@@_tmpb_tl]} \@@_prop_gput:cne - { g_@@_struct_0_prop } + { g_@@_struct_1_prop } { IDTree } { \pdf_object_ref_last: } } @@ -259,18 +259,18 @@ \cs_new_protected:Npn \@@_tree_write_structtreeroot: { \@@_prop_gput:cne - { g_@@_struct_0_prop } + { g_@@_struct_1_prop } { ParentTree } { \pdf_object_ref:n { @@/tree/parenttree } } \@@_prop_gput:cne - { g_@@_struct_0_prop } + { g_@@_struct_1_prop } { RoleMap } { \pdf_object_ref:n { @@/tree/rolemap } } - \@@_struct_fill_kid_key:n { 0 } - \prop_gremove:cn { g_@@_struct_0_prop } {S} - \@@_struct_get_dict_content:nN { 0 } \l_@@_tmpa_tl - \pdf_object_write:nne - { @@/struct/0 } + \@@_struct_fill_kid_key:n { 1 } + \prop_gremove:cn { g_@@_struct_1_prop } {S} + \@@_struct_get_dict_content:nN { 1 } \l_@@_tmpa_tl + \pdf_object_write_indexed:nnne + { @@/struct } { 1 } {dict} { \l_@@_tmpa_tl @@ -284,7 +284,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_tree_write_structelements: { - \int_step_inline:nnnn {1}{1}{\c@g_@@_struct_abs_int} + \int_step_inline:nnnn {2}{1}{\c@g_@@_struct_abs_int} { \@@_struct_write_obj:n { ##1 } } @@ -376,7 +376,7 @@ \int_eval:n {##1-1}\c_space_tl [\c_space_tl %] } - \int_step_inline:nnnn + \int_step_inline:nnnn %####1 {0} {1} { \prop_count:N \l_@@_tmpa_prop -1 } @@ -385,13 +385,13 @@ {% page#1:mcid##1:\l_@@_tmpa_tl :content \tl_put_right:Ne \l_@@_parenttree_content_tl { - \pdf_object_if_exist:eTF { @@/struct/\l_@@_tmpa_tl } - { - \pdf_object_ref:e { @@/struct/\l_@@_tmpa_tl } - } - { - null - } + \prop_if_exist:cTF { g_@@_struct_ \l_@@_tmpa_tl _prop } + { + \pdf_object_ref_indexed:nn { @@/struct }{ \l_@@_tmpa_tl } + } + { + null + } \c_space_tl } } @@ -535,7 +535,7 @@ {dict} { \l_@@_tmpa_tl } \@@_prop_gput:cne - { g_@@_struct_0_prop } + { g_@@_struct_1_prop } { ClassMap } { \pdf_object_ref:n { @@/tree/classmap } } } diff --git a/macros/latex/contrib/tagpdf/tagpdf-user.dtx b/macros/latex/contrib/tagpdf/tagpdf-user.dtx index 82732b4458..099cd95299 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-user.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-user.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.99a, released 2024-03-27} +% \date{Version 0.99b, released 2024-04-12} % \maketitle % \begin{documentation} % \section{Setup commands} @@ -309,7 +309,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-user} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-user} {2024-04-12} {0.99b} {tagpdf - user commands} % % \end{macrocode} @@ -653,7 +653,7 @@ { } { } } } - ,debug/structures .default:n = 0 + ,debug/structures .default:n = 1 } % % \end{macrocode} @@ -707,8 +707,8 @@ { \g_@@_active_struct_bool } { \tl_set:Nn \l_pdf_current_structure_destination_tl - { _@@/struct/\g_@@_struct_stack_current_tl } - \pdf_activate_structure_destination: + { {@@/struct}{\g_@@_struct_stack_current_tl }} + \pdf_activate_indexed_structure_destination: } } % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf.dtx b/macros/latex/contrib/tagpdf/tagpdf.dtx index ffdb147b45..064490c2c4 100644 --- a/macros/latex/contrib/tagpdf/tagpdf.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf.dtx @@ -87,7 +87,7 @@ % \begin{macrocode} %<@@=tag> %<*package> -\ProvidesExplPackage {tagpdf} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf} {2024-04-12} {0.99b} { A package to experiment with pdf tagging } \bool_if:nF @@ -113,7 +113,7 @@ % \end{macrocode} %<*debug> % \begin{macrocode} -\ProvidesExplPackage {tagpdf-debug} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-debug} {2024-04-12} {0.99b} { debug code for tagpdf } \@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput} % \end{macrocode} @@ -136,7 +136,7 @@ % we define a base package with dummy functions % \begin{macrocode} %<*base> -\ProvidesExplPackage {tagpdf-base} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdf-base} {2024-04-12} {0.99b} {part of tagpdf - provide base, no-op versions of the user commands } % % \end{macrocode} @@ -184,7 +184,34 @@ } % % \end{macrocode} +% \subsection{Indexed objects} +% 2024-04-11: Temporary code! Can be removed after the next expl3 release! +% \begin{macrocode} +\cs_if_free:NT \pdf_object_new_indexed:nn + { + \cs_generate_variant:Nn \pdf_object_new:n {e} + \cs_generate_variant:Nn \pdf_object_write:nnn {enn} + \cs_new_protected:Npn \pdf_object_new_indexed:nn #1 #2 + { + \pdf_object_new:e {#1/\int_eval:n{#2}} + } + \cs_new_protected:Npn \pdf_object_write_indexed:nnnn #1 #2 #3 #4 + { + \pdf_object_write:enn {#1/\int_eval:n{#2}}{#3}{#4} + } + \cs_generate_variant:Nn \pdf_object_write_indexed:nnnn {nnne} + \cs_new:Npn\pdf_object_ref_indexed:nn #1 #2 + { + \pdf_object_ref:e {#1/\int_eval:n{#2}} + } + \cs_new:Npn \__kernel_pdf_object_id_indexed:nn #1 #2 + { + \int_use:c + { c__pdf_object_ #1/\int_eval:n{#2} _int } + } + } +% \end{macrocode} % \subsection{a LastPage label} % See also issue \#2 in Accessible-xref % \begin{macro}{\@@_lastpagelabel:} @@ -404,10 +431,7 @@ {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} - } + \pdf_object_ref_indexed:nn { @@/struct } { \c@g_@@_struct_abs_int } } \@@_property_new:nnnn { tagabspage } { shipout } diff --git a/macros/latex/contrib/tagpdf/tagpdf.pdf b/macros/latex/contrib/tagpdf/tagpdf.pdf index 771fe1ed0f..a04ba6fc3c 100644 Binary files a/macros/latex/contrib/tagpdf/tagpdf.pdf and b/macros/latex/contrib/tagpdf/tagpdf.pdf differ diff --git a/macros/latex/contrib/tagpdf/tagpdf.tex b/macros/latex/contrib/tagpdf/tagpdf.tex index b8b718482b..e023ba6d02 100644 --- a/macros/latex/contrib/tagpdf/tagpdf.tex +++ b/macros/latex/contrib/tagpdf/tagpdf.tex @@ -16,8 +16,8 @@ } \DebugBlocksOff \makeatletter -\def\UlrikeFischer@package@version{0.99a} -\def\UlrikeFischer@package@date{2024-03-27} +\def\UlrikeFischer@package@version{0.99b} +\def\UlrikeFischer@package@date{2024-04-12} \makeatother \documentclass[bibliography=totoc,a4paper]{article} @@ -2434,6 +2434,20 @@ This is in pdftex a primitive. It inserts the dummy space glyph. \pkg{tagpdf} defines this command also for luatex -- attention if can perhaps insert break points. +\begin{docCommands} + { + {doc name=tag_space_off:}, + {doc name=tag_space_on:} + } +\end{docCommands} + +The commands allow to switch on and off the insertion of space chars. +With pdftex they map to primitive \cs{pdfinterwordspaceoff} and +and \cs{pdfinterwordspaceon} which insert a whatsits and so act globally. +The luatex implementation uses an attribute which is also set globally to stay +more or less consistent with pdftex. In dvi-mode the commands do nothing. + + \section{Structure destinations}\label{sec:struct-dest} Standard destinations (anchors for internal links) consist of a diff --git a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty index c3e663cecd..38a5f0196d 100644 --- a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty +++ b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty @@ -1,5 +1,5 @@ %\RequirePackage[enable-debug]{expl3}[2018/06/14] -\ProvidesExplPackage {tagpdfdocu-patches} {2024-03-27} {0.99a} +\ProvidesExplPackage {tagpdfdocu-patches} {2024-04-12} {0.99b} {patches/commands for the tagpdf documentation} \RequirePackage{etoolbox,xpatch} -- cgit v1.2.3