texlive[69496] Master/texmf-dist: tagpdf (19jan24)

commits+karl at tug.org commits+karl at tug.org
Fri Jan 19 23:45:20 CET 2024


Revision: 69496
          https://tug.org/svn/texlive?view=revision&revision=69496
Author:   karl
Date:     2024-01-19 23:45:20 +0100 (Fri, 19 Jan 2024)
Log Message:
-----------
tagpdf (19jan24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tagpdf/README.md
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-AF-file.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-list.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-mc-manual-para-split-obsolete.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-softhyphen.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-spaceglyph-listings.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-tagpdf-template.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/tagpdf-code.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/tagpdf.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/tagpdf.tex
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx
    trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf.ins
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-base.sty
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-generic.sty
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-lua.sty
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug.sty
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-luatex.def
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-lua.sty
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-book.def
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-inline.def
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex.def
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-mathml.def
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf.def
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf2.def
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child-2.csv
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child.csv
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.sty
    trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdfdocu-patches.sty

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/README.md	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/README.md	2024-01-19 22:45:20 UTC (rev 69496)
@@ -1,6 +1,6 @@
 #tagpdf — A package to create tagged pdf
-Packageversion: 0.98r 
-Packagedate: 2023/12/18
+Packageversion: 0.98s 
+Packagedate: 2024/01/19
 Author: Ulrike Fischer, LaTeX Project Team
 
 ## License

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-AF-file.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-list.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-mc-manual-para-split-obsolete.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-softhyphen.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-spaceglyph-listings.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-tagpdf-template.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/tagpdf-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/tagpdf.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/tagpdf.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/tagpdf.tex	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/tagpdf.tex	2024-01-19 22:45:20 UTC (rev 69496)
@@ -16,8 +16,8 @@
  }
 \DebugBlocksOff
 \makeatletter
-\def\UlrikeFischer at package@version{0.98r}
-\def\UlrikeFischer at package@date{2023-12-18}
+\def\UlrikeFischer at package@version{0.98s}
+\def\UlrikeFischer at package@date{2024-01-19}
 \makeatother
 
 \documentclass[bibliography=totoc,a4paper]{article}
@@ -1057,7 +1057,7 @@
 \begin{docCommands}
  {
    {doc name=tagmcend},
-   {doc name=tag_mc:end}
+   {doc name=tag_mc_end:}
  }
 \end{docCommands}
 
@@ -2130,21 +2130,32 @@
 \parencite{pdfspec-iso32000-1,pdfspec-iso32000-2_2020}): 
 
 \begin{enumerate}
