texlive[67835] Master/texmf-dist: tagpdf (7aug23)

commits+karl at tug.org commits+karl at tug.org
Mon Aug 7 21:47:48 CEST 2023


Revision: 67835
          http://tug.org/svn/texlive?view=revision&revision=67835
Author:   karl
Date:     2023-08-07 21:47:48 +0200 (Mon, 07 Aug 2023)
Log Message:
-----------
tagpdf (7aug23)

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-AF-file.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-mc-manual-para-split-obsolete.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-mc-manual-para-split-obsolete.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-softhyphen.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-softhyphen.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-spaceglyph-listings.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-spaceglyph-listings.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-tagpdf-template.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-tagpdf-template.tex
    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/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.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

Added Paths:
-----------
    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-list.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.pdf

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-list-luatex.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-list-obsolete.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-list.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-sectioning-koma.tex
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-sectioning-memoir.pdf
    trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-sectioning-memoir.tex

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/README.md	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/README.md	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,6 +1,6 @@
 #tagpdf — A package to create tagged pdf
-Packageversion: 0.98j 
-Packagedate: 2023/07/08
+Packageversion: 0.98k 
+Packagedate: 2023/08/04
 Author: Ulrike Fischer
 
 ## 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-AF-file.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-AF-file.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-AF-file.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,12 +1,10 @@
 % !Mode:: "TeX:DE:UTF-8:Main"
-\IfFormatAtLeastTF{2022-06-01}{}
-  {\RequirePackage{pdfmanagement-testphase}}
 \DocumentMetadata
  {
    uncompress,
    pdfversion=2.0,
    lang=de-DE,
-   testphase=tagpdf %load and activate tagpdf
+   testphase=phase-I %load and activate tagpdf
  }
 \documentclass{article}
 

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

Index: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.pdf	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.pdf	2023-08-07 19:47:48 UTC (rev 67835)

Property changes on: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-alt-actualtext.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,13 +1,12 @@
 % !Mode:: "TeX:DE:UTF-8:Main"
 
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{pdfversion=1.7,lang=de-DE}
 
+\DocumentMetadata{pdfversion=1.7,lang=de-DE,testphase=phase-II}
+
 \documentclass{article}
 
 \usepackage{tagpdf}
-\tagpdfsetup{tabsorder=structure,
-             activate}
+\tagpdfsetup{tabsorder=structure}
 \usepackage{iftex}
 \iftutex
   \usepackage{fontspec}

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

Index: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.pdf	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.pdf	2023-08-07 19:47:48 UTC (rev 67835)

Property changes on: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-attribute.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,10 +1,7 @@
 % !Mode:: "TeX:DE:UTF-8:Main"
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{uncompress,lang=de_DE}
+\DocumentMetadata{testphase=phase-I,uncompress,lang=de_DE}
 \documentclass{scrartcl}
 \usepackage[english]{babel}
-\usepackage{tagpdf}
-\tagpdfsetup{activate}
 
 \ExplSyntaxOn
 \pdfmanagement_add:nnn{Info}{Title}{(Title)}

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

Index: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.pdf	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.pdf	2023-08-07 19:47:48 UTC (rev 67835)

