summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-02-16 03:01:36 +0000
committerNorbert Preining <norbert@preining.info>2023-02-16 03:01:36 +0000
commit024d47cb1c4e5ba541f3865b69168bef20f2bfce (patch)
tree4e55e91ce72e278a079000c9871135034111f910 /macros/latex
parenta7d99429152acee049db679dc26a92e01faf4992 (diff)
CTAN sync 202302160301
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/annotate-equations/README.md7
-rw-r--r--macros/latex/contrib/annotate-equations/annotate-equations.pdfbin124665 -> 203389 bytes
-rw-r--r--macros/latex/contrib/annotate-equations/annotate-equations.sty16
-rw-r--r--macros/latex/contrib/annotate-equations/annotate-equations.tex90
-rw-r--r--macros/latex/contrib/overarrows/overarrows.dtx223
-rw-r--r--macros/latex/contrib/overarrows/overarrows.pdfbin545759 -> 554421 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md10
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/README.md4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/fontspec-luatex-tmp-ltx.sty2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdfbin961811 -> 961936 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx16
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdfbin686518 -> 686657 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdfbin586720 -> 586863 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdfbin514471 -> 514646 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdfbin557646 -> 557793 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdfbin540685 -> 540820 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdfbin542954 -> 543108 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdfbin536072 -> 536219 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdfbin591503 -> 591646 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdfbin515315 -> 515474 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdfbin749402 -> 749558 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx69
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdfbin561134 -> 565712 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdfbin681340 -> 681579 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdfbin810105 -> 810260 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdfbin526218 -> 526338 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdfbin426193 -> 426365 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdfbin588291 -> 588430 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.dtx2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdfbin386602 -> 386819 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx80
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdfbin444424 -> 443946 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx8
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdfbin455780 -> 455951 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty2
-rw-r--r--macros/latex/contrib/postnotes/CHANGELOG.md11
-rw-r--r--macros/latex/contrib/postnotes/postnotes-code.pdfbin838960 -> 839836 bytes
-rw-r--r--macros/latex/contrib/postnotes/postnotes.dtx35
-rw-r--r--macros/latex/contrib/postnotes/postnotes.pdfbin177382 -> 177383 bytes
-rw-r--r--macros/latex/contrib/tagpdf/README.md4
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-backend.dtx9
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-checks.dtx4
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-code.pdfbin1495476 -> 1514352 bytes
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-data.dtx18
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx6
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx4
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx4
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-roles.dtx6
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-space.dtx4
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-struct.dtx144
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-tree.dtx4
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-user.dtx82
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.dtx6
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.pdfbin854619 -> 858479 bytes
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.tex23
-rw-r--r--macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty4
73 files changed, 652 insertions, 331 deletions
diff --git a/macros/latex/contrib/annotate-equations/README.md b/macros/latex/contrib/annotate-equations/README.md
index ca25cd8b0b..9f88390701 100644
--- a/macros/latex/contrib/annotate-equations/README.md
+++ b/macros/latex/contrib/annotate-equations/README.md
@@ -1,7 +1,9 @@
# Annotate equations in LaTeX using TikZ
+( [Documentation](annotate-equations.pdf) | License: [MIT](LICENSE) | [CTAN](https://ctan.org/pkg/annotate-equations) )
+
This package provides commands that make it easy to highlight terms in equations & add annotation labels (based on TikZ).
-Should work with pdflatex as well as lualatex.
+Tested with pdflatex and lualatex, but should work with most other LaTeX engines such as xelatex as well.
Inspired by Sibin Mohan's https://github.com/synercys/annotated_latex_equations/
@@ -9,9 +11,6 @@ Please report any bugs, issues, contribute changes & improvements on https://git
Package author: ST John, http://www.infinitecuriosity.org/
-License: [MIT](LICENSE)
-
-[Documentation](annotate-equations.pdf)
## A package with reusable commands
diff --git a/macros/latex/contrib/annotate-equations/annotate-equations.pdf b/macros/latex/contrib/annotate-equations/annotate-equations.pdf
index 984daaf8ad..b29c607771 100644
--- a/macros/latex/contrib/annotate-equations/annotate-equations.pdf
+++ b/macros/latex/contrib/annotate-equations/annotate-equations.pdf
Binary files differ
diff --git a/macros/latex/contrib/annotate-equations/annotate-equations.sty b/macros/latex/contrib/annotate-equations/annotate-equations.sty
index a5dbf002f3..dbdd5f59f5 100644
--- a/macros/latex/contrib/annotate-equations/annotate-equations.sty
+++ b/macros/latex/contrib/annotate-equations/annotate-equations.sty
@@ -5,7 +5,7 @@
%
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{annotate-equations}
- [2022/03/29 v0.1.0 easily annotate equations using TikZ]
+ [2023/02/15 v0.2.0 easily annotate equations using TikZ]
%%% lualatex compatibility, from https://tex.stackexchange.com/a/351520/171664
\RequirePackage{ifluatex}
@@ -36,7 +36,8 @@
\newcommand{\eqnhighlightshade}{17} % light
%\renewcommand{\eqnhighlightshade}{47} % dark
-\newcommand{\eqnannotationtext}[1]{\sffamily\footnotesize#1\strut} %%% TODO remove textsf/footnotesize/strut?
+\newcommand{\eqnannotationstrut}{\strut} % Package default
+\newcommand{\eqnannotationfont}{\sffamily\footnotesize}
\providecommand\EAmarkanchor{north} % default set to "above"
@@ -126,10 +127,12 @@
\def\myEAcolor{\usevalue{\myEAmarkOne}}%
\begin{tikzpicture}[overlay,remember picture,>=stealth,nodes={align=left,inner ysep=1pt},<-]
% default anchor is at center
- \node[anchor=\swapNorthSouth{\EAmarkanchor},color=\myEAcolor!85,#1] % color blended with white to 85%, any (optional) extra args #1
+ \node[anchor=\swapNorthSouth{\EAmarkanchor},color=\myEAcolor!85,
+ font=\eqnannotationfont,#1
+ ] % color blended with white to 85%, any (optional) extra args #1
(\eqnannotateCurrentNode) % use counter-based "local node"
at ($(\myEAmarkOne.\EAmarkanchor)!0.5!(\myEAmarkTwo.\EAmarkanchor)$) % centered between the two nodes
- {\eqnannotationtext{\myEAtext}};
+ {\myEAtext\eqnannotationstrut};
% double arrow to two uses within the equation:
\draw [<->,color=\myEAcolor] (\myEAmarkOne.\EAmarkanchor) |- ([yshift=0.1ex] \eqnannotateCurrentNode.\EAlabelanchor) -| (\myEAmarkTwo.\EAmarkanchor); % from node 1 via annotation to node 2, with anchor #6 each
\end{tikzpicture}%
@@ -167,11 +170,12 @@
%
\def\myEAxshift{\EAxshift{\EAwesteast}}%
\begin{tikzpicture}[overlay,remember picture,>=stealth,nodes={align=left,inner ysep=1pt},<-]
- \node[anchor=\swapNorthSouth{\EAmarkanchor} \swapWestEast{\EAwesteast},color=\myEAcolor!85,#1] % TODO for some reason, passing #1 through command doesn't work...
+ \node[anchor=\swapNorthSouth{\EAmarkanchor} \swapWestEast{\EAwesteast},
+ color=\myEAcolor!85,font=\eqnannotationfont,#1] % TODO for some reason, passing #1 through command doesn't work...
% anchor=west: align left edge of text on top of tikzmark in equation
% should be north west for below and south west for above ...
(\eqnannotateCurrentNode) at (\myEAmark.\EAmarkanchor) % \EAmarkanchor north: above the equation, south: below
- {\eqnannotationtext{\myEAtext}};
+ {\myEAtext\eqnannotationstrut};
\foreach \EAmark in \myEAmarks
\draw [color=\myEAcolor] (\EAmark.\EAmarkanchor) % arrow from the equation
% \EAmarkanchor north: above the equation, south: below
diff --git a/macros/latex/contrib/annotate-equations/annotate-equations.tex b/macros/latex/contrib/annotate-equations/annotate-equations.tex
index 2b492a36e4..26396e679e 100644
--- a/macros/latex/contrib/annotate-equations/annotate-equations.tex
+++ b/macros/latex/contrib/annotate-equations/annotate-equations.tex
@@ -50,6 +50,8 @@ This package is there to make it easier to make annotated equations in \LaTeX, s
\end{LTXexample}
There is still a bit of manual tweaking required (such as adding vertical space before/after the equation), but hopefully this package will already make it a bit more inviting to annotate your equations!
+Note that this package relies on TikZ's \texttt{remember picture} option and therefore you have to compile your \LaTeX{} document at least twice to get everything in the right place (or just use \texttt{latexmk}!).
+
\section{Marking annotation targets within your equation}
\newcommand{\cmdoption}[1]{$\langle$\textit{#1}$\rangle$}
@@ -61,7 +63,7 @@ or
to define the target of an annotation within your equation. \verb|\eqnmarkbox| adds background shading, whereas \verb|\eqnmark| changes the text color.
(You can also use
\verb|\tikzmarknode{|\cmdoption{node name}\verb|}{|\cmdoption{equation term(s)}\verb|}|,
-but this is likely to end up with the arrow tip too close to the target.)
+but this is likely to end up with the arrow tip too close to the target, so you may want to also pass the \texttt{outer ysep} option, see \cref{sec:outerysep}.)
%
\begin{LTXexample}[text outside listing,lefthand width=1in]
\begin{equation*}
@@ -94,7 +96,7 @@ For \cmdoption{annotate keys}, see \cref{sec:annotate-keys}.
\noindent
%
\label{sec:tikz-options}
-You generally need to manually adjust the \texttt{yshift} to move the annotations to an appropriate distance above (or negative values for below) the equation.
+You generally need to manually adjust the \texttt{yshift} to move the annotations to an appropriate distance above (or negative values for below) the equation. If you want an annotation below the equation, with negative \texttt{yshift}, remember to also pass the \texttt{below} option (see \cref{sec:annotate-keys}).
(You can also adjust \texttt{xshift} if needed, also positive or negative.)
The annotation picks the same text color as given to \verb|\eqnmarkbox| or \verb|\eqnmark|, but you can also override it using \texttt{color} option.
@@ -152,6 +154,7 @@ Color is picked from the first of the two nodes.
%
\begin{LTXexample}[text outside listing,lefthand width=0.5in]
\renewcommand{\eqnhighlightheight}{} % package default
+
\begin{equation*}
\eqnmarkbox[red]{hbar}{\hbar} \eqnmarkbox[blue]{q}{q}
\end{equation*}
@@ -160,6 +163,7 @@ Color is picked from the first of the two nodes.
%
\begin{LTXexample}[text outside listing,lefthand width=0.5in]
\renewcommand{\eqnhighlightheight}{\mathstrut} % 0-width "constant" height
+
\begin{equation*}
\eqnmarkbox[red]{hbar}{\hbar} \eqnmarkbox[blue]{q}{q}
\end{equation*}
@@ -173,6 +177,7 @@ Note that in some cases \verb|\mathstrut| might not be enough, as in the introdu
%
\begin{LTXexample}[text outside listing,lefthand width=0.5in]
\renewcommand{\eqnhighlightheight}{\mathstrut} % 0-width "constant" height
+
\begin{equation*}
\eqnmarkbox[red]{Hhat}{\hat{H}} \eqnmarkbox[blue]{Psi}{\Psi}
\end{equation*}
@@ -183,6 +188,7 @@ You can create custom 0-width characters using \verb|\vphantom|:
%
\begin{LTXexample}[text outside listing,lefthand width=0.5in]
\renewcommand{\eqnhighlightheight}{\vphantom{\hat{H}}\mathstrut} % custom 0-width height
+
\begin{equation*}
\eqnmarkbox[red]{Hhat}{\hat{H}} \eqnmarkbox[blue]{Psi}{\Psi}
\end{equation*}
@@ -197,6 +203,7 @@ You can create custom 0-width characters using \verb|\vphantom|:
%
\begin{LTXexample}[text outside listing,lefthand width=0.5in]
\renewcommand{\eqnhighlightshade}{17} % package default
+
\begin{equation*}
\eqnmarkbox[red]{hbar}{\hbar} \eqnmarkbox[blue]{q}{q}
\end{equation*}
@@ -207,6 +214,7 @@ By redefining this command, you can change the ``alpha'' value of the highlight:
%
\begin{LTXexample}[text outside listing,lefthand width=0.5in]
\renewcommand{\eqnhighlightshade}{47} % 0 is white, 100 is solid color
+
\begin{equation*}
\eqnmarkbox[red]{hbar}{\hbar} \eqnmarkbox[blue]{q}{q}
\end{equation*}
@@ -215,10 +223,9 @@ By redefining this command, you can change the ``alpha'' value of the highlight:
\subsection{Default formatting of annotation labels}
-\verb|\eqnannotationtext| is a one-argument command that gets the annotation text as an argument and can be used to have consistent formatting:
+\verb|\eqnannotationfont| sets the \texttt{font} field of the TikZ annotation label and can be re-set to change its formatting:
\begin{LTXexample}[text outside listing,lefthand width=0.5in]
-% package default:
-\renewcommand{\eqnannotationtext}[1]{\sffamily\footnotesize#1\strut}
+\renewcommand{\eqnannotationfont}{\sffamily\footnotesize} % package default
\begin{equation*}
\eqnmarkbox[blue]{v}{v}
@@ -228,10 +235,8 @@ By redefining this command, you can change the ``alpha'' value of the highlight:
\end{LTXexample}
\noindent
%
-(The \verb|\strut| has a similar effect to \verb|\mathstrut| in \verb|\eqnhighlightheight|.)
-%
\begin{LTXexample}[text outside listing,lefthand width=0.5in]
-\renewcommand{\eqnannotationtext}[1]{\bfseries\small#1}
+\renewcommand{\eqnannotationfont}{\bfseries\small}
\begin{equation*}
\eqnmarkbox[blue]{v}{v}
@@ -240,43 +245,78 @@ By redefining this command, you can change the ``alpha'' value of the highlight:
\vspace{1em}
\end{LTXexample}
\noindent
-%
-\section{Recommendations, tips \& tricks}
-
-\subsection{Use \texttt{\textbackslash{}colorlet} for consistent, easily changeable colors}
+\verb|\eqnannotationstrut| is defined to be a strut (zero-width height) to
+provide minimum distance between the text and the corresponding arrow line. By
+default it is \verb|\strut|, which has a similar effect to
+\verb|\mathstrut| in \verb|\eqnhighlightheight|.
-\subsection{Line breaks within annotations}
-\label{sec:multiline}
-
-Possible, but a bit annoying. By default, the formatting only covers the first line:
-%
\begin{LTXexample}[text outside listing,lefthand width=0.5in]
+\renewcommand{\eqnannotationstrut}{\strut} % package default
+
\begin{equation*}
- \eqnmarkbox[blue]{h}{h}
+ \eqnmarkbox[blue]{size}{s}
\end{equation*}
-\annotate[yshift=-0.5em]{below}{h}{Planck\\constant}
+\annotate[yshift=-0.5em]{below}{size}{The size}
\vspace{1em}
\end{LTXexample}
\noindent
%
-Here is a manual work-around:
-%
\begin{LTXexample}[text outside listing,lefthand width=0.5in]
+\renewcommand{\eqnannotationstrut}{}
+
\begin{equation*}
- \eqnmarkbox[blue]{h}{h}
+ \eqnmarkbox[blue]{size}{s}
\end{equation*}
-\annotate[yshift=-0.5em]{below}{h}{Planck\\\sffamily\footnotesize constant}
+\annotate[yshift=-0.5em]{below}{size}{The size}
\vspace{1em}
\end{LTXexample}
+
+
+\section{Recommendations, tips \& tricks}
+
+\subsection{Use \texttt{\textbackslash{}colorlet} for consistent, easily changeable colors}
+
+
+\subsection{Relations such as ``$=$''}
+\label{sec:mathrel}
+
+Wrapping a mathematical relation symbol such as {\color{blue}$=$} in, for example, \texttt{\textbackslash{}tikzmarknode}, breaks how \TeX{} determines spacing in equations:
+\begin{LTXexample}[text outside listing,lefthand width=0.5in]
+\[
+a \tikzmarknode{node1}{=} b
+\]
+\annotate[yshift=-1em]{below}{node1}{equality}
+\end{LTXexample}
\noindent
+This can be fixed by wrapping the \texttt{\textbackslash{}tikzmarknode} in \texttt{\textbackslash{}mathrel}:
+\begin{LTXexample}[text outside listing,lefthand width=0.5in]
+\[
+a \mathrel{\tikzmarknode{node1}{=}} b
+\]
+\annotate[yshift=-1em]{below}{node1}{equality}
+\end{LTXexample}
+
+\subsection{Extra spacing between \texttt{\textbackslash{}tikzmarknode} and arrow}
+\label{sec:outerysep}
+
+If you want more space between arrow tip and annotated term, you can pass the \texttt{outer ysep} option to \texttt{\textbackslash{}tikzmarknode}:
+\begin{LTXexample}[text outside listing,lefthand width=0.5in]
+\[
+a \mathrel{\tikzmarknode[outer ysep=5pt]{node1}{=}} b
+\]
+\annotate[yshift=-1em]{below}{node1}{equality}
+\end{LTXexample}
+
+
\section{Known issues}
\begin{itemize}
- \item \texttt{label above}/\texttt{label below} not implemented for \verb|\annotate|.
+ \item \texttt{label above}/\texttt{label below} is not implemented for \verb|\annotate|.
+
+ \item Annotations of mathematical relations require some manual patching to get the correct surrounding spacing (see \cref{sec:mathrel}).
- \item Formatting only covers first line in multi-line annotation texts (see \cref{sec:multiline}).
\end{itemize}
\end{document}
diff --git a/macros/latex/contrib/overarrows/overarrows.dtx b/macros/latex/contrib/overarrows/overarrows.dtx
index 1b3700b3f0..419593f577 100644
--- a/macros/latex/contrib/overarrows/overarrows.dtx
+++ b/macros/latex/contrib/overarrows/overarrows.dtx
@@ -16,7 +16,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{overarrows}
%<*package>
-[2023/01/19 v1.0.1 Custom extensible arrows over math expressions]
+[2023/02/15 v1.1 Custom extensible arrows over math expressions]
%</package>
%
%<*driver>
@@ -243,7 +243,7 @@
%
% \subsection{Stack and arrow macros}
%
-% It worth looking at the definition of \pkg{amsmath} \cs{overrightarrow}
+% It's worth looking at the definition of \pkg{amsmath} \cs{overrightarrow}
% command:
% \iffalse
%<*example>
@@ -1116,6 +1116,20 @@ $ \overbandedarrow{v} \qquad \overbandedarrow{AB} $
% a subscript follows.
% \end{docOption}
%
+% \begin{docOption}{subother}
+% Sets to 12 (\emph{other} catcode category) the catcode of the ``|_|" symbol
+% used for subscript detection, when this is enabled by the key \refKey{detect
+% subscripts} (see the section~\ref{sec:non-standard-subscripts},
+% page~\pageref{sec:non-standard-subscripts}).
+% \end{docOption}
+%
+% \begin{docOption}{subactive}
+% Sets to 13 (\emph{active} catcode category) the catcode of the ``|_|" symbol
+% used for subscript detection, when this is enabled by the key \refKey{detect
+% subscripts} (see the section~\ref{sec:non-standard-subscripts},
+% page~\pageref{sec:non-standard-subscripts}).
+% \end{docOption}
+%
% \begin{docOption}{debug}
% Writes the meaning of defined commands in \LaTeX{} log.
% \end{docOption}
@@ -1671,6 +1685,10 @@ $ \dot{\overharpoonsdown{v}} \qquad \ddot{\overharpoonsdown{AB}}$
% When the option \refOpt{subscripts} is set, the initial value of
% \refKey*{detect subscripts} is |true|.
%
+% Note that the detection may fail when the standard subscript command is
+% changed or altered (see the section~\ref{sec:non-standard-subscripts},
+% page~\pageref{sec:non-standard-subscripts}).
+%
% \iffalse
%<*example>
% \fi
@@ -2010,6 +2028,13 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
%
% \subsubsection{Advanced commands}
%
+% \begin{docCommand}{SetOverArrowsSubscriptCommand}{\marg{command}}
+% Sets to \meta{command} the command used for subscript detection, when this
+% is enabled by the key \refKey{detect subscripts} (see the
+% section~\ref{sec:non-standard-subscripts},
+% page~\pageref{sec:non-standard-subscripts}).
+% \end{docCommand}
+%
% \begin{docCommands}{%
% {
% doc name=SetOverArrowsMethod,
@@ -2095,7 +2120,9 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
%
% \section{Complements}
%
-% \subsection{Math font issue}
+% \subsection{Know issues}
+%
+% \subsubsection{Math font change}
%
% If the math font differs from the default \emph{Computer Modern}, arrow drawn
% with the |symb| method may have a central part of the arrow with inappropriate
@@ -2104,6 +2131,60 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
% \symb{\relbareda} from the \pkg{esvect} package. This can be fixed with the
% \refOpt{noesvect} option.
%
+% \subsubsection{Detection of non standard subscripts}
+% \label{sec:non-standard-subscripts}
+%
+% The subscript detection enabled by the key \refKey{detect subscripts} is based
+% on the \LaTeX{} macro \cs{@ifnextchar}. The detection may fail if the standard
+% subscript command is modified of altered. This is the case, as example:
+% \begin{itemize}
+% \item with the \pkg{spbmark} package
+% (\url{https://www.ctan.org/pkg/spbmark}), by Qu Yi, which allows a complete
+% customisation of subscripts, through the \cs{sub} command;
+% \item with the \pkg{altsubsup} package
+% (\url{https://www.ctan.org/pkg/altsubsup}), by Julien Labb\'e, which
+% provides an alternative subscript format, and changes, for this purpose, the
+% catcode of the underscore symbol ``|_|" from 8 (\emph{subscript} catcode
+% category) to 12 (\emph{other} catcode category).
+% \end{itemize}
+%
+% To handle theses cases, the command used for subscript detection can be
+% redefined with \refCom{SetOverArrowsSubscriptCommand}. Compatibility with the
+% \pkg{spbmark} package is then obtained by:
+% \iffalse
+%<*example>
+% \fi
+\begin{dispListing}
+\SetOverArrowsSubscriptCommand{\sub}
+\end{dispListing}
+% \iffalse
+%</example>
+% \fi
+% \noindent In the same way, with the \pkg{altsubsup} package, add:
+% \iffalse
+%<*example>
+% \fi
+\begin{dispListing}
+\SetOverArrowsSubscriptCommand{_}
+\end{dispListing}
+% \iffalse
+%</example>
+% \fi
+% \noindent after the \cs{begin}|{document}| (namely, after the catcode
+% redefinition done by \pkg{altsubsup}).
+%
+% \medskip
+%
+% Alternatively, two package options handle the cases where the catcode of the
+% underscore ``|_|" symbol is changed: \refOpt{subother} (for catcode 12, or
+% \emph{other}) and \refOpt{subactive} (for catcode 13, or \emph{active}).
+% Hence, setting the \refOpt{subother} option is sufficient for compatibility
+% with the \pkg{altsubsup} package (no need of
+% \refCom{SetOverArrowsSubscriptCommand}). Note, that with options
+% \refOpt{subother} and \refOpt{subactive}, the command \refCom{TestOverArrow*}
+% may give bad results for kerning test, as defined before the
+% catcode redefinition.
+%
% \subsection{Package dependencies}
%
% The following packages are used by \pkg{overarrows}:
@@ -2145,6 +2226,7 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
% \subsection{Changelog}
%
% \begin{description}
+% \item[v1.1] Support for non-standard subscripts
% \item[v1.0.1] Bug fix for under* options.
% \item[v1.0] Initial version.
% \end{description}
@@ -2160,7 +2242,7 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
% \setlength{\parindent}{0em}
% \setlength{\parskip}{\smallskipamount}
%
-%\subsection*{Management of options}
+% \subsection*{Management of options}
%
% \subsubsection*{Declaration of conditionals}
%
@@ -2170,6 +2252,8 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
\newif\ifovar@option@tikz@
\newif\ifovar@option@pstarrows@
\newif\ifovar@detectsubscripts@
+\newif\ifovar@option@subother@
+\newif\ifovar@option@subactive@
\newif\ifovar@option@debug@
% \end{macrocode}
%
@@ -2211,6 +2295,8 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
\DeclareOption{tikz}{\ovar@option@tikz@true}
\DeclareOption{pstarrows}{\ovar@option@pstarrows@true}
\DeclareOption{subscripts}{\ovar@detectsubscripts@true}
+\DeclareOption{subother}{\ovar@option@subother@true}
+\DeclareOption{subactive}{\ovar@option@subactive@true}
\DeclareOption{debug}{\ovar@option@debug@true}
% \end{macrocode}
%
@@ -2218,7 +2304,6 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
%
% \changes{v1.0.1}{2023/01/19}{Bug fix for under* options}
%
-%
% \begin{macrocode}
\DeclareOption{overrightarrow}{\ovar@option@overrightarrow@true}
\DeclareOption{underrightarrow}{\ovar@option@underrightarrow@true}
@@ -2327,6 +2412,39 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
\fi
% \end{macrocode}
%
+% \subsection*{Configuration of subscripts detection}
+%
+% \changes{v1.1}{2023/02/15}{Support for non-standard subscripts}
+%
+% \begin{macro}{\SetOverArrowsSubscriptCommand}
+% Sets the subscript command.
+% \begin{macrocode}
+\newcommand{\SetOverArrowsSubscriptCommand}[1]{\global\let\ovar@subcmd=#1}
+% \end{macrocode}
+% \end{macro}
+%
+% Initial configuration.
+% \begin{macrocode}
+\SetOverArrowsSubscriptCommand{_}
+% \end{macrocode}
+% Option \refOpt{subother} for \emph{other} (catcode 12) subscript commands.
+% \begin{macrocode}
+\ifovar@option@subother@
+ \begingroup
+ \catcode `_=12
+ \AddToHook{begindocument/end}{\SetOverArrowsSubscriptCommand{_}}
+ \endgroup
+\fi
+% \end{macrocode}
+% Option \refOpt{subactive} for \emph{active} (catcode 13) subscript commands.
+% \begin{macrocode}
+\ifovar@option@subactive@
+ \begingroup
+ \catcode `_=13
+ \AddToHook{begindocument/end}{\SetOverArrowsSubscriptCommand{_}}
+ \endgroup
+\fi
+% \end{macrocode}
% \subsection*{Management of keys}
%
% \subsubsection*{Family declaration and setters}
@@ -2365,6 +2483,11 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
%
% \begin{macrocode}
\SetOverArrowsMethod*{common}[\undef{\ovar@macro@stack}\undef{\ovar@macro@arrow}]{%
+% \end{macrocode}
+%
+% \refKey{detect subscripts}.
+%
+% \begin{macrocode}
detect subscripts/.is if=ovar@detectsubscripts@,
% \end{macrocode}
%
@@ -2926,7 +3049,11 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
}
\ifovar@detectsubscripts@%
\csgdef{ovar@#2@auto}##1{%
- \@ifnextchar _{%
+% \end{macrocode}
+% \vspace{-2\smallskipamount}%^^A remove space between code blocs
+% \changes{v1.1}{2023/02/15}{Support for non-standard subscripts}
+% \begin{macrocode}
+ \@ifnextchar \ovar@subcmd {%
\csuse{ovar@#2@starred}{##1}%
}{%
\csuse{ovar@#2@normal}{##1}%
@@ -3271,6 +3398,28 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
% \end{macrocode}
% \end{macro}
%
+% \changes{v1.1}{2023/02/15}{Support for non-standard subscripts}
+%
+% \begin{macro}{\ovar@testkerning}
+% \begin{macrocode}
+\begingroup
+\ifovar@option@subother@ \catcode `_=12 \fi
+\ifovar@option@subactive@ \catcode `_=13 \fi
+\gdef\ovar@testkerning#1{%
+ \begin{displaymath}
+ #1{t}_{#1{u}_{#1{v}}}
+ \qquad
+ #1{\imath}_0
+ \qquad
+ #1{v}
+ = #1{v}_x + #1{v}_y + #1{v}_z
+ = v_x #1{\imath} + v_y #1{\jmath} + v_z #1{k}
+ \end{displaymath}
+}
+\endgroup
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\TestOverArrow}
% \begin{macrocode}
\NewDocumentCommand{\TestOverArrow}{ s o m }{
@@ -3290,25 +3439,9 @@ $ \overdotteddoublearrow{v} \qquad \overdotteddoublearrow{AB} $
\ovar@testmathstyles[#2]{#3}%
\bigskip\par
\textbf{\texttt{\textbackslash#3} kerning}
- \begin{displaymath}
- \csuse{#3}{t}_{\csuse{#3}{u}_{\csuse{#3}{v}}}
- \qquad
- \csuse{#3}{\imath}_0
- \qquad
- \csuse{#3}{v}
- = \csuse{#3}{v}_x + \csuse{#3}{v}_y + \csuse{#3}{v}_z
- = v_x \csuse{#3}{\imath} + v_y \csuse{#3}{\jmath} + v_z \csuse{#3}{k}
- \end{displaymath}
+ \ovar@testkerning{\csuse{#3}}
\textbf{\texttt{\textbackslash#3*} kerning}
- \begin{displaymath}
- \csuse{#3}*{t}_{\csuse{#3}*{u}_{\csuse{#3}*{v}}}
- \qquad
- \csuse{#3}*{\imath}_0
- \qquad
- \csuse{#3}*{v}
- = \csuse{#3}*{v}_x + \csuse{#3}*{v}_y + \csuse{#3}*{v}_z
- = v_x \csuse{#3}*{\imath} + v_y \csuse{#3}*{\jmath} + v_z \csuse{#3}*{k}
- \end{displaymath}
+ \ovar@testkerning{\csuse{#3}*}
\end{minipage}%
}\bigskip\par
}{%
@@ -3501,7 +3634,7 @@ actual '='
overrightharpoondown, overleftharpoonup, overleftharpoondown, overbar,%
underrightarrow, underleftarrow, underleftrightarrow, underrightharpoonup,%
underrightharpoondown, underleftharpoonup, underleftharpoondown, underbar,%
- SetOverArrowsMethod,%
+ SetOverArrowsMethod, SetOverArrowsSubscriptCommand,%
},
index = [2][texcs2],%
indexstyle = [2]\indexmacro,%
@@ -3537,6 +3670,7 @@ actual '='
ovar@stackover@, ovar@stackunder@, ovar@stackover@fill,
ovar@stackover@lens, ovar@set@common, ovar@starversion,
ovar@testmathstyles, ovar@row@teststyle,%
+ ifovar@option@subother@,ifovar@option@subactive@,ovar@subcmd,ovar@testkerning,%
},
index = [4][texcs4],%
indexstyle = [4]\indexmacrointernal,%
@@ -3657,45 +3791,6 @@ actual '='
%
%</docstyle>
%
-%<*comment>
-%
-% \section*{Notes}
-%
-% \subsection*{Bash commands reminder}
-%^^A the command |awk '!line[$0]++'| remove duplicate lines
-%
-% \subsubsection*{List of package options}
-%
-\begin{lstlisting}[language={bash}]
-rg -o -N 'DeclareOption\{\w+' overarrows.dtx | rg -o '\w+$'
-\end{lstlisting} %^^A dummy '|' for emacs
-%
-% \subsubsection*{List of commands}
-%
-\begin{lstlisting}[language={bash}]
-rg -o -N '^[[:blank:]]*\\(let|def|newcommand\*?|(New|Renew|Declare|Provides)\w*Command)[{\\]+[\w@]+' overarrows.sty | rg -o '[\w@]+$' | grep -v ovar@ | awk '!line[$0]++'
-\end{lstlisting} %^^A dummy '|' for emacs
-%
-% \subsubsection*{List of internal macros and lengths}
-%
-\begin{lstlisting}[language={bash}]
- rg '\\(if)?ovar@[\w@]+' -o -N overarrows.dtx | rg -v '(@true|@false)' | awk '!line[$0]++'
-\end{lstlisting} %^^A dummy '|' for emacs
-%
-% \subsubsection*{List of lengths}
-%
-\begin{lstlisting}[language={bash}]
-rg -o -N '^[[:blank:]]*\\(def|new)length[{\\]+[\w@]+' overarrows.sty | rg -o '[\w@]+$' | grep -v ovar@| awk '!line[$0]++'
-\end{lstlisting}
-%
-% \subsubsection*{List of keys}
-%
-\begin{lstlisting}[language={bash}]
-rg -o -N ".*/\." overarrows.sty | sed 's/\/\.$//' | sed -r 's/^([[:blank:]]|\\[[:alpha:]@]+\{)*//' | awk '!line[$0]++'
-\end{lstlisting}
-%
-%</comment>
-%
% \fi ^^A end of \iffalse
%
% \Finale
diff --git a/macros/latex/contrib/overarrows/overarrows.pdf b/macros/latex/contrib/overarrows/overarrows.pdf
index 2b29e7cb45..7203b11bb3 100644
--- a/macros/latex/contrib/overarrows/overarrows.pdf
+++ b/macros/latex/contrib/overarrows/overarrows.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
index 6340136c0b..5184ea0aed 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
+++ b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
@@ -5,8 +5,16 @@ first release 0.95a, 2021-02-23 will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
this project uses date-based 'snapshot' version identifiers.
-## [2023-02-07]
+## [2023-02-14]
+
+### Added
+ - l3pdffile: \pdffile_embed_stream:nnN to embed a stream without creating a named
+ object.
+### Changed
+ - l3pdffile: default mime type of tex-files changed to application/x-tex.
+
+## [2023-02-07]
### Fixed
- pdf A4 uses pdfaid:rev not pdfaid:year.
- pdfcreationdate and pdfmoddate key
diff --git a/macros/latex/contrib/pdfmanagement-testphase/README.md b/macros/latex/contrib/pdfmanagement-testphase/README.md
index 51efd816a5..0374c9f268 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/README.md
+++ b/macros/latex/contrib/pdfmanagement-testphase/README.md
@@ -1,6 +1,6 @@
# LaTeX PDF management testphase bundle
-Version: 0.95u, 2023-02-07
+Version: 0.95v, 2023-02-14
This package is used during a test phase to load the new PDF management code
of LaTeX.
@@ -31,7 +31,7 @@ For manual installation: unpack by compiling the .ins, then move all
## Copyright (C)
-* 2021-2022 The LaTeX Project
+* 2021-2023 The LaTeX Project
## License
LaTeX Project Public License, version 1.3c or later.
diff --git a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
index e6464c3527..43f338e6da 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
@@ -24,7 +24,7 @@
%% This file has the LPPL maintenance status "maintained".
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{color-ltx}[2023-02-07 v0.95u
+\ProvidesPackage{color-ltx}[2023-02-14 v0.95v
Standard LaTeX Color (patched for l3color, part of pdfmanagement-testphase, original version 2022/01/06 v1.3d) (DPC)]
\edef\Gin@codes{%
\catcode`\noexpand\^^A\the\catcode`\^^A\relax
diff --git a/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty
index b9c37a0869..ee704315ce 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty
@@ -1,5 +1,5 @@
-%% This is file `hyperxmp-patches-tmp-ltx.sty"
-% Copyright (C) 2019-2021 The LaTeX Project
+%% This is file `colorspace-patches-tmp-ltx.sty"
+% Copyright (C) 2019-2022 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -19,7 +19,7 @@
%
% for those people who are interested.
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2023-02-07}{0.95u}
+\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2023-02-14}{0.95v}
{temporay patches to for the colorspace package to test pdfresource management ... UF}
% colorspace can define more models, that l3color can't yet handle.
diff --git a/macros/latex/contrib/pdfmanagement-testphase/fontspec-luatex-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/fontspec-luatex-tmp-ltx.sty
index d58ac829fd..40c56ef9c9 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/fontspec-luatex-tmp-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/fontspec-luatex-tmp-ltx.sty
@@ -40,7 +40,7 @@
\RequirePackage{xparse}
\ProvidesExplPackage{fontspec-luatex-tmp-ltx}%
- {2022/01/15}{2023-02-07}{0.95u}
+ {2022/01/15}{2023-02-14}{0.95v}
%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec>
%%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC <wspr.io/fontspec>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
index 0a80dc1bda..a145b046ed 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
@@ -2,7 +2,7 @@
%
%% File: hyperref-generic.dtx
%
-% Copyright (C) 2021-2022 The LaTeX Project
+% Copyright (C) 2021-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -82,7 +82,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -969,7 +969,7 @@
%<@@=hyp>
% \end{macrocode}
% \begin{macrocode}
-\ProvidesFile{hgeneric-testphase.def}[2023-02-07 v0.95u %
+\ProvidesFile{hgeneric-testphase.def}[2023-02-14 v0.95v %
generic Hyperref driver for the LaTeX PDF management testphase bundle]
\RequirePackage{etoolbox} %why?
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
index 050ce269eb..d225a49f2d 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
index d6c6c742c8..58a14075e8 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
@@ -2,7 +2,7 @@
%
%% File: l3backend-testphase.dtx
%
-% Copyright (C) 2019-2021 The LaTeX Project
+% Copyright (C) 2019-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -45,7 +45,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
%
@@ -56,27 +56,27 @@
% \begin{macrocode}
%<drivers>\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-testphase-dvipdfmx.def}{2023-02-07}{}
+ {l3backend-testphase-dvipdfmx.def}{2023-02-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-testphase-dvips.def}{2023-02-07}{}
+ {l3backend-testphase-dvips.def}{2023-02-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-testphase-dvisvgm.def}{2023-02-07}{}
+ {l3backend-testphase-dvisvgm.def}{2023-02-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-testphase-luatex.def}{2023-02-07}{}
+ {l3backend-testphase-luatex.def}{2023-02-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-testphase-pdftex.def}{2023-02-07}{}
+ {l3backend-testphase-pdftex.def}{2023-02-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)}
%</pdftex>
%<*xdvipdfmx>
- {l3backend-testphase-xetex.def}{2023-02-07}{}
+ {l3backend-testphase-xetex.def}{2023-02-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: XeTeX}
%</xdvipdfmx>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
index 9bace5d9c8..d1d9e1bedd 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
index b34c9610fd..3073eeca7e 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdfannot.dtx
%
-% Copyright (C) 2021-2022 The LaTeX Project
+% Copyright (C) 2021-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -432,7 +432,7 @@
% \begin{macrocode}
%<@@=pdfannot>
%<*header>
-\ProvidesExplPackage{l3pdfannot}{2023-02-07}{0.95u}
+\ProvidesExplPackage{l3pdfannot}{2023-02-14}{0.95v}
{PDF-annotations}
\RequirePackage{l3pdfdict}
%</header>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
index 8b8e35a3b4..7f5b77efd9 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
index e8bc32484a..8098f62774 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdfdict.dtx
%
-% Copyright (C) 2018-2022 The LaTeX Project
+% Copyright (C) 2018-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -208,7 +208,7 @@
% \begin{macrocode}
%<@@=pdfdict>
%<*header>
-\ProvidesExplPackage{l3pdfdict}{2023-02-07}{0.95u}
+\ProvidesExplPackage{l3pdfdict}{2023-02-14}{0.95v}
{Tools for PDF dictionaries (LaTeX PDF management testphase bundle)}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
index e83d445c94..6ffccc6d0e 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
index 96855a08c2..c0b448ca2e 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdfpdffield-action.dtx
%
-% Copyright (C) 2021-2022 The LaTeX Project
+% Copyright (C) 2021-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
index bebc9d08d4..30e213b3bd 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
index 5fba604620..e734ac71db 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdfpdffield-checkbox.dtx
%
-% Copyright (C) 2021-2022 The LaTeX Project
+% Copyright (C) 2021-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -64,7 +64,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
index 466fd5a705..f139a2d04a 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
index 3c0541b947..9b664ade97 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdfpdffield-choice.dtx
%
-% Copyright (C) 2021-2022 The LaTeX Project
+% Copyright (C) 2021-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
index d506fa15f4..17eb232e70 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
index a078ea2fb8..c0a05b8a3c 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdfpdffield-pushbutton.dtx
%
-% Copyright (C) 2021-2022 The LaTeX Project
+% Copyright (C) 2021-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -55,7 +55,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
index 853f8adaa9..e30221c289 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
index 36ab234bbf..6207ffb2db 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdfpdffield-radiobutton.dtx
%
-% Copyright (C) 2021-2022 The LaTeX Project
+% Copyright (C) 2021-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -83,7 +83,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
index 838b411c46..7a253321fd 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
index ecf4211755..c6807a162a 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdfpdffield-textfield.dtx
%
-% Copyright (C) 2021-2022 The LaTeX Project
+% Copyright (C) 2021-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
index 5c4e030d3e..87eb534dd2 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
index 3bc48a0cb4..efb1171861 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdffield.dtx
%
-% Copyright (C) 2021-2022 The LaTeX Project
+% Copyright (C) 2021-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -69,7 +69,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -973,7 +973,7 @@
%<*package>
%<@@=pdffield>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesExplPackage{l3pdffield-testphase}{2023-02-07}{0.95u}%
+\ProvidesExplPackage{l3pdffield-testphase}{2023-02-14}{0.95v}%
{form fields}
% \end{macrocode}
% \subsection{hyperref specific command}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
index 60b5c4d669..9cbe0420f3 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
index e682ad4e10..e8f6b1c2f8 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdffile.dtx
%
-% Copyright (C) 2018-2022 The LaTeX Project
+% Copyright (C) 2018-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -296,12 +296,14 @@
% https://chat.stackexchange.com/transcript/message/54181193#54181193
% \end{NOTE}
%
-% \begin{function}{\pdffile_embed_stream:nnn}
+% \begin{function}{\pdffile_embed_stream:nnn,\pdffile_embed_stream:nnN}
% \begin{syntax}
-% \cs{pdffile_embed_stream:nnn} \Arg{content} \Arg{target filename} \Arg{object name }
+% \cs{pdffile_embed_stream:nnn} \Arg{content} \Arg{target filename} \Arg{object name}\\
+% \cs{pdffile_embed_stream:nnN} \Arg{content} \Arg{target filename} \Arg{tl var}
% \end{syntax}
% This commands embeds the \meta{content} in the PDF in a stream objects and
-% creates a |/Filespec| dictionary object named \meta{object name}.
+% creates either a |/Filespec| dictionary object named \meta{object name}, or stores
+% the object reference (what you would get with \cs{pdf_object_ref:n}) in \meta{tl var}.
% \meta{content} is wrapped in a \cs{exp_not:n}.
% The object name must be unique. The command uses the content of the local
% dictionaries |l_pdffile|, |l_pdffile/streamParams| and |l_pdffile/Filespec|
@@ -396,7 +398,7 @@
%
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage{l3pdffile}{2023-02-07}{0.95u}
+\ProvidesExplPackage{l3pdffile}{2023-02-14}{0.95v}
{embedding and referencing files in PDF---LaTeX PDF management testphase bundle}
\RequirePackage{l3pdftools} %temporarly!!
%</header>
@@ -440,6 +442,7 @@
% {
% \l_@@_tmpa_tl,
% \l_@@_tmpb_tl,
+% \g_@@_tmpa_tl,
% \l_@@_tmpa_str,
% \l_@@_tmpb_str,
% \l_@@_ext_str,
@@ -451,6 +454,7 @@
% \begin{macrocode}
\tl_new:N \l_@@_tmpa_tl
\tl_new:N \l_@@_tmpb_tl
+\tl_new:N \g_@@_tmpa_tl
\str_new:N \l_@@_tmpa_str
\str_new:N \l_@@_tmpb_str
\str_new:N \l_@@_ext_str
@@ -474,7 +478,7 @@
,.mp4 = video/mp4
,.pdf = application/pdf
,.png = image/png
- ,.tex = text/plain %or application/x-tex, not in iana.org list
+ ,.tex = application/x-tex %not in iana.org list but probably better
,.txt = text/plain
,.sty = text/plain
,.xml = text/xml
@@ -543,7 +547,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\pdffile_embed_file:nnn, \pdffile_embed_stream:nnn}
+% \begin{macro}{\pdffile_embed_file:nnn, \pdffile_embed_stream:nnn, \pdffile_embed_stream:nnN}
% At first a command to set the mimetype. It either uses the current value
% in the file dictionary, or tries to guess it from the extension.
% \begin{macro}{\@@_mimetype_set:nN,\@@_mimetype_set:VN}
@@ -635,7 +639,7 @@
%#3 object ref of the file stream.
\cs_new_protected:Npn \@@_filespec_write:nnn #1 #2 #3
{
- \tl_if_blank:nT { #2 }
+ \tl_if_blank:nTF { #2 }
{
\msg_error:nn {pdffile}{target-name-missing}
}
@@ -656,6 +660,32 @@
}
}
+%#1 target file name #2 object ref of file stream #3 reference of object
+\cs_new_protected:Npn \@@_filespec_write:nnN #1 #2 #3
+ {
+ \tl_if_blank:nTF { #1 }
+ {
+ \msg_error:nn {pdffile}{target-name-missing}
+ }
+ {
+ \group_begin:
+ \@@_filename_convert_to_print:nN { #1 } \l_@@_tmpa_str
+ \pdfdict_put:nnx {l_pdffile/Filespec}{F} { \l_@@_tmpa_str }
+ \pdfdict_put:nnx {l_pdffile/Filespec}{UF}{ \l_@@_tmpa_str }
+ \pdf_object_unnamed_write:nx {dict}
+ {
+ \pdfdict_use:n { l_pdffile/Filespec}
+ \tl_if_empty:nF { #2 }
+ {
+ /EF <</F~#2 /UF~#2>>
+ }
+ }
+ \tl_gset:Nx\g_@@_tmpa_tl{\pdf_object_ref_last:}
+ \group_end:
+ \tl_set_eq:NN#3\g_@@_tmpa_tl
+ }
+ }
+
\cs_set_eq:NN \pdffile_filespec:nnn \@@_filespec_write:nnn
\cs_generate_variant:Nn \pdffile_filespec:nnn {nnx}
%#1 {source filename}
@@ -756,6 +786,27 @@
}
}
+\cs_new_protected:Npn \pdffile_embed_stream:nnN #1 #2 #3
+ {
+ \tl_if_blank:nTF {#2}
+ { \@@_mimetype_set:nN {stream.txt}\l_@@_automimetype_tl}
+ { \@@_mimetype_set:nN { #2 } \l_@@_automimetype_tl }
+ \@@_stream_write:nN
+ { #1 }
+ \l_@@_automimetype_tl
+ \tl_set:Nx \l_@@_embed_ref_tl { \pdf_object_ref_last: }
+ \exp_args:Nxx
+ \@@_filespec_write:nnN
+ %#1 target file name, #2 object ref of stream, #3 object ref of filespec
+ { \tl_if_blank:nTF {#2}{stream.txt}{\exp_not:n{#2}} }
+ {\l_@@_embed_ref_tl}
+ #3
+ \prop_gput:Nxx
+ \g_pdffile_embed_prop
+ { #3 }
+ {{stream}{}{\tl_if_blank:nTF {#2}{stream.txt}{\exp_not:n{#2}}}}
+ }
+
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
index 074a7ada21..26756d7287 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
index a9c96844d9..9b9d86eb43 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdfmanagement.dtx
%
-% Copyright (C) 2018-2022 The LaTeX Project
+% Copyright (C) 2018-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -57,7 +57,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -632,7 +632,7 @@
%<@@=pdfmanagement>
%<*header>
%
-\ProvidesExplPackage{l3pdfmanagement}{2023-02-07}{0.95u}
+\ProvidesExplPackage{l3pdfmanagement}{2023-02-14}{0.95v}
{Management of core PDF dictionaries (LaTeX PDF management testphase bundle)}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
index 1466bb0a6f..7c01923bdf 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
index be0db1b9f3..8fe1bf2859 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdfmeta.dtx
%
-% Copyright (C) 2018-2022 The LaTeX Project
+% Copyright (C) 2018-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -562,7 +562,7 @@
% \begin{macrocode}
%<@@=pdfmeta>
%<*header>
-\ProvidesExplPackage{l3pdfmeta}{2023-02-07}{0.95u}
+\ProvidesExplPackage{l3pdfmeta}{2023-02-14}{0.95v}
{PDF-Standards---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
index f13004eea6..04f852c94e 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
index 9609617ddc..5d313f1570 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdftools.dtx
%
-% Copyright (C) 2018-2022 The LaTeX Project
+% Copyright (C) 2018-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -211,7 +211,7 @@
%
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage{l3pdftools}{2023-02-07}{0.95u}
+\ProvidesExplPackage{l3pdftools}{2023-02-14}{0.95v}
{candidate commands for l3pdf---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
index 01556046ec..59ee93b0d1 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
index 3f6350f95f..63395542e1 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
@@ -2,7 +2,7 @@
%
%% File: l3pdfxform.dtx
%
-% Copyright (C) 2018-2022 The LaTeX Project
+% Copyright (C) 2018-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -132,7 +132,7 @@
% \begin{macrocode}
%<@@=pdf>
%<*header>
-\ProvidesExplPackage{l3pdfxform}{2023-02-07}{0.95u}
+\ProvidesExplPackage{l3pdfxform}{2023-02-14}{0.95v}
{command to create xforms (beta)---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
index 87ced6bc38..e7e426a73b 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
index ada32d8d2f..e7128d2c26 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
@@ -2,7 +2,7 @@
%
%% File: ltdocinit.dtx
%
-% Copyright (C) 2018-2022 The LaTeX Project
+% Copyright (C) 2018-2023 The LaTeX Project
%
% 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.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -215,7 +215,7 @@
% \begin{macrocode}
%<@@=pdfmanagement>
%<*header>
-\ProvidesExplPackage{ltdocinit}{2023-02-07}{0.95u}
+\ProvidesExplPackage{ltdocinit}{2023-02-14}{0.95v}
{Initialize document metadata}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
index 882188cde8..2607f576de 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.dtx b/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.dtx
index 38f0f38641..11eae11300 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: output-patches.dtx (C) Copyright 2020-2021 Frank Mittelbach
+%% File: output-patches.dtx (C) Copyright 2020-2023 Frank Mittelbach
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf b/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf
index 7d24fbf133..542dab7788 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
index 2025a4fa18..3e9810a925 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
@@ -2,7 +2,7 @@
%
%% File: pdfmanagement-firstaid.dtx
%
-% Copyright (C) 2018-2022 The LaTeX Project
+% Copyright (C) 2018-2023 The LaTeX Project
%
% 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.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -63,7 +63,7 @@
% |debug={firstaidoff={name1,name2,...},...}|.
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{pdfmanagement-firstaid}{2023-02-07}{0.95u}
+\ProvidesExplPackage{pdfmanagement-firstaid}{2023-02-14}{0.95v}
{LaTeX PDF management testphase bundle / firstaid-patches}
%<@@=pdfmanagement>
@@ -201,8 +201,9 @@
% \subsection{luacolor}
%
% The luacolor package doesn't take colors from l3color into account.
-% We add a fix, but only for pdf mode. It is disable if luacolor is updated,
-% assuming that the update will then handle it (or expl3 directly)
+% We add a fix, but only for pdf mode. luacolor can disable the
+% code by clearing the hook if needed.
+%
% \begin{macrocode}
\bool_lazy_all:nT
{
@@ -213,47 +214,44 @@
{
\AddToHook{package/luacolor/after}
{
- \@ifpackagelater{luacolor}{2021-02-18}{}
+ \cs_set_protected:Npn \__color_backend_select:nn #1#2
{
- \cs_set_protected:Npn \__color_backend_select:nn #1#2
- {
- \tl_set:Nn \l__color_backend_fill_tl {#1}
- \tl_set:Nn \l__color_backend_stroke_tl {#2}
- \LuaCol@setattribute\LuaCol@Attribute
- {
- \directlua
- {
- oberdiek.luacolor.get("\luaescapestring{#1~#2}")
- }
- }
- }
- \cs_set_protected:Npn \__color_backend_fill:n #1
+ \tl_set:Nn \l__color_backend_fill_tl {#1}
+ \tl_set:Nn \l__color_backend_stroke_tl {#2}
+ \LuaCol@setattribute\LuaCol@Attribute
{
- \tl_set:Nn \l__color_backend_fill_tl {#1}
- \LuaCol@setattribute\LuaCol@Attribute
- {
- \directlua
- {
- oberdiek.luacolor.get("\luaescapestring{#1}")
- }
- }
+ \directlua
+ {
+ oberdiek.luacolor.get("\luaescapestring{#1~#2}")
+ }
}
- \cs_set_protected:Npn \__color_backend_stroke:n #1
+ }
+ \cs_set_protected:Npn \__color_backend_fill:n #1
+ {
+ \tl_set:Nn \l__color_backend_fill_tl {#1}
+ \LuaCol@setattribute\LuaCol@Attribute
{
- \tl_set:Nn \l__color_backend_stroke_tl {#1}
- \LuaCol@setattribute\LuaCol@Attribute
+ \directlua
{
- \directlua
- {
- oberdiek.luacolor.get("\luaescapestring{#1}")
- }
- }
- }
- \cs_set_protected:Npn \__color_backend_reset: {}
- \cs_set_eq:NN \__color_backend_fill_reset: \__color_backend_reset:
- \cs_set_eq:NN \__color_backend_stroke_reset: \__color_backend_reset:
- }
- }
+ oberdiek.luacolor.get("\luaescapestring{#1}")
+ }
+ }
+ }
+ \cs_set_protected:Npn \__color_backend_stroke:n #1
+ {
+ \tl_set:Nn \l__color_backend_stroke_tl {#1}
+ \LuaCol@setattribute\LuaCol@Attribute
+ {
+ \directlua
+ {
+ oberdiek.luacolor.get("\luaescapestring{#1}")
+ }
+ }
+ }
+ \cs_set_protected:Npn \__color_backend_reset: {}
+ \cs_set_eq:NN \__color_backend_fill_reset: \__color_backend_reset:
+ \cs_set_eq:NN \__color_backend_stroke_reset: \__color_backend_reset:
+ }
}
% \end{macrocode}
% \subsection{\pkg{pgf}}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
index b1cd065bde..f9f33a201e 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
index 8110f77cba..17f7bc45cd 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
@@ -2,7 +2,7 @@
%
%% File: pdfmanagement-testphase.dtx
%
-% Copyright (C) 2019-2022 The LaTeX Project
+% Copyright (C) 2019-2023 The LaTeX Project
%
% 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.95u, released 2023-02-07}
+% \date{Version 0.95v, released 2023-02-14}
%
% \maketitle
% \begin{documentation}
@@ -386,7 +386,7 @@
% \begin{macrocode}
%<@@=pdf>
%<*package>
-\ProvidesExplPackage{pdfmanagement-testphase}{2023-02-07}{0.95u}
+\ProvidesExplPackage{pdfmanagement-testphase}{2023-02-14}{0.95v}
{LaTeX PDF management testphase bundle}
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
\IfFormatAtLeastTF{2020-10-01}{}{
@@ -414,7 +414,7 @@
% to allow to set it in the document.
% \begin{macrocode}
%<*header>
-\ProvidesExplFile{pdfmanagement-testphase.ltx}{2023-02-07}{0.95u}
+\ProvidesExplFile{pdfmanagement-testphase.ltx}{2023-02-14}{0.95v}
{PDF~management~code~(testphase)}
%</header>
%<*package>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
index 39df81d3ba..681c789fe7 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
index 9ef9dcce2d..9e27131014 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
@@ -1,6 +1,6 @@
%% LaTeX2e file `xcolor-patches.sty'
%%
-\ProvidesPackage{xcolor-patches-tmp-ltx}[2023-02-07 v0.95u patch xcolor for l3color]
+\ProvidesPackage{xcolor-patches-tmp-ltx}[2023-02-14 v0.95v patch xcolor for l3color]
\@ifundefined{color_set:nn}{\RequirePackage{l3color}}{}
\ExplSyntaxOn
diff --git a/macros/latex/contrib/postnotes/CHANGELOG.md b/macros/latex/contrib/postnotes/CHANGELOG.md
index d9b24379f5..b626145fd0 100644
--- a/macros/latex/contrib/postnotes/CHANGELOG.md
+++ b/macros/latex/contrib/postnotes/CHANGELOG.md
@@ -1,6 +1,15 @@
# Changelog
-## [Unreleased](https://github.com/gusbrs/postnotes/compare/v0.2.1...HEAD)
+## [Unreleased](https://github.com/gusbrs/postnotes/compare/v0.2.2...HEAD)
+
+## [v0.2.2](https://github.com/gusbrs/postnotes/compare/v0.2.1...v0.2.2) (2023-02-15)
+
+### Fixed
+- Don't try to hyperlink `\postnotezref` when `zref-hyperref` is not loaded.
+- "perhaps a missing \item" error for empty `\postnote`.
+
+### Changed
+- Renamed `postnotes/print/eachnote` hook to `postnotes/print/note/begin`.
## [v0.2.1](https://github.com/gusbrs/postnotes/compare/v0.2.0...v0.2.1) (2023-02-13)
diff --git a/macros/latex/contrib/postnotes/postnotes-code.pdf b/macros/latex/contrib/postnotes/postnotes-code.pdf
index 644edf8e88..76ed8d090b 100644
--- a/macros/latex/contrib/postnotes/postnotes-code.pdf
+++ b/macros/latex/contrib/postnotes/postnotes-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/postnotes/postnotes.dtx b/macros/latex/contrib/postnotes/postnotes.dtx
index fab2cb9914..47271ac97a 100644
--- a/macros/latex/contrib/postnotes/postnotes.dtx
+++ b/macros/latex/contrib/postnotes/postnotes.dtx
@@ -153,7 +153,7 @@
%
%
% \begin{macrocode}
-\ProvidesExplPackage {postnotes} {2023-02-13} {0.2.1}
+\ProvidesExplPackage {postnotes} {2023-02-15} {0.2.2}
{Endnotes for LaTeX}
% \end{macrocode}
%
@@ -1210,14 +1210,14 @@
% additional setup, specially to add support to packages and features which
% require it. The \texttt{postnotes/print/begin} hook is run early in
% \cs{@@_print_notes:} and only once per call, after the user options have
-% been processed. The \texttt{postnotes/print/eachnote} hook is run once for
-% each note, at the point where environment variables are being set or
+% been processed. The \texttt{postnotes/print/note/begin} hook is run once
+% for each note, at the point where environment variables are being set or
% restored, before the typesetting of either the mark or the text, but within
% a group of its own of each note.
%
% \begin{macrocode}
\NewHook { postnotes/print/begin }
-\NewHook { postnotes/print/eachnote }
+\NewHook { postnotes/print/note/begin }
% \end{macrocode}
%
%
@@ -1350,7 +1350,7 @@
\l_@@_print_format_tl
}
\group_begin:
- \UseHook { postnotes/print/eachnote }
+ \UseHook { postnotes/print/note/begin }
\@@_get_pageref:Nx \pnthepage
{ mark@ \l_postnotes_print_note_id_tl }
\@@_prop_get:nnN
@@ -1377,6 +1377,10 @@
{ \l_postnotes_print_note_id_tl }
\l_@@_print_mark_tl
}
+% \end{macrocode}
+% Leave vertical mode to avoid ``perhaps a missing \cs{item}'' error.
+% \begin{macrocode}
+ \mode_leave_vertical:
\l_@@_print_content_tl
\l_@@_post_printnote_tl
\group_end:
@@ -2072,7 +2076,7 @@
% \end{macrocode}
% Restore \pkg{biblatex} variables for each note.
% \begin{macrocode}
- \AddToHook { postnotes/print/eachnote } [ postnotes ]
+ \AddToHook { postnotes/print/note/begin } [ postnotes ]
{
\@@_prop_get:nnN { \l_postnotes_print_note_id_tl }
{ biblatex@refsection } \l_@@_restore_tmp_tl
@@ -2201,7 +2205,7 @@
\tl_gset:Nx \g_@@_biblatex_prev_refsection_tl
\l_@@_biblatex_orig_refsection_tl
}
- \AddToHook { postnotes/print/eachnote } [ postnotes ]
+ \AddToHook { postnotes/print/note/begin } [ postnotes ]
{
\@@_prop_get:nnN { \l_postnotes_print_note_id_tl }
{ biblatex@refsection } \l_@@_restore_tmp_tl
@@ -2275,9 +2279,12 @@
\group_begin:
\@@_typeset_mark_wrapper:n
{
- \bool_lazy_and:nnTF
- { ! #1 }
- { \l_@@_hyperlink_bool }
+ \bool_lazy_all:nTF
+ {
+ { ! #1 }
+ { \l_@@_hyperlink_bool }
+ { \l_@@_zrefhyperref_bool }
+ }
{
\hyperlink
{ \zref@extractdefault {#2} { anchor } { } }
@@ -2294,6 +2301,12 @@
}
% \end{macrocode}
%
+% \begin{macrocode}
+\bool_new:N \l_@@_zrefhyperref_bool
+\AddToHook { package/zref-hyperref/after }
+ { \bool_set_true:N \l_@@_zrefhyperref_bool }
+% \end{macrocode}
+%
%
% \subsection*{\pkg{zref-clever}}
%
@@ -2325,7 +2338,7 @@
\prop_gput:cnx { \@@_data_name:e { \l_postnotes_note_id_tl } }
{ zref-check@abssec } { \int_use:N \c@zc@abssec }
}
- \AddToHook { postnotes/print/eachnote } [ postnotes ]
+ \AddToHook { postnotes/print/note/begin } [ postnotes ]
{
\@@_prop_get:nnN { \l_postnotes_print_note_id_tl }
{ zref-check@abschap } \l_@@_restore_tmp_tl
diff --git a/macros/latex/contrib/postnotes/postnotes.pdf b/macros/latex/contrib/postnotes/postnotes.pdf
index 52735b1562..6a20c7ba76 100644
--- a/macros/latex/contrib/postnotes/postnotes.pdf
+++ b/macros/latex/contrib/postnotes/postnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/README.md b/macros/latex/contrib/tagpdf/README.md
index e6db86a9e4..fd324960da 100644
--- a/macros/latex/contrib/tagpdf/README.md
+++ b/macros/latex/contrib/tagpdf/README.md
@@ -1,6 +1,6 @@
#tagpdf — A package to create tagged pdf
-Packageversion: 0.98c
-Packagedate: 2023/01/30
+Packageversion: 0.98d
+Packagedate: 2023/02/15
Author: Ulrike Fischer
## License
diff --git a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
index 0a2c4f693f..012321bba5 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
@@ -47,13 +47,13 @@
% }^^A
% }
%
-% \date{Version 0.98c, released 2023-01-30}
+% \date{Version 0.98d, released 2023-02-15}
% \maketitle
% \begin{implementation}
% \begin{macrocode}
%<@@=tag>
%<*luatex>
-\ProvidesExplFile {tagpdf-luatex.def} {2023-01-30} {0.98c}
+\ProvidesExplFile {tagpdf-luatex.def} {2023-02-15} {0.98d}
{tagpdf~driver~for~luatex}
% \end{macrocode}
% \section{Loading the lua}
@@ -158,8 +158,8 @@
local ProvidesLuaModule = {
name = "tagpdf",
- version = "0.98c", --TAGVERSION
- date = "2023-01-30", --TAGDATE
+ version = "0.98d", --TAGVERSION
+ date = "2023-02-15", --TAGDATE
description = "tagpdf lua code",
license = "The LATEX Project Public License 1.3c"
}
@@ -802,6 +802,7 @@ local function @@_space_chars_shipout (box)
end
end
end
+ box.head = head
end
end
diff --git a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
index a20017a77c..6219d00192 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.98c, released 2023-01-30}
+% \date{Version 0.98d, released 2023-02-15}
% \maketitle
% \begin{documentation}
% \section{Commands}
@@ -295,7 +295,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-checks-code} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-checks-code} {2023-02-15} {0.98d}
{part of tagpdf - code related to checks, conditionals, debugging and messages}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-code.pdf b/macros/latex/contrib/tagpdf/tagpdf-code.pdf
index c8c3c146cb..d3c692b9d0 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-code.pdf
+++ b/macros/latex/contrib/tagpdf/tagpdf-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/tagpdf-data.dtx b/macros/latex/contrib/tagpdf/tagpdf-data.dtx
index a62f6d3cdb..89b6d09d26 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-data.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-data.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.98c, released 2023-01-30}
+% \date{Version 0.98d, released 2023-02-15}
% \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-01-30} {0.98c}
+%% \ProvidesExplFile {tagpdf-ns-latex.def} {2023-02-15} {0.98d}
%% {latex} {https://www.latex-project.org/ns/dflt/2022}{}
title, Title, pdf2,
part, Title, pdf2,
@@ -86,7 +86,7 @@ footnotelabel,Lbl, pdf2,
% It is bound to change
% \begin{macrocode}
%<*ns-latex-book>
-%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-01-30} {0.98c}
+%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-02-15} {0.98d}
%% {latex-book} {https://www.latex-project.org/ns/book/2022}{}
chapter, H1,pdf2,
section, H2,pdf2,
@@ -102,7 +102,7 @@ subparagraph, H6,pdf2,
% It is bound to change a lot!
% \begin{macrocode}
%<*ns-latex-inline>
-%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-01-30} {0.98c}
+%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-02-15} {0.98d}
%% {latex-inline} {https://www.latex-project.org/ns/inline/2022}{}
chapter, Span, pdf2,
section, Span, pdf2,
@@ -116,7 +116,7 @@ P, Span, pdf2,
% \section{The pdf namespace data}
% \begin{macrocode}
%<*ns-pdf>
-%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-01-30} {0.98c}
+%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-02-15} {0.98d}
%% {pdf} {http://iso.org/pdf/ssn}{}
StructTreeRoot,StructTreeRoot,pdf,D,
Document,Document,pdf,D,
@@ -184,7 +184,7 @@ Strong,Span,pdf,I,
% \section{The pdf 2.0 namespace data}
% \begin{macrocode}
%<*ns-pdf2>
-%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-01-30} {0.98c}
+%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-02-15} {0.98d}
%% {pdf2} {http://iso.org/pdf2/ssn}{}
Document,Document,pdf2,D,
Part,Part,pdf2,G,
@@ -240,7 +240,7 @@ Strong,Strong,pdf2,I,
% \section{The mathml namespace data}
% \begin{macrocode}
%<*ns-mathml>
-%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-01-30} {0.98c}
+%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-02-15} {0.98d}
% {mathml}{http://www.w3.org/1998/Math/MathML}{}
abs,,,
and,,,
@@ -475,7 +475,7 @@ xor,,,
% This will perhaps change in future.
% \begin{macrocode}
%<*parent-child>
-%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-01-30} {0.98c}
+%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-02-15} {0.98d}
,,,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,∅,∅
@@ -530,7 +530,7 @@ MC,both,---,∅,∅,∅,∅,∅,∅,0..n,‡,∅,∅,∅,0..n,0..n,0..n,0..n,0..
% This will perhaps change in future.
% \begin{macrocode}
%<*parent-child-2>
-%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-01-30} {0.98c}
+%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-02-15} {0.98d}
,,,StructTreeRoot,Document,DocumentFragment,Art,Part,Div,Sect,Aside,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Title,Sub,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Em,Strong,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,FENote,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,math,mathml,Artifact,MC
Document,both,document level,1,0..n,0..n,∅,‡,‡,∅,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
DocumentFragment,2.0,document level,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,0..n,∅
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
index 1d04a19368..8061a5d18d 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98c, released 2023-01-30}
+% \date{Version 0.98d, released 2023-02-15}
% \maketitle
% \begin{documentation}
% \end{documentation}
@@ -55,11 +55,11 @@
% \begin{macrocode}
%<@@=tag>
%<*generic>
-\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-02-15} {0.98d}
{part of tagpdf - code related to marking chunks - generic mode}
%</generic>
%<*debug>
-\ProvidesExplPackage {tagpdf-debug-generic} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-debug-generic} {2023-02-15} {0.98d}
{part of tagpdf - debugging code related to marking chunks - generic mode}
%</debug>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
index 066d2e2243..1b03011ddf 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98c, released 2023-01-30}
+% \date{Version 0.98d, released 2023-02-15}
% \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-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-mc-code-lua} {2023-02-15} {0.98d}
{tagpdf - mc code only for the luamode }
%</luamode>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
index 88c5937f57..ba5516dc4c 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98c, released 2023-01-30}
+% \date{Version 0.98d, released 2023-02-15}
% \maketitle
% \begin{documentation}
% \section{Public Commands}
@@ -174,7 +174,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-mc-code-shared} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-mc-code-shared} {2023-02-15} {0.98d}
{part of tagpdf - code related to marking chunks -
code shared by generic and luamode }
%</header>
diff --git a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
index 8948b89055..8557552f9a 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98c, released 2023-01-30}
+% \date{Version 0.98d, released 2023-02-15}
% \maketitle
% \begin{documentation}
% \begin{function}
@@ -98,7 +98,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-roles-code} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-roles-code} {2023-02-15} {0.98d}
{part of tagpdf - code related to roles and structure names}
%</header>
% \end{macrocode}
@@ -913,7 +913,7 @@
{
\tl_set:Nx\l_@@_tmpa_tl { \use_ii:nn ##1 }
\exp_args:Nne
- \tl_if_in:nnF {-Part-Div-NonStruct-}{-\l_@@_tmpa_tl-}
+ \str_if_in:nnF {-Part-Div-NonStruct-}{-\l_@@_tmpa_tl-}
{
\tl_set:Nn\l_@@_role_real_parent_tl {##1}
\int_zero:N\l_@@_tmpa_int
diff --git a/macros/latex/contrib/tagpdf/tagpdf-space.dtx b/macros/latex/contrib/tagpdf/tagpdf-space.dtx
index 5e21bb0f6a..ffb891fdc5 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-space.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-space.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98c, released 2023-01-30}
+% \date{Version 0.98d, released 2023-02-15}
% \maketitle
% \begin{documentation}
% \begin{function}{interwordspace (setup-key)}
@@ -64,7 +64,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-space-code} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-space-code} {2023-02-15} {0.98d}
{part of tagpdf - code related to real space chars}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
index 229989dad1..c488ad823d 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98c, released 2023-01-30}
+% \date{Version 0.98d, released 2023-02-15}
% \maketitle
% \begin{documentation}
% \section{Public Commands}
@@ -242,7 +242,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-struct-code} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-struct-code} {2023-02-15} {0.98d}
{part of tagpdf - code related to storing structure}
%</header>
% \end{macrocode}
@@ -1080,9 +1080,78 @@
% extension.
% AF is an array and can be used more than once, so we store it in a tl.
% which is expanded.
-% AFinline can be use only once (more quite probably doesn't make sense).
+% AFinline currently uses the fix extention txt.
+% texsource is a special variant which creates a tex-file, it expects a
+% tl-var as value (e.g. from math grabbing)
+%
+% \begin{variable}{\g_@@_struct_AFobj_int}
+% This variable is used to number the AF-object names
+% \begin{macrocode}
+\int_new:N\g_@@_struct_AFobj_int
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macrocode}
+\cs_if_free:NTF \pdffile_embed_stream:nnN
+ {
+ \cs_new_protected:Npn \@@_struct_add_inline_AF:nn #1 #2
+ % #1 content, #2 extension
+ {
+ \group_begin:
+ \int_gincr:N \g_@@_struct_AFobj_int
+ \pdf_object_if_exist:eF {@@/fileobj\int_use:N\g_@@_struct_AFobj_int}
+ {
+ \pdffile_embed_stream:nxx
+ {#1}
+ {tag-AFfile\int_use:N\g_@@_struct_AFobj_int.#2}
+ {@@/fileobj\int_use:N\g_@@_struct_AFobj_int}
+ \@@_struct_add_AF:ee
+ { \int_eval:n {\c@g_@@_struct_abs_int} }
+ { \pdf_object_ref:e {@@/fileobj\int_use:N\g_@@_struct_AFobj_int} }
+ \@@_prop_gput:cnx
+ { g_@@_struct_\int_use:N\c@g_@@_struct_abs_int _prop }
+ { AF }
+ {
+ [
+ \tl_use:c
+ { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_AF_tl }
+ ]
+ }
+ }
+ \group_end:
+ }
+ }
+ {
+ \cs_generate_variant:Nn \pdffile_embed_stream:nnN {nxN}
+ \cs_new_protected:Npn \@@_struct_add_inline_AF:nn #1 #2
+ % #1 content, #2 extension
+ {
+ \group_begin:
+ \int_gincr:N \g_@@_struct_AFobj_int
+ \pdffile_embed_stream:nxN
+ {#1}
+ {tag-AFfile\int_use:N\g_@@_struct_AFobj_int.#2}
+ \l_@@_tmpa_tl
+ \@@_struct_add_AF:ee
+ { \int_eval:n {\c@g_@@_struct_abs_int} }
+ { \l_@@_tmpa_tl }
+ \@@_prop_gput:cnx
+ { g_@@_struct_\int_use:N\c@g_@@_struct_abs_int _prop }
+ { AF }
+ {
+ [
+ \tl_use:c
+ { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_AF_tl }
+ ]
+ }
+ \group_end:
+ }
+ }
+\cs_generate_variant:Nn \@@_struct_add_inline_AF:nn {on}
+% \end{macrocode}
+%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_struct_add_AF:nn #1 #2 % #1 struct num #2 object name
+\cs_new_protected:Npn \@@_struct_add_AF:nn #1 #2 % #1 struct num #2 object reference
{
\tl_if_exist:cTF
{
@@ -1091,14 +1160,14 @@
{
\tl_gput_right:cx
{ g_@@_struct_#1_AF_tl }
- { ~ \pdf_object_ref:n {#2} }
+ { \c_space_tl #2 }
}
{
\tl_new:c
{ g_@@_struct_#1_AF_tl }
\tl_gset:cx
{ g_@@_struct_#1_AF_tl }
- { \pdf_object_ref:n {#2} }
+ { #2 }
}
}
\cs_generate_variant:Nn \@@_struct_add_AF:nn {en,ee}
@@ -1108,7 +1177,7 @@
{
\pdf_object_if_exist:nTF {#1}
{
- \@@_struct_add_AF:en { \int_eval:n {\c@g_@@_struct_abs_int} }{#1}
+ \@@_struct_add_AF:ee { \int_eval:n {\c@g_@@_struct_abs_int} }{\pdf_object_ref:n {#1}}
\@@_prop_gput:cnx
{ g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop }
{ AF }
@@ -1125,52 +1194,25 @@
},
,AFinline .code:n =
{
- \group_begin:
- \pdf_object_if_exist:eF {@@/fileobj\int_use:N\c@g_@@_struct_abs_int}
- {
- \pdffile_embed_stream:nxx
- {#1}
- {tag-AFfile\int_use:N\c@g_@@_struct_abs_int.txt}
- {@@/fileobj\int_use:N\c@g_@@_struct_abs_int}
- \@@_struct_add_AF:ee
- { \int_eval:n {\c@g_@@_struct_abs_int} }
- { @@/fileobj\int_use:N\c@g_@@_struct_abs_int }
- \@@_prop_gput:cnx
- { g_@@_struct_\int_use:N\c@g_@@_struct_abs_int _prop }
- { AF }
- {
- [
- \tl_use:c
- { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_AF_tl }
- ]
- }
- }
- \group_end:
+ \@@_struct_add_inline_AF:nn {#1}{txt}
}
,AFinline-o .code:n =
{
- \group_begin:
- \pdf_object_if_exist:eF {@@/fileobj\int_use:N\c@g_@@_struct_abs_int}
- {
- \pdffile_embed_stream:oxx
- {#1}
- {tag-AFfile\int_use:N\c@g_@@_struct_abs_int.txt}
- {@@/fileobj\int_use:N\c@g_@@_struct_abs_int}
- \@@_struct_add_AF:ee
- { \int_eval:n {\c@g_@@_struct_abs_int} }
- { @@/fileobj\int_use:N\c@g_@@_struct_abs_int }
- \@@_prop_gput:cnx
- { g_@@_struct_\int_use:N\c@g_@@_struct_abs_int _prop }
- { AF }
- {
- [
- \tl_use:c
- { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_AF_tl }
- ]
- }
- }
- \group_end:
+ \@@_struct_add_inline_AF:on {#1}{txt}
}
+ ,texsource .code:n =
+ {
+ \group_begin:
+ \pdfdict_put:nnn { l_pdffile/Filespec }{AFRelationship} { /Source }
+% \end{macrocode}
+% we set the mime type as pdfresources uses currently text/plain
+% \begin{macrocode}
+ \pdfdict_put:nnx
+ { l_pdffile }{Subtype}
+ { \pdf_name_from_unicode_e:n{application/x-tex} }
+ \@@_struct_add_inline_AF:on {#1}{tex}
+ \group_end:
+ }
}
% \end{macrocode}
% \end{macro}
@@ -1184,7 +1226,7 @@
{
\pdf_object_if_exist:nTF {#1}
{
- \@@_struct_add_AF:en { 0 }{#1}
+ \@@_struct_add_AF:ee { 0 }{\pdf_object_ref:n {#1}}
\@@_prop_gput:cnx
{ g_@@_struct_0_prop }
{ AF }
@@ -1510,7 +1552,7 @@
% \section{Attributes and attribute classes}
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage {tagpdf-attr-code} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-attr-code} {2023-02-15} {0.98d}
{part of tagpdf - code related to attributes and attribute classes}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
index 507681afa6..c757e9e54d 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
@@ -47,13 +47,13 @@
% }^^A
% }
%
-% \date{Version 0.98c, released 2023-01-30}
+% \date{Version 0.98d, released 2023-02-15}
% \maketitle
% \begin{implementation}
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-tree-code} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-tree-code} {2023-02-15} {0.98d}
{part of tagpdf - code related to writing trees and dictionaries to the pdf}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-user.dtx b/macros/latex/contrib/tagpdf/tagpdf-user.dtx
index 980641b6b7..01de768a15 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-user.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-user.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98c, released 2023-01-30}
+% \date{Version 0.98d, released 2023-02-15}
% \maketitle
% \begin{documentation}
% \section{Setup commands}
@@ -64,10 +64,14 @@
% add a document structure.
% \end{function}
%
-%
-% \begin{function}{\tagpdfifluatexTF,\tagpdfifluatexT,\tagpdfifpdftexT}
-% small wrappers around engine tests. This functions should not be used and will be removed
-% in one of the next versions.
+% \begin{function}{\tag_tool:n,\tagtool}
+% \begin{syntax}
+% \cs{tag_tool:n}\Arg{key val}
+% \end{syntax}
+% The tagging of basic document elements will require a variaty of small commands
+% to configure and adapt the tagging. This command will collect them under a command
+% interface. The argument is \emph{one} key-value like string. This is work in progress
+% and both syntax, known arguments and implementation can change!
% \end{function}
%
% \section{Commands related to mc-chunks}
@@ -246,7 +250,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-user} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-user} {2023-02-15} {0.98d}
{tagpdf - user commands}
%</header>
% \end{macrocode}
@@ -263,6 +267,22 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\tag_tool:n,\tagtool}
+% This is a first definition of the tool command.
+% Currently it uses key-val, but this should be probably
+% be flattened to speed it up.
+% \begin{macrocode}
+%<base>\cs_new_protected:Npn\tag_tool:n #1 {}
+%<base>\cs_set_eq:NN\tagtool\tag_tool:n
+%<*package>
+\cs_set_protected:Npn\tag_tool:n #1
+ {
+ \tag_if_active:T { \keys_set:nn {tag / tool}{#1} }
+ }
+\cs_set_eq:NN\tagtool\tag_tool:n
+%</package>
+% \end{macrocode}
+% \end{macro}
% \section{Commands for the mc-chunks}
% \begin{macro}{\tagmcbegin,\tagmcend,\tagmcuse }
@@ -579,10 +599,13 @@
% {
% paratagging (setup-key),
% paratagging-show (setup-key),
+% paratag (setup-key),
+% paratag (tool-key),
% }
% These keys enable/disable locally paratagging, and the debug modus.
% It can affect the typesetting if |paratagging-show| is used. The small numbers
-% are boxes and they have a (small) height.
+% are boxes and they have a (small) height. The |paratag| key sets the tag used by
+% the next automatic paratagging, it can also be changed with |\tag_tool:n|
% \begin{macrocode}
\keys_define:nn { @@ / setup }
{
@@ -590,22 +613,43 @@
paratagging-show .bool_set:N = \l_@@_para_show_bool,
paratag .tl_set:N = \l_@@_para_tag_tl
}
-
+\keys_define:nn { tag / tool}
+ {
+ paratag .tl_set:N = \l_@@_para_tag_tl
+ }
% \end{macrocode}
% \end{macro}
% This fills the para hooks with the needed code.
% \begin{macrocode}
+\cs_new_protected:Npn \@@_check_para_begin_show:nn #1 #2
+ %#1 color, #2 prefix
+ {
+ \bool_if:NT \l_@@_para_show_bool
+ {
+ \tag_mc_begin:n{artifact}
+ \llap{\color_select:n{#1}\tiny#2\int_use:N\g_@@_para_begin_int\ }
+ \tag_mc_end:
+ }
+ }
+
+\cs_new_protected:Npn \@@_check_para_end_show:nn #1 #2
+ %#1 color, #2 prefix
+ {
+ \bool_if:NT \l_@@_para_show_bool
+ {
+ \tag_mc_begin:n{artifact}
+ \rlap{\color_select:n{#1}\tiny\ #2\int_use:N\g_@@_para_end_int}
+ \tag_mc_end:
+ }
+ }
+
\AddToHook{para/begin}
{
\bool_if:NT \l_@@_para_bool
{
\int_gincr:N \g_@@_para_begin_int
\tag_struct_begin:n {tag=\l_@@_para_tag_tl}
- \bool_if:NT \l_@@_para_show_bool
- { \tag_mc_begin:n{artifact}
- \llap{\color_select:n{red}\tiny\int_use:N\g_@@_para_begin_int\ }
- \tag_mc_end:
- }
+ \@@_check_para_begin_show:nn {green}{}
\tag_mc_begin:n {}
}
}
@@ -615,11 +659,7 @@
{
\int_gincr:N \g_@@_para_end_int
\tag_mc_end:
- \bool_if:NT \l_@@_para_show_bool
- { \tag_mc_begin:n{artifact}
- \rlap{\color_select:n{red}\tiny\ \int_use:N\g_@@_para_end_int}
- \tag_mc_end:
- }
+ \@@_check_para_end_show:nn {red}{}
\tag_struct_end:
}
}
@@ -671,13 +711,17 @@
% \tagpdfparaOff
% }
% This two command switch para mode on and off. |\tagpdfsetup| could be used
-% too but is longer.
+% too but is longer. An alternative is |\tag_tool:n{para=false}|
% \begin{macrocode}
%<base>\newcommand\tagpdfparaOn {}
%<base>\newcommand\tagpdfparaOff{}
%<*package>
\renewcommand\tagpdfparaOn {\bool_set_true:N \l_@@_para_bool}
\renewcommand\tagpdfparaOff{\bool_set_false:N \l_@@_para_bool}
+\keys_define:nn { tag / tool}
+ {
+ para .bool_set:N = \l_@@_para_bool
+ }
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/contrib/tagpdf/tagpdf.dtx b/macros/latex/contrib/tagpdf/tagpdf.dtx
index 61222d151a..67a3e411d4 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf.dtx
@@ -92,7 +92,7 @@
% \begin{macrocode}
%<@@=tag>
%<*package>
-\ProvidesExplPackage {tagpdf} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf} {2023-02-15} {0.98d}
{ A package to experiment with pdf tagging }
\bool_if:nF
@@ -118,7 +118,7 @@
% \end{macrocode}
%<*debug>
% \begin{macrocode}
-\ProvidesExplPackage {tagpdf-debug} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-debug} {2023-02-15} {0.98d}
{ debug code for tagpdf }
\@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput}
% \end{macrocode}
@@ -159,7 +159,7 @@
% \end{macrocode}
% \begin{macrocode}
%<*base>
-\ProvidesExplPackage {tagpdf-base} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdf-base} {2023-02-15} {0.98d}
{part of tagpdf - provide base, no-op versions of the user commands }
%</base>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf.pdf b/macros/latex/contrib/tagpdf/tagpdf.pdf
index 3edd2185eb..8266cfc1b3 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.pdf
+++ b/macros/latex/contrib/tagpdf/tagpdf.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/tagpdf.tex b/macros/latex/contrib/tagpdf/tagpdf.tex
index 299763001c..364fcce88f 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.tex
+++ b/macros/latex/contrib/tagpdf/tagpdf.tex
@@ -15,8 +15,8 @@
}
\makeatletter
-\def\UlrikeFischer@package@version{0.98c}
-\def\UlrikeFischer@package@date{2023-01-30}
+\def\UlrikeFischer@package@version{0.98d}
+\def\UlrikeFischer@package@date{2023-02-15}
\makeatother
\documentclass[DIV=12,parskip=half-,bibliography=totoc,a4paper]{article}
@@ -655,6 +655,21 @@ That's a debug option, it helps in lua mode to see where space glyph will be ins
\end{description}
+\begin{docCommand}[nosep]{tagtool}{\marg{key-val}}\end{docCommand}
+\begin{docCommand}{tag_tool:n}{\marg{key-val}}\end{docCommand}
+
+The tagging of document elements require a variety of small commands. This command
+will unify them under a common interface. This is work-in-progress and syntax and implementation
+can change! While the argument looks like a key-val \emph{list} (and currently is actually one),
+this should not be relied on. Instead only
+one argument should be used as the implementation will change to improve the speed. Currently the following
+arguments are supported
+
+\begin{description}
+\item[\PrintKeyName{para}] Boolean. It will replace the \cs{tagpdfparaOn} and \cs{tagpdfparaOff} command.
+\item[\PrintKeyName{paratag}] String. It allows to change the tag used in the following automatically tagged paragraphs.
+\end{description}
+
\section{Tagging}
@@ -1643,6 +1658,10 @@ The key-val list understands the following keys:
\item[\PrintKeyName{AFinline-o}]
This is like verb+AFinline+, but it expands the value once.
+\item[\PrintKeyName{texsource}] This is like verb+AFinline-o+, but it
+ creates a tex-file, with mime type \texttt{application/x-tex} and the
+ AFRelationship \texttt{Source}.
+
\item[\PrintKeyName{lang}]
This key allows to set the language for a structure element. The value should be a bcp-identifier,
e.g. |de-De|.
diff --git a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
index dc1c94b911..df9d084a39 100644
--- a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
+++ b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
@@ -1,10 +1,8 @@
%\RequirePackage[enable-debug]{expl3}[2018/06/14]
-\ProvidesExplPackage {tagpdfdocu-patches} {2023-01-30} {0.98c}
+\ProvidesExplPackage {tagpdfdocu-patches} {2023-02-15} {0.98d}
{patches/commands for the tagpdf documentation}
\RequirePackage{etoolbox,xpatch}
-% latex-lab experiments
-\providecommand\tagtool[1]{}
%vLogos
\ExplSyntaxOn