-\item The \emph{standard structure namespace for PDF 1.7}, also called
-  the \emph{default standard structure namespace}. The public name of
-  the namespace is |tag/NS/pdf|. This can be used to reference the
-  namespace e.g. in attributes. These are the structure names from PDF
-  1.7: \ExplSyntaxOn \clist_clear:N\l_tmpa_clist \prop_map_inline:cn {
-    g__tag_role_NS_pdf_prop } { \clist_put_right:Nn \l_tmpa_clist {#1}
-  } \clist_use:Nn \l_tmpa_clist {,\c_space_tl } \ExplSyntaxOff
+\item The \emph{standard structure namespace for PDF 1.7}, also called 
+    the \emph{default standard structure namespace}. The public name of 
+    the namespace is |tag/NS/pdf|. This can be used to reference the 
+    namespace e.g. in attributes. These are the structure names from PDF 
+    1.7 (\texttt{StructTreeRoot} is a bit special, it is not really a structure
+    name but nevertheless listed here): 
+    \ExplSyntaxOn %%
+    \clist_clear:N\l_tmpa_clist 
+    \prop_map_inline:cn 
+      {g__tag_role_NS_pdf_prop} 
+      {
+       \str_if_eq:eeT 
+         {#1} 
+         {\use_i:nn #2}  
+         { \clist_put_right:Nn \l_tmpa_clist {#1}  } 
+      }
+    \clist_use:Nn \l_tmpa_clist {,\c_space_tl }. %%
+    \ExplSyntaxOff 
 
 \item The \emph{standard structure namespace for PDF 2.0}.  The public
   name of the namespace is |tag/NS/pdf2|. This can be used to
   reference the namespace e.g. in attributes.  These are more or less
   same types as in PDF. The following types have been removed from
-  this set:\\
+  this set\footnote{They still can be used in a PDF 2.0 document!}:\\
 %
-\ExplSyntaxOn
+\ExplSyntaxOn %
 \clist_clear:N\l_tmpa_clist
 \prop_map_inline:cn { g__tag_role_NS_pdf_prop }
  { 
@@ -2153,20 +2164,19 @@
     {#1}
     { \clist_put_right:Nn \l_tmpa_clist {#1} } 
  }
-\clist_use:Nn \l_tmpa_clist {,\c_space_tl }\\
-\ExplSyntaxOff
+\clist_use:Nn \l_tmpa_clist {,\c_space_tl },\\
+\ExplSyntaxOff %
 and the following are new:\\
-\ExplSyntaxOn
-\clist_clear:N\l_tmpa_clist
-\prop_map_inline:cn { g__tag_role_NS_pdf2_prop }
- { 
-  \prop_if_in:cnF 
-    { g__tag_role_NS_pdf_prop }
-    {#1}
-    { \clist_put_right:Nn \l_tmpa_clist {#1}  } 
- }
-\clist_use:Nn \l_tmpa_clist {,\c_space_tl }
-\ExplSyntaxOff
+\ExplSyntaxOn %
+ \clist_clear:N\l_tmpa_clist %
+ \prop_map_inline:cn { g__tag_role_NS_pdf_prop } 
+   { 
+    \str_if_eq:eeF {#1}
+     {\use_i:nn #2}  
+     { \clist_put_right:Nn \l_tmpa_clist {#1}  } 
+   } 
+ \clist_use:Nn \l_tmpa_clist {,\c_space_tl }. 
+\ExplSyntaxOff %
 
 \item MathML 3.0 as an \emph{other namespaces}.  The public name of
   the namespace is |tag/NS/mathml|. This can be used to reference the

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-backend.dtx
 %
-% Copyright (C) 2019-2023 Ulrike Fischer
+% Copyright (C) 2019-2024 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
@@ -47,13 +47,13 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98r, released 2023-12-18}
+% \date{Version 0.98s, released 2024-01-19}
 % \maketitle
 % \begin{implementation}
 %    \begin{macrocode}
 %<@@=tag>
 %<*luatex>
-\ProvidesExplFile {tagpdf-luatex.def} {2023-12-18} {0.98r}
+\ProvidesExplFile {tagpdf-luatex.def} {2024-01-19} {0.98s}
   {tagpdf~driver~for~luatex}
 %    \end{macrocode}
 % \section{Loading the lua}
@@ -158,8 +158,8 @@
 
 local ProvidesLuaModule = {
     name          = "tagpdf",
-    version       = "0.98r",       --TAGVERSION
-    date          = "2023-12-18", --TAGDATE
+    version       = "0.98s",       --TAGVERSION
+    date          = "2024-01-19", --TAGDATE
     description   = "tagpdf lua code",
     license       = "The LATEX Project Public License 1.3c"
 }
@@ -754,6 +754,7 @@
     local id = n.id
     if id == GLYPH then
       local glyph = n
+      default_currfontid = glyph.font
       if glyph.next and (glyph.next.id == GLUE)
         and not inside_math  and (glyph.next.width >0)
       then
@@ -790,8 +791,9 @@
       if glyph.next and (glyph.next.id == GLUE)
         and not inside_math  and (glyph.next.width >0) and n.subtype==0
       then
-        nodesetattribute(glyph.next,iwspaceattributeid,1)
-      --  nodesetattribute(glyph.next,iwfontattributeid,glyph.font)
+        nodesetattribute(glyph.next,iwspaceattributeid,1) 
+        --  changed 2024-01-18, issue #72
+        nodesetattribute(glyph.next,iwfontattributeid,default_currfontid)
       -- for debugging
        if ltx.@@.trace.showspaces then
         @@_show_spacemark (head,glyph)
@@ -838,6 +840,7 @@
 %    \begin{macrocode}
 local default_space_char = nodenew(GLYPH)
 local default_fontid     = fontid("TU/lmr/m/n/10")
+local default_currfontid = fontid("TU/lmr/m/n/10")
 default_space_char.char  = 32
 default_space_char.font  = default_fontid
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-checks.dtx
 %
-% Copyright (C) 2019-2023 Ulrike Fischer
+% Copyright (C) 2019-2024 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
@@ -48,7 +48,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98r, released 2023-12-18}
+% \date{Version 0.98s, released 2024-01-19}
 % \maketitle
 % \begin{documentation}
 % \section{Commands}
@@ -284,16 +284,30 @@
 %  mc-current}
 %  Various messages related to mc-chunks. TODO document their meaning.
 % \end{function}
-% \begin{function}{struct-no-objnum,struct-faulty-nesting,
+% \begin{function}{struct-unknown,struct-no-objnum,struct-orphan,struct-faulty-nesting,
 %  struct-missing-tag,struct-used-twice,struct-label-unknown,struct-show-closing}
-% Various messages related to structure. TODO document their meaning.
+%  Various messages related to structure. Check the definition in the code for their
+%  meaning and the arguments they take.
 % \end{function}
 %
+% \begin{function}{tree-struct-still-open}
+% Message issued at the end of the compilation 
+% if there are (beside Root) other open structures on the stack.
+% \end{function}
+% 
+
+% \begin{function}{show-struct,show-kids}
+% These two messages are used in debug mode
+% to show the current structures in the log and terminal.
+% \end{function}
+% 
+
 % \begin{function}{attr-unknown}
 % Message if an attribute i sunknown.
 % \end{function}
 %
-% \begin{function}{role-missing,role-unknown,role-unknown-tag,role-tag,new-tag}
+% \begin{function}{role-missing,role-unknown,role-unknown-tag,role-tag,new-tag,
+% role-parent-child,role-remapping}
 % Messages related to role mapping.
 % \end{function}
 %
@@ -313,7 +327,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-checks-code} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-checks-code} {2024-01-19} {0.98s}
  {part of tagpdf - code related to checks, conditionals, debugging and messages}
 %</header>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-data.dtx
 %
-% Copyright (C) 2022-2023 Ulrike Fischer
+% Copyright (C) 2022-2024 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
@@ -47,7 +47,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98r, released 2023-12-18}
+% \date{Version 0.98s, released 2024-01-19}
 % \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-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-01-19} {0.98s}
 %% {latex} {https://www.latex-project.org/ns/dflt/2022}{}
 title,        Title,    pdf2,
 part,         Title,    pdf2,
@@ -92,7 +92,7 @@
 % It is bound to change
 %    \begin{macrocode}
 %<*ns-latex-book>
-%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-01-19} {0.98s}
 %% {latex-book} {https://www.latex-project.org/ns/book/2022}{}
 chapter,       H1,pdf2,
 section,       H2,pdf2,
@@ -108,7 +108,7 @@
 % loaded. 
 %    \begin{macrocode}
 %<*ns-latex-inline>
-%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2024-01-19} {0.98s}
 %% {latex-inline} {https://www.latex-project.org/ns/inline/2022}{}
 chapter,       Span, pdf2,    
 section,       Span, pdf2,
@@ -122,7 +122,7 @@
 % \section{The pdf namespace data}
 %    \begin{macrocode}
 %<*ns-pdf>
-%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-01-19} {0.98s}
 %%  {pdf}   {http://iso.org/pdf/ssn}{}
 StructTreeRoot,StructTreeRoot,pdf,D,
 Document,Document,pdf,D,   
@@ -190,8 +190,9 @@
 % \section{The pdf 2.0 namespace data}
 %    \begin{macrocode}
 %<*ns-pdf2>
-%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-12-18} {0.98r} 
+%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-01-19} {0.98s} 
 %%  {pdf2}  {http://iso.org/pdf2/ssn}{}
+StructTreeRoot,StructTreeRoot,pdf2,D,
 Document,Document,pdf2,D,   
 Part,Part,pdf2,G,       
 Sect,Sect,pdf2,G,       
@@ -246,7 +247,7 @@
 % \section{The mathml namespace data}
 %    \begin{macrocode}
 %<*ns-mathml>
-%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-01-19} {0.98s}
 % {mathml}{http://www.w3.org/1998/Math/MathML}{}
 abs,abs,mathml,
 and,and,mathml,
@@ -481,7 +482,7 @@
 % This will perhaps change in future.
 %    \begin{macrocode}
 %<*parent-child>
-%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-01-19} {0.98s}
 ,,,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 +537,7 @@
 % This will perhaps change in future.
 %    \begin{macrocode}
 %<*parent-child-2>
-%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-01-19} {0.98s}
 ,,,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,∅

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-mc-generic.dtx
 %
-% Copyright (C) 2019-2023 Ulrike Fischer
+% Copyright (C) 2019-2024 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
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98r, released 2023-12-18}
+% \date{Version 0.98s, released 2024-01-19}
 % \maketitle
 % \begin{documentation}
 % \end{documentation}
@@ -55,11 +55,11 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*generic>
-\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-01-19} {0.98s}
  {part of tagpdf - code related to marking chunks - generic mode}
 %</generic>
 %<*debug>
-\ProvidesExplPackage {tagpdf-debug-generic} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-debug-generic} {2024-01-19} {0.98s}
  {part of tagpdf - debugging code related to marking chunks - generic mode}
 %</debug>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-mc-luacode.dtx
 %
-% Copyright (C) 2019-2023 Ulrike Fischer
+% Copyright (C) 2019-2024 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
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98r, released 2023-12-18}
+% \date{Version 0.98s, released 2024-01-19}
 % \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-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-01-19} {0.98s}
   {tagpdf - mc code only for the luamode }
 %</luamode>
 %<*debug>
-\ProvidesExplPackage {tagpdf-debug-lua} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-debug-lua} {2024-01-19} {0.98s}
  {part of tagpdf - debugging code related to marking chunks - lua mode}
 %</debug>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-mc-shared.dtx
 %
-% Copyright (C) 2019-2023 Ulrike Fischer
+% Copyright (C) 2019-2024 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
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98r, released 2023-12-18}
+% \date{Version 0.98s, released 2024-01-19}
 % \maketitle
 % \begin{documentation}
 % \section{Public Commands}