Property changes on: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-formula-problem.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,14 +1,12 @@
 % !Mode:: "TeX:DE:UTF-8:Main"
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{
+\DocumentMetadata{
+   testphase=phase-I,
    pdfversion=1.7
   ,lang=de-DE
   ,uncompress}
 \documentclass{article}
-\usepackage{tagpdf}
 
-\tagpdfsetup{tabsorder=structure,
-             activate}
+\tagpdfsetup{tabsorder=structure}
 \usepackage{iftex}             
 \iftutex
   \usepackage{fontspec}

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

Index: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-list.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-list.pdf	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-list.pdf	2023-08-07 19:47:48 UTC (rev 67835)

Property changes on: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-list.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-list.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-list.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-list.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -0,0 +1,57 @@
+% !Mode:: "TeX:DE:UTF-8:Main"
+
+% This example shows how one can patch lists command
+% it is based on enumitem
+
+% Pay attention to casing. Li/LI, Lbody/Lbody are different.
+
+% It doesn't test nesting!
+
+% lists are now handled in phase-III,
+% enumitem is currently incompatible!
+\DocumentMetadata{pdfversion=1.7,uncompress,testphase=phase-III}
+
+
+\documentclass{scrbook}
+\usepackage[english]{babel}
+
+\usepackage{iftex}
+\ifluatex
+  \usepackage{fontspec}
+  \usepackage{luacode}
+\else
+  \usepackage[T1]{fontenc}
+\fi
+
+
+
+\tagpdfsetup
+  {
+    tabsorder=structure,
+  }
+
+\usepackage{lipsum}%\textheight3cm
+
+\begin{document}
+%I don't want to handle pagestyles, so set everything to empty:
+\pagestyle{empty}\renewcommand\chapterpagestyle{empty}
+
+
+
+\begin{itemize}
+\item Ducks say quack
+\item Marmots say something Parmotlike
+\end{itemize}
+
+\begin{enumerate}
+\item The highest pass is the Col de l'Iseran.
+\item The second highest pass is the Passo dello Stelvio.
+\end{enumerate}
+
+\begin{description}
+\item[ducks] yellow
+\item[marmots] brown
+\end{description}
+
+
+\end{document} 
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-list.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
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-mc-manual-para-split-obsolete.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-mc-manual-para-split-obsolete.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-mc-manual-para-split-obsolete.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -12,11 +12,10 @@
 % page split automatically. To keep the example working this is disabled
 % below with \csname __tag_mc_disable_marks:\endcsname
 
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{pdfversion=1.7,uncompress}
+\DocumentMetadata{pdfversion=1.7,uncompress}
 \documentclass{book}
 \usepackage[english,ngerman]{babel}
-\usepackage{tagpdf}
+\usepackage[genericmode]{tagpdf}
 \usepackage{amsmath}
 \usepackage{graphicx}
 \usepackage{iftex}

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

Deleted: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-list-obsolete.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-list-obsolete.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-list-obsolete.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,100 +0,0 @@
-% !Mode:: "TeX:DE:UTF-8:Main"
-
-
-%!! Obsolete example as it uses manual tagging of paragraph. 
-% Check the newer version ex-patch-list for a simpler version!
-
-%This example shows how one can patch lists command
-%it is based on enumitem
-
-%It uses a command to end \item (\meti). It is perhaps possible to hide this command
-% inside \item/end{list}, but with nested list it is not so easy.
-
-% not really up-to-date, with paratagging one could simplify things.
-
-% Pay attention to casing. Li/LI, Lbody/Lbody are different.
-%no page break involved. So the example works in lua and generic mode
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{pdfversion=1.7,uncompress}
-
-\documentclass{scrbook}
-\usepackage[english]{babel}
-\usepackage{tagpdf}
-
-\usepackage{iftex}
-\iftutex
-  \usepackage{fontspec}
-  \usepackage{luacode}
-\else
-  \usepackage[T1]{fontenc}
-\fi
-
-
-
-\tagpdfsetup{tabsorder=structure,
-             activate,
-             }
-
-\usepackage{lipsum}%\textheight3cm
-
-\usepackage{enumitem,xpatch}
-
-\makeatletter
-
-\newcommand\tag at enit@format at preset[1]{%
-  \tagstructbegin{tag=LI}%
-  \tagstructbegin{tag=Lbl}%
-  \tagmcbegin{tag=Lbl}%
-  #1%
-  \tagmcend
-  \tagstructend %end Lbl
-  \tagstructbegin{tag=LBody}}
-
-\newcommand\meti{% end of \item
- \tagstructend %end of LBody
- \tagstructend %end of LI
-}
-
-\xpatchcmd\enit at preset{\@firstofone}{\tag at enit@format at preset}{}{\fail}
-
-\setlist{
-    before*=\tagstructbegin{tag=L},
-    after*={\tagstructend}}
-
-% keys that overwrite \enit at format must be patched, eg like the follow
-% the font key should be patched in a similar way
-\enitkv at key{enumitem}{format}{%
-  \def\enit at format{%
-   \tagstructbegin{tag=LI}%
-   \tagstructbegin{tag=Lbl}%
-   \tagmcbegin{tag=Lbl}%
-   #1\tagmcend}}
-\makeatother
-% marking of the text inside the list can not be handled automatically -- one doesn't know the type
-% we use simple P here
-\newcommand\TAGP{\tagstructbegin{tag=P}\tagmcbegin{tag=P}}
-\newcommand\PGAT{\tagmcend\tagstructend}
-
-\begin{document}
-%I don't want to handle pagestyles, so set everything to empty:
-\pagestyle{empty}\renewcommand\chapterpagestyle{empty}
-
-
-
-\begin{itemize}
-\item \TAGP Ducks say quack\PGAT\meti
-\item \TAGP Marmots say something Parmotlike\PGAT\meti
-\end{itemize}
-
-\begin{enumerate}
-\item \TAGP The highest pass is the Col de l'Iseran.\PGAT\meti
-\item \TAGP The second highest pass is the Passo dello Stelvio.\PGAT\meti
-\end{enumerate}
-
-\begin{description}
-\item[ducks] \TAGP yellow\PGAT\meti
-\item[marmots] \TAGP brown\PGAT\meti
-\end{description}
-
-
-\end{document} 
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-list.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-list.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-list.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,101 +0,0 @@
-% !Mode:: "TeX:DE:UTF-8:Main"
-
-% This example shows how one can patch lists command
-% it is based on enumitem
-
-% Pay attention to casing. Li/LI, Lbody/Lbody are different.
-
-% It doesn't test nesting!
-
-% We are using \DocumentMetadata
-% This requires a new pdfmanagement and/or latex-dev! 
-% Older systems should use \DeclareDocumentMetadata
-\IfFormatAtLeastTF{2022-06-01}{}
-  {\RequirePackage{pdfmanagement-testphase}}
-\DocumentMetadata{pdfversion=1.7,uncompress,testphase=tagpdf}
-
-
-\documentclass{scrbook}
-\usepackage[english]{babel}
-
-\usepackage{iftex}
-\ifluatex
-  \usepackage{fontspec}
-  \usepackage{luacode}
-\else
-  \usepackage[T1]{fontenc}
-\fi
-
-
-
-\tagpdfsetup
-  {
-    tabsorder=structure,
-  }
-
-\usepackage{lipsum}%\textheight3cm
-
-\usepackage{enumitem,xpatch}
-
-% At first we add to the begin/end hooks the structure commands.
-% To avoid problems with nested paragraphs we force a new paragraph for now. 
-% Real code should avoid that!
-\AddToHook{env/itemize/begin}{\par\tagstructbegin{tag=L}}%\par is needed to close the paragraph before.
-\AddToHook{env/itemize/end}{\par\tagstructend\tagstructend\tagstructend}%LBody,LI,L
-\AddToHook{env/enumerate/begin}{\par\tagstructbegin{tag=L}}
-\AddToHook{env/enumerate/end}{\par\tagstructend\tagstructend\tagstructend}%LBody,LI,L
-\AddToHook{env/description/begin}{\par\tagstructbegin{tag=L}}
-\AddToHook{env/description/end}{\par\tagstructend\tagstructend\tagstructend}%LBody,LI,L
-
-\makeatletter
-\ExplSyntaxOn
-%We detect is this is the first or a follow up item where we have to end a structure first:  
-\newcommand\tag at enit@format at preset[1]{%
- \str_if_eq:eeTF { \prop_item:cn { g__tag_struct_\g__tag_struct_stack_current_tl _prop }{S} }{/L}
-  {
-   %\typeout{BEGIN~OF~LIST}
-  }
-  {%\typeout{NEXT ITEM}
-   \tagstructend\tagstructend} % for the LBody/LI
-  \tagstructbegin{tag=LI}
-  \tagstructbegin{tag=Lbl}
-  \tagmcbegin{tag=Lbl}
-    #1
-  \tagmcend
-  \tagstructend
-  \tagstructbegin{tag=LBody}
-  }
-  
-\ExplSyntaxOff
-
-\xpatchcmd\enit at preset{\@firstofone}{\tag at enit@format at preset}{}{\fail}
-%close mc from paratagging and reopen ...
-\xpatchcmd\@item{\box\@labels}{\tagmcend \box\@labels \tagmcbegin{tag=P}}{}{\fail}
-
-\makeatother
-
-
-
-\begin{document}
-%I don't want to handle pagestyles, so set everything to empty:
-\pagestyle{empty}\renewcommand\chapterpagestyle{empty}
-
-
-
-\begin{itemize}
-\item Ducks say quack
-\item Marmots say something Parmotlike
-\end{itemize}
-
-\begin{enumerate}
-\item The highest pass is the Col de l'Iseran.
-\item The second highest pass is the Passo dello Stelvio.
-\end{enumerate}
-
-\begin{description}
-\item[ducks] yellow
-\item[marmots] brown
-\end{description}
-
-
-\end{document} 
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-sectioning-koma.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-sectioning-koma.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-sectioning-koma.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,178 +0,0 @@
-% !Mode:: "TeX:DE:UTF-8:Main"
-
-%This example shows how one can patch sectioning command and toc entries
-%to add tags.
-%The patches are layout/option dependant
-%With other document options (e.g. chapterprefix) or
-%if the sectioning commands are redefined more/different patches are perhaps needed
-
-%no page break involved. So the example works in lua and generic mode
-
-% unclear if everything still works. They have been some changes in koma
-% doesn't take paratagging into account. 
-
-
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{pdfversion=1.7,uncompress}
-
-\documentclass{scrbook}
-\usepackage[english]{babel}
-
-\usepackage{tagpdf}
-
-\usepackage{iftex}
-\iftutex
-  \usepackage{fontspec}
-  \usepackage{luacode}
-\else
-  \usepackage[T1]{fontenc}
-\fi
-
-
-
-\tagpdfsetup{tabsorder=structure,
-             activate,
-             }
-
-
-%%%%%%%%%%%%%%%
-%Marking the toc entries
-%around the whole entry so only structure:
-\newcommand\tagscrtocentry[1]{\tagstructbegin{tag=TOCI}#1\tagstructend}
-
-%leaf so structure and mc:
-\newcommand\tagscrtocpagenumber[1]{%
- \tagstructbegin{tag=Reference}%
- \tagmcbegin{tag=Reference}%
- #1%
- \tagmcend
- \tagstructend}
-
-\DeclareTOCStyleEntry[
-   entryformat=\tagscrtocentry,
-   pagenumberformat=\tagscrtocpagenumber]{tocline}{chapter}
-\DeclareTOCStyleEntry[
-   entryformat=\tagscrtocentry,
-   pagenumberformat=\tagscrtocpagenumber]{tocline}{section}
-\DeclareTOCStyleEntry[
-   entryformat=\tagscrtocentry,
-   pagenumberformat=\tagscrtocpagenumber]{tocline}{subsection}
-\DeclareTOCStyleEntry[
-   entryformat=\tagscrtocentry,
-   pagenumberformat=\tagscrtocpagenumber]{tocline}{subsubsection}
-\DeclareTOCStyleEntry[
-   entryformat=\tagscrtocentry,
-   pagenumberformat=\tagscrtocpagenumber]{tocline}{paragraph}
-
-
-
-\renewcommand{\addtocentrydefault}[3]{%
- \Ifstr{#3}{}{}
-   {%\
-   \Ifstr{#2}{}
-    {%
-     \addcontentsline{toc}{#1}
-      {%
-       \protect\nonumberline
-       \tagstructbegin{tag=P}%
-       \tagmcbegin{tag=P}%
-        #3%
-       \tagmcend
-       \tagstructend
-      }%
-    }%
-    {%
-    \addcontentsline{toc}{#1}{%
-     \tagstructbegin{tag=Lbl}%
-     \tagmcbegin{tag=Lbl}%
-     \protect\numberline{#2}%
-     \tagmcend\tagstructend
-     \tagstructbegin{tag=P}%
-     \tagmcbegin{tag=P}%
-      #3%
-     \tagmcend
-     \tagstructend
-     }%
-    }%
-   }}%
-
-% the dots must be marked too
-\makeatletter
-\renewcommand*{\TOCLineLeaderFill}[1][.]{%
-  \leaders\hbox{$\m at th
-    \mkern \@dotsep mu\hbox{\tagmcbegin{artifact}#1\tagmcend}\mkern \@dotsep
-    mu$}\hfill
-}
-
-%%%%%%%%%
-% Sectioning commands
-%%%%%%%%
-
-\ExplSyntaxOn
-\prop_new:N   \g_tag_section_level_prop
-\prop_gput:Nnn \g_tag_section_level_prop {chapter}{H1}
-\prop_gput:Nnn \g_tag_section_level_prop {section}{H2}
-\prop_gput:Nnn \g_tag_section_level_prop {subsection}{H3}
-\prop_gput:Nnn \g_tag_section_level_prop {subsubsection}{H4}
-\prop_gput:Nnn \g_tag_section_level_prop {paragraph}{H5}
-
-%new 0.6, as attributes are local we have to put \tagmcbegin everywhere.
-\renewcommand{\chapterlinesformat}[3]
- {
-  \@hangfrom
-   {
-    \tagstructbegin{tag=\prop_item:Nn\g_tag_section_level_prop{chapter}}
-    \tl_if_empty:nF{#2}
-     {
-      \tagmcbegin    {tag=\prop_item:Nn\g_tag_section_level_prop{chapter}}
-      #2
-      \tagmcend
-     }
-   }
-   {\tagmcbegin    {tag=\prop_item:Nn\g_tag_section_level_prop{chapter}}
-    #3\tagmcend\tagstructend}%
- }
-
-%unnumbered sections level give an empty mc, need to think about it.
-\renewcommand{\sectionlinesformat}[4]
- {
-  \@hangfrom
-   {\hskip #2
-    \tagstructbegin{tag=\prop_item:Nn\g_tag_section_level_prop{#1}}
-    \tl_if_empty:nF{#3}
-    {
-     \tagmcbegin    {tag=\prop_item:Nn\g_tag_section_level_prop{#1}}
-     #3
-     \tagmcend
-    }
-   }
-   {\tagmcbegin    {tag=\prop_item:Nn\g_tag_section_level_prop{#1}}
-    #4
-    \tagmcend\tagstructend}%
- }
-
-\ExplSyntaxOff
-\AfterTOCHead{\tagstructbegin{tag=TOC}}
-\AfterStartingTOC{\tagstructend} %end TOC
-
-
-\begin{document}
-%I don't want to handle pagestyles, so set everything to empty:
-\pagestyle{empty}\renewcommand\chapterpagestyle{empty}
-
-
-\tableofcontents
-
-\chapter{chapter}
-\addchap{chapter}
-\section{section}
-\subsection{subsection}
-\subsubsection{subsubsection}
-
- \tagstructbegin{tag=P,actualtext=abc!}
-   \tagmcbegin{tag=P}
-    a paragraph\par x
-   \tagmcend
- \tagstructend
-
-\end{document} 
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-sectioning-memoir.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-sectioning-memoir.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-sectioning-memoir.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-patch-sectioning-memoir.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,246 +0,0 @@
-% !Mode:: "TeX:DE:UTF-8:Main"
-%chapter not correct!!
-% 13.07.2021 doesn't use paratagging!
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{pdfversion=1.7,uncompress}
-
-\documentclass[a4paper,oneside]{memoir}
-\settocdepth{subsubsection}
-\setsecnumdepth{subsubsection}
-
-\usepackage[english]{babel}
-
-
-\usepackage{tagpdf}
-
-\usepackage{iftex}
-\iftutex
-  \usepackage{fontspec}
-  \usepackage{luacode}
-\else
-  \usepackage[T1]{fontenc}
-\fi
-
-
-\tagpdfsetup{tabsorder=structure,
-             activate,interwordspace
-             }
-
-\usepackage{lipsum}%\textheight3cm
-
-\usepackage{etoolbox}
-
-\ifdef\cfttocbeforelisthook{
-  \appto\cfttocbeforelisthook{\tagstructbegin{tag=TOC}}%\noindent TOC\par}
-}{
-  \csdef\cfttocbeforelisthook{\tagstructbegin{tag=TOC}}%\noindent TOC\par}
-}
-\ifdef\cfttocafterlisthook{
-  \appto\cfttocafterlisthook{\tagstructend}%\noindent /TOC\par}
-}{
-  \csdef\cfttocafterlisthook{\tagstructend}%\noindent /TOC\par}
-}
-
-\def\M{{\fontsize{3pt}{3pt}\sffamily\selectfont NN}}
-
-%what about unnumbered entries in the toc??????
-\appto\cftchapterpresnum{%
-     \tagstructbegin{tag=TOCI}% is there a better place? what about unnumbered entries?
-     \tagstructbegin{tag=Lbl}%
-     \tagmcbegin{tag=Lbl}%
-}
-\appto\cftchapteraftersnum{%
-  \tagmcend
-  \tagstructend}
-
-\appto\cftsectionpresnum{%
-    \tagstructbegin{tag=TOCI}% is there a better place? what about unnumbered entries?
-    \tagstructbegin{tag=Lbl}%
-    \tagmcbegin{tag=Lbl}%
-}
-\appto\cftsectionaftersnum{%
- \tagmcend
- \tagstructend}
-
-\appto\cftsubsectionpresnum{%
-    \tagstructbegin{tag=TOCI}% is there a better place? what about unnumbered entries?
-    \tagstructbegin{tag=Lbl}%
-    \tagmcbegin{tag=Lbl}%
- }
-\appto\cftsubsectionaftersnum{%
- \tagmcend
- \tagstructend}
-\appto\cftsubsubsectionpresnum{%
-    \tagstructbegin{tag=TOCI}% is there a better place? what about unnumbered entries?
-    \tagstructbegin{tag=Lbl}%
-    \tagmcbegin{tag=Lbl}%
-}
-\appto\cftsubsubsectionaftersnum{%
- \tagmcend
- \tagstructend}
-
-%begin of entry
-\appto\cftchapteraftersnumb{%
-     \tagstructbegin{tag=P}%
-     \tagmcbegin{tag=P}}
-\appto\cftsectionaftersnumb{%
-     \tagstructbegin{tag=P}%
-     \tagmcbegin{tag=P}}
-\appto\cftsubsectionaftersnumb{%
-     \tagstructbegin{tag=P}%
-     \tagmcbegin{tag=P}}
-\appto\cftsubsubsectionaftersnumb{%
-     \tagstructbegin{tag=P}%
-     \tagmcbegin{tag=P}}
-
-%end of entry
-\pretocmd\cftchapterfillnum{%
- \tagmcend
- \tagstructend
-}{}{}
-\pretocmd\cftsectionfillnum{
- \tagmcend
- \tagstructend}{}{}
-\pretocmd\cftsubsectionfillnum{
- \tagmcend
- \tagstructend}{}{}
-\pretocmd\cftsubsubsectionfillnum{%
- \tagmcend
- \tagstructend}{}{}
-
-
-\makeatletter
-\patchcmd\cftchapterformatpnum{\cftchapterpagefont #1}{%
-  %\llap{\M pnum}%
-  \tagstructbegin{tag=Reference}%
-   \tagmcbegin{tag=Reference}
-  \cftchapterpagefont #1%
-  %\rlap{\M pnum}%
-  \tagmcend
-  \tagstructend
-  \tagstructend %for /TOCI. is there a better place?
-}{}{}
-\patchcmd\cftsectionformatpnum{\@nameuse{cftsectionpagefont}#1}{%
-  %\llap{\M pnum}%
-  \tagstructbegin{tag=Reference}%
-   \tagmcbegin{tag=Reference}
-   \@nameuse{cftsectionpagefont}#1%
-  %\rlap{\M pnum}%
-  \tagmcend
- \tagstructend
- \tagstructend %for /TOCI. is there a better place?
-}{}{\typeout{patch failed}}
-\patchcmd\cftsubsectionformatpnum{\@nameuse{cftsubsectionpagefont}#1}{%
-  %\llap{\M}%
-  \tagstructbegin{tag=Reference}%
-   \tagmcbegin{tag=Reference}
-   \@nameuse{cftsubsectionpagefont}#1%
-  %\rlap{\M}%
-   \tagmcend
-  \tagstructend
-  \tagstructend %for /TOCI. is there a better place?
-}{}{\typeout{patch failed}}
-
-\patchcmd\cftsubsubsectionformatpnum{\@nameuse{cftsubsubsectionpagefont}#1}{%
-  %\llap{\M}%
-  \tagstructbegin{tag=Reference}%
-   \tagmcbegin{tag=Reference}
-   \@nameuse{cftsubsubsectionpagefont}#1%
-  %\rlap{\M}%
-   \tagmcend
-  \tagstructend
-  \tagstructend %for /TOCI. is there a better place?
-}{}{\typeout{patch failed}}
-
-
-% section is typeset using \M at sect
-\ExplSyntaxOn
-\prop_new:N   \g_tag_section_level_prop
-\prop_put:Nnn \g_tag_section_level_prop {chapter}{H1}
-\prop_put:Nnn \g_tag_section_level_prop {section}{H2}
-\prop_put:Nnn \g_tag_section_level_prop {Starredsection}{H2}
-\prop_put:Nnn \g_tag_section_level_prop {subsection}{H3}
-\prop_put:Nnn \g_tag_section_level_prop {subsubsection}{H4}
-\prop_put:Nnn \g_tag_section_level_prop {paragraph}{H5}
-\ExplSyntaxOff
-\patchcmd\M at sect{#9\@@par}{%
- %this place could be used for something between number and text
-  #9%
-     \tagmcend
-     \tagstructend
-  \@@par%
-}{}{}
-
-% section* use \@ssect, but memoir redefines it a little before
-% calling the kernel version
-
-\ExplSyntaxOn
-\patchcmd\@ssect{\@mem at old@ssect{#1}{#2}{#3}{#4}{#5}}{%
-  \@mem at old@ssect{#1}{#2}{#3}{#4}{%
-  \tagstructbegin{tag=H2}% how to get level???
-  \tagmcbegin    {tag=H2}% how to get level???
-   #5
-  \tagmcend
-  \tagstructend}%
-}{}{}
-
-% section numbers are typeset using \@seccntformat
-
-
-\pretocmd\@seccntformat{%
- \tagstructbegin{tag=\prop_item:Nn\g_tag_section_level_prop{#1}}%
- \tagmcbegin    {tag=\prop_item:Nn\g_tag_section_level_prop{#1}}
-}{}{}
-\ExplSyntaxOff
-% could be used to insert something after the number ...
-%\patchcmd\@seccntformat{\endcsname}{%
-%  \endcsname\rlap{\M}%
-%}{}{}
-
-\renewcommand{\cftdot}{\tagmcbegin{artifact}.\tagmcend}
-
-\makeatother
- % I don't want to handle header/footer now
-\pagestyle{empty}
-\makeevenfoot{plain}{}{}{}
-\makeoddfoot{plain}{}{}{}
-
-
-%% missing yet: chapter titles
-\begin{document}
-
-
-\tableofcontents*
-
-\chapter{Test chapter}
-
-\section{Test section}
-
- \tagstructbegin{tag=P}
-   \tagmcbegin{tag=P}
-test
-   \tagmcend
- \tagstructend
-
-
-\subsection{Test subsection}
-
- \tagstructbegin{tag=P}
-   \tagmcbegin{tag=P}
-test
-   \tagmcend
- \tagstructend
-
-\subsubsection{Test subsubsection}
-
- \tagstructbegin{tag=P}
-   \tagmcbegin{tag=P}
-test
-   \tagmcend
- \tagstructend
-
-\section*{Starred section}
-
-\end{document}
-
-

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

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-softhyphen.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-softhyphen.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-softhyphen.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -8,22 +8,13 @@
 % when copied from adobe
 % sumatra doesn't understand this and copies Mi­nisterprä­sident
 
-
-
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{pdfversion=1.7,uncompress}
+\DocumentMetadata{testphase=phase-II,pdfversion=1.7,uncompress}
 \documentclass{book}
 
 \usepackage[ngerman]{babel} %to get some hyphenation
-\usepackage{tagpdf}
-\tagpdfsetup{tabsorder=structure,
-             activate, %deactivate to see the difference
-             interwordspace,
-             paratagging
-             }
 
 \usepackage{fontspec}
-% we must remove the invisible feature
+%with older luaotfload we must remove the invisible feature!
 \setmainfont{TeX Gyre Pagella}[RawFeature={-invisible}]
 \prehyphenchar"AD
 
@@ -38,17 +29,9 @@
 \end{document}
 
 
-aaaaaaa-
-aaaaaa
-aaaaaaa-
-aaaaaa
-Mi­
-nisterprä­
-sident
 
-
 aaaaaaa-aaaaaa aaaaaaa-aaaaaa
 Ministerpräsident
 
 aaaaaaa-aaaaaa aaaaaaa-aaaaaa
-Ministerpräsident
\ No newline at end of file
+Ministerpräsident 
\ No newline at end of file

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

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-spaceglyph-listings.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-spaceglyph-listings.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-spaceglyph-listings.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,7 +1,5 @@
 % !Mode:: "TeX:DE:UTF-8:Main"
-\IfFormatAtLeastTF{2022-06-01}{}
-  {\RequirePackage{pdfmanagement-testphase}}
-\DocumentMetadata{uncompress,testphase=tagpdf}
+\DocumentMetadata{uncompress,testphase=phase-I}
 \documentclass{article}
 \usepackage{amsmath}
 \usepackage[ngerman]{babel}

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

Index: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.pdf	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.pdf	2023-08-07 19:47:48 UTC (rev 67835)

Property changes on: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-structure-obsolete.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,15 +1,12 @@
 % !Mode:: "TeX:DE:UTF-8:Main"
 
 %!!!!!!!
-% obsolete in part (paratagging will interfere)
-% don't expect a correct output!
+% manual tagging without paratagging. Won't work correctly in later phases.
 %
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{pdfversion=1.7,uncompress}
+\DocumentMetadata{testphase=phase-I,pdfversion=1.7,uncompress}
 
 \documentclass{book}
 \usepackage[english,ngerman]{babel}
-\usepackage{tagpdf}
 \usepackage{amsmath}
 \usepackage{graphicx}
 
@@ -22,9 +19,7 @@
 \fi
 
 
-\tagpdfsetup{tabsorder=structure,
-             activate
-             }
+\tagpdfsetup{tabsorder=structure}
 \newsavebox\mybox
 
 % this works only as we have only one page. Footer/header must be handle in the output routine.

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

Modified: trunk/Master/texmf-dist/doc/latex/tagpdf/ex-tagpdf-template.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tagpdf/ex-tagpdf-template.tex	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/ex-tagpdf-template.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -5,17 +5,13 @@
 
 % \DocumentMetadata requires a new pdfmanagement-testphase version! Older versions
 % should use \DeclareDocumentMetadata
-
-% with a new LaTeX it will not longer be needed to load pdfmanagment-testphase!
-\IfFormatAtLeastTF{2022-06-01}{}
-  {\RequirePackage{pdfmanagement-testphase}}
 \DocumentMetadata
- {uncompress,
+ {uncompress, %only for debugging!!
   pdfversion=2.0,
-  testphase=tagpdf %load and activate tagpdf
+  testphase=phase-III %load and activate tagpdf and uses all the phase-III code
   }
 
-\documentclass{scrartcl}
+\documentclass{article}
 \usepackage[english]{babel}
 
 \usepackage{iftex}

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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/doc/latex/tagpdf/tagpdf.tex	2023-08-07 19:47:48 UTC (rev 67835)
@@ -16,8 +16,8 @@
  }
 \DebugBlocksOff
 \makeatletter
-\def\UlrikeFischer at package@version{0.98j}
-\def\UlrikeFischer at package@date{2023-07-08}
+\def\UlrikeFischer at package@version{0.98k}
+\def\UlrikeFischer at package@date{2023-08-04}
 \makeatother
 
 \documentclass[bibliography=totoc,a4paper]{article}
@@ -191,7 +191,9 @@
 real space glyphs so I don't recommend them. 
 lualatex is the most powerful and safe modus and should be used for new documents, it is slower than pdflatex but requires less compilations to get tagging. pdflatex works ok and can be used for legacy documents; it needs more compilations to resolve all cross references needed for the tagging. 
 
-The package has two modes: the \emph{generic mode} which should work in theory with every engine and the \emph{lua mode} which works only with lualatex.
+The package has two modes: the \emph{generic mode} which should work in 
+theory with every engine and the \emph{lua mode} which works only with 
+lualatex and (since version 0.98k) with dvilualatex. 
 
 I implemented the generic mode first. Mostly because my \TeX\ skills are much better than my lua skills and I wanted to get the \TeX\ side right before starting to fight with attributes and node traversing.
 
@@ -522,7 +524,19 @@
 \item The command |tag_struct_end:n| has been add to improve debugging.
 \end{itemize}
 
+\subsection{Changes in version 0.98k}
 
+The luamode has been adapted and now allows also the compilation with 
+dvilualatex. By default it will insert specials for \texttt{dvips} into the 
+dvi. But be aware that \texttt{dvips} can normally not be used as it can't 
+handle open type fonts, and extended version would be needed which isn't in 
+texlive yet. It is also possible to use \texttt{dvipdfmx} as backend (which 
+already has support for open type fonts), for this you need to use 
+\texttt{backend=dvipdfmx} in the \cs{DocumentMetadata} command. Real space 
+chars will work, but are currently not taken from the current font. This will 
+be improved in the next luaotfload version. The compilation with dvilualatex 
+is not much tested yet. 
+
 \subsection{Proof of concept: the tagging of the documentation itself}
 
 Starting with version 0.6 the documentation itself has been tagged. The 
@@ -1310,13 +1324,9 @@
 \tagpdfparaOff
 
 \tagstructbegin{tag=Figure,alt={Illustration of link annotation structure},attribute=bbox}\tagmcbegin{tag=Figure}
-\ExplSyntaxOn
-\tag_stop:
-\ExplSyntaxOff
+\tagstop
 \input{link-figure-input}
-\ExplSyntaxOn
-\tag_start:
-\ExplSyntaxOff
+\tagstart
 \tagmcend\tagstructend
 
 \caption{Structure needed for a link annotation}\label{fig:linkannot}
@@ -1925,6 +1935,8 @@
 
 \begin{docCommand}[nosep]{tag_stop:}{}\end{docCommand}
 \begin{docCommand}[nosep]{tag_start:}{}\end{docCommand}
+\begin{docCommand}[nosep]{tagstop}{}\end{docCommand}
+\begin{docCommand}[nosep]{tagstart}{}\end{docCommand}
 \begin{docCommand}[nosep]{tag_stop_group_begin:}{}\end{docCommand}
 \begin{docCommand}{tag_start_group_end:}{}\end{docCommand}
 
@@ -1932,6 +1944,11 @@
 by switching \emph{local} booleans.
 The grouping commands also open and close a group.
 
+Restarting tagging is normally only needed if groups can't be used and then 
+must be done with care: |\tagstart| should normally only restart tagging if 
+the corresponding stop command actually stopped tagging. In complicated 
+case the following labeled version can be used: 
+
 \begin{docCommand}[nosep]{tag_stop:n}{\marg{label}}\end{docCommand}
 \begin{docCommand}{tag_start:n}{\marg{label}}\end{docCommand}
 
@@ -2111,9 +2128,8 @@
 a child of another structure, e.g. a \texttt{Sect} can not be a child of \texttt{P}. 
 In the \PDF{} 1.7 reference this rules were 
 rather vage, in the \PDF{} 2.0  reference there is a quite specific matrix, 
-which sadly misses some of the tags from \PDF{} 1.7. The upcoming 
-ISO norm 32005 will 
-address this problem and extend the matrix to cover tags from 
+which sadly misses some of the tags from \PDF{} 1.7. The now released 
+ISO norm 32005 addresses this problem and extends the matrix to cover tags from 
 \PDF{} 1.7 and 2.0 (but it still misses the \texttt{math} tag and mathml 
 tags). 
 

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-backend.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -47,13 +47,13 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98j, released 2023-07-08}
+% \date{Version 0.98k, released 2023-08-04}
 % \maketitle
 % \begin{implementation}
 %    \begin{macrocode}
 %<@@=tag>
 %<*luatex>
-\ProvidesExplFile {tagpdf-luatex.def} {2023-07-08} {0.98j}
+\ProvidesExplFile {tagpdf-luatex.def} {2023-08-04} {0.98k}
   {tagpdf~driver~for~luatex}
 %    \end{macrocode}
 % \section{Loading the lua}
@@ -158,8 +158,8 @@
 
 local ProvidesLuaModule = {
     name          = "tagpdf",
-    version       = "0.98j",       --TAGVERSION
-    date          = "2023-07-08", --TAGDATE
+    version       = "0.98k",       --TAGVERSION
+    date          = "2023-08-04", --TAGDATE
     description   = "tagpdf lua code",
     license       = "The LATEX Project Public License 1.3c"
 }
@@ -263,6 +263,10 @@
 local nodeinsertbefore = node.insert_before
 local pdfpageref       = pdf.pageref
 
+local fonthashes      = fonts.hashes
+local identifiers     = fonthashes.identifiers
+local fontid          = font.id
+
 local HLIST          = node.id("hlist")
 local VLIST          = node.id("vlist")
 local RULE           = node.id("rule")
@@ -584,39 +588,106 @@
 %    \end{macrocode}
 % \end{macro}
 % \subsection{Functions to insert the pdf literals}
-% \begin{macro}{@@_insert_emc_node}
-% This insert the emc node.
+% \begin{macro}{@@_backend_create_emc_node,@@_insert_emc_node}
+% This insert the emc node. We support also dvips and dvipdfmx backend
 %    \begin{macrocode}
+local @@_backend_create_emc_node
+if tex.outputmode == 0 then
+ if token.get_macro("c_sys_backend_str") == "dvipdfmx" then
+  function @@_backend_create_emc_node ()
+    local emcnode = nodenew("whatsit","special")
+      emcnode.data = "pdf:code EMC"      
+    return emcnode
+  end  
+ else -- assume a dvips variant
+  function @@_backend_create_emc_node ()
+    local emcnode = nodenew("whatsit","special")
+      emcnode.data = "ps:SDict begin mark /EMC pdfmark end"      
+    return emcnode
+  end
+ end 
+else -- pdf mode
+  function @@_backend_create_emc_node ()
+    local emcnode = nodenew("whatsit","pdf_literal")
+      emcnode.data = "EMC"
+      emcnode.mode=1
+    return emcnode
+  end
+end 
+   
 local function @@_insert_emc_node (head,current)
- local emcnode = nodenew("whatsit","pdf_literal")
-       emcnode.data = "EMC"
-       emcnode.mode=1
-       head = node.insert_before(head,current,emcnode)
- return head
+  local emcnode= @@_backend_create_emc_node()
+  head = node.insert_before(head,current,emcnode)
+  return head
 end
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}{@@_insert_bmc_node}
+% \begin{macro}{@@_backend_create_bmc_node,@@_insert_bmc_node}
 % This inserts a simple bmc node
 %    \begin{macrocode}
+local @@_backend_create_bmc_node
+if tex.outputmode == 0 then
+ if token.get_macro("c_sys_backend_str") == "dvipdfmx" then
+  function @@_backend_create_bmc_node (tag)
+    local bmcnode = nodenew("whatsit","special")
+    bmcnode.data = "pdf:code /"..tag.." BMC"    
+    return bmcnode
+  end  
+ else -- assume a dvips variant
+  function @@_backend_create_bmc_node (tag)
+    local bmcnode = nodenew("whatsit","special")
+    bmcnode.data = "ps:SDict begin mark/"..tag.." BMC pdfmark end"
+    return bmcnode
+  end
+ end 
+else -- pdf mode
+  function @@_backend_create_bmc_node (tag)
+    local bmcnode = nodenew("whatsit","pdf_literal")
+    bmcnode.data = "/"..tag.." BMC"
+    bmcnode.mode=1
+    return bmcnode
+  end
+end 
+
 local function @@_insert_bmc_node (head,current,tag)
- local bmcnode = nodenew("whatsit","pdf_literal")
-       bmcnode.data = "/"..tag.." BMC"
-       bmcnode.mode=1
-       head = node.insert_before(head,current,bmcnode)
+ local bmcnode = @@_backend_create_bmc_node (tag)
+ head = node.insert_before(head,current,bmcnode)
  return head
 end
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}{@@_insert_bdc_node}
+% \begin{macro}{@@_backend_create_bdc_node,@@_insert_bdc_node}
 %  This inserts a bcd node with a fix dict.
 %  TODO: check if this is still used, now that we create properties.
 %    \begin{macrocode}
+local @@_backend_create_bdc_node
+
+if tex.outputmode == 0 then
+ if token.get_macro("c_sys_backend_str") == "dvipdfmx" then
+  function @@_backend_create_bdc_node (tag,dict)
+    local bdcnode = nodenew("whatsit","special")
+    bdcnode.data = "pdf:code /"..tag.."<<"..dict..">> BDC"    
+    return bdcnode
+  end  
+ else -- assume a dvips variant
+  function @@_backend_create_bdc_node (tag,dict)
+    local bdcnode = nodenew("whatsit","special")
+    bdcnode.data = "ps:SDict begin mark/"..tag.."<<"..dict..">> BDC pdfmark end"
+    return bdcnode
+  end
+ end 
+else -- pdf mode
+  function @@_backend_create_bdc_node (tag,dict)
+    local bdcnode = nodenew("whatsit","pdf_literal")
+    bdcnode.data = "/"..tag.."<<"..dict..">> BDC"
+    bdcnode.mode=1
+    return bdcnode
+  end
+end 
+
 local function @@_insert_bdc_node (head,current,tag,dict)
- local bdcnode = nodenew("whatsit","pdf_literal")
-       bdcnode.data = "/"..tag.."<<"..dict..">> BDC"
-       bdcnode.mode=1
-       head = node.insert_before(head,current,bdcnode)
+ bdcnode= @@_backend_create_bdc_node (tag,dict)
+ head = node.insert_before(head,current,bdcnode)
  return head
 end
 %    \end{macrocode}
@@ -644,11 +715,16 @@
 local function @@_show_spacemark (head,current,color,height)
  local markcolor = color or "1 0 0"
  local markheight = height or 10
- local pdfstring = node.new("whatsit","pdf_literal")
+ local pdfstring 
+ if tex.outputmode == 0 then
+  -- ignore dvi mode for now
+ else
+  pdfstring = node.new("whatsit","pdf_literal")
        pdfstring.data =
        string.format("q "..markcolor.." RG "..markcolor.." rg 0.4 w 0 %g m 0 %g l S Q",-3,markheight)
        head = node.insert_after(head,current,pdfstring)
- return head
+  return head
+ end
 end
 %    \end{macrocode}
 % \end{macro}
@@ -760,11 +836,24 @@
 % \end{macro}
 % We need two local variable to setup a default space char.
 %    \begin{macrocode}
-local default_space_char = node.new(GLYPH)
-local default_fontid     = font.id("TU/lmr/m/n/10")
+local default_space_char = nodenew(GLYPH)
+local default_fontid     = fontid("TU/lmr/m/n/10")
 default_space_char.char  = 32
 default_space_char.font  = default_fontid
 %    \end{macrocode}
+% And a function to check as best as possible if a font has a space:
+%    \begin{macrocode}
+local function @@_font_has_space (fontid)
+ t= fonts.hashes.identifiers[fontid]
+ if luaotfload.aux.slot_of_name(fontid,"space") 
+    or t.characters and t.characters[32] and t.characters[32]["unicode"]==32 
+ then
+    return true
+ else
+    return false
+ end      
+end 
+%    \end{macrocode}
 % \begin{macro}
 %   {
 %    @@_space_chars_shipout,
@@ -793,7 +882,10 @@
           local space_char = node.copy(default_space_char)
           local curfont    = nodegetattribute(n,iwfontattributeid)
           ltx.@@.trace.log ("INFO SPACE-FUNCTION-FONT: ".. tostring(curfont),3)
-          if curfont and luaotfload.aux.slot_of_name(curfont,"space") then
+          if curfont and 
+            -- luaotfload.aux.slot_of_name(curfont,"space") 
+            @@_font_has_space (curfont)
+          then
             space_char.font=curfont
           end
           head, space = node.insert_before(head, n, space_char) --
@@ -1074,10 +1166,8 @@
 function ltx.@@.func.mark_shipout (box)
  mcopen = ltx.@@.func.mark_page_elements (box,-1,-100,0,"Shipout",-1)
  if mcopen~=0 then -- there is a chunk open, close it (hope there is only one ...
-  local emcnode = nodenew("whatsit","pdf_literal")
+  local emcnode = @@_backend_create_emc_node ()
   local list = box.list
-  emcnode.data = "EMC"
-  emcnode.mode=1
   if list then
      list = node.insert_after (list,node.tail(list),emcnode)
      mcopen = mcopen - 1

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-checks.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -48,7 +48,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98j, released 2023-07-08}
+% \date{Version 0.98k, released 2023-08-04}
 % \maketitle
 % \begin{documentation}
 % \section{Commands}
@@ -312,7 +312,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-checks-code} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-checks-code} {2023-08-04} {0.98k}
  {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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-data.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -2,7 +2,7 @@
 %
 %% File: tagpdf-data.dtx
 %
-% Copyright (C) 2022 Ulrike Fischer
+% Copyright (C) 2022-2023 Ulrike Fischer
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -47,7 +47,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98j, released 2023-07-08}
+% \date{Version 0.98k, released 2023-08-04}
 % \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-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-ns-latex.def} {2023-08-04} {0.98k}
 %% {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-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-08-04} {0.98k}
 %% {latex-book} {https://www.latex-project.org/ns/book/2022}{}
 chapter,       H1,pdf2,
 section,       H2,pdf2,
@@ -104,11 +104,11 @@
 %    \end{macrocode}
 % \section{The LaTeX-inline namespace}
 % This degrades the rolemapping of some tags. It is an experimental name space.
-% It can disappear again if it doesn't look usefull.
-% It is bound to change a lot!
+% It can disappear again if it doesn't look useful. It is currently no longer
+% loaded. 
 %    \begin{macrocode}
 %<*ns-latex-inline>
-%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-08-04} {0.98k}
 %% {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-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-08-04} {0.98k}
 %%  {pdf}   {http://iso.org/pdf/ssn}{}
 StructTreeRoot,StructTreeRoot,pdf,D,
 Document,Document,pdf,D,   
@@ -190,7 +190,7 @@
 % \section{The pdf 2.0 namespace data}
 %    \begin{macrocode}
 %<*ns-pdf2>
-%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-07-08} {0.98j} 
+%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-08-04} {0.98k} 
 %%  {pdf2}  {http://iso.org/pdf2/ssn}{}
 Document,Document,pdf2,D,   
 Part,Part,pdf2,G,       
@@ -246,7 +246,7 @@
 % \section{The mathml namespace data}
 %    \begin{macrocode}
 %<*ns-mathml>
-%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-08-04} {0.98k}
 % {mathml}{http://www.w3.org/1998/Math/MathML}{}
 abs,abs,mathml,
 and,and,mathml,
@@ -481,12 +481,12 @@
 % This will perhaps change in future.
 %    \begin{macrocode}
 %<*parent-child>
-%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-08-04} {0.98k}
 ,,,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,∅,∅
-Part,both,grouping,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅
-Div,both,grouping,∅,0..n,0..n,‡,‡,0..n,0..n,‡,0..n,0..n,0..n,0..n,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,0..n,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
+Part,both,grouping,∅,0..n,0..n,‡,‡,0..n,0..n,‡,0..n,∅,0..n,0..n,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅
+Div,both,grouping,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,0..n,0..n,0..n,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,0..n,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
 Sect,both,grouping,∅,0..n,0..n,‡,‡,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,∅,∅
 BlockQuote,1.7,grouping?,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅
 NonStruct,both,grouping,∅,0..n,0..n,‡,‡,0..n,0..n,‡,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,∅
@@ -517,7 +517,7 @@
 L,both,block!inline,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
 LI,both,in L,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
 LBody,both,in LI,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
-Table,both,block,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
+Table,both,block,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
 TR,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,∅,∅
 TH,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅
 TD,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅
@@ -524,25 +524,25 @@
 THead,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..1,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
 TBody,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
 TFoot,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..1,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
-Caption,both,grouping!block,∅,∅,0..n,‡,‡,0..n,0..1,‡,0..1,0..1,0..n,0..n,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,∅,0..1,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,0..1,∅
+Caption,both,grouping!block,∅,∅,0..n,‡,‡,0..n,0..1,‡,0..1,∅,0..n,0..n,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,∅,0..1,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,0..1,∅
 Figure,both,grouping!block!inline,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,∅*,∅,∅,∅,∅,∅,∅,c,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
 Formula,both,grouping!block!inline,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,∅,∅,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
 MC,both,---,∅,∅,∅,∅,∅,∅,0..n,‡,∅,∅,∅,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,‡,‡,‡,0..n,‡,‡,∅,0..n,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
 %</parent-child>
 %    \end{macrocode}
-% \section{The parent-child rules for pdf <2.0}
-% This csv contains the parent-child matrix for pdf <2.0.
+% \section{The parent-child rules for pdf =2.0}
+% This csv contains the parent-child matrix for pdf = 2.0.
 % The values are currently the strings used in the PDF reference.
 % This will perhaps change in future.
 %    \begin{macrocode}
 %<*parent-child-2>
-%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-08-04} {0.98k}
 ,,,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,∅
 Art,1.7,grouping,∅,0..n,0..n,∅,‡,‡,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,0..n,∅,∅,∅,0..n,∅
-Part,both,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
-Div,both,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,0..n,0..n,0..n,0..n,0..n,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,∅,0..n,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
+Part,both,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,0..n,∅,0..n,0..n,0..n,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
+Div,both,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,0..n,0..n,0..n,0..n,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,∅,0..n,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 Sect,both,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,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,0..n,∅,∅,∅,0..n,∅
 Aside,2.0,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,∅,∅,‡,∅,∅,∅,0..n,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 BlockQuote,1.7,grouping?,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
@@ -554,7 +554,7 @@
 P,both,block,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,0..n,0..n,0..n,0..n,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 Hn,both,block,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 H,both,block,∅,0..1,0..1,0..1,‡,‡,0..1,0..1,0..1,‡,∅,∅,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..1,∅,∅,0..1,0..1,∅,∅,∅,0..1,0..1,0..1,∅,∅,0..1,∅
-Title,2.0,grouping!block,∅,0..n,0..n,0..n,‡,‡,0..n,∅,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
+Title,2.0,grouping!block,∅,0..n,0..n,0..n,‡,‡,0..n,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
 Sub,2.0,inline,∅,∅,∅,∅,‡,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,0..n,0..n,∅,∅,0..n,0..n,0..n,∅,0..n,0..n,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,∅*,0..n,∅,∅,0..n,∅
 Quote,1.7,inline,∅,∅,∅,∅,‡,‡,∅,∅,∅,‡,∅,∅,∅,0..n,0..n,0..n,0..n,0..n,∅,∅,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,0..n,0..n,∅,∅,0..n,0..n,0..n,∅,0..n,0..n,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 Note,1.7,inline,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
@@ -579,7 +579,7 @@
 L,both,block!inline,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 LI,both,in L,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
 LBody,both,in LI,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
-Table,both,block,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
+Table,both,block,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 TR,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,∅,∅,∅,0..n,∅
 TH,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
 TD,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
@@ -586,7 +586,7 @@
 THead,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..1,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
 TBody,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
 TFoot,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..1,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
-Caption,both,grouping!block,∅,∅,∅,0..n,‡,‡,0..n,0..1,0..1,‡,0..1,0..1,0..n,0..n,0..1,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,0..1,∅,∅,∅,∅,∅,∅,∅,∅*,0..1,∅,0..1,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,0..1,∅,∅,0..n,∅
+Caption,both,grouping!block,∅,∅,∅,0..n,‡,‡,0..n,0..1,0..1,‡,0..1,∅,0..n,0..n,0..1,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,0..1,∅,∅,∅,∅,∅,∅,∅,∅*,0..1,∅,0..1,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,0..1,∅,∅,0..n,∅
 Figure,both,grouping!block!inline,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,0..n,0..n,∅*,∅,∅,∅,∅,∅,∅,c,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 Formula,both,grouping!block!inline,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,0..n,0..n,∅,∅,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,0..n,0..n,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 Artifact,2.0,grouping!block!inline,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,∅,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-generic.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98j, released 2023-07-08}
+% \date{Version 0.98k, released 2023-08-04}
 % \maketitle
 % \begin{documentation}
 % \end{documentation}
@@ -55,11 +55,11 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*generic>
-\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-08-04} {0.98k}
  {part of tagpdf - code related to marking chunks - generic mode}
 %</generic>
 %<*debug>
-\ProvidesExplPackage {tagpdf-debug-generic} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-debug-generic} {2023-08-04} {0.98k}
  {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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-luacode.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98j, released 2023-07-08}
+% \date{Version 0.98k, released 2023-08-04}
 % \maketitle
 % \begin{implementation}
 % The code is splitted into three parts: code shared by all engines,
@@ -86,7 +86,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*luamode>
-\ProvidesExplPackage {tagpdf-mc-code-lua} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-mc-code-lua} {2023-08-04} {0.98k}
   {tagpdf - mc code only for the luamode }
 %</luamode>
 %    \end{macrocode}
@@ -100,10 +100,13 @@
       {
         \lua_now:e
           {
-           if~luatexbase.callbacktypes.pre_shipout_filter~then~
+            if~luatexbase.callbacktypes.pre_shipout_filter~then~
               luatexbase.add_to_callback("pre_shipout_filter", function(TAGBOX)~
               ltx.@@.func.space_chars_shipout(TAGBOX)~return~true~
               end, "tagpdf")~
+              if~luatexbase.declare_callback_rule~then~
+                luatexbase.declare_callback_rule("pre_shipout_filter", "luaotfload.dvi", "after", "tagpdf")
+              end~
             end
           }
        \lua_now:e

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-mc-shared.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98j, released 2023-07-08}
+% \date{Version 0.98k, released 2023-08-04}
 % \maketitle
 % \begin{documentation}
 % \section{Public Commands}
@@ -181,7 +181,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-mc-code-shared} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-mc-code-shared} {2023-08-04} {0.98k}
   {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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-roles.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98j, released 2023-07-08}
+% \date{Version 0.98k, released 2023-08-04}
 % \maketitle
 % \begin{documentation}
 % \begin{function}
@@ -98,7 +98,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-roles-code} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-roles-code} {2023-08-04} {0.98k}
  {part of tagpdf - code related to roles and structure names}
 %</header>
 %    \end{macrocode}
@@ -580,8 +580,8 @@
 % This command will process a line in the name space file.
 % The first argument is the name of the name space. 
 % The definition differ for pdf 2.0. as we have proper name spaces there.
-% With pdf<2.0 not special name spaces shouldn't update the default role or add to the rolemap
-% again. We use a boolean here.
+% With pdf<2.0 special name spaces shouldn't update the default role or add to the rolemap
+% again, they only store the values for later uses. We use a boolean here.
 %    \begin{macrocode}
 \bool_new:N\l_@@_role_update_bool
 \bool_set_true:N \l_@@_role_update_bool
@@ -651,17 +651,19 @@
  }  
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}{\@@_role_read_namespace:n}
-% This command reads the namespace file.
+% 
+% \begin{macro}{\@@_role_read_namespace:nn}
+% This command reads a namespace file in the format
+% tagpdf-ns-XX.def
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_role_read_namespace:n #1 %name of namespace
+\cs_new_protected:Npn \@@_role_read_namespace:nn #1 #2 %name of namespace #2 name of file
   { 
     \prop_if_exist:cF {g_@@_role_NS_#1_prop}
       { \msg_warning:nnn {tag}{namespace-unknown}{#1} }
-    \file_if_exist:nTF { tagpdf-ns-#1.def}
+    \file_if_exist:nTF { tagpdf-ns-#2.def }
      { 
-       \ior_open:Nn \g_tmpa_ior {tagpdf-ns-#1.def}
-       \msg_info:nnn {tag}{read-namespace}{#1}
+       \ior_open:Nn \g_tmpa_ior {tagpdf-ns-#2.def}
+       \msg_info:nnn {tag}{read-namespace}{#2}
        \ior_map_inline:Nn \g_tmpa_ior 
          {
            \@@_role_read_namespace_line:nw {#1} ##1,,,,\q_stop 
@@ -669,27 +671,42 @@
        \ior_close:N\g_tmpa_ior    
      }
      {
-      \msg_warning:nnn{tag}{namespace-missing}{#1}
+      \msg_info:nnn{tag}{namespace-missing}{#2}
      }
   }   
    
 %    \end{macrocode}
 % \end{macro}
-%
-
 % 
+% \begin{macro}{\@@_role_read_namespace:n}
+% This command reads the default namespace file.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_role_read_namespace:n #1 %name of namespace
+  { 
+    \@@_role_read_namespace:nn {#1}{#1}
+  }  
+%    \end{macrocode}
+% \end{macro}
+% 
 % \subsection{Reading the default data}
-% The order is important as we want pdf2 and latex as default.
+% The order is important as we want pdf2 and latex as default: if two 
+% namespace define the same tag, the last one defines which one is used
+% if the namespace is not explicitly given.
 %    \begin{macrocode}
 \@@_role_read_namespace:n {pdf}
 \@@_role_read_namespace:n {pdf2}
 \pdf_version_compare:NnF < {2.0}
   {\@@_role_read_namespace:n {mathml}} 
+%    \end{macrocode}
+% in pdf 1.7 the following namespaces should only store
+% the settings for later use:
+%    \begin{macrocode}
 \bool_set_false:N\l_@@_role_update_bool
-\@@_role_read_namespace:n {latex-inline} 
+\@@_role_read_namespace:n {latex-inline}
 \@@_role_read_namespace:n {latex-book}  
 \bool_set_true:N\l_@@_role_update_bool
 \@@_role_read_namespace:n {latex}
+\@@_role_read_namespace:nn {latex} {latex-lab}
 \@@_role_read_namespace:n {pdf}
 \@@_role_read_namespace:n {pdf2}
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-space.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98j, released 2023-07-08}
+% \date{Version 0.98k, released 2023-08-04}
 % \maketitle
 % \begin{documentation}
 % \begin{function}{interwordspace (setup-key)}
@@ -64,7 +64,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-space-code} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-space-code} {2023-08-04} {0.98k}
  {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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-struct.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98j, released 2023-07-08}
+% \date{Version 0.98k, released 2023-08-04}
 % \maketitle
 % \begin{documentation}
 % \section{Public Commands}
@@ -247,7 +247,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-struct-code} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-struct-code} {2023-08-04} {0.98k}
  {part of tagpdf - code related to storing structure}
 %</header>
 %    \end{macrocode}
@@ -1740,7 +1740,7 @@
 % \section{Attributes and attribute classes}
 %    \begin{macrocode}
 %<*header>
-\ProvidesExplPackage {tagpdf-attr-code} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-attr-code} {2023-08-04} {0.98k}
   {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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-tree.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -47,13 +47,13 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98j, released 2023-07-08}
+% \date{Version 0.98k, released 2023-08-04}
 % \maketitle
 % \begin{implementation}
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-tree-code} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-tree-code} {2023-08-04} {0.98k}
  {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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf-user.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -46,7 +46,7 @@
 %    }^^A
 % }
 %
-% \date{Version 0.98j, released 2023-07-08}
+% \date{Version 0.98k, released 2023-08-04}
 % \maketitle
 % \begin{documentation}
 % \section{Setup commands}
@@ -250,7 +250,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*header>
-\ProvidesExplPackage {tagpdf-user} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-user} {2023-08-04} {0.98k}
   {tagpdf - user commands}
 %</header>
 %    \end{macrocode}
@@ -741,11 +741,17 @@
          }  
   }
 %    \end{macrocode}
-% In generic mode we need the additional code from the ptagging tests.
+% We need at least the new-or-1 code.
+% In generic mode we also must insert the code to finish the MC-chunks 
 %    \begin{macrocode}
+\@ifpackageloaded{footmisc}
+  {\PackageWarning{tagpdf}{tagpdf~has~been~loaded~too~late!}} %
+  {\RequirePackage{latex-lab-testphase-new-or-1}}
+ 
 \AddToHook{begindocument/before}
  {
-   \@ifundefined{@mult at ptagging@hook}{\RequirePackage{output-patches-tmp-ltx}}{} %
+   \providecommand\@kernel at tagsupport@@@@makecol{}
+   \providecommand\@kernel at before@cclv{}
    \bool_if:NF \g_@@_mode_lua_bool
      {
         \cs_if_exist:NT \@kernel at before@footins
@@ -757,6 +763,11 @@
                \@@_check_typeout_v:n {====>~In~\token_to_str:N \@makecol\c_space_tl\the\c at page}
                \@@_add_missing_mcs_to_stream:Nn \@cclv {main}
              }
+           \tl_put_right:Nn \@kernel at tagsupport@@@@makecol
+             {
+               \@@_check_typeout_v:n {====>~In~\token_to_str:N \@makecol\c_space_tl\the\c at page}
+               \@@_add_missing_mcs_to_stream:Nn \@outputbox {main}
+             }  
            \tl_put_right:Nn \@mult at ptagging@hook
              {
                \@@_check_typeout_v:n {====>~In~\string\page at sofar}

Modified: trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/source/latex/tagpdf/tagpdf.dtx	2023-08-07 19:47:48 UTC (rev 67835)
@@ -34,7 +34,8 @@
 % \end{function}
 %
 % \begin{function}{ \tag_stop_group_begin:, \tag_stop_group_end:,
-%  \tag_stop:, \tag_start: }
+%  \tag_stop:, \tag_start:,
+%  \tagstop, \tagstart }
 % We need commands to stop tagging in some places.
 % They simply switches the two local booleans. The grouping commands
 % can be used to group the effect.
@@ -92,7 +93,7 @@
 %    \begin{macrocode}
 %<@@=tag>
 %<*package>
-\ProvidesExplPackage {tagpdf} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf} {2023-08-04} {0.98k}
   { A package to experiment with pdf tagging }
 
 \bool_if:nF
@@ -118,7 +119,7 @@
 %    \end{macrocode}
 %<*debug>
 %    \begin{macrocode}
-\ProvidesExplPackage {tagpdf-debug} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-debug} {2023-08-04} {0.98k}
   { debug code for tagpdf }
 \@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput}
 %    \end{macrocode}
@@ -141,7 +142,7 @@
 % we define a base package with dummy functions
 %    \begin{macrocode}
 %<*base>
-\ProvidesExplPackage {tagpdf-base} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-base} {2023-08-04} {0.98k}
   {part of tagpdf - provide base, no-op versions of the user commands }
 %</base>
 %    \end{macrocode} 
@@ -151,7 +152,7 @@
 %    \begin{macrocode}
 %<*package>
 \bool_new:N\g_@@_mode_lua_bool  
-\DeclareOption {luamode}    { \sys_if_engine_luatex:T { \bool_gset_true:N \g_@@_mode_lua_bool } }
+\DeclareOption {luamode}  { \sys_if_engine_luatex:T { \bool_gset_true:N \g_@@_mode_lua_bool } }
 \DeclareOption {genericmode}{ \bool_gset_false:N\g_@@_mode_lua_bool }
 \ExecuteOptions{luamode}
 \ProcessOptions
@@ -496,6 +497,8 @@
     \bool_set_true:N \l_@@_active_struct_bool
     \bool_set_true:N \l_@@_active_mc_bool
   }
