diff options
author | Norbert Preining <norbert@preining.info> | 2023-02-16 03:01:36 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-02-16 03:01:36 +0000 |
commit | 024d47cb1c4e5ba541f3865b69168bef20f2bfce (patch) | |
tree | 4e55e91ce72e278a079000c9871135034111f910 /macros/latex | |
parent | a7d99429152acee049db679dc26a92e01faf4992 (diff) |
CTAN sync 202302160301
Diffstat (limited to 'macros/latex')
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 Binary files differindex 984daaf8ad..b29c607771 100644 --- a/macros/latex/contrib/annotate-equations/annotate-equations.pdf +++ b/macros/latex/contrib/annotate-equations/annotate-equations.pdf 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 Binary files differindex 2b29e7cb45..7203b11bb3 100644 --- a/macros/latex/contrib/overarrows/overarrows.pdf +++ b/macros/latex/contrib/overarrows/overarrows.pdf 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 Binary files differindex 050ce269eb..d225a49f2d 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf 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 Binary files differindex 9bace5d9c8..d1d9e1bedd 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf 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 Binary files differindex 8b8e35a3b4..7f5b77efd9 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf 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 Binary files differindex e83d445c94..6ffccc6d0e 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf 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 Binary files differindex bebc9d08d4..30e213b3bd 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf 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 Binary files differindex 466fd5a705..f139a2d04a 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf 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 Binary files differindex d506fa15f4..17eb232e70 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf 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 Binary files differindex 853f8adaa9..e30221c289 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf 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 Binary files differindex 838b411c46..7a253321fd 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf 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 Binary files differindex 5c4e030d3e..87eb534dd2 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf 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 Binary files differindex 60b5c4d669..9cbe0420f3 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf 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 Binary files differindex 074a7ada21..26756d7287 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf 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 Binary files differindex 1466bb0a6f..7c01923bdf 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf 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 Binary files differindex f13004eea6..04f852c94e 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf 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 Binary files differindex 01556046ec..59ee93b0d1 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf 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 Binary files differindex 87ced6bc38..e7e426a73b 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf 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 Binary files differindex 882188cde8..2607f576de 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf 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 Binary files differindex 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 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 Binary files differindex b1cd065bde..f9f33a201e 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf 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 Binary files differindex 39df81d3ba..681c789fe7 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf 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 Binary files differindex 644edf8e88..76ed8d090b 100644 --- a/macros/latex/contrib/postnotes/postnotes-code.pdf +++ b/macros/latex/contrib/postnotes/postnotes-code.pdf 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 Binary files differindex 52735b1562..6a20c7ba76 100644 --- a/macros/latex/contrib/postnotes/postnotes.pdf +++ b/macros/latex/contrib/postnotes/postnotes.pdf 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 Binary files differindex c8c3c146cb..d3c692b9d0 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-code.pdf +++ b/macros/latex/contrib/tagpdf/tagpdf-code.pdf 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 Binary files differindex 3edd2185eb..8266cfc1b3 100644 --- a/macros/latex/contrib/tagpdf/tagpdf.pdf +++ b/macros/latex/contrib/tagpdf/tagpdf.pdf 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 |