@@ -181,7 +181,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-mc-code-shared} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-mc-code-shared} {2024-01-19} {0.98s}
   {part of tagpdf - code related to marking chunks -
    code shared by generic and luamode }
 %</header>

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-roles.dtx
 %
-% Copyright (C) 2019-2023 Ulrike Fischer
+% Copyright (C) 2019-2024 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
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98r, released 2023-12-18}
+% \date{Version 0.98s, released 2024-01-19}
 % \maketitle
 % \begin{documentation}
 % \begin{function}
@@ -98,7 +98,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-roles-code} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-roles-code} {2024-01-19} {0.98s}
  {part of tagpdf - code related to roles and structure names}
 %</header>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-space.dtx
 %
-% Copyright (C) 2019-2023 Ulrike Fischer
+% Copyright (C) 2019-2024 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
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98r, released 2023-12-18}
+% \date{Version 0.98s, released 2024-01-19}
 % \maketitle
 % \begin{documentation}
 % \begin{function}{interwordspace (setup-key)}
@@ -64,7 +64,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-space-code} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-space-code} {2024-01-19} {0.98s}
  {part of tagpdf - code related to real space chars}
 %</header>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-struct.dtx
 %
-% Copyright (C) 2019-2023 Ulrike Fischer
+% Copyright (C) 2019-2024 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
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98r, released 2023-12-18}
+% \date{Version 0.98s, released 2024-01-19}
 % \maketitle
 % \begin{documentation}
 % \section{Public Commands}
@@ -63,9 +63,10 @@
 %  it will check if the \Arg{tag} (after expansion)
 %  is identical to the current structure on the stack. The tag is not role mapped!
 % \end{function}
-%  \begin{function}{\tag_struct_use:n}
+%  \begin{function}{\tag_struct_use:n,\tag_struct_use_num:n}
 %   \begin{syntax}
-%     \cs{tag_struct_use:n}\Arg{label}
+%     \cs{tag_struct_use:n}\Arg{label}\\
+%     \cs{tag_struct_use_num:n}\Arg{structure number}
 %   \end{syntax}
 % These commands insert a structure previously stashed away as kid
 % into the currently active structure.