+\cs_set_eq:NN\tagstop\tag_stop:
+\cs_set_eq:NN\tagstart\tag_start:  
 \prop_new:N\g_@@_state_prop
 \cs_set_protected:Npn \tag_stop:n #1
   {
@@ -522,6 +525,8 @@
 %<*base>
 \cs_new_protected:Npn \tag_stop:{}
 \cs_new_protected:Npn \tag_start:{}
+\cs_new_protected:Npn \tagstop{}
+\cs_new_protected:Npn \tagstart{}
 \cs_new_protected:Npn \tag_stop:n  #1 {}
 \cs_new_protected:Npn \tag_start:n #1 {}
 %</base>

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-base.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-base.sty	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-base.sty	2023-08-07 19:47:48 UTC (rev 67835)
@@ -25,7 +25,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf.dtx
-\ProvidesExplPackage {tagpdf-base} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-base} {2023-08-04} {0.98k}
   {part of tagpdf - provide base, no-op versions of the user commands }
 \AddToHook{begindocument}
  {
@@ -41,6 +41,8 @@
 
 \cs_new_protected:Npn \tag_stop:{}
 \cs_new_protected:Npn \tag_start:{}
+\cs_new_protected:Npn \tagstop{}
+\cs_new_protected:Npn \tagstart{}
 \cs_new_protected:Npn \tag_stop:n  #1 {}
 \cs_new_protected:Npn \tag_start:n #1 {}
 

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-generic.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-generic.sty	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug-generic.sty	2023-08-07 19:47:48 UTC (rev 67835)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-mc-generic.dtx
-\ProvidesExplPackage {tagpdf-debug-generic} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-debug-generic} {2023-08-04} {0.98k}
  {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.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug.sty	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-debug.sty	2023-08-07 19:47:48 UTC (rev 67835)
@@ -26,7 +26,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf.dtx
-\ProvidesExplPackage {tagpdf-debug} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-debug} {2023-08-04} {0.98k}
   { debug code for tagpdf }
 \@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput}
 \prop_gput:Nnn \g_msg_module_type_prop { tag / debug} {}

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-luatex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-luatex.def	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-luatex.def	2023-08-07 19:47:48 UTC (rev 67835)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-backend.dtx
-\ProvidesExplFile {tagpdf-luatex.def} {2023-07-08} {0.98j}
+\ProvidesExplFile {tagpdf-luatex.def} {2023-08-04} {0.98k}
   {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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-generic.sty	2023-08-07 19:47:48 UTC (rev 67835)
@@ -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-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-08-04} {0.98k}
  {part of tagpdf - code related to marking chunks - generic mode}
 \__tag_prop_new:N \g__tag_MCID_byabspage_prop
 

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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-mc-code-lua.sty	2023-08-07 19:47:48 UTC (rev 67835)
@@ -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-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf-mc-code-lua} {2023-08-04} {0.98k}
   {tagpdf - mc code only for the luamode }
 \hook_gput_code:nnn{begindocument}{tagpdf/mc}
   {
@@ -27,10 +27,13 @@
       {
         \lua_now:e
           {
-           if~luatexbase.callbacktypes.pre_shipout_filter~then~
+            if~luatexbase.callbacktypes.pre_shipout_filter~then~
               luatexbase.add_to_callback("pre_shipout_filter", function(TAGBOX)~
               ltx.__tag.func.space_chars_shipout(TAGBOX)~return~true~
               end, "tagpdf")~
+              if~luatexbase.declare_callback_rule~then~
+                luatexbase.declare_callback_rule("pre_shipout_filter", "luaotfload.dvi", "after", "tagpdf")
+              end~
             end
           }
        \lua_now:e

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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-book.def	2023-08-07 19:47:48 UTC (rev 67835)
@@ -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-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-08-04} {0.98k}
 %% {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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex-inline.def	2023-08-07 19:47:48 UTC (rev 67835)
@@ -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-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-08-04} {0.98k}
 %% {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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-latex.def	2023-08-07 19:47:48 UTC (rev 67835)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-ns-latex.def} {2023-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-ns-latex.def} {2023-08-04} {0.98k}
 %% {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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-mathml.def	2023-08-07 19:47:48 UTC (rev 67835)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-08-04} {0.98k}
 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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf.def	2023-08-07 19:47:48 UTC (rev 67835)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-08-04} {0.98k}
 %%  {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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-ns-pdf2.def	2023-08-07 19:47:48 UTC (rev 67835)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-08-04} {0.98k}
 %%  {pdf2}  {http://iso.org/pdf2/ssn}{}
 Document,Document,pdf2,D,
 Part,Part,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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child-2.csv	2023-08-07 19:47:48 UTC (rev 67835)
@@ -19,13 +19,13 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-08-04} {0.98k}
 ,,,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,∅
 Art,1.7,grouping,∅,0..n,0..n,∅,‡,‡,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,0..n,∅,∅,∅,0..n,∅
