From 4fee29360f7566a474b6143951b0744fa151edc9 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 30 Aug 2023 03:01:17 +0000 Subject: CTAN sync 202308300301 --- macros/latex/contrib/hvextern/Changes | 1 + macros/latex/contrib/hvextern/doc/hvextern.pdf | Bin 1478943 -> 1484026 bytes macros/latex/contrib/hvextern/doc/hvextern.tex | 50 ++- macros/latex/contrib/hvextern/latex/hvextern.sty | 42 +- macros/latex/contrib/jwjournal/README.md | 47 ++- .../latex/contrib/jwjournal/jwjournal-demo-cn.pdf | Bin 46611 -> 70876 bytes .../latex/contrib/jwjournal/jwjournal-demo-cn.tex | 37 +- .../latex/contrib/jwjournal/jwjournal-demo-en.pdf | Bin 19506 -> 34389 bytes .../latex/contrib/jwjournal/jwjournal-demo-en.tex | 32 +- .../latex/contrib/jwjournal/jwjournal-demo-fr.pdf | Bin 19847 -> 35287 bytes .../latex/contrib/jwjournal/jwjournal-demo-fr.tex | 36 +- macros/latex/contrib/jwjournal/jwjournal.cls | 150 +++++-- macros/latex/contrib/l3kernel/CHANGELOG.md | 11 +- macros/latex/contrib/l3kernel/README.md | 2 +- macros/latex/contrib/l3kernel/expl3.dtx | 4 +- macros/latex/contrib/l3kernel/expl3.pdf | Bin 621772 -> 621883 bytes macros/latex/contrib/l3kernel/interface3.pdf | Bin 1717910 -> 1722092 bytes macros/latex/contrib/l3kernel/interface3.tex | 2 +- macros/latex/contrib/l3kernel/l3basics.dtx | 2 +- macros/latex/contrib/l3kernel/l3bootstrap.dtx | 2 +- macros/latex/contrib/l3kernel/l3box.dtx | 2 +- macros/latex/contrib/l3kernel/l3candidates.dtx | 2 +- macros/latex/contrib/l3kernel/l3cctab.dtx | 2 +- macros/latex/contrib/l3kernel/l3clist.dtx | 2 +- macros/latex/contrib/l3kernel/l3coffins.dtx | 2 +- macros/latex/contrib/l3kernel/l3color.dtx | 2 +- macros/latex/contrib/l3kernel/l3debug.dtx | 2 +- macros/latex/contrib/l3kernel/l3deprecation.dtx | 2 +- macros/latex/contrib/l3kernel/l3doc.dtx | 2 +- macros/latex/contrib/l3kernel/l3doc.pdf | Bin 558218 -> 558289 bytes macros/latex/contrib/l3kernel/l3docstrip.dtx | 2 +- macros/latex/contrib/l3kernel/l3docstrip.pdf | Bin 152023 -> 152101 bytes macros/latex/contrib/l3kernel/l3expan.dtx | 2 +- macros/latex/contrib/l3kernel/l3file.dtx | 32 +- macros/latex/contrib/l3kernel/l3flag.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-assign.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-aux.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-basics.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-convert.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-expo.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-extended.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-logic.dtx | 4 +- macros/latex/contrib/l3kernel/l3fp-parse.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-random.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-round.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-traps.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-trig.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp.dtx | 2 +- macros/latex/contrib/l3kernel/l3fparray.dtx | 2 +- macros/latex/contrib/l3kernel/l3int.dtx | 7 +- macros/latex/contrib/l3kernel/l3intarray.dtx | 2 +- .../latex/contrib/l3kernel/l3kernel-functions.dtx | 2 +- macros/latex/contrib/l3kernel/l3keys.dtx | 16 +- macros/latex/contrib/l3kernel/l3legacy.dtx | 2 +- macros/latex/contrib/l3kernel/l3luatex.dtx | 2 +- macros/latex/contrib/l3kernel/l3msg.dtx | 136 +++++- macros/latex/contrib/l3kernel/l3names.dtx | 4 +- macros/latex/contrib/l3kernel/l3news.pdf | Bin 395889 -> 395889 bytes macros/latex/contrib/l3kernel/l3news01.pdf | Bin 122711 -> 122711 bytes macros/latex/contrib/l3kernel/l3news02.pdf | Bin 150675 -> 150675 bytes macros/latex/contrib/l3kernel/l3news03.pdf | Bin 148704 -> 148704 bytes macros/latex/contrib/l3kernel/l3news04.pdf | Bin 114591 -> 114591 bytes macros/latex/contrib/l3kernel/l3news05.pdf | Bin 112487 -> 112487 bytes macros/latex/contrib/l3kernel/l3news06.pdf | Bin 151569 -> 151569 bytes macros/latex/contrib/l3kernel/l3news07.pdf | Bin 128317 -> 128317 bytes macros/latex/contrib/l3kernel/l3news08.pdf | Bin 163456 -> 163456 bytes macros/latex/contrib/l3kernel/l3news09.pdf | Bin 250127 -> 250127 bytes macros/latex/contrib/l3kernel/l3news10.pdf | Bin 150282 -> 150282 bytes macros/latex/contrib/l3kernel/l3news11.pdf | Bin 170069 -> 170069 bytes macros/latex/contrib/l3kernel/l3news12.pdf | Bin 204992 -> 204992 bytes macros/latex/contrib/l3kernel/l3pdf.dtx | 2 +- macros/latex/contrib/l3kernel/l3prefixes.pdf | Bin 81941 -> 81941 bytes macros/latex/contrib/l3kernel/l3prg.dtx | 2 +- macros/latex/contrib/l3kernel/l3prop.dtx | 68 +-- macros/latex/contrib/l3kernel/l3quark.dtx | 2 +- macros/latex/contrib/l3kernel/l3regex.dtx | 73 +++- macros/latex/contrib/l3kernel/l3seq.dtx | 55 ++- macros/latex/contrib/l3kernel/l3skip.dtx | 2 +- macros/latex/contrib/l3kernel/l3sort.dtx | 2 +- macros/latex/contrib/l3kernel/l3str-convert.dtx | 2 +- macros/latex/contrib/l3kernel/l3str.dtx | 14 +- macros/latex/contrib/l3kernel/l3styleguide.pdf | Bin 296516 -> 296645 bytes macros/latex/contrib/l3kernel/l3styleguide.tex | 2 +- macros/latex/contrib/l3kernel/l3syntax-changes.pdf | Bin 243162 -> 243279 bytes macros/latex/contrib/l3kernel/l3syntax-changes.tex | 2 +- macros/latex/contrib/l3kernel/l3sys.dtx | 24 +- macros/latex/contrib/l3kernel/l3term-glossary.pdf | Bin 218315 -> 218431 bytes macros/latex/contrib/l3kernel/l3term-glossary.tex | 2 +- macros/latex/contrib/l3kernel/l3text-case.dtx | 2 +- macros/latex/contrib/l3kernel/l3text-map.dtx | 2 +- macros/latex/contrib/l3kernel/l3text-purify.dtx | 2 +- macros/latex/contrib/l3kernel/l3text.dtx | 2 +- macros/latex/contrib/l3kernel/l3tl-analysis.dtx | 2 +- macros/latex/contrib/l3kernel/l3tl.dtx | 238 +++++++---- macros/latex/contrib/l3kernel/l3token.dtx | 3 +- macros/latex/contrib/l3kernel/l3unicode.dtx | 2 +- macros/latex/contrib/l3kernel/source3.pdf | Bin 7360498 -> 7369566 bytes macros/latex/contrib/l3kernel/source3.tex | 2 +- macros/latex/contrib/l3packages/CHANGELOG.md | 7 +- macros/latex/contrib/l3packages/README.md | 23 +- macros/latex/contrib/l3packages/l3keys2e.dtx | 6 +- macros/latex/contrib/l3packages/l3keys2e.pdf | Bin 412169 -> 412937 bytes macros/latex/contrib/l3packages/xfp.dtx | 4 +- macros/latex/contrib/l3packages/xfp.pdf | Bin 331857 -> 332628 bytes macros/latex/contrib/l3packages/xfrac.dtx | 6 +- macros/latex/contrib/l3packages/xfrac.pdf | Bin 482438 -> 483310 bytes macros/latex/contrib/l3packages/xparse.dtx | 147 ++++++- macros/latex/contrib/l3packages/xparse.pdf | Bin 534081 -> 534879 bytes macros/latex/contrib/l3packages/xtemplate.dtx | 6 +- macros/latex/contrib/l3packages/xtemplate.pdf | Bin 450182 -> 450948 bytes .../contrib/pdfmanagement-testphase/CHANGELOG.md | 8 + .../contrib/pdfmanagement-testphase/README.md | 2 +- .../contrib/pdfmanagement-testphase/color-ltx.sty | 2 +- .../colorspace-patches-tmp-ltx.sty | 2 +- .../pdfmanagement-testphase/hyperref-generic.dtx | 4 +- .../pdfmanagement-testphase/hyperref-generic.pdf | Bin 963576 -> 963463 bytes .../l3backend-testphase.dtx | 38 +- .../l3backend-testphase.pdf | Bin 703466 -> 704274 bytes .../contrib/pdfmanagement-testphase/l3pdfannot.dtx | 4 +- .../contrib/pdfmanagement-testphase/l3pdfannot.pdf | Bin 588496 -> 588613 bytes .../contrib/pdfmanagement-testphase/l3pdfdict.dtx | 4 +- .../contrib/pdfmanagement-testphase/l3pdfdict.pdf | Bin 516134 -> 516275 bytes .../pdfmanagement-testphase/l3pdffield-action.dtx | 2 +- .../pdfmanagement-testphase/l3pdffield-action.pdf | Bin 559276 -> 559157 bytes .../l3pdffield-checkbox.dtx | 2 +- .../l3pdffield-checkbox.pdf | Bin 542336 -> 542236 bytes .../pdfmanagement-testphase/l3pdffield-choice.dtx | 2 +- .../pdfmanagement-testphase/l3pdffield-choice.pdf | Bin 544628 -> 544521 bytes .../l3pdffield-pushbutton.dtx | 2 +- .../l3pdffield-pushbutton.pdf | Bin 537754 -> 537650 bytes .../l3pdffield-radiobutton.dtx | 2 +- .../l3pdffield-radiobutton.pdf | Bin 593234 -> 593117 bytes .../l3pdffield-textfield.dtx | 2 +- .../l3pdffield-textfield.pdf | Bin 516955 -> 516850 bytes .../contrib/pdfmanagement-testphase/l3pdffield.dtx | 4 +- .../contrib/pdfmanagement-testphase/l3pdffield.pdf | Bin 751187 -> 751101 bytes .../contrib/pdfmanagement-testphase/l3pdffile.dtx | 4 +- .../contrib/pdfmanagement-testphase/l3pdffile.pdf | Bin 567418 -> 567314 bytes .../pdfmanagement-testphase/l3pdfmanagement.dtx | 4 +- .../pdfmanagement-testphase/l3pdfmanagement.pdf | Bin 682963 -> 682857 bytes .../contrib/pdfmanagement-testphase/l3pdfmeta.dtx | 23 +- .../contrib/pdfmanagement-testphase/l3pdfmeta.pdf | Bin 815253 -> 815200 bytes .../contrib/pdfmanagement-testphase/l3pdftools.dtx | 4 +- .../contrib/pdfmanagement-testphase/l3pdftools.pdf | Bin 532327 -> 532224 bytes .../contrib/pdfmanagement-testphase/l3pdfxform.dtx | 4 +- .../contrib/pdfmanagement-testphase/l3pdfxform.pdf | Bin 427985 -> 427837 bytes .../contrib/pdfmanagement-testphase/ltdocinit.dtx | 4 +- .../contrib/pdfmanagement-testphase/ltdocinit.pdf | Bin 590876 -> 590756 bytes .../output-patches-tmp-ltx.pdf | Bin 0 -> 386566 bytes .../pdfmanagement-firstaid.dtx | 4 +- .../pdfmanagement-firstaid.pdf | Bin 440323 -> 440217 bytes .../pdfmanagement-testphase.dtx | 6 +- .../pdfmanagement-testphase.pdf | Bin 464507 -> 464671 bytes .../pdfmanagement-testphase/update-metadata.txt | 15 + .../xcolor-patches-tmp-ltx.sty | 2 +- macros/latex/contrib/ppt-slides/DEPENDS.txt | 59 ++- macros/latex/contrib/ppt-slides/ppt-slides.dtx | 13 +- macros/latex/contrib/ppt-slides/ppt-slides.ins | 4 +- macros/latex/contrib/ppt-slides/ppt-slides.pdf | Bin 932594 -> 932994 bytes macros/latex/contrib/schooldocs/README.md | 10 +- .../contrib/schooldocs/schooldocs-examples.pdf | Bin 400369 -> 397588 bytes macros/latex/contrib/schooldocs/schooldocs.dtx | 456 +++++++++++---------- macros/latex/contrib/schooldocs/schooldocs.ins | 4 +- macros/latex/contrib/schooldocs/schooldocs.pdf | Bin 154926 -> 156220 bytes 164 files changed, 1435 insertions(+), 642 deletions(-) create mode 100644 macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf create mode 100644 macros/latex/contrib/pdfmanagement-testphase/update-metadata.txt (limited to 'macros/latex/contrib') diff --git a/macros/latex/contrib/hvextern/Changes b/macros/latex/contrib/hvextern/Changes index 5c38357d6f..14afbfe9ed 100644 --- a/macros/latex/contrib/hvextern/Changes +++ b/macros/latex/contrib/hvextern/Changes @@ -1,5 +1,6 @@ hvextern.sty ---------------- +v 0.37 2023-08-29 - do not write files without --shell-escape v 0.36 2023-08-24 - added option "vshift" for inline objects v 0.35 2023-08-22 - fix shellesc option, don`t set it globally to true v 0.34 2023-07-05 - fix for missing --shell-escape option diff --git a/macros/latex/contrib/hvextern/doc/hvextern.pdf b/macros/latex/contrib/hvextern/doc/hvextern.pdf index fddd186b01..21dd33cfdc 100644 Binary files a/macros/latex/contrib/hvextern/doc/hvextern.pdf and b/macros/latex/contrib/hvextern/doc/hvextern.pdf differ diff --git a/macros/latex/contrib/hvextern/doc/hvextern.tex b/macros/latex/contrib/hvextern/doc/hvextern.tex index 84b2df5183..ae1528783d 100644 --- a/macros/latex/contrib/hvextern/doc/hvextern.tex +++ b/macros/latex/contrib/hvextern/doc/hvextern.tex @@ -1,16 +1,21 @@ -%% $Id: hvextern.tex 749 2023-08-24 19:10:17Z herbert $ -\RequirePackage{pdfmanagement-testphase} -\DeclareDocumentMetadata{} +%% $Id: hvextern.tex 753 2023-08-29 07:22:20Z herbert $ +%\RequirePackage{pdfmanagement-testphase} +\DocumentMetadata{} \documentclass[english,a4paper,twoside]{article} \usepackage{babel} \usepackage{libertinus} \setmonofont[Scale=MatchLowercase,FakeStretch=0.88]{AnonymousPro} +\newfontfamily\NotoSansMono[Ligatures=TeX,Scale=MatchLowercase, + FakeStretch=0.90,Ligatures=ResetAll%,RawFeature=-tlig + ]{Noto Sans Mono} +\newfontfamily\CodeTwo{CODE2000}[Scale=MatchLowercase] \usepackage{iftex} \usepackage{fancyhdr} \pagestyle{fancy} \usepackage{hvlogos} -\usepackage[checkCode]{hvextern} +\usepackage%[checkCode] +{hvextern} \usepackage{hvindex} \usepackage{hvdoctools} \usepackage{listings} @@ -24,6 +29,8 @@ \def\Java{\textsf{Java}\xspace} + + \begin{document} \title{Writing, running and including the output of external documents from within a main\newline \LaTeX\ document~--v. \hvexternFileversion} @@ -48,7 +55,7 @@ showFilename,verbose} There exists only one option \Loption{checkCode} which is valid for all \TeX-compiler. In this case an already existing external file will only be compiled, if the -external code changed. This dosn't depends on the setting of the option \Lkeyword{force}. +external code changed. This doesn't depends on the setting of the option \Lkeyword{force}. \Loption{checkCode} can speed up the compilation time. \section{Syntax} @@ -81,16 +88,12 @@ The very first compilation run of the main document must be done with the \Loption{-shell-escape} command-line option, otherwise it won't work. Follow-up runs, for example, to resolve references, should usually be done without \Loption{-shell-escape}. - The currently used filename for the example is saved in the macro \Lcs{hvExternFilename}. \begin{verbatim} lualatex --shell-escape \end{verbatim} - - - The purpose for this package is to show the output of documents which have to be compiled with a different preamble or a different engine or a complete different system, but integrating the output automatically in the main document.. @@ -111,7 +114,7 @@ This document was run with \LuaLaTeX. Suppose you want to insert the output of a which needs for several reasons a \XeLaTeX\ run. Instead of created and running a document outside of the main document and then to insert the output we can do this from within this \LuaLaTeX\ document itself. The external document is compiled -with \XeLaTeX\ and the output is insert as pdf image:\label{inline-exa} +with \XeLaTeX\ and the output is insert as pdf image: \begin{externalDocument}[% compiler=xelatex, inline, force=true, runs=2, grfOptions={height=8pt},% crop, cropmargin=0, cleanup, docType=latex,vshift=-1pt]{voss} @@ -121,8 +124,9 @@ with \XeLaTeX\ and the output is insert as pdf image:\label{inline-exa} 美好的一天. \end{document} \end{externalDocument} +The current filename of the above example is \hvExternFilename\ and for the source +see page \pageref{inline-exa}. -The current filename of the above example is \hvExternFilename. Let's show another example which needs a \pdfLaTeX\ run. The \Index{source} code itself is also not shown by the environment \Lenv{externalDocument}. @@ -317,7 +321,7 @@ A vertical shift of the filename is possible by setting a length to the keyword e.g. \texttt{shiftFN=5ex}. -\clearpage%%%%%%%%%%%% +%\clearpage%%%%%%%%%%%% \begin{externalDocument}[grfOptions={width=0.95\linewidth}, compiler=xelatex,code,mpwidth=0.6\linewidth, @@ -1072,10 +1076,10 @@ not part of your current font. With the setting \LKeyset{inline=true} the optional keyword \Lkeyword{code} and \Lkeyword{showFilename} is automatically set to false. The -next Chinese characters +next Chinese characters \label{inline-exa} \begin{externalDocument}[ compiler=xelatex, inline, runs=2, grfOptions={height=8pt}, - crop, cropmargin=0, + crop, cropmargin=0, vshift=-1pt,usefancyvrb, cleanup, force=true, docType=latex]{voss}% \documentclass{ctexart} \pagestyle{empty} @@ -1086,11 +1090,12 @@ next Chinese characters are inserted as \Index{inline image} without showing the code. The complete code looks like: +\let\myFont\CodeTwo -\begin{Verbatim} +\begin{Verbatim}[fontfamily=myFont] With \Lkeyset{inline} the optional argument \Lkeyword{code} is automatically set to false. The next Chinese characters -\begin{externalDocument}[ +\begin{externalDocument}[vshift=-1pt, compiler=xelatex, inline, runs=2, grfOptions={height=8pt}, crop, cropmargin=0, cleanup, force=true, docType=latex]{voss} \documentclass{ctexart} @@ -1103,6 +1108,7 @@ are inserted as inline image without showing the code. The complete code looks like: \end{Verbatim} +With the keyword \Lkeyword{vshift} the inserted image can be moed in vertically direction. \subsection{Input text instead of an image} By default the created pdf which can be, of course, only text, will be inserted by \Lcs{includegraphics}. @@ -1267,7 +1273,7 @@ The following examples uses mpwidth=0.6\linewidth, usefancyvrb=false, docType=latex]{voss} -\documentclass[paper=a6,DIV=18,parskip=half-]{screxa} +\documentclass[paper=a6,DIV=18,parskip=half-]{scrartcl} \pagestyle{empty} \usepackage{libertinus} \setmonofont{DejaVu Sans Mono}[Scale=MatchLowercase,FakeStretch=0.9] @@ -1858,13 +1864,13 @@ to get the directory listed: \begin{verbatim} -\runExtCmd[redirect,verbose,lstOptions={basicstyle=\ttfamily\small}]{df}{voss} +\runExtCmd[redirect,verbose,lstOptions={basicstyle=\ttfamily\small}]{du}{voss}% *nix \end{verbatim} \medskip -\runExtCmd[redirect,verbose,lstOptions={basicstyle=\ttfamily\footnotesize}]{df}{voss} +\runExtCmd[redirect,verbose,lstOptions={basicstyle=\ttfamily\small}]{du}{voss} @@ -1883,8 +1889,10 @@ already exists, there is no need to create it with the next run again and again. if the package option \Loption{checkCode} exists. \item[\Lkeyword{cleanup}] the auxiliary files of a \LaTeX-run are deleted, preset to \texttt{aux}, \texttt{log}. It must be a comma seperated list of the extensions of the main file, s.g. \texttt{cleanup=\{aux,log\}}. -\item[\Lkeyword{moveToExampleDir}] name of a directory for the examples, must first be created by the user himself -\item[\Lkeyword{ExampleDir}] move all examples into a directory +\item[\Lkeyword{moveToExampleDir}] move all examples into a directory, must be set \emph{before} the +option \Lkeyword{ExampleDir}. +\item[\Lkeyword{ExampleDir}] name of a directory for the examples, must + first be created by the user himself. \item[\Lkeyset{tclbox=false}] Can be used if there are some negative interactions between package \Lpack{listings} and package \Lpack{tcolorbox}. \item[\Lkeyword{framesep}] Value for \Lcs{fbox} if keyword \texttt{frame} is used. diff --git a/macros/latex/contrib/hvextern/latex/hvextern.sty b/macros/latex/contrib/hvextern/latex/hvextern.sty index 1304e197e7..5db1916c16 100644 --- a/macros/latex/contrib/hvextern/latex/hvextern.sty +++ b/macros/latex/contrib/hvextern/latex/hvextern.sty @@ -1,4 +1,4 @@ -%% $Id: hvextern.sty 749 2023-08-24 19:10:17Z herbert $ +%% $Id: hvextern.sty 753 2023-08-29 07:22:20Z herbert $ %% This is file `hvextern.sty', %% %% Copyright (C) 2016-23 @@ -12,8 +12,8 @@ %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. -\def\hvexternFileversion{0.36} -\ProvidesFile{hvextern}[2023/08/24 v\hvexternFileversion: package for running external documents (HV)] +\def\hvexternFileversion{0.37} +\ProvidesFile{hvextern}[2023/08/29 v\hvexternFileversion: package for running external documents (HV)] \newif\ifhv@extern@checkCode \hv@extern@checkCodefalse @@ -21,7 +21,18 @@ \ProcessOptions -\RequirePackage{shellesc,xkeyval,graphicx} +\RequirePackage{shellesc,xkeyval,graphicx,comment} + +\newif\ifhv@extern@shellescape % the main command line option, for later test +%\typeout{>>>> \the\ShellEscapeStatus}% +\expandafter\ifnum\the\ShellEscapeStatus=1 + \hv@extern@shellescapetrue + \typeout{>>>> command line option shell-escape is enabled!}% +\else + \hv@extern@shellescapefalse + \typeout{>>>> command line option shell-escape is disabled!}% +\fi + \RequirePackage{fancyvrb,tikz,listings,ifplatform,iftex} \RequirePackage{ifoddpage,filemod} \RequirePackage{tcolorbox,xparse} @@ -29,7 +40,6 @@ \def\hv@ex@typeout#1{\ifhv@extern@verbose\typeout{>>(hvextern) #1}\fi} - \ifwindows \def\hv@move{move }% \def\hv@rm{del }% @@ -198,6 +208,7 @@ \ResetKeys + \ifhv@extern@checkCode \ifluatex \hv@ex@typeout{Loading hvextern.lua}% @@ -442,13 +453,19 @@ \expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternFilename.pdf}{}{% \expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternFilename.png}{}{% \expandafter\IfFileExists\expandafter{\hv@extern@ExamplesDir\hvExternFilename.txt}{}{% - \global\hv@extern@forcetrue}}}% set force, if no pdf or png exists + \global\hv@extern@forcetrue}}}% set force, if no pdf or png or txt exists \begingroup - \hv@ex@typeout{writing file \hvExternFilename\hv@extern@ext ...}% + \ifhv@extern@shellescape + \hv@ex@typeout{writing file \hvExternFilename\hv@extern@ext ...}% + \else + \hv@ex@typeout{no shell-escape, no writing of file \hvExternFilename\hv@extern@ext}% + \let\filecontents\comment + \let\endfilecontents\endcomment + \fi \filecontents[force,noheader]{\hvExternFilename\hv@extern@ext}% } - {\endfilecontents% \end% - \hv@ex@typeout{... done}% + {\endfilecontents + \ifhv@extern@shellescape\hv@ex@typeout{... done}\fi \global\stepcounter{hv@example@counter}% \endgroup \expandafter\hvExternSetKeys\expandafter{\hv@extern@savePara}% @@ -691,10 +708,9 @@ \fi \fi \fi% end of \ifshowoutput - \ifhv@extern@force\expandafter\run@hv@extern@cleanup\expandafter{\hv@extern@cleanup}\fi% cleanup - \hv@ex@typeout{Move source file into example dir, in case of missing --shell-escape}% -% \hv@ex@typeout{\hvExternFilename ----> \hv@extern@ExamplesDir}% - \ShellEscape{\hv@move \hvExternFilename\hv@extern@ext\space \hv@extern@ExamplesDir}% + \ifhv@extern@force + \expandafter\run@hv@extern@cleanup\expandafter{\hv@extern@cleanup}% + \fi% cleanup \vspace{\hv@extern@belowskip}% } diff --git a/macros/latex/contrib/jwjournal/README.md b/macros/latex/contrib/jwjournal/README.md index 4dd00cbba4..4114691820 100644 --- a/macros/latex/contrib/jwjournal/README.md +++ b/macros/latex/contrib/jwjournal/README.md @@ -9,7 +9,7 @@ A typical journal entry produced by `jwjournal` looks like this: Codewise, it is as simple as below: ``` -2023-01-01 Sunny --- Botanical Garden +2023-01-01 Sunny | Botanical Garden Today I visited the botanical garden! @@ -23,7 +23,7 @@ Codewise, it is as simple as below: Every day of the week has its unique color, like this: ![image](https://github.com/Jinwen-XU/jwjournal/raw/main/screenshots/demo2.png) -By the way, the conversion from plain date string like `2023-01-01` to natural language like `January 1, 2023 | Sunday` is done automatically by `jwjournal` and has multilingual support. Thus, for example (via `\UseLanguage`): +By the way, the conversion from plain date string like `2023-01-01` to natural language like `January 1, 2023 ⬦ Sunday` is done by `jwjournal` automatically and has multilingual support. Thus, for example (via `\UseLanguage`): - Chinese: ![image](https://github.com/Jinwen-XU/jwjournal/raw/main/screenshots/demo3-cn.png) - French: ![image](https://github.com/Jinwen-XU/jwjournal/raw/main/screenshots/demo3-fr.png) - German: ![image](https://github.com/Jinwen-XU/jwjournal/raw/main/screenshots/demo3-de.png) @@ -48,7 +48,7 @@ The options are: - `color entry` adds more color to the title of each entry - `scroll` turns on the scroll mode and can generate a single-page pdf similar to a long screenshot -And there are only two major syntaxes for the main text: +And there are only three major syntaxes for the main text: 1) Title - Any line begins with date like `2023-01-01` would be regard as the *Title* line. - You may write the weather and/or location after the date. @@ -64,6 +64,11 @@ And there are only two major syntaxes for the main text: ``` The space(s) between `[Note]` and the text following it would be ignored. > You may also use `【` and `】`, which is especially useful when writing Chinese. +3) Displayed images can be included via one of the following ways: + - `|| [] {}`: show image in the middle. + - `(( [] {}`: show image on the left. + - `)) [] {}`: show image on the right. + > The `[]` is optional. Here `` is a number like `0.75`, the unit is `\linewidth`. When `[]` is not given, the width would be full `\linewidth`. With a few more for icing on the cake: - `|`: The first vertical bar would be interpreted as `\hfill`. This allows you to write the title line as @@ -71,11 +76,33 @@ With a few more for icing on the cake: 2023-01-01 Sunny | Botanical Garden ``` and then the address `Botanical Garden` would be printed at the end of the title line. +- `\\` and `//`: `\\` has its usual meaning in LaTeX for starting a new line, while `//` has been defined to be starting a new line with some vertical spacing. This allows you to write the annotations as: + ``` + [Note] Some text. + // + More text. + // + (Some remark) + \\ + (Another remark) + \\ + (Final remark) + ``` + As a result, all the text would be properly indented. + > Note that images specified via `||`, `((` or `))` already contain line breaks, thus you don't need to (actually, *you can't*) write `//` or `\\` around them. +- `>>`: Text after `>>` would be centered. This is intended for writing annotations/captions for displayed images: + ``` + || {image-name} + >> (Some remark) + >> (Another remark) + ``` +- `->` and `<-`: Skip or retrieve certain vertical space, by default half of `\baselineskip`. You may specify the exact spacing in the unit of `\baselineskip`: for example, `-> [0.3]` would be skipping `0.3\baselineskip`, while `<- [.75]` means retrieving `0.75\baselineskip`. - `+++`: If a single sentence or a few words fall to the next page, you may write a `+++` before that entry to enlarge the current page by one line. + > You may write this `+++` several times if necessary, but do make sure that the number of the `+` sign is a multiple of 3. - `===`: Three or more equal signs `=` would simply be ignored. This is for improving the readability of the code, allowing you to write your journal like: ``` - 2023-01-01 Sunny --- Botanical Garden - ===================================== + 2023-01-01 Sunny | Botanical Garden + =================================== Today I visited the botanical garden! @@ -88,15 +115,15 @@ Indentations are not important, but paragraphs need to be separated by a blank l - with indentation: ``` 2023-01-01 - Sunny + Sunny | Botanical Garden ...... ...... ``` - with a separation line: ``` - 2023-01-01 Sunny - ================ + 2023-01-01 Sunny | Botanical Garden + =================================== ...... ...... @@ -104,7 +131,7 @@ Indentations are not important, but paragraphs need to be separated by a blank l - or maybe even: ``` ========== - 2023-01-01 Sunny + 2023-01-01 Sunny | Botanical Garden ========== ...... @@ -130,7 +157,7 @@ The colors from Monday to Sunday have the internal names `jwjournal-color-1`, .. ``` ### Functionality -The main features are achieved with the power of LaTeX3's regex functionality. It scans the content paragraph by paragraph and converts recognized patterns into corresponding TeX commands. Thus, `2023-01-01 Weather` becomes `\JWJournalEntry{2023-01-01}{Weather}`, `[Note] ...` becomes `\item[Note] ...` inside a `description` environment, and `+++` is essentially `\enlargethispage*{\baselineskip}`, etc. However, this comes with a price: in order to scan the content, it is firstly stored in a macro `\g_jwjournal_content_tl`, and that means that you cannot use commands like `\verb` in your main text (unless explicitly `\end{jwjournal}`, write your code, and then `\begin{jwjournal}`). +The main features are achieved with the power of LaTeX3's regex functionality. It scans the content paragraph by paragraph and converts recognized patterns into corresponding TeX commands. Thus, `2023-01-01 Weather` becomes `\JWJournalEntry{2023-01-01}{Weather}`, `[Note] ...` becomes `\item[Note] ...` inside a `description` environment, and `+++` is essentially `\enlargethispage{\baselineskip}`, etc. However, this comes with a price: in order to scan the content, it is firstly stored in a macro `\g_jwjournal_content_tl`, and that means that you cannot use commands like `\verb` in your main text (unless explicitly `\end{jwjournal}`, write your code, and then `\begin{jwjournal}`). Also, synctex won't work properly. ### Dates diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf index d4175f7072..40281336ad 100644 Binary files a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf and b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf differ diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex index 92b00e0ddf..81647136b9 100644 --- a/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex +++ b/macros/latex/contrib/jwjournal/jwjournal-demo-cn.tex @@ -10,21 +10,47 @@ 2023-01-01 晴 | 公寓 - 在文中出现的日期和标注不会被识别: 2022-12-25、[标注],放心使用 + 在文中出现的日期和标注不会被识别: 2022-12-25、[标注]、【标注】,放心使用! [体育] 一些关于体育赛事的事情 - 【学习】一些关于学习的事情 % 【...】与 [...] 效果相同 + 【学习】 % 【...】与 [...] 效果相同 + 一些关于学习的事情 + + 图片这可以这样引入: + + || [.4] {example-image-a} + >> (图片的注释) + >> (更多注释) + + 也可以靠左或者靠右显示: + (( [.4] {example-image-a} + -> [.3] % 加入一点竖直间距,例如这里是 0.3\baselineskip + )) [.4] {example-image-a} 2023-01-02 不明(天气也可以写在第二行,看你的喜好) - 标签的颜色会根据日期改变: + 标签的颜色会根据日期改变,并且很长的文本会自动缩进: [学习] 今天没有学习,但我写了很多很多很多很多很多很多很多很多很多很多很多很多很多很多很多很多代码。 + 如果标注后的文本有多段,可以合理使用 \texttt{\textbackslash\textbackslash} 与 \texttt{\slash\slash} 将它们连接起来,这样所有文本都会被正确缩进: + + [标签] 一些文本。 + // + 更多文本(使用了 \texttt{\slash\slash},因此与上面的文本有一定距离)。 + // + 更多文本(同样与上面的文本有一定距离)。 + // + (一些注释) + \\ + (其他注释,由于使用了 \texttt{\textbackslash\textbackslash},和上面是紧贴着的) + \\ + (更多注释,同样和上面是紧贴着的) + 2023-01-03 @@ -39,9 +65,8 @@ -========== 2023-01-05 多云 —— 居家办公 -========== +======================================= 也可以把代码排列成这样。 @@ -50,7 +75,7 @@ 2023-01-06 晴朗 —— 居家办公 ========== -... +或者这样…… diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-en.pdf b/macros/latex/contrib/jwjournal/jwjournal-demo-en.pdf index f1da481824..04b98e6366 100644 Binary files a/macros/latex/contrib/jwjournal/jwjournal-demo-en.pdf and b/macros/latex/contrib/jwjournal/jwjournal-demo-en.pdf differ diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-en.tex b/macros/latex/contrib/jwjournal/jwjournal-demo-en.tex index 500c772c1c..f0b85fc484 100644 --- a/macros/latex/contrib/jwjournal/jwjournal-demo-en.tex +++ b/macros/latex/contrib/jwjournal/jwjournal-demo-en.tex @@ -14,15 +14,40 @@ [Learning] something about learning. + Images can be included via: + + || [.4] {example-image-a} + >> (Remark on the image) + >> (More remark...) + + You may also show the image on the left or on the right: + (( [.4] {example-image-a} + -> [.3] % add some vertical spacing, here is 0.3\baselineskip + )) [.4] {example-image-a} + 01/02/2023 Unknown (the weather can also be written on the second line, depending on your preference) - The color of the labels will change according to the date. + The color of the labels shall change according to the date, and long text shall be automatically wrapped and indented: [Note] I didn't study today, but I wrote many many many many many many many many many many many many code. + If there are multiple paragraphs following the label, you may use \texttt{\textbackslash\textbackslash} and \texttt{\slash\slash} wisely to concatenate them, so that all texts would be indented properly: + + [Label] Some text. + // + More text (with \texttt{\slash\slash}, thus having some vertical spacing from the above text). + // + More text (same, with some vertical spacing from the above text). + // + (Some remark) + \\ + (Another remark, due to the use of \texttt{\textbackslash\textbackslash}, is close to the above remark) + \\ + (More remark --- similarly, is close to the above remark) + 01/03/2023 @@ -37,9 +62,8 @@ Unknown (the weather can also be written on the second line, depending on your p -========== 01-05-2023 Cloudy --- Work at home -========== +============================================ You may also organize your code like this. @@ -48,7 +72,7 @@ You may also organize your code like this. 01-06-2023 Sunny --- Work at home ========== -... +Or like this... diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-fr.pdf b/macros/latex/contrib/jwjournal/jwjournal-demo-fr.pdf index 65f7cf45a5..7303b8b07e 100644 Binary files a/macros/latex/contrib/jwjournal/jwjournal-demo-fr.pdf and b/macros/latex/contrib/jwjournal/jwjournal-demo-fr.pdf differ diff --git a/macros/latex/contrib/jwjournal/jwjournal-demo-fr.tex b/macros/latex/contrib/jwjournal/jwjournal-demo-fr.tex index c7b3e41d25..d8c6413bc8 100644 --- a/macros/latex/contrib/jwjournal/jwjournal-demo-fr.tex +++ b/macros/latex/contrib/jwjournal/jwjournal-demo-fr.tex @@ -8,23 +8,48 @@ \begin{document} -01/01/2023 Ensoleillé | Appartement +01/01/2023 Ensoleillé | Mon appartement - Les dates et annotations apparaissant dans le texte ne seront pas reconnues : 25/12/2022, [Note], alors n'hésitez pas à les écrire. + Les dates et annotations apparaissant dans le texte ne seront pas détectées : 25/12/2022, [Note], alors n'hésitez pas à les écrire ! [Sports] quelque chose sur les événements sportifs. [Apprendre] quelque chose sur l'apprentissage. + Les images peuvent être incluses via : + + || [.4] {example-image-a} + >> (Remarque sur l'image) + >> (Plus de remarque...) + + Vous pouvez également afficher l'image à gauche ou à droite : + (( [.4] {example-image-a} + -> [.3] % ajouter un certain espace vertical, ici c'est 0.3\baselineskip + )) [.4] {example-image-a} + 02/01/2023 Inconnu (la météo peut aussi être écrite sur la deuxième ligne, selon votre préférence) - La couleur des étiquettes changera en fonction de la date. + La couleur des étiquettes changera en fonction de la date, et le texte long sera automatiquement indenté : [Note] Je n'ai pas étudié aujourd'hui, mais j'ai écrit beaucoup beaucoup beaucoup beaucoup beaucoup beaucoup beaucoup beaucoup beaucoup de code. + Si l'étiquette est suivie de plusieurs paragraphes, vous pouvez utiliser \texttt{\textbackslash\textbackslash} et \texttt{\slash\slash} judicieusement pour les concaténer, de manière à ce que tous les textes soient indentés convenablement : + + [Étiquette] Un peu de texte. + // + Plus de texte (avec \texttt{\slash\slash}, ce qui permet d'avoir un espace vertical par rapport au texte ci-dessus). + // + Plus de texte (le même, avec un certain espace vertical par rapport au texte précédent). + // + (Quelque remarque) + \\ + (Une autre remarque, due à l'utilisation de \texttt{\textbackslash\textbackslash}, est proche de la remarque ci-dessus) + \\ + (Une autre remarque --- de même, est proche de la remarque ci-dessus) + 03/01/2023 @@ -39,9 +64,8 @@ Inconnu (la météo peut aussi être écrite sur la deuxième ligne, selon votre -========== 05-01-2023 Nuageux --- Travail à domicile -========== +================================================== Vous pouvez également organiser votre code comme ceci. @@ -50,7 +74,7 @@ Vous pouvez également organiser votre code comme ceci. 06-01-2023 Ensoleillé --- Travail à domicile ========== -... +Ou bien comme ceci... diff --git a/macros/latex/contrib/jwjournal/jwjournal.cls b/macros/latex/contrib/jwjournal/jwjournal.cls index fc8b091952..f7d1da7f64 100644 --- a/macros/latex/contrib/jwjournal/jwjournal.cls +++ b/macros/latex/contrib/jwjournal/jwjournal.cls @@ -12,7 +12,7 @@ \NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplClass {jwjournal} - {2023/08/26} {} + {2023/08/29} {} {JW's journal class} \keys_define:nn { jwjournal } @@ -55,6 +55,8 @@ \colorlet { jwjournal-color-6 } { yellow!20!orange } \colorlet { jwjournal-color-7 } { red!20!orange } +\colorlet { jwjournal-entry } { . } + \NewDocumentCommand \JWJournalEntry { m m } { \skip_vertical:n { .5 \baselineskip } @@ -98,7 +100,7 @@ } \RequirePackage { enumitem } -\setlist [ description ] { font = \normalfont\sffamily, leftmargin = 3em} +\setlist [ description ] { font = \normalfont\sffamily, leftmargin = 3em, topsep = 0pt } \RenewDocumentCommand \descriptionlabel { m } { \skip_horizontal:n { \labelsep } @@ -117,6 +119,54 @@ \end{description} } +\NewDocumentCommand \JWJournalSkip { O{.5} } + { + % \vspace{#1\baselineskip} + \vskip#1\baselineskip + } +\NewDocumentCommand \JWJournalBack { O{.5} } + { + % \vspace{-#1\baselineskip} + \vskip-#1\baselineskip + } + +\newenvironment{JWJournalCompactCenter} + {\parskip=0pt\par\nopagebreak\centering} + {\par\noindent\ignorespacesafterend} +\newenvironment{JWJournalCenter} + {\parskip=0pt\par\medskip\nopagebreak\centering} + {\par\noindent\ignorespacesafterend} +\newenvironment{JWJournalLeft} + {\parskip=0pt\par\medskip\nopagebreak\raggedright} + {\par\noindent\ignorespacesafterend} +\newenvironment{JWJournalRight} + {\parskip=0pt\par\medskip\nopagebreak\raggedleft} + {\par\noindent\ignorespacesafterend} +\NewDocumentCommand \JWJournalCompactCenterText { m } + { + \begin{JWJournalCompactCenter} + #1 + \end{JWJournalCompactCenter} + } +\NewDocumentCommand \JWJournalShowImageCenter { O{1} m } + { + \begin{JWJournalCenter} + \includegraphics[width=#1\linewidth]{#2} + \end{JWJournalCenter} + } +\NewDocumentCommand \JWJournalShowImageLeft { O{1} m } + { + \begin{JWJournalLeft} + \includegraphics[width=#1\linewidth]{#2} + \end{JWJournalLeft} + } +\NewDocumentCommand \JWJournalShowImageRight { O{1} m } + { + \begin{JWJournalRight} + \includegraphics[width=#1\linewidth]{#2} + \end{JWJournalRight} + } + \tl_new:N \g_jwjournal_content_tl \NewDocumentEnvironment { jwjournal } { +b } { @@ -126,7 +176,10 @@ } {} +\tl_const:Nn \c_jwjournal_new_line_with_skip_tl { \\[.3\baselineskip] } +\bool_new:N \l_jwjournal_regex_no_more_match_bool \seq_new:N \l_jwjournal_tmp_seq +\tl_new:N \l_jwjournal_tmp_tl \cs_generate_variant:Nn \regex_split:nnN { nVN } \cs_new:Nn \jwjournal_parse_content:N { @@ -134,56 +187,107 @@ \tl_set:Nn \g_jwjournal_content_tl {} \seq_map_inline:Nn \l_jwjournal_tmp_seq { - \tl_set:Nn \l_tmpa_tl { ❄️ ##1 } + \tl_set:Nn \l_jwjournal_tmp_tl { ❄️ ##1 } + \regex_replace_all:nnN { ={3,} } { } - \l_tmpa_tl + \l_jwjournal_tmp_tl + \regex_replace_all:nnN + { -> } + { \c{JWJournalSkip} } + \l_jwjournal_tmp_tl + \regex_replace_all:nnN + { <- } + { \c{JWJournalBack} } + \l_jwjournal_tmp_tl + \regex_replace_all:nnN + { \|\| } + { \c{JWJournalShowImageCenter} } + \l_jwjournal_tmp_tl + \regex_replace_all:nnN + { \(\( } + { \c{JWJournalShowImageLeft} } + \l_jwjournal_tmp_tl + \regex_replace_all:nnN + { \)\) } + { \c{JWJournalShowImageRight} } + \l_jwjournal_tmp_tl \regex_replace_once:nnN { \| } { \c{hfill} } - \l_tmpa_tl - \regex_match:nVT { ❄️ +++ (.*) } \l_tmpa_tl + \l_jwjournal_tmp_tl + \regex_replace_all:nnN + { // } + { \c{c_jwjournal_new_line_with_skip_tl} } + \l_jwjournal_tmp_tl + + % \regex_replace_all:nnN + % { >> (.*) } + % { \c{JWJournalCompactCenterText}\{\1\} } + % \l_jwjournal_tmp_tl + \exp_args:Nno \regex_split:nnN { >> } { \l_jwjournal_tmp_tl } \l_tmpa_seq + \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl + \tl_clear:N \l_jwjournal_tmp_tl + \tl_put_right:NV \l_jwjournal_tmp_tl \l_tmpa_tl + \seq_map_inline:Nn \l_tmpa_seq { - \tl_gput_right:Nn \g_jwjournal_content_tl { \g_jwjournal_enlarge_page_by_one_line_tl } - \regex_replace_once:nnN - { ❄️ +++ (.*) } - { ❄️ \1 } - \l_tmpa_tl + \tl_put_right:Nn \l_jwjournal_tmp_tl + { \JWJournalCompactCenterText { ####1 } } } + + \bool_set_false:N \l_jwjournal_regex_no_more_match_bool + \bool_do_until:nn \l_jwjournal_regex_no_more_match_bool + { + \regex_match:nVTF { ❄️ \ *? \+{3} } \l_jwjournal_tmp_tl + { + \tl_gput_right:Nn \g_jwjournal_content_tl { \c_jwjournal_enlarge_page_by_one_line_tl } + \regex_replace_once:nnN + { ❄️ \ *? \+{3} (.*) } + { ❄️ \1 } + \l_jwjournal_tmp_tl + } + { + \bool_set_true:N \l_jwjournal_regex_no_more_match_bool + } + } + \regex_replace_once:nnN { ❄️ (\ *)? (\d{4}-\d{1,2}-\d{1,2}) (\ *)? (.*) } { \c{JWJournalEntry} {\2} {\4} } - \l_tmpa_tl + \l_jwjournal_tmp_tl \regex_replace_once:nnN { ❄️ (\ *)? (\d{1,2}-\d{1,2}-\d{4}) (\ *)? (.*) } { \c{JWJournalEntry} {\2} {\4} } - \l_tmpa_tl + \l_jwjournal_tmp_tl \regex_replace_once:nnN { ❄️ (\ *)? (\d{4} \D \d{1,2} \D \d{1,2}) (\ *)? (.*) } { \c{JWJournalEntry} {\2} {\4} } - \l_tmpa_tl + \l_jwjournal_tmp_tl \regex_replace_once:nnN { ❄️ (\ *)? (\d{1,2} \D \d{1,2} \D \d{4}) (\ *)? (.*) } { \c{JWJournalEntry} {\2} {\4} } - \l_tmpa_tl + \l_jwjournal_tmp_tl + \regex_replace_once:nnN - { ❄️ (\[.*\] .*) } + { ❄️ \ *? (\[.*\] .*) } { \c{JWJournalItem} {\1} } - \l_tmpa_tl + \l_jwjournal_tmp_tl \regex_replace_once:nnN - { ❄️ 【(.*)】(.*) } + { ❄️ \ *? 【(.*)】(.*) } { \c{JWJournalItem} { \[\1\] \2 } } - \l_tmpa_tl - \regex_replace_once:nnN { ❄️ } { } \l_tmpa_tl - \tl_gput_right:NV \g_jwjournal_content_tl \l_tmpa_tl + \l_jwjournal_tmp_tl + + \regex_replace_once:nnN { ❄️ } { } \l_jwjournal_tmp_tl + + \tl_gput_right:NV \g_jwjournal_content_tl \l_jwjournal_tmp_tl \tl_gput_right:Nn \g_jwjournal_content_tl { \par } } } \bool_if:NTF \l__jwjournal_scroll_bool { - \tl_const:Nn \g_jwjournal_enlarge_page_by_one_line_tl {} + \tl_const:Nn \c_jwjournal_enlarge_page_by_one_line_tl {} \geometry{ papersize={7in,\maxdimen}, top=.75in,bottom=.75in, @@ -212,7 +316,7 @@ } } { - \tl_const:Nn \g_jwjournal_enlarge_page_by_one_line_tl { \enlargethispage*{\baselineskip} } + \tl_const:Nn \c_jwjournal_enlarge_page_by_one_line_tl { \enlargethispage{\baselineskip} } \geometry{ papersize={7in,10in}, top=.75in,bottom=.75in, diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md index 17d0940072..43e0dce339 100644 --- a/macros/latex/contrib/l3kernel/CHANGELOG.md +++ b/macros/latex/contrib/l3kernel/CHANGELOG.md @@ -7,6 +7,14 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-08-29] + +### Added +- `\c_sys_timestamp_str` + +### Changed +- Rename `\tex_pdfcreationdate:D` to `\tex_creationdate:D` + ## [2023-08-11] ### Changed @@ -1504,7 +1512,8 @@ this project uses date-based 'snapshot' version identifiers. - Step functions have been added for dim variables, e.g. `\dim_step_inline:nnnn` -[Unreleased]: https://github.com/latex3/latex3/compare/2023-08-11...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-08-29...HEAD +[2023-08-29]: https://github.com/latex3/latex3/compare/2023-08-11...2023-08-29 [2023-08-11]: https://github.com/latex3/latex3/compare/2023-08-03...2023-08-11 [2023-08-03]: https://github.com/latex3/latex3/compare/2023-06-30...2023-08-03 [2023-06-30]: https://github.com/latex3/latex3/compare/2023-06-16...2023-06-30 diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md index 6be76267b6..7afb055297 100644 --- a/macros/latex/contrib/l3kernel/README.md +++ b/macros/latex/contrib/l3kernel/README.md @@ -1,7 +1,7 @@ LaTeX3 Programming Conventions ============================== -Release 2023-08-11 +Release 2023-08-29 Overview -------- diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx index de20e5abe8..9adee097c5 100644 --- a/macros/latex/contrib/l3kernel/expl3.dtx +++ b/macros/latex/contrib/l3kernel/expl3.dtx @@ -24,7 +24,7 @@ % %<*driver|generic|package|2ekernel> % -\def\ExplFileDate{2023-08-11}% +\def\ExplFileDate{2023-08-29}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf index dbcbdc76bd..33262bd828 100644 Binary files a/macros/latex/contrib/l3kernel/expl3.pdf and b/macros/latex/contrib/l3kernel/expl3.pdf differ diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf index 25cec1c3cd..61d451cc9e 100644 Binary files a/macros/latex/contrib/l3kernel/interface3.pdf and b/macros/latex/contrib/l3kernel/interface3.pdf differ diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex index 696f03d048..0198240396 100644 --- a/macros/latex/contrib/l3kernel/interface3.tex +++ b/macros/latex/contrib/l3kernel/interface3.tex @@ -62,7 +62,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2023-08-11} +\date{Released 2023-08-29} \pagenumbering{roman} \maketitle diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx index bc36340167..17cb2467bf 100644 --- a/macros/latex/contrib/l3kernel/l3basics.dtx +++ b/macros/latex/contrib/l3kernel/l3basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx index bf51cb5527..aaa4333858 100644 --- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx +++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx index 0b4ae26892..34b6ca44ef 100644 --- a/macros/latex/contrib/l3kernel/l3box.dtx +++ b/macros/latex/contrib/l3kernel/l3box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx index 978c6d95de..f3a5021425 100644 --- a/macros/latex/contrib/l3kernel/l3candidates.dtx +++ b/macros/latex/contrib/l3kernel/l3candidates.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3cctab.dtx b/macros/latex/contrib/l3kernel/l3cctab.dtx index e8804818f2..fc9cdd9e92 100644 --- a/macros/latex/contrib/l3kernel/l3cctab.dtx +++ b/macros/latex/contrib/l3kernel/l3cctab.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx index 88455b8472..0eaac6a532 100644 --- a/macros/latex/contrib/l3kernel/l3clist.dtx +++ b/macros/latex/contrib/l3kernel/l3clist.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx index cf1ed0ebc8..2269c6c686 100644 --- a/macros/latex/contrib/l3kernel/l3coffins.dtx +++ b/macros/latex/contrib/l3kernel/l3coffins.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3color.dtx b/macros/latex/contrib/l3kernel/l3color.dtx index 3597f0bc4e..1453001a2a 100644 --- a/macros/latex/contrib/l3kernel/l3color.dtx +++ b/macros/latex/contrib/l3kernel/l3color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx index 36e5e8d313..d700a0f021 100644 --- a/macros/latex/contrib/l3kernel/l3debug.dtx +++ b/macros/latex/contrib/l3kernel/l3debug.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx index 14386a1430..a60fe16ff4 100644 --- a/macros/latex/contrib/l3kernel/l3deprecation.dtx +++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx index 43a3312231..b1744b9f7b 100644 --- a/macros/latex/contrib/l3kernel/l3doc.dtx +++ b/macros/latex/contrib/l3kernel/l3doc.dtx @@ -85,7 +85,7 @@ and all files in that bundle must be distributed together. % require you to do updates, if the class changes.}} % % \author{\Team} -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % \maketitle % \tableofcontents % diff --git a/macros/latex/contrib/l3kernel/l3doc.pdf b/macros/latex/contrib/l3kernel/l3doc.pdf index da3b5ed323..8ec07dcef3 100644 Binary files a/macros/latex/contrib/l3kernel/l3doc.pdf and b/macros/latex/contrib/l3kernel/l3doc.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx index 58c151045a..2b40c56fc5 100644 --- a/macros/latex/contrib/l3kernel/l3docstrip.dtx +++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf index db1f297e26..d93d065c3b 100644 Binary files a/macros/latex/contrib/l3kernel/l3docstrip.pdf and b/macros/latex/contrib/l3kernel/l3docstrip.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx index 922e0315b2..0d7e3e877a 100644 --- a/macros/latex/contrib/l3kernel/l3expan.dtx +++ b/macros/latex/contrib/l3kernel/l3expan.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx index 8ef7950afa..1c1401e392 100644 --- a/macros/latex/contrib/l3kernel/l3file.dtx +++ b/macros/latex/contrib/l3kernel/l3file.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -126,7 +126,8 @@ % the \meta{false code} is inserted into the input stream. % \end{function} % -% \begin{function}[updated = 2012-02-09]{\iow_open:Nn, \iow_open:cn} +% \begin{function}[updated = 2012-02-09] +% {\iow_open:Nn, \iow_open:NV, \iow_open:cn, \iow_open:cV} % \begin{syntax} % \cs{iow_open:Nn} \meta{stream} \Arg{file name} % \end{syntax} @@ -446,7 +447,8 @@ % % \subsection{Writing to files} % -% \begin{function}[updated = 2012-06-05]{\iow_now:Nn, \iow_now:Nx, \iow_now:cn, \iow_now:cx} +% \begin{function}[updated = 2012-06-05] +% {\iow_now:Nn, \iow_now:NV, \iow_now:Nx, \iow_now:cn, \iow_now:cV, \iow_now:cx} % \begin{syntax} % \cs{iow_now:Nn} \meta{stream} \Arg{tokens} % \end{syntax} @@ -703,7 +705,7 @@ % \end{texnote} % \end{variable} % -% \begin{function}[TF, updated = 2012-02-10]{\file_if_exist:n} +% \begin{function}[TF, updated = 2012-02-10]{\file_if_exist:n, \file_if_exist:V} % \begin{syntax} % \cs{file_if_exist:nTF} \Arg{file name} \Arg{true code} \Arg{false code} % \end{syntax} @@ -922,7 +924,7 @@ % \end{function} % % -% \begin{function}[updated = 2017-06-26]{\file_input:n} +% \begin{function}[updated = 2017-06-26]{\file_input:n, \file_input:V} % \begin{syntax} % \cs{file_input:n} \Arg{file name} % \end{syntax} @@ -1634,7 +1636,7 @@ % \end{macrocode} % \end{variable} % -% \begin{macro}{\iow_open:Nn, \iow_open:cn} +% \begin{macro}{\iow_open:Nn, \iow_open:NV, \iow_open:cn, \iow_open:cV} % \begin{macro}{\@@_open_stream:Nn, \@@_open_stream:NV} % The same idea as for reading, but without the path and without the need % to allow for a conditional version. @@ -1652,7 +1654,7 @@ \@@_open_stream:NV #1 \l_@@_file_name_tl } } -\cs_generate_variant:Nn \iow_open:Nn { c } +\cs_generate_variant:Nn \iow_open:Nn { NV , c , cV } \cs_new_protected:Npn \@@_open_stream:Nn #1#2 { \tex_global:D \tex_chardef:D #1 = \l_@@_stream_tl \scan_stop: @@ -1798,7 +1800,11 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\iow_now:Nn, \iow_now:Nx, \iow_now:cn, \iow_now:cx} +% \begin{macro} +% { +% \iow_now:Nn, \iow_now:NV, \iow_now:Nx, +% \iow_now:cn, \iow_now:cV, \iow_now:cx +% } % This routine writes the second argument onto the output stream without % expansion. If this stream isn't open, the output goes to the terminal % instead. If the first argument is no output stream at all, we get an @@ -1816,7 +1822,7 @@ \__kernel_iow_with:Nnn \tex_newlinechar:D { `\^^J } { \tex_immediate:D \tex_write:D #1 { \exp_not:n {#2} } } } -\cs_generate_variant:Nn \iow_now:Nn { c, Nx, cx } +\cs_generate_variant:Nn \iow_now:Nn { NV , Nx , c , cV , cx } % \end{macrocode} % \end{macro} % @@ -3308,7 +3314,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}[TF]{\file_if_exist:n} +% \begin{macro}[TF]{\file_if_exist:n, \file_if_exist:V} % The test for the existence of a file is a wrapper around the function to % add a path to a file. If the file was found, the path contains % something, whereas if the file was not located then the return value @@ -3320,6 +3326,7 @@ { \prg_return_true: } { \prg_return_false: } } +\prg_generate_conditional_variant:Nnn \file_if_exist:n { V } { T , F , TF } % \end{macrocode} % \end{macro} % @@ -3360,7 +3367,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\file_input:n} +% \begin{macro}{\file_input:n, \file_input:V} % \begin{macro}{\@@_input:n, \@@_input:V} % \begin{macro}{\@@_input_push:n, \__kernel_file_input_push:n} % \begin{macro}{\@@_input_pop:, \__kernel_file_input_pop:} @@ -3376,6 +3383,7 @@ { \@@_input:V \l_@@_full_name_tl } { \__kernel_file_missing:n {#1} } } +\cs_generate_variant:Nn \file_input:n { V } \cs_new_protected:Npx \@@_input:n #1 { \exp_not:N \clist_if_exist:NTF \exp_not:N \@filelist @@ -3751,7 +3759,7 @@ % \begin{macrocode} \tex_endinput:D } -% \begin{macrocode} +% \end{macrocode} % % Now define the actual error message: % \begin{macrocode} diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx index 16d7ad8cf4..3fb3930535 100644 --- a/macros/latex/contrib/l3kernel/l3flag.dtx +++ b/macros/latex/contrib/l3kernel/l3flag.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx index fd74adbb30..ecdd6ea31c 100644 --- a/macros/latex/contrib/l3kernel/l3fp-assign.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-assign.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx index b79d221f38..1f6b333761 100644 --- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx index 2ce6f8c75a..6a8d6376fb 100644 --- a/macros/latex/contrib/l3kernel/l3fp-basics.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-basics.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx index 6b9443ce09..bce0ddc8fd 100644 --- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx index 320c7ffa93..d9c8cf5685 100644 --- a/macros/latex/contrib/l3kernel/l3fp-expo.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-expo.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx index fbc59aa01f..0a5ac448aa 100644 --- a/macros/latex/contrib/l3kernel/l3fp-extended.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-extended.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx index ea21e32e9c..9f11464f29 100644 --- a/macros/latex/contrib/l3kernel/l3fp-logic.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-logic.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -404,7 +404,7 @@ \exp:w \exp_end_continue_f:w \@@_parse:n {#3} } \cs_generate_variant:Nn \fp_step_function:nnnN { nnnc } -% \end{macrocode} +% \end{macrocode} % Only floating point numbers (not tuples) are allowed arguments. % Only \enquote{normal} floating points (not $\pm 0$, % $\pm\texttt{inf}$, \texttt{nan}) can be used as step; if positive, diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx index 76e511868f..86e2366f2d 100644 --- a/macros/latex/contrib/l3kernel/l3fp-parse.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-parse.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx index 948b81b2cc..bb0e4b12f0 100644 --- a/macros/latex/contrib/l3kernel/l3fp-random.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-random.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx index d52675b87b..c0c656189f 100644 --- a/macros/latex/contrib/l3kernel/l3fp-round.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx index 725674b62c..9b59b1759d 100644 --- a/macros/latex/contrib/l3kernel/l3fp-traps.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-traps.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx index aef546549a..f4cc0513ad 100644 --- a/macros/latex/contrib/l3kernel/l3fp-trig.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-trig.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx index 9966e983e5..17193dd8af 100644 --- a/macros/latex/contrib/l3kernel/l3fp.dtx +++ b/macros/latex/contrib/l3kernel/l3fp.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx index 75a307ea9d..e3693f0a41 100644 --- a/macros/latex/contrib/l3kernel/l3fparray.dtx +++ b/macros/latex/contrib/l3kernel/l3fparray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx index 64919d9e46..5bb880ead3 100644 --- a/macros/latex/contrib/l3kernel/l3int.dtx +++ b/macros/latex/contrib/l3kernel/l3int.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -688,7 +688,7 @@ % Integers can be placed into the output stream with formatting. These % conversions apply to any integer expressions. % -% \begin{function}[updated = 2011-10-22, EXP]{\int_to_arabic:n} +% \begin{function}[updated = 2011-10-22, EXP]{\int_to_arabic:n, \int_to_arabic:v} % \begin{syntax} % \cs{int_to_arabic:n} \Arg{int expr} % \end{syntax} @@ -2024,11 +2024,12 @@ % % \subsection{Formatting integers} % -% \begin{macro}{\int_to_arabic:n} +% \begin{macro}{\int_to_arabic:n, \int_to_arabic:v} % \UnitTested % Nothing exciting here. % \begin{macrocode} \cs_new_eq:NN \int_to_arabic:n \int_eval:n +\cs_generate_variant:Nn \int_to_arabic:n { v } % \end{macrocode} % \end{macro} % diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx index c9f97c6304..cdbf71784c 100644 --- a/macros/latex/contrib/l3kernel/l3intarray.dtx +++ b/macros/latex/contrib/l3kernel/l3intarray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx index 876aabdddd..c2d442f183 100644 --- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx +++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx index d84b56eee0..8a78f8cd7c 100644 --- a/macros/latex/contrib/l3kernel/l3keys.dtx +++ b/macros/latex/contrib/l3kernel/l3keys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -985,7 +985,8 @@ % \end{verbatim} % are treated identically. % -% \begin{function}[rEXP, added=2020-12-19, updated = 2021-05-10]{\keyval_parse:nnn} +% \begin{function}[rEXP, added=2020-12-19, updated = 2021-05-10] +% {\keyval_parse:nnn, \keyval_parse:nnV, \keyval_parse:nnv} % \begin{syntax} % \cs{keyval_parse:nnn} \Arg{code_1} \Arg{code_2} \Arg{key--value list} % \end{syntax} @@ -1023,7 +1024,8 @@ % \end{texnote} % \end{function} % -% \begin{function}[rEXP, updated = 2021-05-10]{\keyval_parse:NNn} +% \begin{function}[rEXP, updated = 2021-05-10] +% {\keyval_parse:NNn, \keyval_parse:NNV, \keyval_parse:NNv} % \begin{syntax} % \cs{keyval_parse:NNn} \meta{function_1} \meta{function_2} \Arg{key--value list} % \end{syntax} @@ -1114,7 +1116,11 @@ { % \end{macrocode} % -% \begin{macro}[EXP]{\keyval_parse:nnn, \keyval_parse:NNn} +% \begin{macro}[EXP] +% { +% \keyval_parse:nnn, \keyval_parse:nnV, \keyval_parse:nnv, +% \keyval_parse:NNn, \keyval_parse:NNV, \keyval_parse:NNv +% } % The main function starts the first of two loops. The outer loop splits the % key--value list at active commas, the inner loop will do so at other commas. % The use of \cs{s_@@_mark} here prevents loss of braces from the key @@ -1379,6 +1385,8 @@ \char_set_catcode_active:n { `\= } \@@_tmp:w , = \group_end: +\cs_generate_variant:Nn \keyval_parse:NNn { NNV , NNv } +\cs_generate_variant:Nn \keyval_parse:nnn { nnV , nnv } % \end{macrocode} % % \begin{macro}[EXP]{\@@_pair:nnnn, \@@_key:nn} diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx index acb2ad3cbd..4142ac4658 100644 --- a/macros/latex/contrib/l3kernel/l3legacy.dtx +++ b/macros/latex/contrib/l3kernel/l3legacy.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx index 079f23e3c1..4e1f6a5bb8 100644 --- a/macros/latex/contrib/l3kernel/l3luatex.dtx +++ b/macros/latex/contrib/l3kernel/l3luatex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx index 7e80cf5665..82092523fa 100644 --- a/macros/latex/contrib/l3kernel/l3msg.dtx +++ b/macros/latex/contrib/l3kernel/l3msg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -103,7 +103,11 @@ % although in general this may be confusing; simply writing the messages % using |~| characters is the method favored by the team. % -% \begin{function}[updated = 2011-08-16]{\msg_new:nnnn, \msg_new:nnn} +% \begin{function}[updated = 2011-08-16] +% { +% \msg_new:nnnn, \msg_new:nnxx, +% \msg_new:nnn, \msg_new:nnx +% } % \begin{syntax} % \cs{msg_new:nnnn} \Arg{module} \Arg{message} \Arg{text} \Arg{more text} % \end{syntax} @@ -312,9 +316,15 @@ % \msg_fatal:nnnn , % \msg_fatal:nnn , % \msg_fatal:nn , +% \msg_fatal:nnVV , +% \msg_fatal:nnVn , +% \msg_fatal:nnnV , +% \msg_fatal:nnV , % \msg_fatal:nnxxxx , % \msg_fatal:nnxxx , +% \msg_fatal:nnnxx , % \msg_fatal:nnxx , +% \msg_fatal:nnnx , % \msg_fatal:nnx % } % \begin{syntax} @@ -333,9 +343,15 @@ % \msg_critical:nnnn , % \msg_critical:nnn , % \msg_critical:nn , +% \msg_critical:nnVV , +% \msg_critical:nnVn , +% \msg_critical:nnnV , +% \msg_critical:nnV , % \msg_critical:nnxxxx , % \msg_critical:nnxxx , +% \msg_critical:nnnxx , % \msg_critical:nnxx , +% \msg_critical:nnnx , % \msg_critical:nnx % } % \begin{syntax} @@ -360,9 +376,15 @@ % \msg_error:nnnn , % \msg_error:nnn , % \msg_error:nn , +% \msg_error:nnVV , +% \msg_error:nnVn , +% \msg_error:nnnV , +% \msg_error:nnV , % \msg_error:nnxxxx , % \msg_error:nnxxx , +% \msg_error:nnnxx , % \msg_error:nnxx , +% \msg_error:nnnx , % \msg_error:nnx % } % \begin{syntax} @@ -380,10 +402,17 @@ % \msg_warning:nnnnn , % \msg_warning:nnnn , % \msg_warning:nnn , +% \msg_warning:nnn , % \msg_warning:nn , +% \msg_warning:nnVV , +% \msg_warning:nnVn , +% \msg_warning:nnnV , +% \msg_warning:nnV , % \msg_warning:nnxxxx , % \msg_warning:nnxxx , +% \msg_warning:nnnxx , % \msg_warning:nnxx , +% \msg_warning:nnnx , % \msg_warning:nnx % } % \begin{syntax} @@ -402,18 +431,30 @@ % \msg_note:nnnn , % \msg_note:nnn , % \msg_note:nn , +% \msg_note:nnVV , +% \msg_note:nnVn , +% \msg_note:nnnV , +% \msg_note:nnV , % \msg_note:nnxxxx , % \msg_note:nnxxx , +% \msg_note:nnnxx , % \msg_note:nnxx , +% \msg_note:nnnx , % \msg_note:nnx , % \msg_info:nnnnnn , % \msg_info:nnnnn , % \msg_info:nnnn , % \msg_info:nnn , % \msg_info:nn , +% \msg_info:nnVV , +% \msg_info:nnVn , +% \msg_info:nnnV , +% \msg_info:nnV , % \msg_info:nnxxxx , % \msg_info:nnxxx , +% \msg_info:nnnxx , % \msg_info:nnxx , +% \msg_info:nnnx , % \msg_info:nnx % } % \begin{syntax} @@ -435,18 +476,30 @@ % \msg_term:nnnn , % \msg_term:nnn , % \msg_term:nn , +% \msg_term:nnVV , +% \msg_term:nnVn , +% \msg_term:nnnV , +% \msg_term:nnV , % \msg_term:nnxxxx , % \msg_term:nnxxx , +% \msg_term:nnnxx , % \msg_term:nnxx , +% \msg_term:nnnx , % \msg_term:nnx , % \msg_log:nnnnnn , % \msg_log:nnnnn , % \msg_log:nnnn , % \msg_log:nnn , % \msg_log:nn , +% \msg_log:nnVV , +% \msg_log:nnVn , +% \msg_log:nnnV , +% \msg_log:nnV , % \msg_log:nnxxxx , % \msg_log:nnxxx , +% \msg_log:nnnxx , % \msg_log:nnxx , +% \msg_log:nnnx , % \msg_log:nnx % } % \begin{syntax} @@ -468,9 +521,15 @@ % \msg_none:nnnn , % \msg_none:nnn , % \msg_none:nn , +% \msg_none:nnVV , +% \msg_none:nnVn , +% \msg_none:nnnV , +% \msg_none:nnV , % \msg_none:nnxxxx , % \msg_none:nnxxx , +% \msg_none:nnnxx , % \msg_none:nnxx , +% \msg_none:nnnx , % \msg_none:nnx % } % \begin{syntax} @@ -489,9 +548,15 @@ % \msg_show:nnnn , % \msg_show:nnn , % \msg_show:nn , +% \msg_show:nnVV , +% \msg_show:nnVn , +% \msg_show:nnnV , +% \msg_show:nnV , % \msg_show:nnxxxx , % \msg_show:nnxxx , +% \msg_show:nnnxx , % \msg_show:nnxx , +% \msg_show:nnnx , % \msg_show:nnx % } % \begin{syntax} @@ -740,7 +805,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\msg_new:nnnn, \msg_new:nnn} +% \begin{macro}{\msg_new:nnnn, \msg_new:nnxx, \msg_new:nnn, \msg_new:nnx} % \begin{macro}{\msg_gset:nnnn, \msg_gset:nnn} % \begin{macro}{\msg_set:nnnn, \msg_set:nnn} % Setting a message simply means saving the appropriate text @@ -751,8 +816,10 @@ \@@_chk_free:nn {#1} {#2} \msg_gset:nnnn {#1} {#2} } +\cs_generate_variant:Nn \msg_new:nnnn { nnxx } \cs_new_protected:Npn \msg_new:nnn #1#2#3 { \msg_new:nnnn {#1} {#2} {#3} { } } +\cs_generate_variant:Nn \msg_new:nnn { nnx } \cs_new_protected:Npn \msg_set:nnnn #1#2#3#4 { \cs_set:cpn { \c_@@_text_prefix_tl #1 / #2 } @@ -1113,6 +1180,9 @@ { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} {##3} { } { } { } } \cs_new_protected:cpx { msg_ #1 :nn } ##1##2 { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} { } { } { } { } } + \cs_generate_variant:cn { msg_ #1 :nnn } { nnV } + \cs_generate_variant:cn { msg_ #1 :nnnn } { nnVV , nnVn , nnnV , nnnx } + \cs_generate_variant:cn { msg_ #1 :nnnnn } { nnnxx } \cs_new_protected:cpx { msg_ #1 :nnxxxx } ##1##2##3##4##5##6 { \use:x @@ -1139,9 +1209,15 @@ % \msg_fatal:nnnn , % \msg_fatal:nnn , % \msg_fatal:nn , +% \msg_fatal:nnVV , +% \msg_fatal:nnVn , +% \msg_fatal:nnnV , +% \msg_fatal:nnV , % \msg_fatal:nnxxxx , % \msg_fatal:nnxxx , +% \msg_fatal:nnnxx , % \msg_fatal:nnxx , +% \msg_fatal:nnnx , % \msg_fatal:nnx % } % \begin{macro}{\@@_fatal_exit:} @@ -1173,9 +1249,15 @@ % \msg_critical:nnnn , % \msg_critical:nnn , % \msg_critical:nn , +% \msg_critical:nnVV , +% \msg_critical:nnVn , +% \msg_critical:nnnV , +% \msg_critical:nnV , % \msg_critical:nnxxxx , % \msg_critical:nnxxx , +% \msg_critical:nnnxx , % \msg_critical:nnxx , +% \msg_critical:nnnx , % \msg_critical:nnx % } % Not quite so bad: just end the current file. @@ -1198,9 +1280,15 @@ % \msg_error:nnnn , % \msg_error:nnn , % \msg_error:nn , +% \msg_error:nnVV , +% \msg_error:nnVn , +% \msg_error:nnnV , +% \msg_error:nnV , % \msg_error:nnxxxx , % \msg_error:nnxxx , +% \msg_error:nnnxx , % \msg_error:nnxx , +% \msg_error:nnnx , % \msg_error:nnx % } % For an error, the interrupt routine is called. We check if there is @@ -1229,27 +1317,45 @@ % \msg_warning:nnnn , % \msg_warning:nnn , % \msg_warning:nn , +% \msg_warning:nnVV , +% \msg_warning:nnVn , +% \msg_warning:nnnV , +% \msg_warning:nnV , % \msg_warning:nnxxxx , % \msg_warning:nnxxx , +% \msg_warning:nnnxx , % \msg_warning:nnxx , +% \msg_warning:nnnx , % \msg_warning:nnx , % \msg_note:nnnnnn , % \msg_note:nnnnn , % \msg_note:nnnn , % \msg_note:nnn , % \msg_note:nn , +% \msg_note:nnVV , +% \msg_note:nnVn , +% \msg_note:nnnV , +% \msg_note:nnV , % \msg_note:nnxxxx , % \msg_note:nnxxx , +% \msg_note:nnnxx , % \msg_note:nnxx , +% \msg_note:nnnx , % \msg_note:nnx , % \msg_info:nnnnnn , % \msg_info:nnnnn , % \msg_info:nnnn , % \msg_info:nnn , % \msg_info:nn , +% \msg_info:nnVV , +% \msg_info:nnVn , +% \msg_info:nnnV , +% \msg_info:nnV , % \msg_info:nnxxxx , % \msg_info:nnxxx , +% \msg_info:nnnxx , % \msg_info:nnxx , +% \msg_info:nnnx , % \msg_info:nnx , % } % Warnings and information messages have no decoration. Warnings are @@ -1303,18 +1409,30 @@ % \msg_log:nnnn , % \msg_log:nnn , % \msg_log:nn , +% \msg_log:nnVV , +% \msg_log:nnVn , +% \msg_log:nnnV , +% \msg_log:nnV , % \msg_log:nnxxxx , % \msg_log:nnxxx , +% \msg_log:nnnxx , % \msg_log:nnxx , +% \msg_log:nnnx , % \msg_log:nnx , % \msg_term:nnnnnn , % \msg_term:nnnnn , % \msg_term:nnnn , % \msg_term:nnn , % \msg_term:nn , +% \msg_term:nnVV , +% \msg_term:nnVn , +% \msg_term:nnnV , +% \msg_term:nnV , % \msg_term:nnxxxx , % \msg_term:nnxxx , +% \msg_term:nnnxx , % \msg_term:nnxx , +% \msg_term:nnnx , % \msg_term:nnx , % } % \enquote{Log} data is very similar to information, but with no extras @@ -1345,9 +1463,15 @@ % \msg_none:nnnn , % \msg_none:nnn , % \msg_none:nn , +% \msg_none:nnVV , +% \msg_none:nnVn , +% \msg_none:nnnV , +% \msg_none:nnV , % \msg_none:nnxxxx , % \msg_none:nnxxx , +% \msg_none:nnnxx , % \msg_none:nnxx , +% \msg_none:nnnx , % \msg_none:nnx % } % The \texttt{none} message type is needed so that input can be gobbled. @@ -1363,9 +1487,15 @@ % \msg_show:nnnn , % \msg_show:nnn , % \msg_show:nn , +% \msg_show:nnVV , +% \msg_show:nnVn , +% \msg_show:nnnV , +% \msg_show:nnV , % \msg_show:nnxxxx , % \msg_show:nnxxx , +% \msg_show:nnnxx , % \msg_show:nnxx , +% \msg_show:nnx , % \msg_show:nnx % } % \begin{macro}{\@@_show:n, \@@_show:w, \@@_show_dot:w, \@@_show:nn} diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx index 1db4aaa806..f3f56f7f72 100644 --- a/macros/latex/contrib/l3kernel/l3names.dtx +++ b/macros/latex/contrib/l3kernel/l3names.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -533,7 +533,6 @@ \@@_primitive:NN \pdfcompresslevel \tex_pdfcompresslevel:D \@@_primitive:NN \pdfcolorstack \tex_pdfcolorstack:D \@@_primitive:NN \pdfcolorstackinit \tex_pdfcolorstackinit:D - \@@_primitive:NN \pdfcreationdate \tex_pdfcreationdate:D \@@_primitive:NN \pdfdecimaldigits \tex_pdfdecimaldigits:D \@@_primitive:NN \pdfdest \tex_pdfdest:D \@@_primitive:NN \pdfdestmargin \tex_pdfdestmargin:D @@ -627,6 +626,7 @@ \@@_primitive:NN \pdfadjustspacing \tex_adjustspacing:D \@@_primitive:NN \pdfappendkern \tex_appendkern:D \@@_primitive:NN \pdfcopyfont \tex_copyfont:D + \@@_primitive:NN \pdfcreationdate \tex_creationdate:D \@@_primitive:NN \pdfdraftmode \tex_draftmode:D \@@_primitive:NN \pdfeachlinedepth \tex_eachlinedepth:D \@@_primitive:NN \pdfeachlineheight \tex_eachlineheight:D diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf index 5a24e8b46e..7ebec4848a 100644 Binary files a/macros/latex/contrib/l3kernel/l3news.pdf and b/macros/latex/contrib/l3kernel/l3news.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news01.pdf b/macros/latex/contrib/l3kernel/l3news01.pdf index 9951afa47d..fe4f64501c 100644 Binary files a/macros/latex/contrib/l3kernel/l3news01.pdf and b/macros/latex/contrib/l3kernel/l3news01.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news02.pdf b/macros/latex/contrib/l3kernel/l3news02.pdf index 1b78bf3492..3b36d8a341 100644 Binary files a/macros/latex/contrib/l3kernel/l3news02.pdf and b/macros/latex/contrib/l3kernel/l3news02.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news03.pdf b/macros/latex/contrib/l3kernel/l3news03.pdf index a05ce9a5a9..f3031cb0d8 100644 Binary files a/macros/latex/contrib/l3kernel/l3news03.pdf and b/macros/latex/contrib/l3kernel/l3news03.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news04.pdf b/macros/latex/contrib/l3kernel/l3news04.pdf index e75b8011f3..d7155a9049 100644 Binary files a/macros/latex/contrib/l3kernel/l3news04.pdf and b/macros/latex/contrib/l3kernel/l3news04.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news05.pdf b/macros/latex/contrib/l3kernel/l3news05.pdf index a17cb861b5..788ded7ff1 100644 Binary files a/macros/latex/contrib/l3kernel/l3news05.pdf and b/macros/latex/contrib/l3kernel/l3news05.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news06.pdf b/macros/latex/contrib/l3kernel/l3news06.pdf index 5d30d5f234..9778f1dd95 100644 Binary files a/macros/latex/contrib/l3kernel/l3news06.pdf and b/macros/latex/contrib/l3kernel/l3news06.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news07.pdf b/macros/latex/contrib/l3kernel/l3news07.pdf index a6990b3d02..84e2f2c9f2 100644 Binary files a/macros/latex/contrib/l3kernel/l3news07.pdf and b/macros/latex/contrib/l3kernel/l3news07.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news08.pdf b/macros/latex/contrib/l3kernel/l3news08.pdf index fe9cbd8b2c..e91e2d344b 100644 Binary files a/macros/latex/contrib/l3kernel/l3news08.pdf and b/macros/latex/contrib/l3kernel/l3news08.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news09.pdf b/macros/latex/contrib/l3kernel/l3news09.pdf index 9e20ff1ab4..83832c3237 100644 Binary files a/macros/latex/contrib/l3kernel/l3news09.pdf and b/macros/latex/contrib/l3kernel/l3news09.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news10.pdf b/macros/latex/contrib/l3kernel/l3news10.pdf index 62699d7546..acbefc90b5 100644 Binary files a/macros/latex/contrib/l3kernel/l3news10.pdf and b/macros/latex/contrib/l3kernel/l3news10.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news11.pdf b/macros/latex/contrib/l3kernel/l3news11.pdf index 39a7cdb5a6..132979c8a7 100644 Binary files a/macros/latex/contrib/l3kernel/l3news11.pdf and b/macros/latex/contrib/l3kernel/l3news11.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news12.pdf b/macros/latex/contrib/l3kernel/l3news12.pdf index 7b96788d94..c1ed0ffaca 100644 Binary files a/macros/latex/contrib/l3kernel/l3news12.pdf and b/macros/latex/contrib/l3kernel/l3news12.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3pdf.dtx b/macros/latex/contrib/l3kernel/l3pdf.dtx index dd275751db..ebfdc9115b 100644 --- a/macros/latex/contrib/l3kernel/l3pdf.dtx +++ b/macros/latex/contrib/l3kernel/l3pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf index b733ee4921..89ba420517 100644 Binary files a/macros/latex/contrib/l3kernel/l3prefixes.pdf and b/macros/latex/contrib/l3kernel/l3prefixes.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx index fe88bac05d..ec778817d3 100644 --- a/macros/latex/contrib/l3kernel/l3prg.dtx +++ b/macros/latex/contrib/l3kernel/l3prg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx index e7ef6d11f8..2d5fc3edcc 100644 --- a/macros/latex/contrib/l3kernel/l3prop.dtx +++ b/macros/latex/contrib/l3kernel/l3prop.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -167,16 +167,16 @@ % { % \prop_put:Nnn, \prop_put:NnV, \prop_put:Nno, \prop_put:Nne, \prop_put:Nnx, % \prop_put:NVn, \prop_put:NVV, \prop_put:NVx, \prop_put:Nvx, -% \prop_put:Non, \prop_put:Noo, \prop_put:Nxx, +% \prop_put:Non, \prop_put:Nxn, \prop_put:NxV, \prop_put:Noo, \prop_put:Nxx, % \prop_put:cnn, \prop_put:cnV, \prop_put:cno, \prop_put:cne, \prop_put:cnx, % \prop_put:cVn, \prop_put:cVV, \prop_put:cVx, \prop_put:cvx, -% \prop_put:con, \prop_put:coo, \prop_put:cxx, +% \prop_put:con, \prop_put:cxn, \prop_put:cxV, \prop_put:coo, \prop_put:cxx, % \prop_gput:Nnn, \prop_gput:NnV, \prop_gput:Nno, \prop_gput:Nne, \prop_gput:Nnx, % \prop_gput:NVn, \prop_gput:NVV, \prop_gput:NVx, \prop_gput:Nvx, -% \prop_gput:Non, \prop_gput:Noo, \prop_gput:Nxx, +% \prop_gput:Non, \prop_gput:Nxn, \prop_gput:NxV, \prop_gput:Noo, \prop_gput:Nxx, % \prop_gput:cnn, \prop_gput:cnV, \prop_gput:cno, \prop_gput:cne, \prop_gput:cnx, % \prop_gput:cVn, \prop_gput:cVV, \prop_gput:cVx, \prop_gput:cvx, -% \prop_gput:con, \prop_gput:coo, \prop_gput:cxx +% \prop_gput:con, \prop_gput:cxn, \prop_gput:cxV, \prop_gput:coo, \prop_gput:cxx % } % \begin{syntax} % \cs{prop_put:Nnn} \meta{property list} \Arg{key} \Arg{value} @@ -250,8 +250,9 @@ % % \begin{function}[updated = 2011-08-28] % { -% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NoN, -% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:coN, +% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NoN, \prop_get:NxN, +% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:coN, \prop_get:cxN, +% \prop_get:cnc % } % \begin{syntax} % \cs{prop_get:NnN} \meta{property list} \Arg{key} \meta{tl var} @@ -294,7 +295,11 @@ % the \meta{token list variable} is local. See also \cs{prop_gpop:NnNTF}. % \end{function} % -% \begin{function}[added = 2014-07-17, EXP]{\prop_item:Nn, \prop_item:cn} +% \begin{function}[added = 2014-07-17, EXP] +% { +% \prop_item:Nn, \prop_item:NV, \prop_item:No, \prop_item:Ne, +% \prop_item:cn, \prop_item:cV, \prop_item:co, \prop_item:ce +% } % \begin{syntax} % \cs{prop_item:Nn} \meta{property list} \Arg{key} % \end{syntax} @@ -399,8 +404,9 @@ % % \begin{function}[updated = 2012-05-19, TF] % { -% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NoN, -% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:coN +% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NoN, \prop_get:NxN, +% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:coN, \prop_get:cxN, +% \prop_get:cnc % } % \begin{syntax} % \cs{prop_get:NnNTF} \meta{property list} \Arg{key} \meta{token list variable} \\ @@ -982,8 +988,9 @@ % % \begin{macro}[tested = m3prop002] % { -% \prop_get:NnN, \prop_get:NVN, \prop_get:NoN, -% \prop_get:cnN, \prop_get:cVN, \prop_get:coN +% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NoN, \prop_get:NxN, +% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:coN, \prop_get:cxN, +% \prop_get:cnc % } % Getting an item from a list is very easy: after splitting, % if the key is in the property list, just set the token list variable @@ -995,8 +1002,8 @@ { \tl_set:Nn #3 {##2} } { \tl_set:Nn #3 { \q_no_value } } } -\cs_generate_variant:Nn \prop_get:NnN { NV , Nv , No } -\cs_generate_variant:Nn \prop_get:NnN { c , cV , cv , co } +\cs_generate_variant:Nn \prop_get:NnN { NV , Nv , No , Nx } +\cs_generate_variant:Nn \prop_get:NnN { c , cV , cv , co , cx , cnc } % \end{macrocode} % \end{macro} % @@ -1035,7 +1042,11 @@ % \end{macro} % \end{macro} % -% \begin{macro}[EXP]{\prop_item:Nn, \prop_item:cn} +% \begin{macro}[EXP] +% { +% \prop_item:Nn, \prop_item:NV, \prop_item:No, \prop_item:Ne, +% \prop_item:cn, \prop_item:cV, \prop_item:co, \prop_item:ce +% } % \begin{macro}[EXP]{\@@_item:nnn} % Getting the value corresponding to a key in a property list in an % expandable fashion simply uses \cs{prop_map_tokens:Nn} to go through @@ -1053,7 +1064,7 @@ \str_if_eq:eeT {#1} {#2} { \prop_map_break:n { \exp_not:n {#3} } } } -\cs_generate_variant:Nn \prop_item:Nn { c } +\cs_generate_variant:Nn \prop_item:Nn { NV , No , Ne , c , cV , co , ce } % \end{macrocode} % \end{macro} % \end{macro} @@ -1154,19 +1165,19 @@ % { % \prop_put:Nnn, \prop_put:NnV, \prop_put:Nno, \prop_put:Nne, \prop_put:Nnx, % \prop_put:NVn, \prop_put:NVV, \prop_put:NVx, \prop_put:Nvx, -% \prop_put:Non, \prop_put:Noo, \prop_put:Nxx, +% \prop_put:Non, \prop_put:Nxn, \prop_put:NxV, \prop_put:Noo, \prop_put:Nxx, % \prop_put:cnn, \prop_put:cnV, \prop_put:cno, \prop_put:cne, \prop_put:cnx, % \prop_put:cVn, \prop_put:cVV, \prop_put:cVx, \prop_put:cvx, -% \prop_put:con, \prop_put:coo, \prop_put:cxx +% \prop_put:con, \prop_put:cxn, \prop_put:cxV, \prop_put:coo, \prop_put:cxx % } % \begin{macro}[tested = m3prop002] % { % \prop_gput:Nnn, \prop_gput:NnV, \prop_gput:Nno, \prop_gput:Nne, \prop_gput:Nnx, -% \prop_gput:NVn, \prop_gput:NVV, \prop_hput:NVx, \prop_hput:Nvx, -% \prop_gput:Non, \prop_gput:Noo, \prop_gput:Nxx, +% \prop_gput:NVn, \prop_gput:NVV, \prop_gput:NVx, \prop_hput:Nvx, +% \prop_gput:Non, \prop_gput:Nxn, \prop_pgut:NxV, \prop_gput:Noo, \prop_gput:Nxx, % \prop_gput:cnn, \prop_gput:cnV, \prop_gput:cno, \prop_gput:cne, \prop_gput:cnx, % \prop_gput:cVn, \prop_gput:cVV, \prop_gput:cVx, \prop_gput:cvx, -% \prop_gput:con, \prop_gput:coo, \prop_gput:cxx +% \prop_gput:con, \prop_gput:cxn, \prop_gput:cxV, \prop_gput:coo, \prop_gput:cxx % } % \begin{macro}{\@@_put:NNnn} % Since the branches of \cs{@@_split:NnTF} are used as the replacement @@ -1196,13 +1207,13 @@ { #1 #2 { \exp_not:o {#2} \l_@@_internal_tl } } } \cs_generate_variant:Nn \prop_put:Nnn - { NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Noo , Nxx } + { NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Nx , NxV , Noo , Nxx } \cs_generate_variant:Nn \prop_put:Nnn - { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , coo , cxx } + { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , cx , cxV , coo , cxx } \cs_generate_variant:Nn \prop_gput:Nnn - { NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Noo , Nxx } + { NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Nx , NxV , Noo , Nxx } \cs_generate_variant:Nn \prop_gput:Nnn - { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , coo , cxx } + { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , cx , cxV , coo , cxx } % \end{macrocode} % \end{macro} % \end{macro} @@ -1307,8 +1318,9 @@ % % \begin{macro}[TF, tested = m3prop004] % { -% \prop_get:NnN, \prop_get:NVN, \prop_get:NoN, -% \prop_get:cnN, \prop_get:cVN, \prop_get:coN +% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NoN, \prop_get:NxN, +% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:coN, \prop_get:cxN, +% \prop_get:cnc % } % Getting the value corresponding to a key, keeping track of whether % the key was present or not, is implemented as a conditional (with @@ -1324,7 +1336,7 @@ { \prg_return_false: } } \prg_generate_conditional_variant:Nnn \prop_get:NnN - { NV , Nv , No , c , cV , cv , co } { T , F , TF } + { NV , Nv , No , Nx , c , cV , cv , co , cx , cnc } { T , F , TF } % \end{macrocode} % \end{macro} % diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx index 41c61be838..e05b5369e1 100644 --- a/macros/latex/contrib/l3kernel/l3quark.dtx +++ b/macros/latex/contrib/l3kernel/l3quark.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx index 6aef0742a0..3d342960ac 100644 --- a/macros/latex/contrib/l3kernel/l3regex.dtx +++ b/macros/latex/contrib/l3kernel/l3regex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -587,7 +587,11 @@ % while the later require a compiled expression as generated by % \cs{regex_set:Nn}. % -% \begin{function}[TF, added = 2017-05-26]{\regex_match:nn, \regex_match:Nn} +% \begin{function}[TF, added = 2017-05-26] +% { +% \regex_match:nn, \regex_match:nV, +% \regex_match:Nn, \regex_match:NV +% } % \begin{syntax} % \cs{regex_match:nnTF} \Arg{regex} \Arg{token list} \Arg{true code} \Arg{false code} % \end{syntax} @@ -600,7 +604,11 @@ % leaves \texttt{TRUE} then \texttt{FALSE} in the input stream. % \end{function} % -% \begin{function}[added = 2017-05-26]{\regex_count:nnN, \regex_count:NnN} +% \begin{function}[added = 2017-05-26] +% { +% \regex_count:nnN, \regex_count:nVN, +% \regex_count:NnN, \regex_count:NVN +% } % \begin{syntax} % \cs{regex_count:nnN} \Arg{regex} \Arg{token list} \meta{int var} % \end{syntax} @@ -657,7 +665,10 @@ % \section{Submatch extraction} % % \begin{function}[noTF, added = 2017-05-26] -% {\regex_extract_once:nnN, \regex_extract_once:NnN} +% { +% \regex_extract_once:nnN, \regex_extract_once:nVN, +% \regex_extract_once:NVN, \regex_extract_once:NVN +% } % \begin{syntax} % \cs{regex_extract_once:nnN} \Arg{regex} \Arg{token list} \meta{seq~var} % \cs{regex_extract_once:nnNTF} \Arg{regex} \Arg{token list} \meta{seq~var} \Arg{true code} \Arg{false code} @@ -688,7 +699,10 @@ % \end{function} % % \begin{function}[noTF, added = 2017-05-26] -% {\regex_extract_all:nnN, \regex_extract_all:NnN} +% { +% \regex_extract_all:nnN, \regex_extract_all:nVN, +% \regex_extract_all:NnN, \regex_extract_all:NVN +% } % \begin{syntax} % \cs{regex_extract_all:nnN} \Arg{regex} \Arg{token list} \meta{seq~var} % \cs{regex_extract_all:nnNTF} \Arg{regex} \Arg{token list} \meta{seq~var} \Arg{true code} \Arg{false code} @@ -711,7 +725,11 @@ % and the \texttt{true} branch is left in the input stream. % \end{function} % -% \begin{function}[noTF, added = 2017-05-26]{\regex_split:nnN, \regex_split:NnN} +% \begin{function}[noTF, added = 2017-05-26] +% { +% \regex_split:nnN, \regex_split:nVN, +% \regex_split:NnN, \regex_split:NVN, +% } % \begin{syntax} % \cs{regex_split:nnN} \Arg{regular expression} \Arg{token list} \meta{seq~var} % \cs{regex_split:nnNTF} \Arg{regular expression} \Arg{token list} \meta{seq~var} \Arg{true code} \Arg{false code} @@ -740,7 +758,10 @@ % \section{Replacement} % % \begin{function}[noTF, added = 2017-05-26] -% {\regex_replace_once:nnN,\regex_replace_once:NnN} +% { +% \regex_replace_once:nnN,\regex_replace_once:nVN, +% \regex_replace_once:NnN,\regex_replace_once:NVN +% } % \begin{syntax} % \cs{regex_replace_once:nnN} \Arg{regular expression} \Arg{replacement} \meta{tl~var} % \cs{regex_replace_once:nnNTF} \Arg{regular expression} \Arg{replacement} \meta{tl~var} \Arg{true code} \Arg{false code} @@ -754,7 +775,10 @@ % \end{function} % % \begin{function}[noTF, added = 2017-05-26] -% {\regex_replace_all:nnN, \regex_replace_all:NnN} +% { +% \regex_replace_all:nnN,\regex_replace_all:nVN, +% \regex_replace_all:NnN,\regex_replace_all:NVN +% } % \begin{syntax} % \cs{regex_replace_all:nnN} \Arg{regular expression} \Arg{replacement} \meta{tl~var} % \cs{regex_replace_all:nnNTF} \Arg{regular expression} \Arg{replacement} \meta{tl~var} \Arg{true code} \Arg{false code} @@ -6518,7 +6542,11 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}[TF]{\regex_match:nn, \regex_match:Nn} +% \begin{macro}[TF] +% { +% \regex_match:nn, \regex_match:nV, +% \regex_match:Nn, \regex_match:NV +% } % Those conditionals are based on a common auxiliary defined % later. Its first argument builds the \textsc{nfa} corresponding to % the regex, and the second argument is the query token list. Once we @@ -6530,21 +6558,26 @@ \@@_if_match:nn { \@@_build:n {#1} } {#2} \@@_return: } +\prg_generate_conditional_variant:Nnn \regex_match:nn { nV } { T , F , TF } \prg_new_protected_conditional:Npnn \regex_match:Nn #1#2 { T , F , TF } { \@@_if_match:nn { \@@_build:N #1 } {#2} \@@_return: } +\prg_generate_conditional_variant:Nnn \regex_match:Nn { NV } { T , F , TF } % \end{macrocode} % \end{macro} % -% \begin{macro}{\regex_count:nnN, \regex_count:NnN} +% \begin{macro} +% {\regex_count:nnN, \regex_count:nVN, \regex_count:NnN, \regex_count:NVN} % Again, use an auxiliary whose first argument builds the \textsc{nfa}. % \begin{macrocode} \cs_new_protected:Npn \regex_count:nnN #1 { \@@_count:nnN { \@@_build:n {#1} } } \cs_new_protected:Npn \regex_count:NnN #1 { \@@_count:nnN { \@@_build:N #1 } } +\cs_generate_variant:Nn \regex_count:nnN { nV } +\cs_generate_variant:Nn \regex_count:NnN { NV } % \end{macrocode} % \end{macro} % @@ -6573,11 +6606,16 @@ % % \begin{macro}[noTF] % { -% \regex_extract_once:nnN, \regex_extract_once:NnN, -% \regex_extract_all:nnN, \regex_extract_all:NnN, -% \regex_replace_once:nnN, \regex_replace_once:NnN, -% \regex_replace_all:nnN, \regex_replace_all:NnN, -% \regex_split:nnN, \regex_split:NnN +% \regex_extract_once:nnN, \regex_extract_once:nVN, +% \regex_extract_once:NnN, \regex_extract_once:NVN, +% \regex_extract_all:nnN, \regex_extract_all:nVN, +% \regex_extract_all:NnN, \regex_extract_all:NVN, +% \regex_replace_once:nnN, \regex_replace_once:nVN, +% \regex_replace_once:NnN, \regex_replace_once:NVN, +% \regex_replace_all:nnN, \regex_replace_all:nVN, +% \regex_replace_all:NnN, \regex_replace_all:NVN, +% \regex_split:NnN, \regex_split:NVN, +% \regex_split:nnN, \regex_split:nVN % } % We define here $40$ user functions, following a common pattern in % terms of \texttt{:nnN} auxiliaries, defined in the coming @@ -6595,6 +6633,11 @@ { #1 { \@@_build:n {##1} } {##2} ##3 \@@_return: } \prg_new_protected_conditional:Npnn #3 ##1##2##3 { T , F , TF } { #1 { \@@_build:N ##1 } {##2} ##3 \@@_return: } + \cs_generate_variant:Nn #2 { nV } + \prg_generate_conditional_variant:Nnn #2 { nV } { T , F , TF } + \cs_generate_variant:Nn #3 { NV } + \prg_generate_conditional_variant:Nnn #3 { NV } { T , F , TF } + } \@@_tmp:w \@@_extract_once:nnN \regex_extract_once:nnN \regex_extract_once:NnN diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx index ad14896d42..d523320f4e 100644 --- a/macros/latex/contrib/l3kernel/l3seq.dtx +++ b/macros/latex/contrib/l3kernel/l3seq.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -126,8 +126,12 @@ % % \begin{function}[added = 2011-08-15, updated = 2012-07-02] % { -% \seq_set_split:Nnn , \seq_set_split:NnV , -% \seq_gset_split:Nnn, \seq_gset_split:NnV +% \seq_set_split:Nnn , +% \seq_set_split:NVn , \seq_set_split:NnV , \seq_set_split:NVV , +% \seq_set_split:Nnx , \seq_set_split:Nxx , +% \seq_gset_split:Nnn, +% \seq_gset_split:NVn , \seq_gset_split:NnV, \seq_gset_split:NVV, +% \seq_gset_split:Nnx , \seq_gset_split:Nxx % } % \begin{syntax} % \cs{seq_set_split:Nnn} \meta{seq~var} \Arg{delimiter} \Arg{token list} @@ -304,7 +308,11 @@ % the special marker \cs{q_no_value}. % \end{function} % -% \begin{function}[added = 2014-07-17, EXP]{\seq_item:Nn, \seq_item:cn} +% \begin{function}[added = 2014-07-17, EXP] +% { +% \seq_item:Nn, \seq_item:NV, \seq_item:Ne, +% \seq_item:cn, \seq_item:cV, \seq_item:ce +% } % \begin{syntax} % \cs{seq_item:Nn} \meta{seq~var} \Arg{integer expression} % \end{syntax} @@ -463,8 +471,10 @@ % % \begin{function} % { -% \seq_remove_all:Nn , \seq_remove_all:cn, -% \seq_gremove_all:Nn, \seq_gremove_all:cn +% \seq_remove_all:Nn, \seq_remove_all:NV, \seq_remove_all:Nx, +% \seq_remove_all:cn, \seq_remove_all:cV, \seq_remove_all:cx, +% \seq_gremove_all:Nn, \seq_gremove_all:NV, \seq_gremove_all:Nx, +% \seq_gremove_all:cn, \seq_gremove_all:cV, \seq_gremove_all:cx % } % \begin{syntax} % \cs{seq_remove_all:Nn} \meta{seq~var} \Arg{item} @@ -1266,8 +1276,12 @@ % % \begin{macro} % { -% \seq_set_split:Nnn , \seq_set_split:NnV , -% \seq_gset_split:Nnn, \seq_gset_split:NnV +% \seq_set_split:Nnn , +% \seq_set_split:NVn , \seq_set_split:NnV , \seq_set_split:NVV , +% \seq_set_split:Nnx , \seq_set_split:Nxx , +% \seq_gset_split:Nnn, +% \seq_gset_split:NVn , \seq_gset_split:NnV, \seq_gset_split:NVV, +% \seq_gset_split:Nnx, \seq_gset_split:Nxx % } % \begin{macro} % { @@ -1340,8 +1354,8 @@ } \cs_new:Npn \@@_set_split:w #1 \@@_set_split_end: { \@@_wrap_item:n {#1} } -\cs_generate_variant:Nn \seq_set_split:Nnn { NnV } -\cs_generate_variant:Nn \seq_gset_split:Nnn { NnV } +\cs_generate_variant:Nn \seq_set_split:Nnn { NV , NnV , NVV , Nnx , Nxx } +\cs_generate_variant:Nn \seq_gset_split:Nnn { NV , NnV , NVV , Nnx , Nxx } \cs_generate_variant:Nn \seq_set_split_keep_spaces:Nnn { NnV } \cs_generate_variant:Nn \seq_gset_split_keep_spaces:Nnn { NnV } % \end{macrocode} @@ -1499,9 +1513,17 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\seq_remove_all:Nn, \seq_remove_all:cn} +% \begin{macro} +% { +% \seq_remove_all:Nn, \seq_remove_all:NV, \seq_remove_all:Nx, +% \seq_remove_all:cn, \seq_remove_all:cV, \seq_remove_all:cx +% } % \UnitTested -% \begin{macro}{\seq_gremove_all:Nn, \seq_gremove_all:cn} +% \begin{macro} +% { +% \seq_gremove_all:Nn, \seq_gremove_all:NV, \seq_gremove_all:Nx, +% \seq_gremove_all:cn, \seq_gremove_all:cV, \seq_gremove_all:cx +% } % \UnitTested % \begin{macro}{\@@_remove_all_aux:NNn} % The idea of the code here is to avoid a relatively expensive addition of @@ -1542,8 +1564,8 @@ #1 #2 {#2} \@@_pop_item_def: } -\cs_generate_variant:Nn \seq_remove_all:Nn { c } -\cs_generate_variant:Nn \seq_gremove_all:Nn { c } +\cs_generate_variant:Nn \seq_remove_all:Nn { NV , Nx , c , cV , cx } +\cs_generate_variant:Nn \seq_gremove_all:Nn { NV , Nx , c , cV , cx } % \end{macrocode} % \end{macro} % \end{macro} @@ -2047,7 +2069,8 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\seq_item:Nn, \seq_item:cn} +% \begin{macro} +% {\seq_item:Nn, \seq_item:NV, \seq_item:Ne, \seq_item:cn, \seq_item:cV, \seq_item:ce} % \begin{macro}{\@@_item:wNn, \@@_item:nN, \@@_item:nwn} % The idea here is to find the offset of the item from the left, then use % a loop to grab the correct item. If the resulting offset is too large, @@ -2077,7 +2100,7 @@ { \prg_break:n { \exp_not:n {#3} } } { \exp_args:Nf \@@_item:nwn { \int_eval:n { #1 - 1 } } } } -\cs_generate_variant:Nn \seq_item:Nn { c } +\cs_generate_variant:Nn \seq_item:Nn { NV , Ne , c , cV , ce } % \end{macrocode} % \end{macro} % \end{macro} diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx index 35d380e58b..7ce22afb7e 100644 --- a/macros/latex/contrib/l3kernel/l3skip.dtx +++ b/macros/latex/contrib/l3kernel/l3skip.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx index 99efb3e9c2..b92eddbb35 100644 --- a/macros/latex/contrib/l3kernel/l3sort.dtx +++ b/macros/latex/contrib/l3kernel/l3sort.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx index 6bb0b39f85..6c0b2145e2 100644 --- a/macros/latex/contrib/l3kernel/l3str-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx index ed7e39d816..c2498436cb 100644 --- a/macros/latex/contrib/l3kernel/l3str.dtx +++ b/macros/latex/contrib/l3kernel/l3str.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -283,7 +283,10 @@ % \end{function} % % \begin{function}[added = 2013-07-24, updated = 2022-03-21, EXP, noTF] -% {\str_case:nn, \str_case:Vn, \str_case:Nn, \str_case:on, \str_case:nV, \str_case:nv} +% { +% \str_case:nn, \str_case:Vn, \str_case:Nn, \str_case:on, \str_case:en, +% \str_case:nV, \str_case:nv +% } % \begin{syntax} % \cs{str_case:nnTF} \Arg{test string} \\ % ~~|{| \\ @@ -1228,7 +1231,10 @@ % \end{macro} % % \begin{macro}[EXP, noTF] -% {\str_case:nn, \str_case:Vn, \str_case:Nn, \str_case:on, \str_case:nV, \str_case:nv, \str_case_e:nn} +% { +% \str_case:nn, \str_case:Vn, \str_case:Nn, \str_case:on, \str_case:en, \str_case:nV, \str_case:nv, +% \str_case_e:nn +% } % \begin{macro}[EXP]{\@@_case:nnTF, \@@_case_e:nnTF} % \begin{macro}[EXP] % {\@@_case:nw, \@@_case_e:nw, \@@_case_end:nw} @@ -1257,7 +1263,7 @@ } \cs_new:Npn \@@_case:nnTF #1#2#3#4 { \@@_case:nw {#1} #2 {#1} { } \s_@@_mark {#3} \s_@@_mark {#4} \s_@@_stop } -\cs_generate_variant:Nn \str_case:nn { V , o , nV , nv } +\cs_generate_variant:Nn \str_case:nn { V , o , e , nV , nv } \prg_generate_conditional_variant:Nnn \str_case:nn { V , o , nV , nv } { T , F , TF } \cs_new_eq:NN \str_case:Nn \str_case:Vn diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf index a8a44d7cfc..c3025741c6 100644 Binary files a/macros/latex/contrib/l3kernel/l3styleguide.pdf and b/macros/latex/contrib/l3kernel/l3styleguide.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex index dbb84004aa..d241392fb9 100644 --- a/macros/latex/contrib/l3kernel/l3styleguide.tex +++ b/macros/latex/contrib/l3kernel/l3styleguide.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2023-08-11} +\date{Released 2023-08-29} \begin{document} diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf index dbf641ceaf..ebc9bcab2a 100644 Binary files a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf and b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex index 18a715e578..42e1b4c263 100644 --- a/macros/latex/contrib/l3kernel/l3syntax-changes.tex +++ b/macros/latex/contrib/l3kernel/l3syntax-changes.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2023-08-11} +\date{Released 2023-08-29} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx index 5ff23b4775..5717e60e73 100644 --- a/macros/latex/contrib/l3kernel/l3sys.dtx +++ b/macros/latex/contrib/l3kernel/l3sys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -79,6 +79,11 @@ % \end{texnote} % \end{variable} % +% \begin{variable}[added = 2023-08-27]{\c_sys_timestamp_str} +% The timestamp for the current job: the format is as described for +% \cs{file_timestamp:n}. +% \end{variable} +% % \section{Engine} % % \begin{function}[added = 2015-09-07, EXP, pTF] @@ -928,6 +933,23 @@ end % \end{macrocode} % \end{variable} % +% \begin{variable}{\c_sys_timestamp_str} +% A simple expansion: Lua\TeX{} chokes if we use \tn{pdffeedback} here, +% hence the direct use of Lua. Notice that the function there is in the +% \texttt{pdf} library but isn actually tied to PDF. +% \begin{macrocode} +\@@_everyjob:n + { + \str_const:Nx \c_sys_timestamp_str + { + \cs_if_exist:NTF \tex_directlua:D + { \tex_directlua:D { tex.print(pdf.getcreationdate()) } } + { \tex_creationdate:D } + } + } +% \end{macrocode} +% \end{variable} +% % \subsubsection{Random numbers} % % \begin{macro}[EXP]{\sys_rand_seed:} diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf index 23f7fa7394..c34ddb6bd8 100644 Binary files a/macros/latex/contrib/l3kernel/l3term-glossary.pdf and b/macros/latex/contrib/l3kernel/l3term-glossary.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex index 9258e215a0..e0a5780cb8 100644 --- a/macros/latex/contrib/l3kernel/l3term-glossary.tex +++ b/macros/latex/contrib/l3kernel/l3term-glossary.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2023-08-11} +\date{Released 2023-08-29} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx index 245ea5b4fa..07a79e2bb0 100644 --- a/macros/latex/contrib/l3kernel/l3text-case.dtx +++ b/macros/latex/contrib/l3kernel/l3text-case.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text-map.dtx b/macros/latex/contrib/l3kernel/l3text-map.dtx index 9d083adf04..b2372d446f 100644 --- a/macros/latex/contrib/l3kernel/l3text-map.dtx +++ b/macros/latex/contrib/l3kernel/l3text-map.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx index 450c5b748f..35d180d042 100644 --- a/macros/latex/contrib/l3kernel/l3text-purify.dtx +++ b/macros/latex/contrib/l3kernel/l3text-purify.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx index a946fad845..016c5579a1 100644 --- a/macros/latex/contrib/l3kernel/l3text.dtx +++ b/macros/latex/contrib/l3kernel/l3text.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx index 1a484457db..385b3db8ac 100644 --- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx +++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx index 08ed9216ef..06226fd7ba 100644 --- a/macros/latex/contrib/l3kernel/l3tl.dtx +++ b/macros/latex/contrib/l3kernel/l3tl.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -177,10 +177,10 @@ % % \begin{function} % { -% \tl_put_left:Nn, \tl_put_left:NV, \tl_put_left:No, \tl_put_left:Nx, -% \tl_put_left:cn, \tl_put_left:cV, \tl_put_left:co, \tl_put_left:cx, -% \tl_gput_left:Nn, \tl_gput_left:NV, \tl_gput_left:No, \tl_gput_left:Nx, -% \tl_gput_left:cn, \tl_gput_left:cV, \tl_gput_left:co, \tl_gput_left:cx +% \tl_put_left:Nn, \tl_put_left:NV, \tl_put_left:Nv, \tl_put_left:No, \tl_put_left:Nx, +% \tl_put_left:cn, \tl_put_left:cV, \tl_put_left:cv, \tl_put_left:co, \tl_put_left:cx, +% \tl_gput_left:Nn, \tl_gput_left:NV, \tl_gput_left:Nv, \tl_gput_left:No, \tl_gput_left:Nx, +% \tl_gput_left:cn, \tl_gput_left:cV, \tl_gput_left:cv, \tl_gput_left:co, \tl_gput_left:cx % } % \begin{syntax} % \cs{tl_put_left:Nn} \meta{tl~var} \Arg{tokens} @@ -191,12 +191,10 @@ % % \begin{function} % { -% \tl_put_right:Nn, \tl_put_right:NV, \tl_put_right:No, \tl_put_right:Nx, -% \tl_put_right:cn, \tl_put_right:cV, \tl_put_right:co, \tl_put_right:cx, -% \tl_gput_right:Nn, \tl_gput_right:NV, \tl_gput_right:No, -% \tl_gput_right:Nx, -% \tl_gput_right:cn, \tl_gput_right:cV, \tl_gput_right:co, -% \tl_gput_right:cx +% \tl_put_right:Nn, \tl_put_right:NV, \tl_put_right:Nv, \tl_put_right:No, \tl_put_right:Nx, +% \tl_put_right:cn, \tl_put_right:cV, \tl_put_right:cv, \tl_put_right:co, \tl_put_right:cx, +% \tl_gput_right:Nn, \tl_gput_right:NV, \tl_gput_right:Nv, \tl_gput_right:No, \tl_gput_right:Nx, +% \tl_gput_right:cn, \tl_gput_right:cV, \tl_gput_right:cv, \tl_gput_right:co, \tl_gput_right:cx % } % \begin{syntax} % \cs{tl_put_right:Nn} \meta{tl~var} \Arg{tokens} @@ -230,7 +228,7 @@ % \end{function} % % \begin{function}[added = 2012-05-24, updated = 2012-06-05, EXP,pTF] -% {\tl_if_empty:n, \tl_if_empty:V, \tl_if_empty:o} +% {\tl_if_empty:n, \tl_if_empty:V, \tl_if_empty:o, \tl_if_empty:e} % \begin{syntax} % \cs{tl_if_empty_p:n} \Arg{token list} % \cs{tl_if_empty:nTF} \Arg{token list} \Arg{true code} \Arg{false code} @@ -270,7 +268,8 @@ % category codes are not important. % \end{function} % -% \begin{function}[TF]{\tl_if_eq:nn} +% \begin{function}[TF] +% {\tl_if_eq:nn, \tl_if_eq:Vn, \tl_if_eq:nV, \tl_if_eq:xn, \tl_if_eq:nx} % \begin{syntax} % \cs{tl_if_eq:nnTF} \Arg{token list_1} \Arg{token list_2} \Arg{true code} \Arg{false code} % \end{syntax} @@ -281,7 +280,7 @@ % or \cs{str_if_eq:nnTF} if category codes are not important. % \end{function} % -% \begin{function}[TF]{\tl_if_in:Nn, \tl_if_in:cn} +% \begin{function}[TF]{\tl_if_in:Nn, \tl_if_in:NV, \tl_if_in:cn, \tl_if_in:cV} % \begin{syntax} % \cs{tl_if_in:NnTF} \meta{tl~var} \Arg{token list} \Arg{true code} \Arg{false code} % \end{syntax} @@ -293,7 +292,7 @@ % \end{function} % % \begin{function}[TF] -% {\tl_if_in:nn, \tl_if_in:Vn, \tl_if_in:on, \tl_if_in:no} +% {\tl_if_in:nn, \tl_if_in:Vn, \tl_if_in:nV, \tl_if_in:on, \tl_if_in:no} % \begin{syntax} % \cs{tl_if_in:nnTF} \Arg{token list_1} \Arg{token list_2} \Arg{true code} \Arg{false code} % \end{syntax} @@ -438,7 +437,8 @@ % % \subsection{Using token lists} % -% \begin{function}[EXP]{\tl_to_str:n, \tl_to_str:o, \tl_to_str:V, \tl_to_str:v} +% \begin{function}[EXP] +% {\tl_to_str:n, \tl_to_str:o, \tl_to_str:V, \tl_to_str:v, \tl_to_str:e} % \begin{syntax} % \cs{tl_to_str:n} \Arg{token list} % \end{syntax} @@ -536,7 +536,7 @@ % \end{function} % % \begin{function}[updated = 2012-01-08, EXP] -% {\tl_reverse:n, \tl_reverse:V, \tl_reverse:o} +% {\tl_reverse:n, \tl_reverse:V, \tl_reverse:o, \tl_reverse:f, \tl_reverse:e} % \begin{syntax} % \cs{tl_reverse:n} \Arg{token list} % \end{syntax} @@ -1073,10 +1073,14 @@ % % \begin{function}[updated = 2011-08-11] % { -% \tl_replace_once:Nnn, \tl_replace_once:Nxx, -% \tl_replace_once:cnn, \tl_replace_once:cxx, -% \tl_greplace_once:Nnn, \tl_greplace_once:Nxx -% \tl_greplace_once:cnn, \tl_greplace_once:cxx +% \tl_replace_once:Nnn, \tl_replace_once:NVn, \tl_replace_once:NnV, +% \tl_replace_once:Nxn, \tl_replace_once:Nnx, \tl_replace_once:Nxx, +% \tl_replace_once:cnn, \tl_replace_once:cVn, \tl_replace_once:cnV, +% \tl_replace_once:cxn, \tl_replace_once:cnx, \tl_replace_once:cxx, +% \tl_greplace_once:Nnn, \tl_greplace_once:NVn, \tl_rgeplace_once:NnV, +% \tl_greplace_once:Nxn, \tl_greplace_once:Nnx, \tl_greplace_once:Nxx, +% \tl_greplace_once:cnn, \tl_greplace_once:cVn, \tl_greplace_once:cnV, +% \tl_greplace_once:cxn, \tl_greplace_once:cnx, \tl_greplace_once:cxx % } % \begin{syntax} % \cs{tl_replace_once:Nnn} \meta{tl~var} \Arg{old tokens} \Arg{new tokens} @@ -1090,10 +1094,14 @@ % % \begin{function}[updated = 2011-08-11] % { -% \tl_replace_all:Nnn, \tl_replace_all:Nxx, -% \tl_replace_all:cnn, \tl_replace_all:cxx -% \tl_greplace_all:Nnn, \tl_greplace_all:Nxx, -% \tl_greplace_all:cnn, \tl_greplace_all:cxx +% \tl_replace_all:Nnn, \tl_replace_all:NVn, \tl_replace_all:NnV, +% \tl_replace_all:Nxn, \tl_replace_all:Nnx, \tl_replace_all:Nxx, +% \tl_replace_all:cnn, \tl_replace_all:cVn, \tl_replace_all:cnV, +% \tl_replace_all:cxn, \tl_replace_all:cnx, \tl_replace_all:cxx, +% \tl_greplace_all:Nnn, \tl_greplace_all:NVn, \tl_greplace_all:cnV, +% \tl_greplace_all:Nxn, \tl_greplace_all:Nnx, \tl_greplace_all:Nxx, +% \tl_greplace_all:cnn, \tl_greplace_all:cVn, \tl_greplace_all:cnV, +% \tl_greplace_all:cxn, \tl_greplace_all:cnx, \tl_greplace_all:cxx % } % \begin{syntax} % \cs{tl_replace_all:Nnn} \meta{tl~var} \Arg{old tokens} \Arg{new tokens} @@ -1111,10 +1119,10 @@ % % \begin{function}[updated = 2011-08-11] % { -% \tl_remove_once:Nn, \tl_remove_once:Nx, -% \tl_remove_once:cn, \tl_remove_once:cx, -% \tl_gremove_once:Nn, \tl_gremove_once:Nx -% \tl_gremove_once:cn, \tl_gremove_once:cx +% \tl_remove_once:Nn, \tl_remove_once:NV, \tl_remove_once:Nx, +% \tl_remove_once:cn, \tl_remove_once:cV, \tl_remove_once:cx, +% \tl_gremove_once:Nn, \tl_gremove_once:NV, \tl_gremove_once:Nx +% \tl_gremove_once:cn, \tl_gremove_once:cV, \tl_gremove_once:cx % } % \begin{syntax} % \cs{tl_remove_once:Nn} \meta{tl~var} \Arg{tokens} @@ -1127,10 +1135,10 @@ % % \begin{function}[updated = 2011-08-11] % { -% \tl_remove_all:Nn, \tl_remove_all:Nx, -% \tl_remove_all:cn, \tl_remove_all:cx, -% \tl_gremove_all:Nn, \tl_gremove_all:Nx -% \tl_gremove_all:cn, \tl_gremove_all:cx +% \tl_remove_all:Nn, \tl_remove_all:NV, \tl_remove_all:Nx, +% \tl_remove_all:cn, \tl_remove_all:cV, \tl_remove_all:cx, +% \tl_gremove_all:Nn, \tl_gremove_all:NV, \tl_gremove_all:Nx +% \tl_gremove_all:cn, \tl_gremove_all:cV, \tl_gremove_all:cx % } % \begin{syntax} % \cs{tl_remove_all:Nn} \meta{tl~var} \Arg{tokens} @@ -1161,10 +1169,10 @@ % % \begin{function}[updated = 2015-08-11] % { -% \tl_set_rescan:Nnn, \tl_set_rescan:Nno, \tl_set_rescan:Nnx, -% \tl_set_rescan:cnn, \tl_set_rescan:cno, \tl_set_rescan:cnx, -% \tl_gset_rescan:Nnn, \tl_gset_rescan:Nno, \tl_gset_rescan:Nnx, -% \tl_gset_rescan:cnn, \tl_gset_rescan:cno, \tl_gset_rescan:cnx +% \tl_set_rescan:Nnn, \tl_set_rescan:NnV, \tl_set_rescan:Nno, \tl_set_rescan:Nnx, +% \tl_set_rescan:cnn, \tl_set_rescan:cnV, \tl_set_rescan:cno, \tl_set_rescan:cnx, +% \tl_gset_rescan:Nnn, \tl_gset_rescan:NnV, \tl_gset_rescan:Nno, \tl_gset_rescan:Nnx, +% \tl_gset_rescan:cnn, \tl_gset_rescan:cnV, \tl_gset_rescan:cno, \tl_gset_rescan:cnx % } % \begin{syntax} % \cs{tl_set_rescan:Nnn} \meta{tl~var} \Arg{setup} \Arg{tokens} @@ -1488,13 +1496,13 @@ % % \begin{macro} % { -% \tl_put_left:Nn, \tl_put_left:NV, \tl_put_left:No, \tl_put_left:Nx, -% \tl_put_left:cn, \tl_put_left:cV, \tl_put_left:co, \tl_put_left:cx +% \tl_put_left:Nn, \tl_put_left:NV, \tl_put_left:Nv, \tl_put_left:No, \tl_put_left:Nx, +% \tl_put_left:cn, \tl_put_left:cV, \tl_put_left:cv, \tl_put_left:co, \tl_put_left:cx % } % \begin{macro} % { -% \tl_gput_left:Nn, \tl_gput_left:NV, \tl_gput_left:No, \tl_gput_left:Nx, -% \tl_gput_left:cn, \tl_gput_left:cV, \tl_gput_left:co, \tl_gput_left:cx +% \tl_gput_left:Nn, \tl_gput_left:NV, \tl_gput_left:Nv, \tl_gput_left:No, \tl_gput_left:Nx, +% \tl_gput_left:cn, \tl_gput_left:cV, \tl_gput_left:cv, \tl_gput_left:co, \tl_gput_left:cx % } % Adding to the left is done directly to gain a little performance. % \begin{macrocode} @@ -1508,6 +1516,11 @@ \__kernel_tl_set:Nx #1 { \exp_not:V #2 \__kernel_exp_not:w \exp_after:wN {#1} } } +\cs_new_protected:Npn \tl_put_left:Nv #1#2 + { + \__kernel_tl_set:Nx #1 + { \exp_not:v {#2} \__kernel_exp_not:w \exp_after:wN {#1} } + } \cs_new_protected:Npn \tl_put_left:No #1#2 { \__kernel_tl_set:Nx #1 @@ -1528,6 +1541,11 @@ \__kernel_tl_gset:Nx #1 { \exp_not:V #2 \__kernel_exp_not:w \exp_after:wN {#1} } } +\cs_new_protected:Npn \tl_gput_left:Nv #1#2 + { + \__kernel_tl_gset:Nx #1 + { \exp_not:v {#2} \__kernel_exp_not:w \exp_after:wN {#1} } + } \cs_new_protected:Npn \tl_gput_left:No #1#2 { \__kernel_tl_gset:Nx #1 @@ -1540,10 +1558,12 @@ { \__kernel_tl_gset:Nx #1 { #2 \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_generate_variant:Nn \tl_put_left:Nn { c } \cs_generate_variant:Nn \tl_put_left:NV { c } +\cs_generate_variant:Nn \tl_put_left:Nv { c } \cs_generate_variant:Nn \tl_put_left:No { c } \cs_generate_variant:Nn \tl_put_left:Nx { c } \cs_generate_variant:Nn \tl_gput_left:Nn { c } \cs_generate_variant:Nn \tl_gput_left:NV { c } +\cs_generate_variant:Nn \tl_gput_left:NV { c } \cs_generate_variant:Nn \tl_gput_left:No { c } \cs_generate_variant:Nn \tl_gput_left:Nx { c } % \end{macrocode} @@ -1552,14 +1572,14 @@ % % \begin{macro} % { -% \tl_put_right:Nn, \tl_put_right:NV, \tl_put_right:No, \tl_put_right:Nx, -% \tl_put_right:cn, \tl_put_right:cV, \tl_put_right:co, \tl_put_right:cx +% \tl_put_right:Nn, \tl_put_right:NV, \tl_put_right:Nv, \tl_put_right:No, \tl_put_right:Nx, +% \tl_put_right:cn, \tl_put_right:cV, \tl_put_right:cv, \tl_put_right:co, \tl_put_right:cx % } % \begin{macro} % { -% \tl_gput_right:Nn, \tl_gput_right:NV, \tl_gput_right:No, +% \tl_gput_right:Nn, \tl_gput_right:NV, \tl_gput_right:Nv, \tl_gput_right:No, % \tl_gput_right:Nx, -% \tl_gput_right:cn, \tl_gput_right:cV, \tl_gput_right:co, +% \tl_gput_right:cn, \tl_gput_right:cV, \tl_gput_right:cv, \tl_gput_right:co, % \tl_gput_right:cx % } % The same on the right. @@ -1571,6 +1591,11 @@ \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:V #2 } } +\cs_new_protected:Npn \tl_put_right:Nv #1#2 + { + \__kernel_tl_set:Nx #1 + { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:v {#2} } + } \cs_new_protected:Npn \tl_put_right:No #1#2 { \__kernel_tl_set:Nx #1 @@ -1588,6 +1613,11 @@ \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:V #2 } } +\cs_new_protected:Npn \tl_gput_right:Nv #1#2 + { + \__kernel_tl_gset:Nx #1 + { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:v {#2} } + } \cs_new_protected:Npn \tl_gput_right:No #1#2 { \__kernel_tl_gset:Nx #1 @@ -1600,10 +1630,12 @@ { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} #2 } } \cs_generate_variant:Nn \tl_put_right:Nn { c } \cs_generate_variant:Nn \tl_put_right:NV { c } +\cs_generate_variant:Nn \tl_put_right:Nv { c } \cs_generate_variant:Nn \tl_put_right:No { c } \cs_generate_variant:Nn \tl_put_right:Nx { c } \cs_generate_variant:Nn \tl_gput_right:Nn { c } \cs_generate_variant:Nn \tl_gput_right:NV { c } +\cs_generate_variant:Nn \tl_gput_right:Nv { c } \cs_generate_variant:Nn \tl_gput_right:No { c } \cs_generate_variant:Nn \tl_gput_right:Nx { c } % \end{macrocode} @@ -1653,13 +1685,13 @@ % % \begin{macro} % { -% \tl_set_rescan:Nnn, \tl_set_rescan:Nno, \tl_set_rescan:Nnx, -% \tl_set_rescan:cnn, \tl_set_rescan:cno, \tl_set_rescan:cnx +% \tl_set_rescan:Nnn, \tl_set_rescan:NnV, \tl_set_rescan:Nno, \tl_set_rescan:Nnx, +% \tl_set_rescan:cnn, \tl_set_rescan:cnV, \tl_set_rescan:cno, \tl_set_rescan:cnx % } % \begin{macro} % { -% \tl_gset_rescan:Nnn, \tl_gset_rescan:Nno, \tl_gset_rescan:Nnx, -% \tl_gset_rescan:cnn, \tl_gset_rescan:cno, \tl_gset_rescan:cnx +% \tl_gset_rescan:Nnn, \tl_gset_rescan:NnV, \tl_gset_rescan:Nno, \tl_gset_rescan:Nnx, +% \tl_gset_rescan:cnn, \tl_gset_rescan:cnV, \tl_gset_rescan:cno, \tl_gset_rescan:cnx % } % \begin{macro}{\tl_rescan:nn, \tl_rescan:nV} % \begin{macro}{\@@_rescan_aux:} @@ -1758,10 +1790,10 @@ \group_end: #1 #2 {#3} } -\cs_generate_variant:Nn \tl_set_rescan:Nnn { Nno , Nnx } -\cs_generate_variant:Nn \tl_set_rescan:Nnn { c , cno , cnx } -\cs_generate_variant:Nn \tl_gset_rescan:Nnn { Nno , Nnx } -\cs_generate_variant:Nn \tl_gset_rescan:Nnn { c , cno } +\cs_generate_variant:Nn \tl_set_rescan:Nnn { NnV , Nno , Nnx } +\cs_generate_variant:Nn \tl_set_rescan:Nnn { c , cnV , cno , cnx } +\cs_generate_variant:Nn \tl_gset_rescan:Nnn { NnV , Nno , Nnx } +\cs_generate_variant:Nn \tl_gset_rescan:Nnn { c , cnV , cno , cnx } % \end{macrocode} % \end{macro} % \end{macro} @@ -1879,10 +1911,34 @@ % % \subsection{Modifying token list variables} % -% \begin{macro}{\tl_replace_all:Nnn, \tl_replace_all:cnn} -% \begin{macro}{\tl_greplace_all:Nnn, \tl_greplace_all:cnn} -% \begin{macro}{\tl_replace_once:Nnn, \tl_replace_once:cnn} -% \begin{macro}{\tl_greplace_once:Nnn, \tl_greplace_once:cnn} +% \begin{macro} +% { +% \tl_replace_all:Nnn, \tl_replace_all:NVn, \tl_replace_all:NnV, +% \tl_replace_all:Nxn, \tl_replace_all:Nnx, \tl_replace_all:Nxx, +% \tl_replace_all:cnn, \tl_replace_all:cVn, \tl_replace_all:cnV, +% \tl_replace_all:cxn, \tl_replace_all:cnx, \tl_replace_all:cxx +% } +% \begin{macro} +% { +% \tl_greplace_all:Nnn, \tl_greplace_all:NVn, \tl_greplace_all:NnV, +% \tl_greplace_all:Nxn, \tl_greplace_all:Nnx, \tl_greplace_all:Nxx, +% \tl_greplace_all:cnn, \tl_greplace_all:cVn, \tl_greplace_all:cnV, +% \tl_greplace_all:cxn, \tl_greplace_all:cnx, \tl_greplace_all:cxx +% } +% \begin{macro} +% { +% \tl_replace_once:Nnn, \tl_replace_once:NVn, \tl_replace_once:NnV, +% \tl_replace_once:Nxn, \tl_replace_once:Nnx, \tl_replace_once:Nxx, +% \tl_replace_once:cnn, \tl_replace_once:cVn, \tl_replace_once:cnV, +% \tl_replace_once:cxn, \tl_replace_once:cnx, \tl_replace_once:cxx +% } +% \begin{macro} +% { +% \tl_greplace_once:Nnn, \tl_greplace_once:NVn, \tl_replace_once:NnV, +% \tl_greplace_once:Nxn, \tl_greplace_once:Nnx, \tl_greplace_once:Nxx, +% \tl_greplace_once:cnn, \tl_greplace_once:cVn, \tl_replace_once:cnV, +% \tl_greplace_once:cxn, \tl_greplace_once:cnx, \tl_greplace_once:cxx +% } % All of the \texttt{replace} functions call \cs{@@_replace:NnNNNnn} % with appropriate arguments. The first two arguments are explained % later. The next controls whether the replacement function calls @@ -1902,10 +1958,14 @@ { \@@_replace:NnNNNnn \q_@@_mark ? \@@_replace_next:w \__kernel_tl_set:Nx } \cs_new_protected:Npn \tl_greplace_all:Nnn { \@@_replace:NnNNNnn \q_@@_mark ? \@@_replace_next:w \__kernel_tl_gset:Nx } -\cs_generate_variant:Nn \tl_replace_once:Nnn { Nxx , c , cxx } -\cs_generate_variant:Nn \tl_greplace_once:Nnn { Nxx , c , cxx } -\cs_generate_variant:Nn \tl_replace_all:Nnn { Nxx , c , cxx } -\cs_generate_variant:Nn \tl_greplace_all:Nnn { Nxx , c , cxx } +\cs_generate_variant:Nn \tl_replace_once:Nnn + { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } +\cs_generate_variant:Nn \tl_greplace_once:Nnn + { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } +\cs_generate_variant:Nn \tl_replace_all:Nnn + { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } +\cs_generate_variant:Nn \tl_greplace_all:Nnn + { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } % \end{macrocode} % \end{macro} % \end{macro} @@ -2090,30 +2150,46 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\tl_remove_once:Nn, \tl_remove_once:cn} -% \begin{macro}{\tl_gremove_once:Nn, \tl_gremove_once:cn} +% \begin{macro} +% { +% \tl_remove_once:Nn, \tl_remove_once:NV, \tl_remove_once:Nx, +% \tl_remove_once:cn, \tl_remove_once:cV, \tl_remove_once:cx +% } +% \begin{macro} +% { +% \tl_gremove_once:Nn, \tl_gremove_once:NV, \tl_gremove_once:Nx, +% \tl_gremove_once:cn, \tl_gremove_once:cV, \tl_gremove_once:cx +% } % Removal is just a special case of replacement. % \begin{macrocode} \cs_new_protected:Npn \tl_remove_once:Nn #1#2 { \tl_replace_once:Nnn #1 {#2} { } } \cs_new_protected:Npn \tl_gremove_once:Nn #1#2 { \tl_greplace_once:Nnn #1 {#2} { } } -\cs_generate_variant:Nn \tl_remove_once:Nn { Nx , c , cx } -\cs_generate_variant:Nn \tl_gremove_once:Nn { Nx , c , cx } +\cs_generate_variant:Nn \tl_remove_once:Nn { NV , Nx , c , cV , cx } +\cs_generate_variant:Nn \tl_gremove_once:Nn { NV , Nx , c , cV , cx } % \end{macrocode} % \end{macro} % \end{macro} % -% \begin{macro}{\tl_remove_all:Nn, \tl_remove_all:cn} -% \begin{macro}{\tl_gremove_all:Nn, \tl_gremove_all:cn} +% \begin{macro} +% { +% \tl_remove_all:Nn, \tl_remove_all:NV, \tl_remove_all:Nx, +% \tl_remove_all:cn, \tl_remove_all:cV, \tl_remove_all:cx +% } +% \begin{macro} +% { +% \tl_gremove_all:Nn, \tl_gremove_all:NV, \tl_gremove_all:Nx, +% \tl_gremove_all:cn, \tl_gremove_all:cV, \tl_gremove_all:cx +% } % Removal is just a special case of replacement. % \begin{macrocode} \cs_new_protected:Npn \tl_remove_all:Nn #1#2 { \tl_replace_all:Nnn #1 {#2} { } } \cs_new_protected:Npn \tl_gremove_all:Nn #1#2 { \tl_greplace_all:Nnn #1 {#2} { } } -\cs_generate_variant:Nn \tl_remove_all:Nn { Nx , c , cx } -\cs_generate_variant:Nn \tl_gremove_all:Nn { Nx , c , cx } +\cs_generate_variant:Nn \tl_remove_all:Nn { NV , Nx , c , cV , cx } +\cs_generate_variant:Nn \tl_gremove_all:Nn { NV , Nx , c , cV , cx } % \end{macrocode} % \end{macro} % \end{macro} @@ -2137,7 +2213,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}[pTF]{\tl_if_empty:n, \tl_if_empty:V} +% \begin{macro}[pTF]{\tl_if_empty:n, \tl_if_empty:V, \tl_if_empty:e} % The \cs{if:w} triggers the expansion of \cs{tl_to_str:n} which converts the % argument to a string: this is empty if and only if the argument is. Then % |\if:w \scan_stop: ... \scan_stop:| is \texttt{true} if and only if the @@ -2155,7 +2231,7 @@ \fi: } \prg_generate_conditional_variant:Nnn \tl_if_empty:n - { V } { p , TF , T , F } + { V , e } { p , TF , T , F } % \end{macrocode} % \end{macro} % @@ -2252,7 +2328,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}[TF]{\tl_if_eq:nn} +% \begin{macro}[TF]{\tl_if_eq:nn, \tl_if_eq:Vn, \tl_if_eq:nV, \tl_if_eq:xn, \tl_if_eq:nx} % A simple store and compare routine. % \begin{macrocode} \prg_new_protected_conditional:Npnn \tl_if_eq:nn #1#2 { T , F , TF } @@ -2268,10 +2344,11 @@ \prg_return_false: \fi: } +\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { V , nV , x , nx } { TF , T , F } % \end{macrocode} % \end{macro} % -% \begin{macro}[TF]{\tl_if_in:Nn, \tl_if_in:cn} +% \begin{macro}[TF]{\tl_if_in:Nn, \tl_if_in:NV, \tl_if_in:cn, \tl_if_in:cV} % See \cs{tl_if_in:nnTF} for further comments. Here we simply % expand the token list variable and pass it to \cs{tl_if_in:nnTF}. % \begin{macrocode} @@ -2279,11 +2356,11 @@ \cs_new_protected:Npn \tl_if_in:NnF { \exp_args:No \tl_if_in:nnF } \cs_new_protected:Npn \tl_if_in:NnTF { \exp_args:No \tl_if_in:nnTF } \prg_generate_conditional_variant:Nnn \tl_if_in:Nn - { c } { T , F , TF } + { NV , c , cV } { T , F , TF } % \end{macrocode} % \end{macro} % -% \begin{macro}[TF]{\tl_if_in:nn, \tl_if_in:Vn, \tl_if_in:on, \tl_if_in:no} +% \begin{macro}[TF]{\tl_if_in:nn, \tl_if_in:Vn, \tl_if_in:on, \tl_if_in:nV, \tl_if_in:no} % Once more, the test relies on the emptiness test for robustness. % The function \cs{@@_tmp:w} removes tokens until the first occurrence % of |#2|. If this does not appear in |#1|, then the final |#2| is removed, @@ -2313,7 +2390,7 @@ \if_false: } \fi: } \prg_generate_conditional_variant:Nnn \tl_if_in:nn - { V , o , no } { T , F , TF } + { V , o , nV , no } { T , F , TF } % \end{macrocode} % \end{macro} % @@ -2557,10 +2634,10 @@ % % \subsection{Using token lists} % -% \begin{macro}{\tl_to_str:n, \tl_to_str:o, \tl_to_str:V, \tl_to_str:v} +% \begin{macro}{\tl_to_str:n, \tl_to_str:o, \tl_to_str:V, \tl_to_str:v, \tl_to_str:e} % Another name for a primitive: defined in \pkg{l3basics}. % \begin{macrocode} -\cs_generate_variant:Nn \tl_to_str:n { o , V , v } +\cs_generate_variant:Nn \tl_to_str:n { o , V , v , e } % \end{macrocode} % \end{macro} % @@ -3228,7 +3305,8 @@ % \end{macro} % \end{macro} % -% \begin{macro}[EXP]{\tl_reverse:n, \tl_reverse:o, \tl_reverse:V} +% \begin{macro}[EXP] +% {\tl_reverse:n, \tl_reverse:o, \tl_reverse:V, \tl_reverse:f, \tl_reverse:e} % \begin{macro}[EXP]{\@@_reverse_normal:nN} % \begin{macro}[EXP]{\@@_reverse_group_preserve:nn} % \begin{macro}[EXP]{\@@_reverse_space:n} @@ -3250,7 +3328,7 @@ {#1} } } -\cs_generate_variant:Nn \tl_reverse:n { o , V } +\cs_generate_variant:Nn \tl_reverse:n { o , V , f , e } \cs_new:Npn \@@_reverse_normal:N { \@@_act_reverse_output:n } \cs_new:Npn \@@_reverse_group_preserve:n #1 diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx index 832205cd70..ce274f9583 100644 --- a/macros/latex/contrib/l3kernel/l3token.dtx +++ b/macros/latex/contrib/l3kernel/l3token.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % @@ -1603,6 +1603,7 @@ \tl_put_right:Nn \l_@@_tmp_tl { ^^@ \exp_not:N \or: } \char_set_catcode_letter:n { 0 } \tl_put_right:Nn \l_@@_tmp_tl { ^^@ \exp_not:N \or: } +% \end{macrocode} % For making spaces, there needs to be an |o|-type expansion of a |\use:n| % (or some other tokenization) to avoid dropping the space. % \begin{macrocode} diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx index dc95aad698..f79fc63e5a 100644 --- a/macros/latex/contrib/l3kernel/l3unicode.dtx +++ b/macros/latex/contrib/l3kernel/l3unicode.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-11} +% \date{Released 2023-08-29} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf index 31040f07f5..458c832be3 100644 Binary files a/macros/latex/contrib/l3kernel/source3.pdf and b/macros/latex/contrib/l3kernel/source3.pdf differ diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex index 97bb54971a..ee6efdcc7a 100644 --- a/macros/latex/contrib/l3kernel/source3.tex +++ b/macros/latex/contrib/l3kernel/source3.tex @@ -53,7 +53,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2023-08-11} +\date{Released 2023-08-29} \pagenumbering{roman} \maketitle diff --git a/macros/latex/contrib/l3packages/CHANGELOG.md b/macros/latex/contrib/l3packages/CHANGELOG.md index b82dd0c198..de080e8d41 100644 --- a/macros/latex/contrib/l3packages/CHANGELOG.md +++ b/macros/latex/contrib/l3packages/CHANGELOG.md @@ -7,6 +7,10 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-08-29] + +- Re-add `\GetDocumentCommandArgSpec`, etc., to `xparse` stub + ## [2023-02-02] ### Changed @@ -227,7 +231,8 @@ this project uses date-based 'snapshot' version identifiers. - Switch to ISO date format - Improve cross-module use of internal functions -[Unreleased]: https://github.com/latex3/latex3/compare/2023-02-02...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-08-29...HEAD +[2023-08-29]: https://github.com/latex3/latex3/compare/2023-02-02...2023-08-29 [2023-02-02]: https://github.com/latex3/latex3/compare/2023-02-01...2023-02-02 [2023-02-01]: https://github.com/latex3/latex3/compare/2023-01-16...2023-02-01 [2023-01-16]: https://github.com/latex3/latex3/compare/2022-12-17...2023-01-16 diff --git a/macros/latex/contrib/l3packages/README.md b/macros/latex/contrib/l3packages/README.md index 1fad88a499..e1f195b332 100644 --- a/macros/latex/contrib/l3packages/README.md +++ b/macros/latex/contrib/l3packages/README.md @@ -1,7 +1,7 @@ LaTeX3 High-Level Concepts ========================== -Release 2023-02-02 +Release 2023-08-29 Overview -------- @@ -34,7 +34,7 @@ and class options with LaTeX2e. This is tied to the method the existing kernel uses for processing options, and so it is likely that a stand-alone LaTeX3 kernel will use a very different approach. -`xfp` +`xfp` (deprecated) ----- The `xfp` package provides a document-level interface for the LaTeX3 @@ -42,7 +42,8 @@ FPU. As such, it is a wrapper around the core `\fp_eval:n` function but does not require code syntax. It provides the expandable command `\fpeval`, which can be used inside for example `\edef` or contexts where TeX requires a number. -From 2022-06-01 release if LaTeX this will be included in the format + +From 2022-06-01 release of LaTeX this will be included in the format so that the package doesn't need loading any longer. `xfrac` @@ -73,20 +74,6 @@ functions using a key=val syntax. This is designed to be "self-documenting", with the key definitions providing information on how they are to be used. -Discussion ----------- - -Discussion concerning the approach, suggestions for improvements, -changes, additions, _etc._ should be addressed to the list -[LaTeX-L](https://listserv.uni-heidelberg.de/cgi-bin/wa?A0=LATEX-L). - -You can subscribe to this list by sending mail to - - listserv@urz.uni-heidelberg.de - -with the body containing - - subscribe LATEX-L Issues ------ @@ -94,8 +81,6 @@ Issues The issue tracker for LaTeX3 is currently located [on GitHub](https://github.com/latex3/latex3/issues). -Please report specific issues with LaTeX3 code there; more general -discussion should be directed to the [LaTeX-L list](#Discussion). The LaTeX Project ------------------ diff --git a/macros/latex/contrib/l3packages/l3keys2e.dtx b/macros/latex/contrib/l3packages/l3keys2e.dtx index 2cd7f89e10..13fd652eaa 100644 --- a/macros/latex/contrib/l3packages/l3keys2e.dtx +++ b/macros/latex/contrib/l3packages/l3keys2e.dtx @@ -62,7 +62,7 @@ % }^^A % } % -% \date{Released 2023-02-02} +% \date{Released 2023-08-29} % % \maketitle % @@ -143,7 +143,7 @@ % %\begin{implementation} % -%\subsection{\pkg{l3keys2e} Implementation} +%\subsection{\pkg{l3keys2e} implementation} % % \begin{macrocode} %<*package> @@ -154,7 +154,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3keys2e}{2023-02-02}{} +\ProvidesExplPackage{l3keys2e}{2023-08-29}{} {LaTeX2e option processing using LaTeX3 keys} % \end{macrocode} % diff --git a/macros/latex/contrib/l3packages/l3keys2e.pdf b/macros/latex/contrib/l3packages/l3keys2e.pdf index 674d39db04..754439a4ca 100644 Binary files a/macros/latex/contrib/l3packages/l3keys2e.pdf and b/macros/latex/contrib/l3packages/l3keys2e.pdf differ diff --git a/macros/latex/contrib/l3packages/xfp.dtx b/macros/latex/contrib/l3packages/xfp.dtx index c2d14aadff..44fccd9271 100644 --- a/macros/latex/contrib/l3packages/xfp.dtx +++ b/macros/latex/contrib/l3packages/xfp.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2023-02-02} +% \date{Released 2023-08-29} % % \maketitle % @@ -171,7 +171,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xfp}{2023-02-02}{} +\ProvidesExplPackage{xfp}{2023-08-29}{} {L3 Floating point unit} % \end{macrocode} % diff --git a/macros/latex/contrib/l3packages/xfp.pdf b/macros/latex/contrib/l3packages/xfp.pdf index f68a2b225d..be5ed0387f 100644 Binary files a/macros/latex/contrib/l3packages/xfp.pdf and b/macros/latex/contrib/l3packages/xfp.pdf differ diff --git a/macros/latex/contrib/l3packages/xfrac.dtx b/macros/latex/contrib/l3packages/xfrac.dtx index e12131e9e0..70981e871a 100644 --- a/macros/latex/contrib/l3packages/xfrac.dtx +++ b/macros/latex/contrib/l3packages/xfrac.dtx @@ -65,7 +65,7 @@ % }^^A % } % -% \date{Released 2023-02-02} +% \date{Released 2023-08-29} % % \maketitle % @@ -524,7 +524,7 @@ % % \begin{implementation} % -% \section{\pkg{xfrac} Implementation} +% \section{\pkg{xfrac} implementation} % % \begin{macrocode} %<*package> @@ -535,7 +535,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xfrac}{2023-02-02}{} +\ProvidesExplPackage{xfrac}{2023-08-29}{} {L3 Experimental split-level fractions} % \end{macrocode} % diff --git a/macros/latex/contrib/l3packages/xfrac.pdf b/macros/latex/contrib/l3packages/xfrac.pdf index 961c5b052e..7b124a040f 100644 Binary files a/macros/latex/contrib/l3packages/xfrac.pdf and b/macros/latex/contrib/l3packages/xfrac.pdf differ diff --git a/macros/latex/contrib/l3packages/xparse.dtx b/macros/latex/contrib/l3packages/xparse.dtx index b5adb20dae..72a31e6871 100644 --- a/macros/latex/contrib/l3packages/xparse.dtx +++ b/macros/latex/contrib/l3packages/xparse.dtx @@ -67,7 +67,7 @@ % }^^A % } % -% \date{Released 2023-02-02} +% \date{Released 2023-08-29} % % \maketitle % @@ -1064,7 +1064,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xparse}{2023-02-02}{} +\ProvidesExplPackage{xparse}{2023-08-29}{} {L3 Experimental document command parser} % \end{macrocode} % @@ -1380,6 +1380,149 @@ % \end{macrocode} % \end{macro} % +% \subsection{Access to the argument specification} +% +% At one point this was included in the kernel, so we have to use +% \texttt{gset} (or similar) throughout this subsection. +% +% \begin{macro}{\@@_get_arg_spec_error:N, \@@_get_arg_spec_error:n} +% \begin{macro}{\@@_get_arg_spec_error_aux:n} +% Provide an informative error when trying to get the argument +% specification of a non-\pkg{xparse} command or environment. +% \begin{macrocode} +\cs_gset_protected:Npn \@@_get_arg_spec_error:N #1 + { + \bool_set_false:N \l_@@_environment_bool + \tl_set:Nn \l_@@_fn_tl {#1} + \@@_get_arg_spec_error_aux:n { \cs_if_exist:NTF #1 } + } +\cs_gset_protected:Npn \@@_get_arg_spec_error:n #1 + { + \bool_set_true:N \l_@@_environment_bool + \str_set:Nx \l_@@_environment_str {#1} + \@@_get_arg_spec_error_aux:n + { \cs_if_exist:cTF { \l_@@_environment_str } } + } +\cs_gset_protected:Npn \@@_get_arg_spec_error_aux:n #1 + { + #1 + { + \msg_error:nnx { cmd } { non-xparse } + { \@@_environment_or_command: } + } + { + \msg_error:nnx { cmd } { unknown } + { \@@_environment_or_command: } + } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@@_get_arg_spec:NTF} +% If the command is not an \pkg{xparse} command, complain. If it is, +% its second \enquote{item} is the argument specification. +% \begin{macrocode} +\cs_gset_protected:Npn \@@_get_arg_spec:NTF #1#2#3 + { + \__kernel_cmd_if_xparse:NTF #1 + { + \tl_set:Nx \ArgumentSpecification { \tl_item:Nn #1 { 2 } } + #2 + } + {#3} + } +% \end{macrocode} +% \end{macro} +% +% \begin{variable}{\ArgumentSpecification} +% \begin{macrocode} +\tl_clear_new:N \ArgumentSpecification +% \end{macrocode} +% \end{variable} +% +% \begin{macro}{\@@_get_arg_spec:N} +% \begin{macro}{\@@_get_arg_spec:n} +% Recovering the argument specification is now trivial. +% \begin{macrocode} +\cs_gset_protected:Npn \@@_get_arg_spec:N #1 + { + \@@_get_arg_spec:NTF #1 { } + { \@@_get_arg_spec_error:N #1 } + } +\cs_gset_protected:Npn \@@_get_arg_spec:n #1 + { + \exp_args:Nc \@@_get_arg_spec:NTF + { environment~ \tl_to_str:n {#1} } + { } + { \@@_get_arg_spec_error:n {#1} } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@@_show_arg_spec:N} +% \begin{macro}{\@@_show_arg_spec:n} +% Showing the argument specification simply means finding it and then +% calling the \cs{tl_show:N} function. +% \begin{macrocode} +\cs_gset_protected:Npn \@@_show_arg_spec:N #1 + { + \@@_get_arg_spec:NTF #1 + { \tl_show:N \ArgumentSpecification } + { \@@_get_arg_spec_error:N #1 } + } +\cs_gset_protected:Npn \@@_show_arg_spec:n #1 + { + \exp_args:Nc \@@_get_arg_spec:NTF + { environment~ \tl_to_str:n {#1} } + { \tl_show:N \ArgumentSpecification } + { \@@_get_arg_spec_error:n {#1} } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\GetDocumentCommandArgSpec} +% \begin{macro}{\GetDocumentEnvironmentArgSpec} +% \begin{macro}{\ShowDocumentCommandArgSpec} +% \begin{macro}{\ShowDocumentEnvironmentArgSpec} +% Simple mappings, with a check that the argument is a single +% control sequence or active character. +% \begin{macrocode} +\cs_gset_protected:Npn \GetDocumentCommandArgSpec #1 + { + \@@_check_definable:nNT {#1} \GetDocumentCommandArgSpec + { \@@_get_arg_spec:N #1 } + } +\cs_gset_eq:NN \GetDocumentEnvironmentArgSpec \@@_get_arg_spec:n +\cs_gset_protected:Npn \ShowDocumentCommandArgSpec #1 + { + \@@_check_definable:nNT {#1} \ShowDocumentCommandArgSpec + { \@@_show_arg_spec:N #1 } + } +\cs_gset_eq:NN \ShowDocumentEnvironmentArgSpec \@@_show_arg_spec:n +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +\msg_set:nnnn { cmd } { non-xparse } + { \str_uppercase:n #1~not~defined~using~xparse. } + { + You~have~asked~for~the~argument~specification~for~the~#1,~ + but~this~was~not~defined~using~xparse. + } +\msg_set:nnnn { cmd } { unknown } + { Unknown~document~#1. } + { + You~have~asked~for~the~argument~specification~for~the~#1,~ + but~it~is~not~defined. + } +% \end{macrocode} +% % \begin{macrocode} % % \end{macrocode} diff --git a/macros/latex/contrib/l3packages/xparse.pdf b/macros/latex/contrib/l3packages/xparse.pdf index 6e009e3cd4..dffaa1ae59 100644 Binary files a/macros/latex/contrib/l3packages/xparse.pdf and b/macros/latex/contrib/l3packages/xparse.pdf differ diff --git a/macros/latex/contrib/l3packages/xtemplate.dtx b/macros/latex/contrib/l3packages/xtemplate.dtx index 86b6ecc14a..8386be5d98 100644 --- a/macros/latex/contrib/l3packages/xtemplate.dtx +++ b/macros/latex/contrib/l3packages/xtemplate.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2023-02-02} +% \date{Released 2023-08-29} % % \maketitle % @@ -700,7 +700,7 @@ % % \begin{implementation} % -% \section{\pkg{xtemplate} Implementation} +% \section{\pkg{xtemplate} implementation} % % \begin{macrocode} %<*package> @@ -711,7 +711,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xtemplate}{2023-02-02}{} +\ProvidesExplPackage{xtemplate}{2023-08-29}{} {L3 Experimental prototype document functions} % \end{macrocode} % diff --git a/macros/latex/contrib/l3packages/xtemplate.pdf b/macros/latex/contrib/l3packages/xtemplate.pdf index fbac0e820e..31258f27de 100644 Binary files a/macros/latex/contrib/l3packages/xtemplate.pdf and b/macros/latex/contrib/l3packages/xtemplate.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md index edbe215b55..a507ced869 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md +++ b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md @@ -5,7 +5,15 @@ 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-08-29] + +### Changed + - a SOURCE_DATE_EPOCH setting is honored. This requires a l3backend version from XXXX + - \pdfmeta_set_regression_data: not longer sets dates manually, but expects that if + SOURCE_DATE_EPOCH is honored that it is used. + ## [2023-08-20] +Version: 2023-08-20, 0.95y ### Added - l3pdftools: \pdf_bdc_shipout:ee which makes use of the new shipout keyword diff --git a/macros/latex/contrib/pdfmanagement-testphase/README.md b/macros/latex/contrib/pdfmanagement-testphase/README.md index 0642ac06b9..f512b294d6 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.95y, 2023-08-20 +Version: 0.95z, 2023-08-29 This package is used during a test phase to load the new PDF management code of LaTeX. diff --git a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty index 53218fe6aa..ff7305d34b 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-08-20 v0.95y +\ProvidesPackage{color-ltx}[2023-08-29 v0.95z 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 698922d100..fc7f93841b 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty +++ b/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty @@ -19,7 +19,7 @@ % % for those people who are interested. \NeedsTeXFormat{LaTeX2e}[2020/10/01] -\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2023-08-20}{0.95y} +\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2023-08-29}{0.95z} {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/hyperref-generic.dtx b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx index a0eff9a0db..4d68f49b6d 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx @@ -82,7 +82,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -956,7 +956,7 @@ %<@@=hyp> % \end{macrocode} % \begin{macrocode} -\ProvidesFile{hgeneric-testphase.def}[2023-08-20 v0.95y % +\ProvidesFile{hgeneric-testphase.def}[2023-08-29 v0.95z % generic Hyperref driver for the LaTeX PDF management testphase bundle] \RequirePackage{etoolbox} %why? diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf index d9133bcfaa..c640c4c15c 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf and b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx index da0aa971fd..ebf9ede282 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx @@ -45,7 +45,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % @@ -56,27 +56,27 @@ % \begin{macrocode} %\ProvidesExplFile %<*dvipdfmx> - {l3backend-testphase-dvipdfmx.def}{2023-08-20}{} + {l3backend-testphase-dvipdfmx.def}{2023-08-29}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx} % %<*dvips> - {l3backend-testphase-dvips.def}{2023-08-20}{} + {l3backend-testphase-dvips.def}{2023-08-29}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvips} % %<*dvisvgm> - {l3backend-testphase-dvisvgm.def}{2023-08-20}{} + {l3backend-testphase-dvisvgm.def}{2023-08-29}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm} % %<*luatex> - {l3backend-testphase-luatex.def}{2023-08-20}{} + {l3backend-testphase-luatex.def}{2023-08-29}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)} % %<*pdftex> - {l3backend-testphase-pdftex.def}{2023-08-20}{} + {l3backend-testphase-pdftex.def}{2023-08-29}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)} % %<*xdvipdfmx> - {l3backend-testphase-xetex.def}{2023-08-20}{} + {l3backend-testphase-xetex.def}{2023-08-29}{} {LaTeX~PDF~management~testphase~bundle~backend~support: XeTeX} % % \end{macrocode} @@ -2084,6 +2084,15 @@ \AddToHook{begindocument}{\pdfmanagement_add:nnn{Info}{Producer}{(pdfTeX+dvips)}} \__kernel_backend_literal:e{!~<>~setpagedevice} \__kernel_backend_literal:e{!~<>~setpagedevice} + \str_if_exist:NTF\c_sys_timestamp_str + { + \pdfmanagement_add:nnx{Info}{CreationDate}{(\c_sys_timestamp_str)} + \pdfmanagement_add:nnx{Info}{ModDate}{(\c_sys_timestamp_str)} + } + { + \pdfmanagement_add:nnn{Info}{CreationDate}{(D:20010101205959-00'00')} + \pdfmanagement_add:nnn{Info}{ModDate}{(D:20010101205959-00'00')} + } % %<*dvipdfmx> \pdfmanagement_add:nnn{Info}{Producer}{(dvipdfmx)} @@ -2116,12 +2125,15 @@ ]} % %<*drivers> - \pdfmanagement_add:nnn{Info}{CreationDate}{(D:20010101205959-00'00')} - \pdfmanagement_add:nnn{Info}{ModDate}{(D:20010101205959-00'00')} - \AddToDocumentProperties[document]{creationdate}{D:20010101205959-00'00'} - \AddToDocumentProperties[document]{moddate}{D:20010101205959-00'00'} - \AddToDocumentProperties[hyperref]{pdfmetadate}{D:20010101205959-00'00'} - \AddToDocumentProperties[hyperref]{pdfdate}{D:20010101205959-00'00'} + \str_if_exist:NF\c_sys_timestamp_str + { + \pdfmanagement_add:nnn{Info}{CreationDate}{(D:20010101205959-00'00')} + \pdfmanagement_add:nnn{Info}{ModDate}{(D:20010101205959-00'00')} + \AddToDocumentProperties[document]{creationdate}{D:20010101205959-00'00'} + \AddToDocumentProperties[document]{moddate}{D:20010101205959-00'00'} + \AddToDocumentProperties[hyperref]{pdfmetadate}{D:20010101205959-00'00'} + \AddToDocumentProperties[hyperref]{pdfdate}{D:20010101205959-00'00'} + } \AddToDocumentProperties[hyperref]{pdfinstanceid}{uuid:0a57c455-157a-4141-8c19-6237d832fc80} \AddToDocumentProperties[hyperref]{pdfproducer}{\c_sys_engine_exec_str-NN.NN.NN} } diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf index cb9604b4b4..0149e6d72f 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx index 15e5bdc9b4..b3076aaf26 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -432,7 +432,7 @@ % \begin{macrocode} %<@@=pdfannot> %<*header> -\ProvidesExplPackage{l3pdfannot}{2023-08-20}{0.95y} +\ProvidesExplPackage{l3pdfannot}{2023-08-29}{0.95z} {PDF-annotations} \RequirePackage{l3pdfdict} % diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf index 2df2bd9043..bad7119c10 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx index 7b8eb4d5d8..ed7406fe1c 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -208,7 +208,7 @@ % \begin{macrocode} %<@@=pdfdict> %<*header> -\ProvidesExplPackage{l3pdfdict}{2023-08-20}{0.95y} +\ProvidesExplPackage{l3pdfdict}{2023-08-29}{0.95z} {Tools for PDF dictionaries (LaTeX PDF management testphase bundle)} % % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf index d3cd1dad08..d8bc405fbe 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx index bce57aac58..0479ecdae5 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf index c6ece9e4e1..be1e521cc0 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx index 9ece0e36e0..9421dac34a 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx @@ -64,7 +64,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf index a213e7ef34..603d83c9f8 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx index e73bb073ff..69858349ff 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf index 976ddb1bda..f73e10a44d 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx index ac43173242..ad43c11bb5 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx @@ -55,7 +55,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf index e6f6dffc75..908fe64652 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx index 19a9f91425..b9737a39c1 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx @@ -83,7 +83,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf index ec6f6f9077..8516331911 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx index 3b82017300..e8fe7cb11c 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf index da290f2e24..8b58cee341 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx index bc570f29e8..fa5e3dade4 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx @@ -69,7 +69,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -972,7 +972,7 @@ %<*package> %<@@=pdffield> \NeedsTeXFormat{LaTeX2e} -\ProvidesExplPackage{l3pdffield-testphase}{2023-08-20}{0.95y}% +\ProvidesExplPackage{l3pdffield-testphase}{2023-08-29}{0.95z}% {form fields} % \end{macrocode} % \subsection{hyperref specific command} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf index 4e1abae41e..370b92c1f4 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx index 6642eb3024..b55f0a3710 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -398,7 +398,7 @@ % % \begin{macrocode} %<*header> -\ProvidesExplPackage{l3pdffile}{2023-08-20}{0.95y} +\ProvidesExplPackage{l3pdffile}{2023-08-29}{0.95z} {embedding and referencing files in PDF---LaTeX PDF management testphase bundle} \RequirePackage{l3pdftools} %temporarly!! % diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf index 4f7c9df5bc..61075ae365 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx index d7e5dcc346..377178a516 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx @@ -57,7 +57,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -632,7 +632,7 @@ %<@@=pdfmanagement> %<*header> % -\ProvidesExplPackage{l3pdfmanagement}{2023-08-20}{0.95y} +\ProvidesExplPackage{l3pdfmanagement}{2023-08-29}{0.95z} {Management of core PDF dictionaries (LaTeX PDF management testphase bundle)} % % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf index 24350d7fc1..cf7efbed96 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx index d3e88eeb31..cc9430e5e2 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -349,6 +349,9 @@ % This sets various metadata to values needed by the \LaTeX{} % regression tests. % It also sets the seed for random functions. +% If a current l3backend is used and \cs{c_sys_timestamp_str} is available, +% the command does not set dates, but +% assumes that the environment variable \verb+SOURCE_DATE_EPOCH+ is used. % \end{function} % % \section{XMP-metadata} @@ -563,7 +566,7 @@ % \begin{macrocode} %<@@=pdfmeta> %<*header> -\ProvidesExplPackage{l3pdfmeta}{2023-08-20}{0.95y} +\ProvidesExplPackage{l3pdfmeta}{2023-08-29}{0.95z} {PDF-Standards---LaTeX PDF management testphase bundle} % % \end{macrocode} @@ -1996,13 +1999,13 @@ {publicationName} {Text} {external} - {Publication name} + {Publication~name} \@@_xmp_property_new:nnnnn {prism} {aggregationType} {Text} {external} - {Publication type} + {Publication~type} \@@_xmp_property_new:nnnnn {prism} {bookEdition} @@ -2044,7 +2047,7 @@ {isbn} {Text} {external} - {ISBN for the publication in which the document was published} + {ISBN~for~the~publication~in~which~the~document~was~published} \@@_xmp_property_new:nnnnn {prism} {doi} @@ -2074,7 +2077,7 @@ {subtitle} {Text} {external} - {Document's subtitle} + {Document's~subtitle} % \end{macrocode} % \end{macro} % \item[iptc] @@ -2585,7 +2588,13 @@ { \bool_if:NT\g_@@_xmp_bool { - \file_get_timestamp:nN{\jobname.log}\l_@@_xmp_currentdate_tl + \str_if_exist:NTF\c_sys_timestamp_str + { + \tl_set_eq:NN \l_@@_xmp_currentdate_tl \c_sys_timestamp_str + } + { + \file_get_timestamp:nN{\jobname.log}\l_@@_xmp_currentdate_tl + } \@@_xmp_date_split:VN\l_@@_xmp_currentdate_tl\l_@@_xmp_currentdate_seq \@@_xmp_build_packet: \exp_args:No diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf index 8b585d669a..8cd52b4dbf 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx index 9f1ddc8e78..c403d50ffc 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -231,7 +231,7 @@ % % \begin{macrocode} %<*header> -\ProvidesExplPackage{l3pdftools}{2023-08-20}{0.95y} +\ProvidesExplPackage{l3pdftools}{2023-08-29}{0.95z} {candidate commands for l3pdf---LaTeX PDF management testphase bundle} % % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf index 5dd3e36004..b08cd7c6ae 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx index d9271f3523..bb3ae298cb 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -132,7 +132,7 @@ % \begin{macrocode} %<@@=pdf> %<*header> -\ProvidesExplPackage{l3pdfxform}{2023-08-20}{0.95y} +\ProvidesExplPackage{l3pdfxform}{2023-08-29}{0.95z} {command to create xforms (beta)---LaTeX PDF management testphase bundle} % % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf index aa8d8e18b5..306c2f34e6 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf and b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx index 63ce91e990..37dfc04cc2 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -220,7 +220,7 @@ % \begin{macrocode} %<@@=pdfmanagement> %<*header> -\ProvidesExplPackage{ltdocinit}{2023-08-20}{0.95y} +\ProvidesExplPackage{ltdocinit}{2023-08-29}{0.95z} {Initialize document metadata} % % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf index 19cf28e478..63ad14c84e 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf and b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf b/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf new file mode 100644 index 0000000000..dc8d376f76 Binary files /dev/null and b/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx index 3a7dee37b0..a64f84cc72 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -63,7 +63,7 @@ % |debug={firstaidoff={name1,name2,...},...}|. % \begin{macrocode} %<*package> -\ProvidesExplPackage{pdfmanagement-firstaid}{2023-08-20}{0.95y} +\ProvidesExplPackage{pdfmanagement-firstaid}{2023-08-29}{0.95z} {LaTeX PDF management testphase bundle / firstaid-patches} %<@@=pdfmanagement> diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf index d9a5a53bf5..1138f50d57 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf and b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx index 8085bbc5df..6208eaa379 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.95y, released 2023-08-20} +% \date{Version 0.95z, released 2023-08-29} % % \maketitle % \begin{documentation} @@ -395,7 +395,7 @@ % \begin{macrocode} %<@@=pdf> %<*package> -\ProvidesExplPackage{pdfmanagement-testphase}{2023-08-20}{0.95y} +\ProvidesExplPackage{pdfmanagement-testphase}{2023-08-29}{0.95z} {LaTeX PDF management testphase bundle} \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} \IfFormatAtLeastTF{2020-10-01}{}{ @@ -423,7 +423,7 @@ % to allow to set it in the document. % \begin{macrocode} %<*header> -\ProvidesExplFile{pdfmanagement-testphase.ltx}{2023-08-20}{0.95y} +\ProvidesExplFile{pdfmanagement-testphase.ltx}{2023-08-29}{0.95z} {PDF~management~code~(testphase)} % \end{macrocode} % We define a boolean for the new delayed shipout. This is temporary. At some diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf index 42536d3849..f57b489f4e 100644 Binary files a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf and b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf differ diff --git a/macros/latex/contrib/pdfmanagement-testphase/update-metadata.txt b/macros/latex/contrib/pdfmanagement-testphase/update-metadata.txt new file mode 100644 index 0000000000..2a172b29cd --- /dev/null +++ b/macros/latex/contrib/pdfmanagement-testphase/update-metadata.txt @@ -0,0 +1,15 @@ +% this are tests that needs to be recreated if the xmp metadata changes. + + l3build save -eluatex,pdftex,xetex formtextfields colorprofile-standard annot embedstream formfield-old xform-preamble bdc-properties radiobuttons pageattr mixpageattr linkmargin metadata-new active-colon linktoc pgfpatches test-pdfA-4 linkbordercolor ismap pagesattr xform-appearance viewerpreferences thispageattr transition textfield disable-links tag-checkbox infodict ap-names pagelabels ocproperties annot-dict ocgcolorlinks checkbox pdffilelink colorprofile1 metadata-new-no-hyperref pdflscape embedfile xform destination-options infodict-new + + l3build save -e xetex pagelabels-log version-compare show annot-last dict_if_empty + + l3build save -eluatex,pdftex -c config-noxetex pdfa2b-test extgstate-patches test-new-transparent calculationsortorder metadata pgfpatches colorspace transparent-tikz + + l3build save -c config-luatex stop-link luacolor fontspec-spotcolor structure-destination catalogAF linkhook non-ascii-links calculate-textfield + + l3build save -c config-dvips nopdfmanage metadata-new + + l3build save -c config-pdftex structure-destination metadata-dates metadata-ansi linkhook stop-link catalogAF calculate-textfield + + l3build save -c config-xetex structure-destination metadata-newpage calculate-textfield linkhook stop-link catalogAF 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 2e2fb2edab..c5a9a8daeb 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-08-20 v0.95y patch xcolor for l3color] +\ProvidesPackage{xcolor-patches-tmp-ltx}[2023-08-29 v0.95z patch xcolor for l3color] \@ifundefined{color_set:nn}{\RequirePackage{l3color}}{} \ExplSyntaxOn diff --git a/macros/latex/contrib/ppt-slides/DEPENDS.txt b/macros/latex/contrib/ppt-slides/DEPENDS.txt index 74961c7a1d..6607b6fe61 100644 --- a/macros/latex/contrib/ppt-slides/DEPENDS.txt +++ b/macros/latex/contrib/ppt-slides/DEPENDS.txt @@ -1,20 +1,49 @@ -hard pgfopts -hard xcolor + +hard anyfontsize +hard changepage +hard crumbs +hard enumitem +hard fontsize +hard hardwrap hard href-ul +hard ifoddpage +hard lastpage hard pagecolor -hard varwidth -hard qrcode hard pgf -hard tikzpagenodes -hard enumitem -hard crumbs +hard pgfopts +hard qrcode hard seqsplit -hard hardwrap -hard ifoddpage -hard textpos -hard anyfontsize -hard fontsize -hard changepage hard soul -hard lastpage -hard titling \ No newline at end of file +hard textpos +hard tikzpagenodes +hard titling +hard varwidth +hard xcolor +soft acmart +soft biber +soft biblatex +soft booktabs +soft caption +soft clicks +soft cmap +soft comment +soft crumbs +soft docshots +soft ffcode +soft hypdoc +soft hyperxmp +soft ifmtarg +soft l3build +soft libertine +soft libertine +soft microtype +soft newtx +soft pdfcrop +soft qrcode +soft scheme-basic +soft setspace +soft standalone +soft textcase +soft tools +soft totpages +soft xetex diff --git a/macros/latex/contrib/ppt-slides/ppt-slides.dtx b/macros/latex/contrib/ppt-slides/ppt-slides.dtx index 8aca5a1bee..ba92737063 100644 --- a/macros/latex/contrib/ppt-slides/ppt-slides.dtx +++ b/macros/latex/contrib/ppt-slides/ppt-slides.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment % (The MIT License) % -% Copyright (c) 2021-2022 Yegor Bugayenko +% Copyright (c) 2021-2023 Yegor Bugayenko % % Permission is hereby granted, free of charge, to any person obtaining a copy % of this software and associated documentation files (the 'Software'), to deal @@ -50,7 +50,7 @@ %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{ppt-slides} %<*package> -[2022-12-04 0.2.1 Slide Decks a la Power Point] +[2023-08-29 0.2.2 Slide Decks a la Power Point] % %<*driver> \documentclass{ltxdoc} @@ -482,11 +482,16 @@ % \end{macro} % \begin{macro}{\pptTitle} -% Then, we define the |\pptTitle| command: +% Then, we define the |\pptTitle| command, which prints the |title| and |subtitle| on the +% first page. The first argument is the title, the second is the subtitle. If the second +% argument is empty, it won't be printed: % \begin{macrocode} \newcommand\pptTitle[2]{% {\pptBanner{\Huge #1}}% - {\pptBanner{\large #2}}% + \def\param{#1}% + \ifx\param\empty\else% + {\pptBanner{\large #2}}% + \fi% } % \end{macrocode} % \end{macro} diff --git a/macros/latex/contrib/ppt-slides/ppt-slides.ins b/macros/latex/contrib/ppt-slides/ppt-slides.ins index 5dfdeca0b5..a5f87589b0 100644 --- a/macros/latex/contrib/ppt-slides/ppt-slides.ins +++ b/macros/latex/contrib/ppt-slides/ppt-slides.ins @@ -1,6 +1,6 @@ %% (The MIT License) %% -%% Copyright (c) 2021-2022 Yegor Bugayenko +%% Copyright (c) 2021-2023 Yegor Bugayenko %% %% Permission is hereby granted, free of charge, to any person obtaining a copy %% of this software and associated documentation files (the 'Software'), to deal @@ -26,7 +26,7 @@ \preamble (The MIT License) -Copyright (c) 2021-2022 Yegor Bugayenko +Copyright (c) 2021-2023 Yegor Bugayenko Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal diff --git a/macros/latex/contrib/ppt-slides/ppt-slides.pdf b/macros/latex/contrib/ppt-slides/ppt-slides.pdf index 3293f9a60e..b1097df20e 100644 Binary files a/macros/latex/contrib/ppt-slides/ppt-slides.pdf and b/macros/latex/contrib/ppt-slides/ppt-slides.pdf differ diff --git a/macros/latex/contrib/schooldocs/README.md b/macros/latex/contrib/schooldocs/README.md index ecb91d93da..38c16f1a87 100644 --- a/macros/latex/contrib/schooldocs/README.md +++ b/macros/latex/contrib/schooldocs/README.md @@ -3,12 +3,10 @@ ## Presentation -The purpose of this package is to provide several layout styles for school documents. -It is usefull for exercices sheets, exams, course materials. -The package sets the page geometry (dimensions of text and margins) -and the title typesetting; -the various styles define the header, footer and title formatting, -Many features are freely configurable. +The aim of this package is to offer diverse layout styles for school-related documents. +It serves well in creating exercices sheets, exams, course materials. +The package defines page geometry (text and margins dimensions) and the title formatting. +Various styles are available defining settings for headers, footers or alternative title formatting, providing many customizable features. ## Installation diff --git a/macros/latex/contrib/schooldocs/schooldocs-examples.pdf b/macros/latex/contrib/schooldocs/schooldocs-examples.pdf index e214571230..ec6210a259 100644 Binary files a/macros/latex/contrib/schooldocs/schooldocs-examples.pdf and b/macros/latex/contrib/schooldocs/schooldocs-examples.pdf differ diff --git a/macros/latex/contrib/schooldocs/schooldocs.dtx b/macros/latex/contrib/schooldocs/schooldocs.dtx index 9aed8e6cf8..04c468b3dd 100644 --- a/macros/latex/contrib/schooldocs/schooldocs.dtx +++ b/macros/latex/contrib/schooldocs/schooldocs.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2020-2021 by Antoine Missier +% Copyright (C) 2020-2023 by Antoine Missier % ---------------------------------------------------------------------- % % This file may be distributed and/or modified under the @@ -22,7 +22,7 @@ %\NeedsTeXFormat{LaTeX2e}[2005/12/01] %\ProvidesPackage{schooldocs} %<*package> - [2023/01/25 v1.2 .dtx schooldocs file] + [2023/08/28 v1.3 .dtx schooldocs file] % % %<*driver> @@ -32,12 +32,11 @@ \usepackage[english]{babel} \usepackage{charter} \usepackage{lipsum} -\usepackage{hyperref} \usepackage{boxedminipage2e} \usepackage{sectsty} \usepackage{spacingtricks} -\usepackage{centeredline} \usepackage{schooldocs} +\usepackage{hyperref} %\usepackage{geometry} \geometry{textwidth=355pt,vmarginratio=1:1,hmarginratio=3:2} % modified by schoodocs loading, very close from the default geometry used by ltxdoc @@ -112,6 +111,8 @@ % \changes{v1.2}{2023/01/24}{ % Small changes in documentation (charter font is now used) % and examples files (with several fonts)} +% \changes{v1.3}{2023/08/28}{ +% - English documentation corrections} % % \GetFileInfo{schooldocs.dtx} % @@ -119,97 +120,101 @@ % % \section{Introduction} % -% The purpose of this package is to provide several layout styles for school documents. -% It can be used for exercises sheets, exams, course materials. -% The package sets the page geometry (dimensions of text and margins) -% and the title typesetting; -% various \emph{styles} define header, footer and title formatting, -% Many features are freely configurable. -% Six different styles are proposed which are named: +% The aim of this package is to offer diverse layout styles +% for school-related documents. +% It serves well in creating exercise sheets, exams, and course materials. +% The package defines page geometry (text and margins dimensions) +% and title formatting. +% Various \emph{styles} are available defining settings for headers, footers +% or alternative title formatting, providing many customizable features. +% Six different styles are proposed that are named: % \begin{center} \bfseries % \hfill classic \hfill elegant \hfill modern \hfill soft % \hfill exam \hfill collection \hfill \mbox{} % \end{center} -% If the document is an exam subject to be completed and returned, -% we have a particular style, \textbf{identity}, in which -% left part of the header is replaced by -% ``\identityname'', whereas center and right parts are empty. +% Furthermore, a specific style named \textbf{identity} is provided +% for documents like exam sheets that need to be completed and returned. +% This style replaces the left header with ``\identityname'', +% while keeping the center and right parts empty. % % \medskip -% The styles are presented in paragraph \ref{par:styles} -% and the file \href{run:schooldocs-examples.pdf}{\textsf{schooldocs-examples.pdf}} -% shows the result of each. +% An overview of these styles is presented in section \ref{par:styles} +% and you can observe the visual outcomes of each style in the file +% \href{run:schooldocs-examples.pdf}{\textsf{schooldocs-examples.pdf}}. % % \section{Usage} % % \subsection{Choosing a style} % After loading the package with |\usepackage{schooldocs}|, % the style is defined by placing |\pagestyle|\marg{style} in the preamble. -% This command comes from the package \textsf{fancyhdr} by Piet van Oostrum. -% It can be placed before of after entering information described in the next subsection. +% This command comes from the \textsf{fancyhdr} package by Piet van Oostrum. +% It can be placed before of after entering the information described in the next subsection. % % \medskip -% In the text body, you can change the style of a particular page by placing -% |\thispagestyle|\marg{style} at the page you want. -% For example, you can place the command |\thispagestyle{identity}| -% in an appendix page to render. +% You can change the style of a particular page by placing +% |\thispagestyle|\marg{style} on the page you desire. +% For example, on an appendix page that needs to be rendered +% you can use the command |\thispagestyle{identity}|. +% % \subsection{Information fields} % % \DescribeMacro{\title} -% Usually a \LaTeX\ document title is made up of information -% provided by the macros -% |\title|, |\date| and |\author|. -% The |\title| macro has been redefined with an enriched syntax: +% Typically a \LaTeX\ document title is assembled using information +% from the macros |\title|, |\date|, and |\author|. +% The |\title| macro has been extended with an enriched syntax: % |\title|\oarg{head}\marg{title}. % The optional parameter \meta{head} corresponds to the text displayed in the header % instead of \meta{title}. % When not provided, the mandatory argument \meta{title} will be used in headers. % -% The macros |\date| and |\author| have not been redefined but information provided +% The macros |\date| and |\author| have not been altered, but the provided information % is also used in titles, headers or footers -% (depending on the style used) +% (depending on the chosen style) % \footnote{The macro \texttt{\bslash and}, -% sometimes used in \texttt{\bslash author} -% to typeset a title with several authors, doesn't work here, -% except in the \textbf{collection} style. It produces a compilation error. -% The macro \texttt{\bslash thanks} also doesn't work but without producing error.}. +% which can be employed in the \texttt{\bslash author} command +% to typeset a title with several authors, does not function here, +% except in the \textbf{collection} style. Attempting to use it will result +% in a compilation error. The \texttt{\bslash thanks} macro also +% doesn't work, although it does not generate an error.}. % % \pagebreak % \medskip % \DescribeMacro{\subject} \DescribeMacro{\school} \DescribeMacro{\institute} -% In addition to the previous ones, two other information macros are provided, -% used in the title, headers or footers, depending on the style: +% Two additional information macros +% are provided for use in titles, headers or footers, depending on the style: % |\subject| and |\school| (or its alias |\institute|). -% The macro |\subject| has an optional argument, like in |\title|: -% |\subject|\oarg{head}\marg{title} which allows to place an alternative text -% in header, different from the one displayed in the title. +% The |\subject| macro includes an optional argument, similar to |\title|: +% |\subject|\oarg{head}\marg{title}. This enables the placement of an alternative text +% in the header, distinct from the text displayed in the title. % % \medskip -% Information macros have to be called in the preamble -% \footnote{Nevertheless, the macros \texttt{\bslash date} and \texttt{\bslash author} -% can be used in the document body.}, -% they are optional. If omitted, the corresponding field will be empty, -% except for the date which will display today's date. -% So, if you do not want any date, just write |\date{}|. -% When title elements like subject or date are missing, the title height +% Information macros must be invoked in the preamble +% \footnote{However, the macros \texttt{\bslash date} and \texttt{\bslash author} +% can be used within the document body.}, +% they are optional. In cases of omission, the corresponding field will remain empty -- +% except for the date field, which will display today's date. +% Therefore, if you wish to exclude the date, you can simply enter |\date{}|. +% If certain title elements, such as subject or date, are absent, the title height % will be reduced accordingly. % -% Except for |\date|, all these information macros accept multi-line arguments, -% for example |\school{Royal College of Pataphysics\\London}|. -% To typeset the main title on two (or more) lines, use |\\[1ex]| -% for a good vertical spacing. -% -% When using the \textsf{hyperref} package (by Sebastian Rahtz and Heiko Oberdiek) -% to produce a pdf output, information provided by |\title|, |\subject| and |\author| -% (and |\school| -% \footnote{The \emph{author} field of the pdf properties will be filled -% like this: \textsf{author (school)}, -% but \texttt{\bs author} should be called before \texttt{\bs school} in the preamble. +% All of these information macros, except for |\date|, accept multi-line arguments, \eg +% |\school{Royal College of Pataphysics\\London}|. +% Within the |\title| macro, if you wish to typeset two (or more) lines, use |\\[1ex]| +% for a proper vertical spacing. +% +% When employing the \textsf{hyperref} package +% (developed by Sebastian Rahtz and Heiko Oberdiek), +% the information provided via |\title|, |\subject|, and |\author| +% (as well as |\school| +% \footnote{The \emph{author} field of the PDF properties will be filled +% as follows: \textsf{author (school)}. +% However \texttt{\bs author} should be called before \texttt{\bs school} in the preamble. % }) -% will be written in the pdf properties also. +% will also be included in the PDF properties. % % \medskip -% The file \textsf{schooldocs-examples.pdf} uses the examples of the following table. +% The file \textsf{schooldocs-examples.pdf} utilizes the information fields +% outlined in the following table. % \begin{center} % \begin{tabular}{ll} % \hline @@ -225,84 +230,85 @@ % \end{center} % % \DescribeMacro{\subtitle} -% In the \textbf{exam} style, the title uses an additional field -% provided by the macro |\subtitle|\marg{text}. The parameter \meta{text} -% will be placed under the other title elements and before the separation rule, -% if there is one. For instance |\subtitle{Duration of the test: 2\,h}|. -% For a multi-line argument, the line break instruction must be -% |\par| and not |\\|. +% Within the \textbf{exam} style, the title includes an additional field +% provided by the macro |\subtitle|\marg{text}. The \meta{text} argument +% will be positioned beneath the other title elements and above the separation rule, +% if present. For instance, |\subtitle{Duration of the test: 2\,h}|. +% For a multi-line argument, use |\par| for line breaks instead of |\\|. % % \subsection{Making the title} % % \DescribeMacro{\maketitle} -% As in \LaTeX\ standard classes, the title is produced -% by the macro |\maketitle|, which should be placed after |\begin{document}|. -% This command has been redefined by the package. -% Indeed, the standard title produced by the \LaTeX\ class \texttt{article}, -% seems inappropriate for school documents like exercise sheets for example. -% Vertical space before the title is reduced and -% an horizontal rule is typeset to separate the title from the following text. -% By default, the title is centered but one can change this, -% as presented in section \ref{par:title-set}, to get -% a left or right-aligned title (an also boxed). -% Various titles are presented in the file +% Just like in the standard \LaTeX\ classes, the title is generated +% using the |\maketitle| macro, which is placed after |\begin{document}|. +% This macro has been redefined by the package. +% In fact, the default title produced by the \LaTeX\ \texttt{article} class +% appears unsuitable for school documents such as exercise sheets. +% Vertical spacing before the title has been reduced and, +% a horizontal rule is inserted to separate the title from the subsequent text. +% By default, the title is centered, but this can be altered, +% as demonstrated in section \ref{par:title-set}, to achieve +% a left or right alignment (or even boxing). +% Various title examples can be found in the file % \href{run:schooldocs-examples.pdf}{\textsf{schooldocs-examples.pdf}}. % % The macro has on optional parameter |\maketitle|\oarg{rulelength} -% to set the length of the separation rule, by default 2.5\,cm. -% The rule can be totally removed by setting the -% optional argument to 0\,cm; you can also typeset a rule of -% whole line width with |\maketitle[\linewidth]| or |\maketitle[\textwidth]|. +% to define the length of the separation rule, which is 2.5\,cm by default. +% The rule can be completely removed by setting the +% optional argument to 0\,cm. Alternatively, you can typeset a rule spanning +% the entire line using |\maketitle[\linewidth]|. ^^A or |\maketitle[\textwidth]|. % -% Each style has its own title formatting. Nevertheless the package provides -% a ``standard'' title when no style is loaded or with +% Each style has its own title formatting. Nevertheless the package offers +% a ``standard'' title formatting when no specific style is loaded or when using % the \LaTeX\ styles \textbf{empty} or \textbf{plain}. -% The \textbf{elegant} style keeps also this ``standard'' title style. +% The \textbf{elegant} style also retains this ``standard'' title formatting. % % \medskip % \DescribeMacro{\seprule} -% As in the title, a rule can also be used in the text body to make separations. -% This is done by the macro |\seprule|\oarg{length} which -% produces an horizontal centered rule of (optional) \meta{length}, by default 2.5\,cm. +% Just like in the title, a rule can also be used within +% the text body for creating separations. +% This is achieved using the |\seprule|\oarg{length} macro, +% producing a horizontal and centered rule of optional \meta{length}, +% with a default of 2.5\,cm. % % \medskip % \DescribeMacro{\correct} -% For typesetting a correct version of an exercise sheet, we provide the macro |\correct|, -% which adds ``-- Correct Version'' to the title. +% To typeset a correct version of an exercise sheet, we provide the |\correct| macro, +% which adds `` -- Correct Version'' to the title. % It should be placed in the preamble. -% Combined with packages that deal with multiple versions of a document, -% this macro avoids to define different titles for a an exercise sheet an its correct version. +% When used with packages that manage multiple versions of a document, +% this macro eliminates the need to define distinct titles for an exercise sheet +% an its correct version. % However in the \textbf{exam} style, the text ``Correct version'' -% will not be added in the title (except in headers), but will be substituted for -% the subtitle. +% replaces the subtitle instead of being added in the main title (except in headers). % % \medskip % \DescribeMacro{\makesmalltitle} -% As in the package \textsf{phfnote} by Philippe Faist, it seems wisely -% to propose a compact title, where information -% provided by |\title|, |\subject| and |\date| are presented -% on a single line, depending on the selected style (see \textsf{schooldocs-examples.pdf}). -% The rule is always displayed and expands on the whole line width. +% Inspired by the package \textsf{phfnote} by Philippe Faist, we also offer +% a compact title format. This format combines the details from +% |\title|, |\subject| and |\date| into a single line, +% depending on the chosen style (see \textsf{schooldocs-examples.pdf}). +% The rule is always displayed and spans the entire line width. % % \subsection{Style layouts} \label{par:styles} % -% According to good typographic practice, the header on the title page should be empty +% In accordance with typographic good practices, +% the header on the title page is usually left empty % (see The \LaTeX\ Companion). -% This ``rule'' is seldom observed in school documents, -% and, on the first page, we find often information (author, school, etc.) -% on top left and the date on top right, as for a letter. -% Except for the \textbf{classic} style, that we present first, -% we wanted to comply with good practice, -% but we keep some information in the footer yet. -% -% We present below miniature views to show the layout of the different styles. +% However, this ``rule'' is often disregarded in school documents. +% On the first page, it is common to find information such as author, school, etc., +% at the top left and the date at the top right, resembling the layout of a letter. +% While we adhere to good practices for the headers (except in the \textbf{classic} style), +% we still include certain information in the footer. +% +% Below, we present miniature previews illustrating the six styles layout. % The file \href{run:schooldocs-examples.pdf}{\textsf{schooldocs-examples.pdf}} -% gives a real view of them. -% For several styles, a rule is typeset under the header. -% It can be displayed or discarded by setting its width, and likewise for a rule -% over the footer. -% The format of each element and also some space settings -% are freely configurable, see section \ref{par:head-settings}. +% provides an actual representation. +% In several styles, a rule is placed below the header. +% It can be displayed or removed by setting its width, and the same applies to a rule +% above the footer. +% The formatting of each element, as well as specific spacing settings, +% can be freely customized as detailed in \ref{par:head-settings}. % % \medskip % \begin{stylex} @@ -423,63 +429,66 @@ % \end{stylex} % \bigskip % -% The \textbf{collection} style is useful for longer documents. -% In it the name of the current section appears in the right header -% and changes as things progress, as in the \LaTeX\ \textbf{book} class. +% The \textbf{collection} style is well-suited for longer documents. +% In this style the name of the current section is displayed in the right header +% and updates as the content progresses, similar to the behavior +% in the \LaTeX\ \textbf{book} class. % % \section{Settings} % % \subsection{Page layout} % -% The page layout is set in the same way, for all styles. -% It is defined by the macro |\geometry| of the package +% The page layout is set in the same way for all styles. +% It is defined by the |\geometry| macro of the package % \textsf{geometry} (by Hideo Umeki and David Carlisle). -% According to good typographic practice (see the \LaTeX\ Companion, -% the \textsf{typearea} package or \textsf{KOMA-Script} bundle documentation) -% the ratio between the text body (the type area as named by typographers) +% Following good typographic practice (see the \LaTeX\ Companion, +% the \textsf{typearea} package or the \textsf{KOMA-Script} bundle documentation), +% the ratio between the text body (referred to as the ``type area'' by typographers) % and the page size must be the same horizontally and vertically. % This ratio gauges the ``shade of gray'' of a page. % The default scale in the \textsf{geometry} package is 0.7. -% For school documents, it seems that this setting leaves too much white -% space in margins, thus this ratio has been set to 0.75. -% It can be redefined with the |\newgeometry| command +% However, for school documents, this setting seems to result in excessive white +% space in the margins. Thus we have adjusted this ratio to 0.75. +% You can modify it using the |\newgeometry| command % \footnote{You can also call \textsf{geometry} before \textsf{schooldocs}. % Setting the scale factor several times doesn't work.}. -% Furthermore, according to ``canons of page construction'', in a one-sided document, +% +% Moreover, in accordance with ``canons of page construction'', in a one-sided document, % the ratio between the left and right margins should be 1:1, % while the ratio between top and bottom margins should be 1:2. -% It seems that this recommended ratio of 1:2 is seldom observed -% and it produces a very wide bottom margin. -% Besides, when loading the \textsf{geometry} package, the default vertical -% ratio is 2:3 and not 1:2. -% To get more balanced margins, we have prefer to set it at 3:4: +% It appears that this recommended 1:2 ratio is rarely observed, +% as it results in an overly wide bottom margin. +% Additionally, when loading the \textsf{geometry} package, the default vertical +% ratio is set at 2:3 and not 1:2. +% To achieve more balanced margins, we have preferred to set it at 3:4, using % |\geometry{scale=0.75,vmarginratio=3:4,heightrounded}| -% \footnote{The option \texttt{heightrounded} rounds text height to $n$-times -% ($n$ an integer) the height of a line, to avoid ``underfull vbox'' in some cases.}. +% \footnote{The \texttt{heightrounded} option rounds text height to a multiple of $n$ times +% the height of a line (where $n$ is an integer), preventing occurrences +% of ``underfull vbox'' at times.}. % % \subsection{Title settings} \label{par:title-set} % -% Several parameters allow to customize the title composition. -% They are presented in the following table with their default settings. -% Colors can be changed with |\definecolor|, macros with |\renewcommand| -% and lengths with |\setlength|. -% Most of command names are explicit and don't need to give any information about their use. -% |\titleflush| manages the alignment: -% centered by default, it can be left-aligned with -% |\renewcommand{\titleflush}{flushleft}| or right-aligned with -% |\renewcommand{\titleflush}{flushright}| +% Several parameters allow for customizing the title composition. +% They are presented in the table below along with their default settings. +% Colors can be altered using |\definecolor|, macros using |\renewcommand| +% and lengths using |\setlength|. +% Most command names are self-explanatory and don't require additional information +% about their usage. +% The |\titleflush| command handles alignment: +% it is centered by default, but can be left-aligned using +% |\renewcommand{\titleflush}{flushleft}| (\texttt{flushright} for right alignment) % \footnote{This macro has no effect % with the \textbf{exam} and \textbf{collection} styles, -% the title is always centered.}. +% where the title is always centered.}. % -% The length |\titlesep| sets the vertical spacing between the fields \emph{title} -% and \emph{subject}, except for the \textbf{classic} and \textbf{soft} styles, -% witch contain only the field \emph{title}, or if the field \emph{subject} -% is not given. -% Vertical space between other title fields is defined in relation to +% The length |\titlesep| determines the vertical spacing between the \emph{title} +% and \emph{subject} fields, except for the \textbf{classic} and \textbf{soft} styles, +% witch contain only the \emph{title} field, or when the \emph{subject} field +% is not provided. +% Vertical space between other title fields is defined relative to % |\titlesep| (|0.5\titlesep| for most). % -% Unless otherwise stated, the column ``special settings'' of the following table +% Unless specified otherwise, the ``special settings'' column in the following table % applies to the \textbf{exam} and \textbf{collection} styles. % % \begin{center} \small @@ -506,44 +515,47 @@ % \DescribeMacro{\subtitlestyle}\DescribeMacro{\titlecorrectstyle} % The \textbf{exam} style has two additional setting macros: % |\subtitlestyle|, set by default to |\large\slshape|, -% and |\titlecorrectstyle|, for the composition of \textsf{Correct Version} -% produced by |\correct|, set by default to |\color{red}\large\scshape|. +% and |\titlecorrectstyle|, for the ``\textsf{Correct Version}'' composition +% via |\correct|, with the default being |\color{red}\large\scshape|. % -% In the \textbf{collection} style, the fields -% \emph{school} and \emph{author} are included into the title. Their features are then -% controlled by |\authorstyle| -% \footnote{For other styles, the macro \texttt{\bs authorstyle} -% belongs to headers or footers parameters.} set to |\Large|. +% \DescribeMacro{\authorstyle} +% In the \textbf{collection} style, the +% \emph{school} and \emph{author} fields are incorporated into the title. +% Their attributes are governed by |\authorstyle| +% \footnote{In other styles, the \texttt{\bs authorstyle} macro +% (set to \texttt{\bs textnormal}) +% is utilized within header or footer.} which is set to |\Large|. % -% To create a separate page for the title -% (in particular for \textbf{exam} or \textbf{collection}), you can place |\maketitle| into -% an environment |titlepage| provided by \LaTeX. +% To create a separate title page +% (especially for the \textbf{exam} or \textbf{collection} styles), +% you can enclose |\maketitle| within the |titlepage| environment provided by \LaTeX. % % \medskip % \DescribeMacro{\boxedshape} -% A particular formatting has been predefined to produce a slightly +% A specific formatting has been predefined to create a lightly % shaded box around the title: |\boxedshape|\marg{text} % (thanks to the \textsf{fancybox} package by Timothy Van Zandt). -% It can be used within the -% command |\titlestyle| if we want to get this kind of effect, \eg +% It can be used within the command |\titlestyle| +% if you want to achieve this kind of effect, for instance: % \centeredline{|\renewcommand{\titlestyle}{\LARGE\sffamily\bfseries\boxedshape}|.} % % \subsection{Headers and footers} \label{par:head-settings} % -% The typeset of headers and footers is produced thanks to dedicated macros -% \footnote{The \textsf{fancyhdr} package -% provides the commands \texttt{\bs lhead}, \texttt{\bs chead}, \texttt{\bs rhead} -% for the left, center and right parts of the header, and the same for the footer: +% The typesetting of headers and footers is achieved using specialized macros +% \footnote{The \textsf{fancyhdr} package offers +% the commands \texttt{\bs lhead}, \texttt{\bs chead}, \texttt{\bs rhead} +% for the left, center and right portions of the header, and similarly for the footer: % \texttt{\bs lfoot}, \texttt{\bs cfoot} and \texttt{\bs rfoot}.} -% of the \textsf{fancyhdr} package. -% As for the title, several macros allow to customize some settings. -% They are presented in the table below. -% Let us specify that |\pagenamestyle| defines the format of the word ``\emph{page}'' -% used in front of the page number. -% -% The |\headstyle| and |\footstyle| commands are generic for all elements -% of headers and footers. They are combined with macros giving -% specific settings for each field. +% from the \textsf{fancyhdr} package. +% Similar to the title, various macros enable customization of specific settings. +% They are outlined in the table below. +% Note that |\pagenamestyle| determines the format of the word ``\emph{page}'' +% displayed preceding the page number. +% +% The |\headstyle| and |\footstyle| commands are common for all +% headers and footers components, respectively. +% These commands are combined with macros that provide +% distinct settings for each individual field. % \begin{center} % \begin{tabular}{cc} % \hline @@ -563,33 +575,33 @@ % \end{center} % % The \textbf{exam} and \textbf{collection} styles have a specific setting for -% |\headtitlestyle|, defined by |\renewcommand{\headtitlestyle}{\MakeUppercase}|. +% |\headtitlestyle|, which is defined by |\renewcommand{\headtitlestyle}{\MakeUppercase}|. % % \medskip -% Macros that allow to display (or remove) the rule in the header -% \footnote{Indeed we have redefined the \texttt{\bs headrule} macro -% such that the rule never appears on the first page.} -% or the footer -% come from the \textsf{fancyhdr} package. For example, in any style, -% the rule in the header is removed with: +% Macros that enable the display (or removal) of the rule in the header +% \footnote{In fact, we have redefined the \texttt{\bs headrule} macro +% so that the rule never appears on the first page.} +% or the footer are provided +% by the \textsf{fancyhdr} package. For example, in any style, +% the header rule can be removed using: % |\renewcommand{\headrulewidth}{0pt}|, -% and displayed in the footer with: -% |\renewcommand\footrulewidth{0.4pt}| +% and it can be displayed in the footer with: +% |\renewcommand\footrulewidth{0.4pt}|. % % \subsection{Internationalization} -% Three keywords are used by the package: \emph{page}, \emph{Correct version}, +% Three keywords are utilized by the package: \emph{page}, \emph{Correct version}, % and \emph{Name}, % defined by the macros |\pagename|, |\correctname| and |\identityname|. -% |\pagename| is used in the header or the footer, |\correctname| by the macro |\correct| -% and |\identityname| by the \textbf{identity} style. -% These keywords get automatic translation in a few languages -% \footnote{Translation is currently integrated into the package +% |\pagename| is used in the header or footer, |\correctname| by the |\correct| +% macro and |\identityname| by the \textbf{identity} style. +% These keywords are automatically translated into a few languages +% \footnote{Translation is currently built into the package % for the following languages: % French, German, Spanish, Italian, Portuguese.} -% according to the selected language by the \textsf{babel} or \textsf{polyglossia} package. -% They can be redefined, with |\renewcommand|, -% or else you can use macros from the \textsf{translations} package by Clemens Niederberger -% (allowing dynamic language change), \eg +% based on the selected language using the \textsf{babel} or \textsf{polyglossia} package. +% They can be redefined using |\renewcommand|, +% or you can also utilize macros from Clemens Niederberger's \textsf{translations} package +% (allowing dynamic language changes), such as % |\DeclareTranslation{romanian}{pagin\u{a}}| (in the preamble). % % @@ -601,7 +613,7 @@ % % \begin{macrocode} \@ifpackageloaded{geometry}{}{\RequirePackage{geometry}} -\let\footruleskip\relax % because memoir class uses it +\let\footruleskip\relax % because the memoir class uses it \RequirePackage{fancyhdr} \RequirePackage{ifthen} \RequirePackage{lastpage} @@ -612,11 +624,11 @@ \geometry{scale=0.75,vmarginratio=3:4,heightrounded} % \end{macrocode} -% If the \textsf{geometry} package has been loaded before, -% we don't load it to avoid option clash. +% If the \textsf{geometry} package has been previously loaded, +% we do not load it again to prevent conflict with options. % -% To change the scale factor, use |\newgeometry| because -% the |\geometry| command will not do it when the scale is already defined. +% To modify the scale factor, utilize |\newgeometry| as the +% |\geometry| command will not function when the scale is already set. %\medskip % \subsection{Internationalization} % @@ -657,8 +669,8 @@ % % \subsection{Information fields} % -% After being defined, information fields are set to empty, -% to make tests with them work well. +% Once defined, information fields are initially set to empty +% to ensure that tests for empty fields work correctly. % % \begin{macrocode} \renewcommand{\title}[2][]{\long\def\@title{#2} @@ -683,10 +695,11 @@ \def\@subject{} \def\@headsubject{} % \end{macrocode} -% Because \textsf{KOMA-Script} package also uses the |\subject| macro, -% we make a |\relax| on this command. +% Due to the usage of the |\subject| macro by the \textsf{KOMA-Script} package, +% we include a |\relax| command before defining this macro. % -% |\subject{}| doesn't work with the |\@empty| test used below in |\maketitle|, thus +% The |\subject{}| command doesn't function properly with the |\@empty| test +% employed below in the |\maketitle| command. Consequently, % we define |\@subject| and |\@headsubject| as empty by default. % % \subsection{Settings} @@ -714,11 +727,11 @@ } % \end{macrocode} -% Default value for |\fboxsep| is 3\,pt and for |\shadowsize| is 4\,pt. -% These settings are local. +% The default value for |\fboxsep| is 3\,pt and for |\shadowsize| it's 4\,pt. +% These settings have a local scope. % % \medskip -% Next the headers and footers settings. +% Then, we move on to the settings for headers and footers. % \begin{macrocode} \definecolor{headingcolor}{named}{black} \newcommand{\headstyle}{\small\color{headingcolor}} @@ -736,11 +749,12 @@ } % \end{macrocode} -% The |\headrule| macro redefinition allow to remove the rule on the first page. +% The redefinition of the |\headrule| macro allows for the removal +% of the rule on the first page. % -% The header height is set to |\baselineskip| to avoid +% The header height is set to |\baselineskip| to prevent % error messages (``\texttt{headheight too small}'') when the text size is -% greater than or equal to |\small|. +% equal to or greater than |\small|. % % \subsection{Title composition} % @@ -789,18 +803,18 @@ \raisebox{0.25\baselineskip}{\rule{#1}{\seprulewidth}}\end{center}} % \end{macrocode} -% |\AtBeginDocument| is necessary in the |\correct| macro because -%|\correctname| can be redefined by \textsf{babel} at |\begin{document}|. +% The use of |\AtBeginDocument| is necessary in the |\correct| macro because +% |\correctname| could be redefined by \textsf{babel} at |\begin{document}|. % -% \medskip +% \bigskip % \subsection{Basic styles} % -% The header in the \textbf{classic} style is displayed on two lines, therefore we have to increase the height -% |\headheight|. +% In the \textbf{classic} style, the header is displayed on two lines, +% thus requiring an increase in the |\headheight|. % -% If we want to include header or footer in the total body, -% we can add the command |\geometry{includehead}| respectively -% |\geometry{includefoot}| in the preamble. +% To include the header or footer into the total body, +% add |\geometry{includehead}| or |\geometry{includefoot}| +% in the preamble. % \begin{macrocode} \fancypagestyle{classic}{% \renewcommand{\headrulewidth}{0pt} @@ -1022,14 +1036,14 @@ % \end{macrocode} % % In the \textbf{collection} style, -% we redefine |\sectionmark| with |\AtBeginDocument| to prevent |\MakeUppercase| -% from eliminating the section number -% (or you can use |\nouppercase| here). +% we redefine |\sectionmark| using |\AtBeginDocument| to prevent |\MakeUppercase| +% from removing the section number +% (alternatively, you can use |\nouppercase| here). % -% |\ifthenelse| doesn't work when |\and| is used within |\author|. +% The |\ifthenelse| command doesn't function properly when |\and| is used within |\author|. % -% Notice the |\pagestyle{empty}| in |\maketitle| which prevents -% any header on the first page. +% Note the |\pagestyle{empty}| command in |\maketitle|, which ensures that there is +% no header on the first page. % % \Finale \endinput diff --git a/macros/latex/contrib/schooldocs/schooldocs.ins b/macros/latex/contrib/schooldocs/schooldocs.ins index cc1b62e92c..ec68fae155 100644 --- a/macros/latex/contrib/schooldocs/schooldocs.ins +++ b/macros/latex/contrib/schooldocs/schooldocs.ins @@ -1,5 +1,5 @@ %% -%% Copyright (C) 2020-2021 by Antoine Missier +%% Copyright (C) 2020-2023 by Antoine Missier %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.3 of this license @@ -21,7 +21,7 @@ This is a generated file. -Copyright (C) 2020-2021 by Antoine Missier +Copyright (C) 2020-2023 by Antoine Missier This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license diff --git a/macros/latex/contrib/schooldocs/schooldocs.pdf b/macros/latex/contrib/schooldocs/schooldocs.pdf index a15ad07bf3..f46c1774f3 100644 Binary files a/macros/latex/contrib/schooldocs/schooldocs.pdf and b/macros/latex/contrib/schooldocs/schooldocs.pdf differ -- cgit v1.2.3