@@ -105,6 +106,21 @@
 % This gives back the next free /StructParent number (assuming that it is
 % together with \cs{tag_struct_insert_annot:nn} which will increase the number.
 % \end{function}
+% 
+% \begin{function}{\tag_struct_gput:nnn}
+% \begin{syntax}
+%  \cs{tag_struct_gput:nnn}\Arg{structure number}\Arg{keyword}\Arg{value}
+%  \end{syntax}
+% This is a command that allows to update the data of a structure.
+% 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)
+% \end{function}
+% 
 % \section{Public keys}
 % \subsection{Keys for the structure commands}
 % \begin{function}{tag (struct-key)}
@@ -269,7 +285,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-struct-code} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-struct-code} {2024-01-19} {0.98s}
  {part of tagpdf - code related to storing structure}
 %</header>
 %    \end{macrocode}
@@ -296,6 +312,12 @@
 \@@_seq_new:N  \g_@@_struct_objR_seq
 %    \end{macrocode}
 % \end{variable}
+% \begin{variable}{\c_@@_struct_null_tl}
+% In lua mode we have to test if the kids a null
+%    \begin{macrocode}
+\tl_const:Nn\c_@@_struct_null_tl {null}
+%    \end{macrocode}
+% \end{variable}
 
 % \begin{variable}{\g_@@_struct_cont_mc_prop}
 % in generic mode it can happen after
@@ -817,20 +839,40 @@
          {
            % in this case we need a special command in
            % luamode to get the array right. See issue #13
-           \bool_if:NT\g_@@_mode_lua_bool
+           \bool_if:NTF\g_@@_mode_lua_bool
              {
                \@@_struct_exchange_kid_command:c
                 {g_@@_struct_kids_#1_seq}
+%    \end{macrocode}
+% check if we get null
+%    \begin{macrocode}
+                \tl_set:Ne\l_@@_tmpa_tl
+                  {\use:e{\seq_item:cn {g__tag_struct_kids_#1_seq} {1}}}
+                \tl_if_eq:NNF\l__tag_tmpa_tl \c_@@_struct_null_tl 
+                  {   
+                    \@@_struct_prop_gput:nne
+                      {#1}            
+                      {K}
+                      {
+                        \seq_item:cn
+                          {
+                            g_@@_struct_kids_#1_seq
+                          }
+                          {1}
+                      } 
+                  }                 
              }
-           \@@_struct_prop_gput:nne
-             {#1}            
-             {K}
              {
-               \seq_item:cn
+               \@@_struct_prop_gput:nne
+                 {#1}            
+                 {K}
                  {
-                   g_@@_struct_kids_#1_seq
+                   \seq_item:cn
+                     {
+                       g_@@_struct_kids_#1_seq
+                     }
+                     {1}
                  }
-                 {1}
              }
          } %
       }
@@ -1007,7 +1049,7 @@
             \pdf_object_ref:e { @@/struct/\l_@@_struct_stack_parent_tmpa_tl }
           }
         % increase the int:
-        \stepcounter{ g_@@_parenttree_obj_int }
+        \int_gincr:N \c at g_@@_parenttree_obj_int 
       }
   }
 %    \end{macrocode}
@@ -1863,7 +1905,7 @@
 % \section{Attributes and attribute classes}
 %    \begin{macrocode}
 %<*header>
-\ProvidesExplPackage {tagpdf-attr-code} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-attr-code} {2024-01-19} {0.98s}
   {part of tagpdf - code related to attributes and attribute classes}
 %</header>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-tree.dtx
 %
-% Copyright (C) 2019-2023 Ulrike Fischer
+% Copyright (C) 2019-2024 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
@@ -47,13 +47,13 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98r, released 2023-12-18}
+% \date{Version 0.98s, released 2024-01-19}
 % \maketitle
 % \begin{implementation}
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-tree-code} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-tree-code} {2024-01-19} {0.98s}
  {part of tagpdf - code related to writing trees and dictionaries to the pdf}
 %</header>
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-user.dtx
 %
-% Copyright (C) 2019-2023 Ulrike Fischer
+% Copyright (C) 2019-2024 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
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98r, released 2023-12-18}
+% \date{Version 0.98s, released 2024-01-19}
 % \maketitle
 % \begin{documentation}
 % \section{Setup commands}
@@ -120,7 +120,7 @@
 %   \cs{ShowTagging} \Arg{key-val}
 %   \end{syntax}
 % This is a generic function to output various debugging helps. It not
-% necessarly stops the compilation. The keys and their function are described below.
+% necessarily stops the compilation. The keys and their function are described below.
 % \end{function}
 %
 % \begin{function}{mc-data (show-key)}
@@ -158,6 +158,15 @@
 % If no value is used, then the default is |show|.
 % \end{function}
 %
+% \begin{function}{debug/structures (show-key)}
+%  \begin{syntax}
+%    |debug/structures| = \meta{structure number}
+%  \end{syntax}
+%  This key is available only if the tagpdf-debug package is loaded
+%  and shows all structures starting with the one with the number 
+%  given by the key.
+% \end{function}
+
 % \section{Extension commands}
 % The following commands and code parts are not core commands of tagpdf.
 % They either provide work-arounds for missing functionality elsewhere,
@@ -243,6 +252,50 @@
 % { Contents }
 % { (ref) }
 % \end{verbatim}