-Part,both,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
-Div,both,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,0..n,0..n,0..n,0..n,0..n,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,∅,0..n,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
+Part,both,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,0..n,∅,0..n,0..n,0..n,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
+Div,both,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,0..n,0..n,0..n,0..n,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,∅,0..n,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 Sect,both,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,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,0..n,∅,∅,∅,0..n,∅
 Aside,2.0,grouping,∅,0..n,0..n,0..n,‡,‡,0..n,∅,∅,‡,∅,∅,∅,0..n,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 BlockQuote,1.7,grouping?,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
@@ -37,7 +37,7 @@
 P,both,block,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,0..n,0..n,0..n,0..n,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 Hn,both,block,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 H,both,block,∅,0..1,0..1,0..1,‡,‡,0..1,0..1,0..1,‡,∅,∅,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..1,∅,∅,0..1,0..1,∅,∅,∅,0..1,0..1,0..1,∅,∅,0..1,∅
-Title,2.0,grouping!block,∅,0..n,0..n,0..n,‡,‡,0..n,∅,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
+Title,2.0,grouping!block,∅,0..n,0..n,0..n,‡,‡,0..n,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
 Sub,2.0,inline,∅,∅,∅,∅,‡,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,0..n,0..n,∅,∅,0..n,0..n,0..n,∅,0..n,0..n,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,∅*,0..n,∅,∅,0..n,∅
 Quote,1.7,inline,∅,∅,∅,∅,‡,‡,∅,∅,∅,‡,∅,∅,∅,0..n,0..n,0..n,0..n,0..n,∅,∅,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,0..n,0..n,∅,∅,0..n,0..n,0..n,∅,0..n,0..n,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 Note,1.7,inline,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
@@ -62,7 +62,7 @@
 L,both,block!inline,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 LI,both,in L,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
 LBody,both,in LI,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
-Table,both,block,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
+Table,both,block,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 TR,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,∅,∅,∅,0..n,∅
 TH,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
 TD,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
@@ -69,7 +69,7 @@
 THead,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..1,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
 TBody,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
 TFoot,both,Table,∅,∅,∅,∅,∅,‡,∅,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..1,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
-Caption,both,grouping!block,∅,∅,∅,0..n,‡,‡,0..n,0..1,0..1,‡,0..1,0..1,0..n,0..n,0..1,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,0..1,∅,∅,∅,∅,∅,∅,∅,∅*,0..1,∅,0..1,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,0..1,∅,∅,0..n,∅
+Caption,both,grouping!block,∅,∅,∅,0..n,‡,‡,0..n,0..1,0..1,‡,0..1,∅,0..n,0..n,0..1,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,0..1,∅,∅,∅,∅,∅,∅,∅,∅*,0..1,∅,0..1,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,0..1,∅,∅,0..n,∅
 Figure,both,grouping!block!inline,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,0..n,0..n,∅*,∅,∅,∅,∅,∅,∅,c,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 Formula,both,grouping!block!inline,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,0..n,0..n,∅,∅,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,0..n,0..n,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,0..n,∅
 Artifact,2.0,grouping!block!inline,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,∅,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,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	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf-parent-child.csv	2023-08-07 19:47:48 UTC (rev 67835)