+% 
+% \section{Socket support}
+% 
+% \begin{function}{\tag_socket_use:n,\tag_socket_use:nn,\UseTaggingSocket}
+% \begin{syntax}
+%  \cs{tag_socket_use:n} \Arg{socket name}\\
+%  \cs{tag_socket_use:nn} \Arg{socket name} \Arg{socket argument}\\
+%  \cs{UseTaggingSocket} \Arg{socket name} \\
+%  \cs{UseTaggingSocket} \Arg{socket name} \Arg{socket argument}\\
+% \end{syntax}
+% \end{function}
+
+% The next \LaTeX{} will use special sockets for the tagging.
+% 
+% These sockets will use names starting
+% with \texttt{tagsupport/}. Usually, these sockets have exactly two
+% plugs defined: \texttt{noop} (when no tagging is requested or 
+% tagging is not wanted for some reason) and 
+% a second plug that enables the tagging. There
+% may be more, e.g., tagging with special debugging, etc., but right
+% now it is usually just on or off.
+%
+% Given that we sometimes have to suspend tagging, it would be fairly
+% inefficient to put different plugs into these sockets whenever that
+% happens. We therefore offer \cs{UseTaggingSocket} which is like
+%  \cs{UseSocket} except that the socket name is specified without
+%  \texttt{tagsupport/}, i.e.,
+% \begin{quote}
+%   \verb=\UseTaggingSocket{foo}=      $\to$
+%   \verb=\UseSocket{tagsupport/foo}=
+% \end{quote}
+%  Beside being slightly shorter, the big advantage is that this way
+%  we can change \cs{UseTaggingSocket} to do nothing by switching a boolean
+%  instead of changing the plugs of the tagging support sockets back and forth.
+%
+%  It is possible to use the tagging support sockets with
+%  \cs{UseSocket} directly, but in this case the socket remains active
+%  if e.g. \cs{SuspendTagging} is in force. There may be reasons for doing
+%  that but in general we expect to always use \cs{UseTaggingSocket}.
+%
+%  The L3 programming layer versions \cs{tag_socket_use:n} and
+%  \cs{tag_socket_use:nn} are slightly more efficient than
+%  \cs{UseTaggingSocket} because they do not have to determine how
+%  many arguments the socket takes when disabling it.
 % \end{documentation}
 %
 % \begin{implementation}
@@ -250,7 +303,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-user} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-user} {2024-01-19} {0.98s}
   {tagpdf - user commands}
 %</header>
 %    \end{macrocode}
@@ -347,39 +400,6 @@
 % \end{macro}
 %
 % \section{Socket support}
-% The next \LaTeX{} will use special sockets for the tagging.
-% 
-% These sockets will use names starting
-% with \texttt{tagsupport/}. Usually, these sockets have exactly two
-% plugs defined: \texttt{noop} (when no tagging is requested or 
-% tagging is not wanted for some reason) and 
-% a second plug that enables the tagging. There
-% may be more, e.g., tagging with special debugging, etc., but right
-% now it is usually just on or off.
-%
-% Given that we sometimes have to suspend tagging, it would be fairly
-% inefficient to put different plugs into these sockets whenever that
-% happens. We therefore offer \cs{UseTaggingSocket} which is like
-%  \cs{UseSocket} except that the socket name is specified without
-%  \texttt{tagsupport/}, i.e.,
-% \begin{quote}
-%   \verb=\UseTaggingSocket{foo}=      $\to$
-%   \verb=\UseSocket{tagsupport/foo}=
-% \end{quote}
-%  Beside being slightly shorter, the big advantage is that this way
-%  we can change \cs{UseTaggingSocket} to do nothing by switching a boolean
-%  instead of changing the plugs of the tagging support sockets back and forth.
-%
-%  It is possible to use the tagging support sockets with
-%  \cs{UseSocket} directly, but in this case the socket remains active
-%  if e.g. \cs{SuspendTagging} is in force. There may be reasons for doing
-%  that but in general we expect to always use \cs{UseTaggingSocket}.
-%
-%  The L3 programming layer versions \cs{tag_socket_use:n} and
-%  \cs{tag_socket_use:nn} are slightly more efficient than
-%  \cs{UseTaggingSocket} because they do not have to determine how
-%  many arguments the socket takes when disabling it.
-%
 % Until we can be sure that the kernel defines the commands we provide them before
 % redefining them:
 %    \begin{macrocode}
@@ -718,7 +738,10 @@
 %   \g_@@_para_main_end_int,
 %   \l_@@_para_tag_default_tl,
 %   \l_@@_para_tag_tl,
-%   \l_@@_para_main_tag_tl}
+%   \l_@@_para_main_tag_tl,
+%   \l_@@_para_attr_class_tl,
+%   \l_@@_para_main_attr_class_tl,
+%   }
 %  At first some variables.
 %    \begin{macrocode}
 %</package>
@@ -736,6 +759,12 @@
 \tl_new:N   \l_@@_para_main_tag_tl
 \tl_set:Nn  \l_@@_para_main_tag_tl {text-unit}
 %    \end{macrocode}
+% this is perhaps already defined by the block code
+%    \begin{macrocode}
+\tl_if_exist:NF \l_@@_para_attr_class_tl
+ {\tl_new:N \l_@@_para_attr_class_tl }
+\tl_new:N \l_@@_para_main_attr_class_tl 
+%    \end{macrocode}
 % \end{macro}
 
 % \begin{macro}