@@ -19,12 +19,12 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf-data.dtx
-%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-07-08} {0.98j}
+%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-08-04} {0.98k}
 ,,,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,∅,∅
-Part,both,grouping,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅
-Div,both,grouping,∅,0..n,0..n,‡,‡,0..n,0..n,‡,0..n,0..n,0..n,0..n,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,0..n,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
+Part,both,grouping,∅,0..n,0..n,‡,‡,0..n,0..n,‡,0..n,∅,0..n,0..n,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅
+Div,both,grouping,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,0..n,0..n,0..n,∅,0..n,∅,0..n,∅,∅,∅,∅,0..n,∅,0..n,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
 Sect,both,grouping,∅,0..n,0..n,‡,‡,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,∅,∅
 BlockQuote,1.7,grouping?,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,∅,0..n,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,0..n,0..n,0..n,∅
 NonStruct,both,grouping,∅,0..n,0..n,‡,‡,0..n,0..n,‡,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,∅
@@ -55,7 +55,7 @@
 L,both,block!inline,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,0..n,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
 LI,both,in L,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
 LBody,both,in LI,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
-Table,both,block,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
+Table,both,block,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,∅,0..n,∅,∅,0..n,∅,∅,∅,∅,∅,∅*,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
 TR,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,0..n,0..n,0..n,∅,∅,∅,∅
 TH,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅
 TD,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅
@@ -62,7 +62,7 @@
 THead,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..1,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
 TBody,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
 TFoot,both,Table,∅,∅,∅,∅,‡,∅,∅,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..1,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
-Caption,both,grouping!block,∅,∅,0..n,‡,‡,0..n,0..1,‡,0..1,0..1,0..n,0..n,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,∅,0..1,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,0..1,∅
+Caption,both,grouping!block,∅,∅,0..n,‡,‡,0..n,0..1,‡,0..1,∅,0..n,0..n,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅*,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,∅,0..1,0..1,∅,∅,∅,∅,∅,∅,∅,0..1,0..1,∅
 Figure,both,grouping!block!inline,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,∅*,∅,∅,∅,∅,∅,∅,c,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
 Formula,both,grouping!block!inline,∅,0..n,0..n,‡,‡,0..n,0..n,‡,∅,∅,0..n,0..n,0..n,0..n,∅,∅,0..n,0..n,0..n,0..n,∅,0..n,0..n,0..n,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,0..n,∅
 MC,both,---,∅,∅,∅,∅,∅,∅,0..n,‡,∅,∅,∅,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,0..n,‡,‡,‡,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.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.lua	2023-08-07 19:47:48 UTC (rev 67835)
@@ -24,8 +24,8 @@
 
 local ProvidesLuaModule = {
     name          = "tagpdf",
-    version       = "0.98j",       --TAGVERSION
-    date          = "2023-07-08", --TAGDATE
+    version       = "0.98k",       --TAGVERSION
+    date          = "2023-08-04", --TAGDATE
     description   = "tagpdf lua code",
     license       = "The LATEX Project Public License 1.3c"
 }
@@ -106,6 +106,10 @@
 local nodeinsertbefore = node.insert_before
 local pdfpageref       = pdf.pageref
 
+local fonthashes      = fonts.hashes
+local identifiers     = fonthashes.identifiers
+local fontid          = font.id
+
 local HLIST          = node.id("hlist")
 local VLIST          = node.id("vlist")
 local RULE           = node.id("rule")
@@ -284,25 +288,92 @@
  ltx.__tag.trace.log ("INFO MC-KID-NUMBERS: " .. mcnum .. "has " .. num .. "KIDS",4)
  return num
 end
+local __tag_backend_create_emc_node
+if tex.outputmode == 0 then
+ if token.get_macro("c_sys_backend_str") == "dvipdfmx" then
+  function __tag_backend_create_emc_node ()
+    local emcnode = nodenew("whatsit","special")
+      emcnode.data = "pdf:code EMC"
+    return emcnode
+  end
+ else -- assume a dvips variant
+  function __tag_backend_create_emc_node ()
+    local emcnode = nodenew("whatsit","special")
+      emcnode.data = "ps:SDict begin mark /EMC pdfmark end"
+    return emcnode
+  end
+ end
+else -- pdf mode
+  function __tag_backend_create_emc_node ()
+    local emcnode = nodenew("whatsit","pdf_literal")
+      emcnode.data = "EMC"
+      emcnode.mode=1
+    return emcnode
+  end
+end
+
 local function __tag_insert_emc_node (head,current)
- local emcnode = nodenew("whatsit","pdf_literal")
-       emcnode.data = "EMC"
-       emcnode.mode=1
-       head = node.insert_before(head,current,emcnode)
- return head
+  local emcnode= __tag_backend_create_emc_node()
+  head = node.insert_before(head,current,emcnode)
+  return head
 end