@@ -827,6 +856,10 @@
 %    \begin{macrocode}
 \AddToHook{package/latex-lab-testphase-block/after}
  {
+   \tl_if_exist:NT \l_tag_para_attr_class_tl
+    {
+      \tl_set:Nn \l_@@_para_attr_class_tl { \l_tag_para_attr_class_tl }
+    }
    \cs_set_protected:Npn \__block_start_para_structure:n #1 {
      \__block_debug_typeout:n
         { @endpe = \legacy_if:nTF { @endpe }{true}{false}
@@ -836,7 +869,11 @@
          \bool_if:NF \l__tag_para_flattened_bool
             {
               \@@_gincr_para_main_begin_int:
-              \tag_struct_begin:n{tag=\l__tag_para_main_tag_tl}
+              \tag_struct_begin:n
+               {
+                tag=\l_@@_para_main_tag_tl,
+                attribute-class=\l_@@_para_main_attr_class_tl,
+               }
             }
         }
      \@@_gincr_para_begin_int:
@@ -844,7 +881,7 @@
      \tag_struct_begin:n
          {
             tag=\l__tag_para_tag_tl
-           ,attribute-class=\l_tag_para_attr_class_tl
+           ,attribute-class=\l_@@_para_attr_class_tl
          }
      \__tag_check_para_begin_show:nn {green}{#1}    
      \tag_mc_begin:n {}

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf.dtx
 %
-% Copyright (C) 2019-2023 Ulrike Fischer
+% Copyright (C) 2019-2024 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
@@ -84,7 +84,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*package>
-\ProvidesExplPackage {tagpdf} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf} {2024-01-19} {0.98s}
   { A package to experiment with pdf tagging }
 
 \bool_if:nF
@@ -110,7 +110,7 @@
 %    \end{macrocode}
 %<*debug>
 %    \begin{macrocode}
-\ProvidesExplPackage {tagpdf-debug} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-debug} {2024-01-19} {0.98s}
   { debug code for tagpdf }
 \@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput}
 %    \end{macrocode}
@@ -133,7 +133,7 @@
 % we define a base package with dummy functions
 %    \begin{macrocode}
 %<*base>
-\ProvidesExplPackage {tagpdf-base} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-base} {2024-01-19} {0.98s}
   {part of tagpdf - provide base, no-op versions of the user commands }
 %</base>
 %    \end{macrocode} 

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf.ins	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf.ins	2024-01-19 22:45:20 UTC (rev 69496)
@@ -2,7 +2,7 @@
 
 File: tagpdf.ins
 
-Copyright (C) 2019-2023 Ulrike Fischer
+Copyright (C) 2019-2024 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
@@ -34,7 +34,7 @@
 \let\MetaPrefix\relax
 \preamble
 
-Copyright (C) 2019-2023 Ulrike Fischer
+Copyright (C) 2019-2024 Ulrike Fischer
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-base.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-base.sty	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-base.sty	2024-01-19 22:45:20 UTC (rev 69496)
@@ -12,7 +12,7 @@
 %% tagpdf-user.dtx  (with options: `base')
 %% tagpdf-roles.dtx  (with options: `base')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf.dtx
-\ProvidesExplPackage {tagpdf-base} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-base} {2024-01-19} {0.98s}
   {part of tagpdf - provide base, no-op versions of the user commands }
 \AddToHook{begindocument}
  {
@@ -85,6 +85,8 @@
 \cs_new_protected:Npn \tag_struct_use_num:n #1 {}
 
 %% File: tagpdf-checks.dtx
+
+
 \cs_new:Npn \tag_get:n #1   { \use:c {__tag_get_data_#1: } }
 \prg_new_conditional:Npnn \tag_if_active: { p , T , TF, F }
   { \prg_return_false: }
@@ -104,6 +106,8 @@
 %% File: tagpdf-user.dtx
 
 
+
+
 \NewDocumentCommand \tagpdfsetup { m }{}
 \cs_new_protected:Npn\tag_tool:n #1 {}
 \cs_set_eq:NN\tagtool\tag_tool:n

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-generic.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-generic.sty	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-generic.sty	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-mc-generic.dtx  (with options: `debug')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-mc-generic.dtx
-\ProvidesExplPackage {tagpdf-debug-generic} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-debug-generic} {2024-01-19} {0.98s}
  {part of tagpdf - debugging code related to marking chunks - generic mode}
 \cs_set_protected:Npn \tag_mc_begin:n #1 %#1 keyval
   {

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-lua.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-lua.sty	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-lua.sty	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-mc-luacode.dtx  (with options: `debug')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-mc-luacode.dtx
-\ProvidesExplPackage {tagpdf-debug-lua} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-debug-lua} {2024-01-19} {0.98s}
  {part of tagpdf - debugging code related to marking chunks - lua mode}
 \cs_set_protected:Npn \__tag_mc_handle_stash:n #1 %1 mcidnum
   {

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug.sty	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug.sty	2024-01-19 22:45:20 UTC (rev 69496)
@@ -13,7 +13,7 @@
 %% tagpdf-struct.dtx  (with options: `debug')
 %% tagpdf-space.dtx  (with options: `debug')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -26,7 +26,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf.dtx
-\ProvidesExplPackage {tagpdf-debug} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-debug} {2024-01-19} {0.98s}
   { debug code for tagpdf }
 \@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput}
 \prop_gput:Nnn \g_msg_module_type_prop { tag / debug} {}
@@ -85,6 +85,8 @@
    \RequirePackage {tagpdf-debug-generic} %
   }
 %% File: tagpdf-checks.dtx