+local __tag_backend_create_bmc_node
+if tex.outputmode == 0 then
+ if token.get_macro("c_sys_backend_str") == "dvipdfmx" then
+  function __tag_backend_create_bmc_node (tag)
+    local bmcnode = nodenew("whatsit","special")
+    bmcnode.data = "pdf:code /"..tag.." BMC"
+    return bmcnode
+  end
+ else -- assume a dvips variant
+  function __tag_backend_create_bmc_node (tag)
+    local bmcnode = nodenew("whatsit","special")
+    bmcnode.data = "ps:SDict begin mark/"..tag.." BMC pdfmark end"
+    return bmcnode
+  end
+ end
+else -- pdf mode
+  function __tag_backend_create_bmc_node (tag)
+    local bmcnode = nodenew("whatsit","pdf_literal")
+    bmcnode.data = "/"..tag.." BMC"
+    bmcnode.mode=1
+    return bmcnode
+  end
+end
+
 local function __tag_insert_bmc_node (head,current,tag)
- local bmcnode = nodenew("whatsit","pdf_literal")
-       bmcnode.data = "/"..tag.." BMC"
-       bmcnode.mode=1
-       head = node.insert_before(head,current,bmcnode)
+ local bmcnode = __tag_backend_create_bmc_node (tag)
+ head = node.insert_before(head,current,bmcnode)
  return head
 end
+local __tag_backend_create_bdc_node
+
+if tex.outputmode == 0 then
+ if token.get_macro("c_sys_backend_str") == "dvipdfmx" then
+  function __tag_backend_create_bdc_node (tag,dict)
+    local bdcnode = nodenew("whatsit","special")
+    bdcnode.data = "pdf:code /"..tag.."<<"..dict..">> BDC"
+    return bdcnode
+  end
+ else -- assume a dvips variant
+  function __tag_backend_create_bdc_node (tag,dict)
+    local bdcnode = nodenew("whatsit","special")
+    bdcnode.data = "ps:SDict begin mark/"..tag.."<<"..dict..">> BDC pdfmark end"
+    return bdcnode
+  end
+ end
+else -- pdf mode
+  function __tag_backend_create_bdc_node (tag,dict)
+    local bdcnode = nodenew("whatsit","pdf_literal")
+    bdcnode.data = "/"..tag.."<<"..dict..">> BDC"
+    bdcnode.mode=1
+    return bdcnode
+  end
+end
+
 local function __tag_insert_bdc_node (head,current,tag,dict)
- local bdcnode = nodenew("whatsit","pdf_literal")
-       bdcnode.data = "/"..tag.."<<"..dict..">> BDC"
-       bdcnode.mode=1
-       head = node.insert_before(head,current,bdcnode)
+ bdcnode= __tag_backend_create_bdc_node (tag,dict)
+ head = node.insert_before(head,current,bdcnode)
  return head
 end
 local function __tag_pdf_object_ref (name)
@@ -314,11 +385,16 @@
 local function __tag_show_spacemark (head,current,color,height)
  local markcolor = color or "1 0 0"
  local markheight = height or 10
- local pdfstring = node.new("whatsit","pdf_literal")
+ local pdfstring
+ if tex.outputmode == 0 then
+  -- ignore dvi mode for now
+ else
+  pdfstring = node.new("whatsit","pdf_literal")
        pdfstring.data =
        string.format("q "..markcolor.." RG "..markcolor.." rg 0.4 w 0 %g m 0 %g l S Q",-3,markheight)
        head = node.insert_after(head,current,pdfstring)
- return head
+  return head
+ end
 end
 local function __tag_fakespace()
    tex.setattribute(iwspaceattributeid,1)
@@ -401,10 +477,20 @@
 end
 
 ltx.__tag.func.markspaceoff=__tag_deactivate_mark_space
-local default_space_char = node.new(GLYPH)
-local default_fontid     = font.id("TU/lmr/m/n/10")
+local default_space_char = nodenew(GLYPH)
+local default_fontid     = fontid("TU/lmr/m/n/10")
 default_space_char.char  = 32
 default_space_char.font  = default_fontid
+local function __tag_font_has_space (fontid)
+ t= fonts.hashes.identifiers[fontid]
+ if luaotfload.aux.slot_of_name(fontid,"space")
+    or t.characters and t.characters[32] and t.characters[32]["unicode"]==32
+ then
+    return true
+ else
+    return false
+ end
+end
 local function __tag_space_chars_shipout (box)
  local head = box.head
   if head then
@@ -423,7 +509,10 @@
           local space_char = node.copy(default_space_char)
           local curfont    = nodegetattribute(n,iwfontattributeid)
           ltx.__tag.trace.log ("INFO SPACE-FUNCTION-FONT: ".. tostring(curfont),3)
-          if curfont and luaotfload.aux.slot_of_name(curfont,"space") then
+          if curfont and
+            -- luaotfload.aux.slot_of_name(curfont,"space")
+            __tag_font_has_space (curfont)
+          then
             space_char.font=curfont
           end
           head, space = node.insert_before(head, n, space_char) --
@@ -657,10 +746,8 @@
 function ltx.__tag.func.mark_shipout (box)
  mcopen = ltx.__tag.func.mark_page_elements (box,-1,-100,0,"Shipout",-1)
  if mcopen~=0 then -- there is a chunk open, close it (hope there is only one ...
-  local emcnode = nodenew("whatsit","pdf_literal")
+  local emcnode = __tag_backend_create_emc_node ()
   local list = box.list
-  emcnode.data = "EMC"
-  emcnode.mode=1
   if list then
      list = node.insert_after (list,node.tail(list),emcnode)
      mcopen = mcopen - 1

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.sty	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdf.sty	2023-08-07 19:47:48 UTC (rev 67835)
@@ -28,7 +28,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: tagpdf.dtx
-\ProvidesExplPackage {tagpdf} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdf} {2023-08-04} {0.98k}
   { A package to experiment with pdf tagging }
 
 \bool_if:nF
@@ -52,7 +52,7 @@
   }
 \prop_gput:Nnn \g_msg_module_name_prop { tag }{ tagpdf }
 \bool_new:N\g__tag_mode_lua_bool
-\DeclareOption {luamode}    { \sys_if_engine_luatex:T { \bool_gset_true:N \g__tag_mode_lua_bool } }
+\DeclareOption {luamode}  { \sys_if_engine_luatex:T { \bool_gset_true:N \g__tag_mode_lua_bool } }
 \DeclareOption {genericmode}{ \bool_gset_false:N\g__tag_mode_lua_bool }
 \ExecuteOptions{luamode}
 \ProcessOptions
@@ -200,6 +200,8 @@
     \bool_set_true:N \l__tag_active_struct_bool
     \bool_set_true:N \l__tag_active_mc_bool
   }
+\cs_set_eq:NN\tagstop\tag_stop:
+\cs_set_eq:NN\tagstart\tag_start:
 \prop_new:N\g__tag_state_prop
 \cs_set_protected:Npn \tag_stop:n #1
   {
@@ -1371,14 +1373,14 @@
        }
     }
  }
-\cs_new_protected:Npn \__tag_role_read_namespace:n #1 %name of namespace
+\cs_new_protected:Npn \__tag_role_read_namespace:nn #1 #2 %name of namespace #2 name of file
   {
     \prop_if_exist:cF {g__tag_role_NS_#1_prop}
       { \msg_warning:nnn {tag}{namespace-unknown}{#1} }
-    \file_if_exist:nTF { tagpdf-ns-#1.def}
+    \file_if_exist:nTF { tagpdf-ns-#2.def }
      {
-       \ior_open:Nn \g_tmpa_ior {tagpdf-ns-#1.def}
-       \msg_info:nnn {tag}{read-namespace}{#1}
+       \ior_open:Nn \g_tmpa_ior {tagpdf-ns-#2.def}
+       \msg_info:nnn {tag}{read-namespace}{#2}
        \ior_map_inline:Nn \g_tmpa_ior
          {
            \__tag_role_read_namespace_line:nw {#1} ##1,,,,\q_stop
@@ -1386,11 +1388,14 @@
        \ior_close:N\g_tmpa_ior
      }
      {
-      \msg_warning:nnn{tag}{namespace-missing}{#1}
+      \msg_info:nnn{tag}{namespace-missing}{#2}
      }
   }
 
-
+\cs_new_protected:Npn \__tag_role_read_namespace:n #1 %name of namespace
+  {
+    \__tag_role_read_namespace:nn {#1}{#1}
+  }
 \__tag_role_read_namespace:n {pdf}
 \__tag_role_read_namespace:n {pdf2}
 \pdf_version_compare:NnF < {2.0}
@@ -1400,6 +1405,7 @@
 \__tag_role_read_namespace:n {latex-book}
 \bool_set_true:N\l__tag_role_update_bool
 \__tag_role_read_namespace:n {latex}
+\__tag_role_read_namespace:nn {latex} {latex-lab}
 \__tag_role_read_namespace:n {pdf}
 \__tag_role_read_namespace:n {pdf2}
 \pdf_version_compare:NnTF < {2.0}
@@ -3227,9 +3233,14 @@
              {text}
          }
   }
+\@ifpackageloaded{footmisc}
+  {\PackageWarning{tagpdf}{tagpdf~has~been~loaded~too~late!}} %
+  {\RequirePackage{latex-lab-testphase-new-or-1}}
+
 \AddToHook{begindocument/before}
  {
-   \@ifundefined{@mult at ptagging@hook}{\RequirePackage{output-patches-tmp-ltx}}{} %
+   \providecommand\@kernel at tagsupport@@makecol{}
+   \providecommand\@kernel at before@cclv{}
    \bool_if:NF \g__tag_mode_lua_bool
      {
         \cs_if_exist:NT \@kernel at before@footins
@@ -3241,6 +3252,11 @@
                \__tag_check_typeout_v:n {====>~In~\token_to_str:N \@makecol\c_space_tl\the\c at page}
                \__tag_add_missing_mcs_to_stream:Nn \@cclv {main}
              }
+           \tl_put_right:Nn \@kernel at tagsupport@@makecol
+             {
+               \__tag_check_typeout_v:n {====>~In~\token_to_str:N \@makecol\c_space_tl\the\c at page}
+               \__tag_add_missing_mcs_to_stream:Nn \@outputbox {main}
+             }
            \tl_put_right:Nn \@mult at ptagging@hook
              {
                \__tag_check_typeout_v:n {====>~In~\string\page at sofar}

Modified: trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdfdocu-patches.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdfdocu-patches.sty	2023-08-07 19:47:47 UTC (rev 67834)
+++ trunk/Master/texmf-dist/tex/latex/tagpdf/tagpdfdocu-patches.sty	2023-08-07 19:47:48 UTC (rev 67835)
@@ -1,5 +1,5 @@
 %\RequirePackage[enable-debug]{expl3}[2018/06/14]
-\ProvidesExplPackage {tagpdfdocu-patches} {2023-07-08} {0.98j}
+\ProvidesExplPackage {tagpdfdocu-patches} {2023-08-04} {0.98k}
  {patches/commands for the tagpdf documentation}
 \RequirePackage{etoolbox,xpatch}
 



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