+
+
 \msg_new:nnn { tag/debug } { show-struct }
   {
     =========================\\
@@ -215,6 +217,8 @@
 
 
 
+
+
 \keys_define:nn { __tag / show }
   {
     ,debug/structures .code:n =

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-luatex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-luatex.def	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-luatex.def	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-backend.dtx  (with options: `luatex')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-backend.dtx
-\ProvidesExplFile {tagpdf-luatex.def} {2023-12-18} {0.98r}
+\ProvidesExplFile {tagpdf-luatex.def} {2024-01-19} {0.98s}
   {tagpdf~driver~for~luatex}
 {
   \fontencoding{TU}\fontfamily{lmr}\fontseries{m}\fontshape{n}\fontsize{10pt}{10pt}\selectfont

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-mc-generic.dtx  (with options: `generic')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-mc-generic.dtx
-\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-01-19} {0.98s}
  {part of tagpdf - code related to marking chunks - generic mode}
 \tl_new:N \l__tag_mc_ref_abspage_tl
 

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-lua.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-lua.sty	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-lua.sty	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-mc-luacode.dtx  (with options: `luamode')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-mc-luacode.dtx
-\ProvidesExplPackage {tagpdf-mc-code-lua} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-01-19} {0.98s}
   {tagpdf - mc code only for the luamode }
 \hook_gput_code:nnn{begindocument}{tagpdf/mc}
   {

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-book.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-book.def	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-book.def	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-data.dtx  (with options: `ns-latex-book')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-01-19} {0.98s}
 %% {latex-book} {https://www.latex-project.org/ns/book/2022}{}
 chapter,       H1,pdf2,
 section,       H2,pdf2,

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-inline.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-inline.def	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-inline.def	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-data.dtx  (with options: `ns-latex-inline')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2024-01-19} {0.98s}
 %% {latex-inline} {https://www.latex-project.org/ns/inline/2022}{}
 chapter,       Span, pdf2,
 section,       Span, pdf2,

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex.def	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex.def	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-data.dtx  (with options: `ns-latex')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-ns-latex.def} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-01-19} {0.98s}
 %% {latex} {https://www.latex-project.org/ns/dflt/2022}{}
 title,        Title,    pdf2,
 part,         Title,    pdf2,

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-mathml.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-mathml.def	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-mathml.def	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-data.dtx  (with options: `ns-mathml')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-01-19} {0.98s}
 abs,abs,mathml,
 and,and,mathml,
 annotation,annotation,mathml,

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf.def	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf.def	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-data.dtx  (with options: `ns-pdf')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-01-19} {0.98s}
 %%  {pdf}   {http://iso.org/pdf/ssn}{}
 StructTreeRoot,StructTreeRoot,pdf,D,
 Document,Document,pdf,D,

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf2.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf2.def	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf2.def	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-data.dtx  (with options: `ns-pdf2')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,8 +19,9 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-01-19} {0.98s}
 %%  {pdf2}  {http://iso.org/pdf2/ssn}{}
+StructTreeRoot,StructTreeRoot,pdf2,D,
 Document,Document,pdf2,D,
 Part,Part,pdf2,G,
 Sect,Sect,pdf2,G,

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child-2.csv
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child-2.csv	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child-2.csv	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-data.dtx  (with options: `parent-child-2')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-01-19} {0.98s}
 ,,,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,∅

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child.csv
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child.csv	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child.csv	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 %%
 %% tagpdf-data.dtx  (with options: `parent-child')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-12-18} {0.98r}
+%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-01-19} {0.98s}
 ,,,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,∅,∅

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua	2024-01-19 22:45:20 UTC (rev 69496)
@@ -6,7 +6,7 @@
 -- 
 --  tagpdf-backend.dtx  (with options: `lua')
 --  
---  Copyright (C) 2019-2023 Ulrike Fischer
+--  Copyright (C) 2019-2024 Ulrike Fischer
 --  
 --  It may be distributed and/or modified under the conditions of
 --  the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -24,8 +24,8 @@
 
 local ProvidesLuaModule = {
     name          = "tagpdf",
-    version       = "0.98r",       --TAGVERSION
-    date          = "2023-12-18", --TAGDATE
+    version       = "0.98s",       --TAGVERSION
+    date          = "2024-01-19", --TAGDATE
     description   = "tagpdf lua code",
     license       = "The LATEX Project Public License 1.3c"
 }
@@ -411,6 +411,7 @@
     local id = n.id
     if id == GLYPH then
       local glyph = n
+      default_currfontid = glyph.font
       if glyph.next and (glyph.next.id == GLUE)
         and not inside_math  and (glyph.next.width >0)
       then
@@ -448,7 +449,8 @@
         and not inside_math  and (glyph.next.width >0) and n.subtype==0
       then
         nodesetattribute(glyph.next,iwspaceattributeid,1)
-      --  nodesetattribute(glyph.next,iwfontattributeid,glyph.font)
+        --  changed 2024-01-18, issue #72
+        nodesetattribute(glyph.next,iwfontattributeid,default_currfontid)
       -- for debugging
        if ltx.__tag.trace.showspaces then
         __tag_show_spacemark (head,glyph)
@@ -479,6 +481,7 @@
 ltx.__tag.func.markspaceoff=__tag_deactivate_mark_space
 local default_space_char = nodenew(GLYPH)
 local default_fontid     = fontid("TU/lmr/m/n/10")
+local default_currfontid = fontid("TU/lmr/m/n/10")
 default_space_char.char  = 32
 default_space_char.font  = default_fontid
 local function __tag_font_has_space (fontid)

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.sty	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.sty	2024-01-19 22:45:20 UTC (rev 69496)
@@ -15,7 +15,7 @@
 %% tagpdf-space.dtx  (with options: `package')
 %% tagpdf-user.dtx  (with options: `package')
 %% 
-%% Copyright (C) 2019-2023 Ulrike Fischer
+%% Copyright (C) 2019-2024 Ulrike Fischer
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -28,7 +28,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf.dtx
-\ProvidesExplPackage {tagpdf} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdf} {2024-01-19} {0.98s}
   { A package to experiment with pdf tagging }
 
 \bool_if:nF
@@ -260,6 +260,8 @@
     \file_input:n {tagpdf-luatex.def}
   }
 %% File: tagpdf-checks.dtx
+
+
 \msg_new:nnn { tag } {mc-nested} { nested~marked~content~found~-~mcid~#1 }
 \msg_new:nnn { tag } {mc-tag-missing} { required~tag~missing~-~mcid~#1 }
 \msg_new:nnn { tag } {mc-label-unknown}
@@ -1810,6 +1812,7 @@
   }
 %% File: tagpdf-struct.dtx
 \__tag_seq_new:N  \g__tag_struct_objR_seq
+\tl_const:Nn\c__tag_struct_null_tl {null}
 
 \__tag_prop_new:N  \g__tag_struct_cont_mc_prop
 \seq_new:N    \g__tag_struct_stack_seq
@@ -2064,20 +2067,37 @@
          {
            % in this case we need a special command in
            % luamode to get the array right. See issue #13
-           \bool_if:NT\g__tag_mode_lua_bool
+           \bool_if:NTF\g__tag_mode_lua_bool
              {
                \__tag_struct_exchange_kid_command:c
                 {g__tag_struct_kids_#1_seq}
+                \tl_set:Ne\l__tag_tmpa_tl
+                  {\use:e{\seq_item:cn {g__tag_struct_kids_#1_seq} {1}}}
+                \tl_if_eq:NNF\l__tag_tmpa_tl \c__tag_struct_null_tl
+                  {
+                    \__tag_struct_prop_gput:nne
+                      {#1}
+                      {K}
+                      {
+                        \seq_item:cn
+                          {
+                            g__tag_struct_kids_#1_seq
+                          }
+                          {1}
+                      }
+                  }
              }
-           \__tag_struct_prop_gput:nne
-             {#1}
-             {K}
              {
-               \seq_item:cn
+               \__tag_struct_prop_gput:nne
+                 {#1}
+                 {K}
                  {
-                   g__tag_struct_kids_#1_seq
+                   \seq_item:cn
+                     {
+                       g__tag_struct_kids_#1_seq
+                     }
+                     {1}
                  }
-                 {1}
              }
          } %
       }
@@ -2198,7 +2218,7 @@
             \pdf_object_ref:e { __tag/struct/\l__tag_struct_stack_parent_tmpa_tl }
           }
         % increase the int:
-        \stepcounter{ g__tag_parenttree_obj_int }
+        \int_gincr:N \c at g__tag_parenttree_obj_int
       }
   }
 \cs_new:Npn \__tag_get_data_struct_tag:
@@ -2950,6 +2970,8 @@
 %% File: tagpdf-user.dtx
 
 
+
+
 \RenewDocumentCommand \tagpdfsetup { m }
   {
     \keys_set:nn { __tag / setup } { #1 }
@@ -3167,6 +3189,9 @@
 \tl_set:Nn  \l__tag_para_tag_tl { \l__tag_para_tag_default_tl }
 \tl_new:N   \l__tag_para_main_tag_tl
 \tl_set:Nn  \l__tag_para_main_tag_tl {text-unit}
+\tl_if_exist:NF \l__tag_para_attr_class_tl
+ {\tl_new:N \l__tag_para_attr_class_tl }
+\tl_new:N \l__tag_para_main_attr_class_tl
 
 \cs_new_protected:Npn \__tag_gincr_para_main_begin_int:
  {
@@ -3235,6 +3260,10 @@
  }
 \AddToHook{package/latex-lab-testphase-block/after}
  {
+   \tl_if_exist:NT \l_tag_para_attr_class_tl
+    {
+      \tl_set:Nn \l__tag_para_attr_class_tl { \l_tag_para_attr_class_tl }
+    }
    \cs_set_protected:Npn \__block_start_para_structure:n #1 {
      \__block_debug_typeout:n
         { @endpe = \legacy_if:nTF { @endpe }{true}{false}
@@ -3244,7 +3273,11 @@
          \bool_if:NF \l__tag_para_flattened_bool
             {
               \__tag_gincr_para_main_begin_int:
-              \tag_struct_begin:n{tag=\l__tag_para_main_tag_tl}
+              \tag_struct_begin:n
+               {
+                tag=\l__tag_para_main_tag_tl,
+                attribute-class=\l__tag_para_main_attr_class_tl,
+               }
             }
         }
      \__tag_gincr_para_begin_int:
@@ -3252,7 +3285,7 @@
      \tag_struct_begin:n
          {
             tag=\l__tag_para_tag_tl
-           ,attribute-class=\l_tag_para_attr_class_tl
+           ,attribute-class=\l__tag_para_attr_class_tl
          }
      \__tag_check_para_begin_show:nn {green}{#1}
      \tag_mc_begin:n {}

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdfdocu-patches.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdfdocu-patches.sty	2024-01-19 22:45:06 UTC (rev 69495)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdfdocu-patches.sty	2024-01-19 22:45:20 UTC (rev 69496)
@@ -1,5 +1,5 @@
 %\RequirePackage[enable-debug]{expl3}[2018/06/14]
-\ProvidesExplPackage {tagpdfdocu-patches} {2023-12-18} {0.98r}
+\ProvidesExplPackage {tagpdfdocu-patches} {2024-01-19} {0.98s}
  {patches/commands for the tagpdf documentation}
 \RequirePackage{etoolbox,xpatch}
 



More information about the tex-live-commits mailing list.