summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-09-30 03:01:38 +0000
committerNorbert Preining <norbert@preining.info>2022-09-30 03:01:38 +0000
commitd3a49f9b97d78b3719e84b2e704c59f0491190d5 (patch)
treebd50be75a1198c8104d7d3aa428106844ac69ad6 /macros/latex/contrib
parentd7ca45f66f34e5ca724a739f420c99a7c9960a89 (diff)
CTAN sync 202209300301
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/abntexto/README9
-rw-r--r--macros/latex/contrib/abntexto/abntexto-manual.pdfbin148750 -> 134196 bytes
-rw-r--r--macros/latex/contrib/abntexto/abntexto-manual.tex86
-rw-r--r--macros/latex/contrib/abntexto/abntexto.bib25
-rw-r--r--macros/latex/contrib/abntexto/abntexto.cls285
-rw-r--r--macros/latex/contrib/colorframed/README.md15
-rw-r--r--macros/latex/contrib/colorframed/colorframed-doc.pdfbin18830 -> 24581 bytes
-rw-r--r--macros/latex/contrib/colorframed/colorframed-doc.tex366
-rw-r--r--macros/latex/contrib/colorframed/colorframed.sty82
-rw-r--r--macros/latex/contrib/l3backend/CHANGELOG.md8
-rw-r--r--macros/latex/contrib/l3backend/README.md2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-basics.dtx14
-rw-r--r--macros/latex/contrib/l3backend/l3backend-box.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-code.pdfbin929269 -> 934249 bytes
-rw-r--r--macros/latex/contrib/l3backend/l3backend-color.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-draw.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-graphics.dtx6
-rw-r--r--macros/latex/contrib/l3backend/l3backend-header.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-opacity.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-pdf.dtx81
-rw-r--r--macros/latex/contrib/l3kernel/CHANGELOG.md12
-rw-r--r--macros/latex/contrib/l3kernel/README.md2
-rw-r--r--macros/latex/contrib/l3kernel/expl3.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/expl3.pdfbin626173 -> 626085 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.pdfbin1776937 -> 1776784 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3basics.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3bootstrap.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3box.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3candidates.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/l3cctab.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3clist.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3coffins.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3color.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3debug.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3deprecation.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3doc.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3doc.pdfbin557782 -> 557973 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.pdfbin151820 -> 151709 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3expan.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3file.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3flag.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-assign.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-aux.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-basics.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-convert.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-expo.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-extended.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-logic.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-parse.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-random.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-round.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-traps.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-trig.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fparray.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3int.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3intarray.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3kernel-functions.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3keys.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3legacy.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3luatex.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3msg.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3names.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3news.pdfbin395879 -> 395879 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news01.pdfbin122710 -> 122710 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news02.pdfbin150676 -> 150676 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news03.pdfbin148702 -> 148702 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news04.pdfbin114588 -> 114588 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news05.pdfbin112487 -> 112487 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news06.pdfbin151573 -> 151573 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news07.pdfbin128309 -> 128309 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news08.pdfbin163454 -> 163454 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news09.pdfbin250139 -> 250139 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news10.pdfbin150279 -> 150279 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news11.pdfbin170063 -> 170063 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news12.pdfbin204990 -> 204990 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3pdf.dtx47
-rw-r--r--macros/latex/contrib/l3kernel/l3prefixes.pdfbin81567 -> 81567 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3prg.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3prop.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3quark.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3regex.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3seq.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3skip.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3sort.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3str-convert.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3str.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.pdfbin296240 -> 296174 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.pdfbin242905 -> 242826 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3sys.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.pdfbin231316 -> 231237 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3text-case.dtx10
-rw-r--r--macros/latex/contrib/l3kernel/l3text-map.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3text-purify.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3text.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3tl-analysis.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3tl.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3token.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3unicode.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/source3.pdfbin7320159 -> 7326452 bytes
-rw-r--r--macros/latex/contrib/l3kernel/source3.tex2
106 files changed, 813 insertions, 375 deletions
diff --git a/macros/latex/contrib/abntexto/README b/macros/latex/contrib/abntexto/README
index 1ca1cc0bee..48f906c50f 100644
--- a/macros/latex/contrib/abntexto/README
+++ b/macros/latex/contrib/abntexto/README
@@ -1,7 +1,8 @@
Public Domain Software
-2022-09-25
-1.0.0-alpha
+2022-09-29
+1.1.0-alpha
Elayson
-elaysonabreu@gmail.com
+abntexto dot classe at gmail dot com
-abntexto is a LaTeX class for the elaboration of academic works according to the guidelines of the Associação Brasileira de Normas Técnicas (ABNT). \ No newline at end of file
+The abntexto is a LaTeX class for the elaboration of academic works according
+to the guidelines of the Associação Brasileira de Normas Técnicas (ABNT). \ No newline at end of file
diff --git a/macros/latex/contrib/abntexto/abntexto-manual.pdf b/macros/latex/contrib/abntexto/abntexto-manual.pdf
index 236d447268..a2282e2fd7 100644
--- a/macros/latex/contrib/abntexto/abntexto-manual.pdf
+++ b/macros/latex/contrib/abntexto/abntexto-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/abntexto/abntexto-manual.tex b/macros/latex/contrib/abntexto/abntexto-manual.tex
index 2038eed5d1..20ecc91f12 100644
--- a/macros/latex/contrib/abntexto/abntexto-manual.tex
+++ b/macros/latex/contrib/abntexto/abntexto-manual.tex
@@ -4,20 +4,24 @@
\usepackage[brazil]{babel}
\usepackage[T1]{fontenc}
-\usepackage[varqu,varl,scale=0.85]{inconsolata}
-\usepackage[matchlowercase]{tgheros} \renewcommand\familydefault\sfdefault
+\usepackage[scale=0.85]{inconsolata}
+\usepackage[matchlowercase]{tgheros} \def\familydefault{\sfdefault}
\usepackage{lipsum} \def\lip{\lipsum[1][1-2]}
\usepackage{graphicx}
\usepackage{xcolor}
+\usepackage[style=abnt]{biblatex} \addbibresource{abntexto.bib}
\usepackage[colorlinks]{hyperref}
+%\let\href=\relax
-% MARKUP DEFS
+% MARKUP
% ================================================
-\def\cs#1{{\ttfamily \string#1}}
-\def\meta#1{\textsf{⟨\textit{\fontseries{c}\selectfont #1}⟩}} % ⟨#1⟩
-\def\cc#1{{\ttfamily \{\meta{#1}\}}}
-\def\kk#1{{\ttfamily [\meta{#1}]}}
+\def\ttnoligs{\ttfamily\@noligs}
+
+\def\cs#1{{\ttnoligs \string#1}}
+\def\meta#1{{\ttnoligs <#1>}} % ⟨⟩
+\def\cc#1{{\ttnoligs \{\meta{#1}\}}}
+\def\kk#1{{\ttnoligs [\meta{#1}]}}
\def\arg{\cc{arg}}
\def\opt{\kk{opt}}
@@ -27,51 +31,50 @@
\def\opti{\kk{opti}}
\def\optii{\kk{optii}}
\def\optiii{\kk{optiii}}
-\def\ccval#1{{\ttfamily \{#1\}}}
-\def\kkval#1{{\ttfamily [#1]}}
-\def\cls#1{\textsf{\textit{#1}}}
-\def\pkg#1{\texttt{#1}}
+\def\ccval#1{{\ttnoligs \{#1\}}}
+\def\kkval#1{{\ttnoligs [#1]}}
+\def\pkg#1{{\ttnoligs #1}}
% VERBATIM
% ================================================
\def\adef#1{\catcode`#1=13 \begingroup \lccode`\~=`#1\lowercase{\endgroup\def~}}
\def\dodef#1{\catcode`#1=12 }
-\def\verbcatcodes{\let\do=\dodef \dospecials\obeyspaces\catcode`\%=14 }
+\def\verbcatcodes{\let\do=\dodef \dospecials \catcode`\%=14 \catcode`\|=0 }
-\long\def\verbon{\par\begingroup \verbcatcodes
- \catcode`\|=0 % escape char
- \adef\^^I{\space\space\space\space}\adef\^^M{\par\leavevmode}%
+\long\def\verbon{\par\begingroup \verbcatcodes\obeyspaces
+ \adef\^^I{\space\space\space}%
+ \adef\^^M{\par\leavevmode}%
\startverb
}
{\catcode`\|=0 \catcode`\\=12
- |long|gdef|startverb#1\verboff{|verbbox{#1}|par|endgroup |verbreset}
+ |gdef|startverb#1\verboff{|verbbox{#1}|par|endgroup |verbreset}
}
\def\verbbox#1{\def\tnba@placewidth{\hsize \advance\hsize-3cm}%
- \ifx\tnba@savedplace\empty \else \vskip\placeabovespace \fi
+ \ifx\tnba@savedplace\empty\else\vskip\placeabovespace\fi
\parindent=0pt
\ifx\tnba@savedplace\empty\else\tnba@makelegend\fi
- \nobreak\par\nointerlineskip \kern10pt
+ \nobreak\nointerlineskip\vskip10pt
{\verbfont{#1}}%
- \nobreak\nointerlineskip
- \ifx\tnba@savedsrc\empty \else \tnba@makesrc \vskip\placebelowspace \fi
+ \nobreak\nointerlineskip\vskip8pt
+ \ifx\tnba@savedsrc\empty\else\tnba@makesrc\vskip\placebelowspace\fi
}
\def\verbreset{%
\let\tnba@savedplace=\empty
\let\tnba@savedlegend=\empty
\let\tnba@savedsrc=\empty
- \let\@currentlabel=\relax
+ \let\@currentlabel=\empty
}
-\long\def\verbfont{\raggedright\leftskip=6pt \singlesp\ttfamily\@noligs\leftframed}
+\def\verbfont{\raggedright\leftskip=6pt\singlesp\ttnoligs\leftframed}
\long\def\leftframed#1{\setbox0=\vtop{#1}%
\hbox{{\color{graybar}\kern1.5cm\vrule width1pt}\box0}%
}
-% PERSONAL DEFS
+% MISC
% ================================================
-\sizeselectordef\large{14pt}{17pt}
-\sizeselectordef\Large{22pt}{25pt}
+\sizeselectordef\large{14.4pt}{17pt}
+\sizeselectordef\Large{20.74pt}{25pt}
\sizeselectordef\LARGE{25pt}{30pt}
\definecolor{graybar}{gray}{0.75}
@@ -87,6 +90,9 @@
\clubpenalty=10000
\widowpenalty=10000
+\let\cite=\textcite
+\def\appendixlabelwidth{7em}
+
\makeatother
@@ -99,12 +105,12 @@
abntexto\\[0.4em] \Large\itshape\mdseries
Classe para {\upshape\LaTeX}\\[2em] \normalfont\large
Elayson\\[1ex]
- \href{mailto:elaysonabreu@gmail.com}{elaysonabreu@gmail.com}\\[2.5ex]
+ \href{mailto:abntexto.classe@gmail.com}{abntexto dot classe at gmail dot com}\\[2.5ex]
\today\par}
\vskip3in
-{\centering \large\ttfamily 1.0.0-alpha\par}
+{\centering \large\ttfamily 1.1.0-alpha\par}
\newpage
@@ -114,17 +120,17 @@
\section{Apresentação}
-O \cls{abntexto} é uma classe do \LaTeX\ criada para facilitar a utilização das normas da Associação Brasileira de Normas Técnicas (ABNT) em trabalhos acadêmicos (monografias, dissertações, teses).
+O \pkg{abntexto} é uma classe do \LaTeX\ criada para facilitar a utilização das normas da Associação Brasileira de Normas Técnicas (ABNT) em trabalhos acadêmicos (monografias, dissertações, teses).
-Este \emph{não} é um manual sobre \LaTeX\ (ou \TeX, a ferramenta que o constitui) nem tampouco uma descrição detalhada sobre as normas ABNT. Para aprender sobre \LaTeX\ leia \href{https://www.ctan.org/pkg/latex-via-exemplos}{\LaTeXe\ Via Exemplos} ou \href{https://www.ctan.org/pkg/latex2e-help-texinfo}{\LaTeXe: An unofficial reference manual}, disponível também em francês. Além disso, também se pode ler \href{https://www.ctan.org/pkg/texbytopic}{\TeX\ by Topic} para aprender sobre o sistema \TeX.
+Este \emph{não} é um manual sobre \LaTeX\ (ou \TeX, a ferramenta que o constitui) nem tampouco uma descrição detalhada sobre as normas ABNT. Para aprender sobre \LaTeX\ leia \cite{viaexemplos} ou \cite{latex2eunnoficial}, disponível também em francês. Além disso, também se pode ler \cite{texbytopic} para aprender sobre o sistema \TeX\footnote{Note que os livros referenciados não foram realmente citados e isso não é aceito na Norma, no entanto este não é um trabalho acadêmico real, mas um manual.}.
-Já existe uma classe para aplicação das normas ABNT cujo nome é \cls{abntex2}. Mas, diferente desta, o \cls{abntexto} não depende do \cls{memoir}, uma classe de código-fonte e manual extensos e que implementa funções as quais, em sua maioria, não são pertinentes a um documento que use as diretrizes da ABNT.
+Já existe uma classe para aplicação das normas ABNT cujo nome é \pkg{abntex2}. Mas, diferente desta, o \pkg{abntexto} não depende do \pkg{memoir}, uma classe de código-fonte e manual extensos e que implementa funções as quais, em sua maioria, não são pertinentes a um documento que use as diretrizes da ABNT.
-As normas ABNT as quais o \cls{abntexto} se propõe a seguir são aquelas em vigor até o momento da criação deste manual.
+As normas ABNT as quais o \pkg{abntexto} se propõe a seguir são aquelas em vigor até o momento da criação deste manual.
\section{Chamando a classe}
-Digite as linhas em \ref{vb:início} e use \cls{abntexto}.
+Digite as linhas em \ref{vb:início} e use \pkg{abntexto}.
\legend{verb}{Início} \src\me
\label{vb:início}
@@ -209,13 +215,13 @@ Use o ambiente \cs{topics} para criar alíneas. Ele dispõe de dois níveis send
\label{vb:topics}
\verbon
\begin{topics}
- \item \label{alínea:x} 1
+ \item \label{al:x} 1
\begin{topics}
\item x
\item y
\item z
\end{topics}
- \item \label{alínea:y} 2
+ \item \label{al:y} 2
\item 3
\end{topics}%
\verboff
@@ -241,11 +247,19 @@ Use \cs\place\ para inserir áreas de legenda como mostrado em \ref{vb:place}. M
\section{Formatação de {\ttfamily\protect\textbackslash cite} e referências}
-Até o momento esta classe não possui macros para formatação de \cs\cite\ e referências. Utilize \cs{\usepackage\{abnt2cite\}} ou \cs{\usepackage[style=abnt]\{biblatex\}}.
+Até o momento o \pkg{abntexto} não possui macros para formatação de \cs\cite\ e referências. Utilize \cs{\usepackage\{abnt2cite\}} ou \cs{\usepackage[style=abnt]\{biblatex\}}.
\section{Citações}
-Para inserir aspas em citações diretas use \cs\qt\cc{texto}. Mas, se tratando de citações diretas com mais de três linhas, alterne para \cs\quote\ccval{enquoted text \cs\cite\cc{key}}.
+Para inserir aspas em citações diretas use \cs\qt\ccval{texto}. Mas, se tratando de citações diretas com mais de três linhas, alterne para \cs\quote\ccval{texto \cs\cite\cc{key}}.
+
+\newpage
+
+{\def\section#1#2{\heading{#2}}%
+ \printbibliography\par}
+
+\newpage
+\appendix
\section{Código-fonte}
diff --git a/macros/latex/contrib/abntexto/abntexto.bib b/macros/latex/contrib/abntexto/abntexto.bib
new file mode 100644
index 0000000000..84b0e4d98d
--- /dev/null
+++ b/macros/latex/contrib/abntexto/abntexto.bib
@@ -0,0 +1,25 @@
+@book{texbytopic,
+author = {Viktor Eijkhout},
+title = {\TeX\ by topic: a \TeX nician’s reference},
+location = {England},
+publisher = {Addison-Wesley},
+date = {1992},
+url = {https://www.ctan.org/pkg/texbytopic},
+urldate = {2022-09-28}
+}
+@book{viaexemplos,
+author = {Sadao Massago},
+title = {\LaTeXe\ Via Exemplos},
+location = {São Paulo},
+date = {2022-05-17},
+url = {https://www.ctan.org/pkg/latex-via-exemplos},
+urldate = {2022-09-28}
+}
+@book{latex2eunnoficial,
+author = {Torsten Martinsen and Stephen Gilmore and Karl Berry},
+title = {\LaTeXe: An unofficial reference manual},
+date = {2022-05},
+url = {https://www.ctan.org/pkg/latex2e-help-texinfo},
+urldate = {2022-09-28}
+}
+
diff --git a/macros/latex/contrib/abntexto/abntexto.cls b/macros/latex/contrib/abntexto/abntexto.cls
index 09e3cf9750..9fa14dca86 100644
--- a/macros/latex/contrib/abntexto/abntexto.cls
+++ b/macros/latex/contrib/abntexto/abntexto.cls
@@ -1,8 +1,24 @@
%! Public Domain Software
-%! 2022-09-25
-%! 1.0.0-alpha
+%! 2022-09-29
+%! 1.1.0-alpha
%! Elayson
-%! elaysonabreu@gmail.com
+%! abntexto dot classe at gmail dot com
+
+% ANNOUNCEMENT
+
+% The implementation of legend areas has been improved.
+
+% Inclusion of the \appendix and \annex macros.
+
+% Removal of \noprotrusion and \extfile macros.
+
+% Better compatibility with the hyperref package.
+
+% The functionality of topics has been improved.
+
+% Footnotes have been adjusted according to the Standard.
+
+% Additions to the manual.
%! SUMÁRIO
@@ -15,6 +31,7 @@
%! ALÍNEAS
%! TABELAS
%! ÁREAS DE LEGENDA
+%! NOTAS DE RODAPÉ
%! UTILIDADES
%! IDENTIFICAÇÃO DO TRABALHO
%! PATCHS, HOOKS
@@ -23,26 +40,17 @@
% |sec PRÉ-CONFIGURAÇÕES
% !=======================================================
-% Identificação do formato |TeX| e da classe. Apenas o pacote |pkg=keyval= é carregado nesta classe.
+% Identificação do formato |TeX| e da classe. Apenas o pacote |pkg keyval | é carregado no |pkg abntexto .
% |bcode !------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{abntexto}[2022-09-25 1.0.0-alpha Preparation of works in ABNT standards]
+\ProvidesClass{abntexto}[2022-09-29 1.1.0-alpha Preparation of works in ABNT standards]
\RequirePackage{keyval}
% |ecode !------------------------------------------------
-% Macros auxiliares e sistema |dest=<key|eq val>=.
-
-\ifx\csstring\undefined
- \def\tnba@csstring#1{\expandafter\tnba@csstringA\string#1//}
- \def\tnba@csstringA#1#2//{#2}
-\else
- \let\tnba@csstring=\csstring
-\fi
-
-% Definição do sistema |dest=keyval= e de um comando de |dest=debug=.
+% Definição do sistema |emph chave|eq%valor | e de um comando de |emph debug .
% |bcode !------------------------------------------------
\def\tnba@keyprefix{tnba}
@@ -52,36 +60,24 @@
\def\tnba@setmacrokeys#1{\setkeys{\tnba@keyprefix @#1}}
\def\advancecount#1{\global\advance#1by1 }
-\edef\tnba@bslash{\tnba@csstring\\}
-\def\tnba@addto#1#2{\expandafter\def\expandafter#1\expandafter {#1#2}}
+\def\tnba@addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
\def\tnba@tobdocument{\tnba@addto\tnba@bdocumenthook}
-\AddToHook{begindocument}{\def\tnba@bdocument{}}
+\let\tnba@bdocumenthook=\empty
+\AddToHook{begindocument}{\def\tnba@inbody{}\tnba@bdocumenthook}
\def\tnba@error{\ClassError{abntexto}}
% |ecode !------------------------------------------------
-% |sec FONTES
-% !================================================
-
-\def\tnba@inputfonts#1{\@namedef{tnba@fonts@#1}}
-
-\tnba@inputfonts{Latin Modern}{\usepackage{amssymb,lmodern,bm}}
-
-\tnba@inputfonts{helvetica-clone}{\def\sfdefault{qhv}\def\familydefault{\sfdefault}}
-\tnba@inputfonts{palatino-clone}{\usepackage{newpxtext,newpxmath,bm}}
-\tnba@inputfonts{timesnewroman-clone}{\usepackage{newtxtext,newtxmath,bm}}
-
-\def\fonts#1{\ifcsname tnba@fonts@#1\endcsname
- \csname tnba@fonts@#1\endcsname \else
- \tnba@error{Fonte *#1* desconhecida}\relax \fi
-}
+% |sec FONTE TIPOGRÁFICA
+% !=======================================================
-% Apenas o tamanho 12|,pt está definido. Defina outros usando |cs=fontsizedef=|metac=size=|metac=defs=.
+% Apenas o tamanho 12|,pt está definido. Defina outros usando |cs fontsizedef |metac size |metac defs .
% |bcode !------------------------------------------------
\def\fontsizedef#1#2{\@namedef{tnba@fontsize@#1}{#2}}
\def\sizeselectordef#1#2#3{\DeclareRobustCommand#1{\@setfontsize#1{#2}{#3}}}
+\def\normalsizedef#1#2{\def\normalsize{\@setfontsize\normalsize{#1}{#2}}}
\def\setfontsize#1{\ifcsname tnba@fontsize@#1\endcsname
\def\tnba@setfontsizehook{\csname tnba@fontsize@#1\endcsname} \else
\let\normalsize=\relax
@@ -89,9 +85,8 @@
}
\AddToHook{begindocument/before}{\tnba@setfontsizehook}
-% |ecode !------------------------------------------------
-\def\spacing#1{\ifx\tnba@bdocument\undefined
+\def\spacing#1{\ifx\tnba@inbody\undefined
\def\tnba@spacinghook{\tnba@spacing{#1}} \else
\tnba@spacing{#1}\fi \ignorespaces
}
@@ -102,10 +97,12 @@
\def\doublesp{\spacing{2}}
\AddToHook{begindocument}{\csname tnba@spacinghook\endcsname}
+% |ecode !------------------------------------------------
-% LAYOUT
-% ================================================
+% |sec |emph LAYOUT
+% !=======================================================
+% |bcode !------------------------------------------------
\def\tnba@keyfamily{paper}
\def\papersizedef#1(#2,#3){\def\tnba@keyfamily{paper}%
@@ -136,7 +133,7 @@
\advance\headsep-\fontcharht\font`1
\ifx\pdfpagewidth\undefined
\ifx\pagewidth\undefined
- \tnba@error{O comando \tnba@bslash paper só suporta saída em PDF. Use o formato PDF ou carregue o pacote *geometry*}\expandafter\enddocument\relax \else
+ \tnba@error{O comando \@backslashchar paper só suporta saída em PDF. Use o formato PDF ou carregue o pacote *geometry*}\expandafter\enddocument\relax \else
\horigin=0pt
\vorigin=0pt
\pagewidth=\paperwidth
@@ -158,7 +155,9 @@
\ifx\tnba@twoside\undefined \else
\csname @twoside\tnba@twoside\endcsname \fi
}
+% |ecode !------------------------------------------------
+% |bcode !------------------------------------------------
\def\pretextual{\paper{twoside=false}%
\let\@oddhead=\empty
\let\@evenhead=\empty
@@ -173,13 +172,13 @@
\justifying
\parindent=1.5cm
}
+% |ecode !------------------------------------------------
-% SUMÁRIO
-% ================================================
+% |sec SUMÁRIO
+% !=======================================================
+% |bcode !------------------------------------------------
\def\thepage{\the\c@page}
-\def\noprotrusion{\kern-1pt\kern1pt}
-\def\extfile#1{\@starttoc{#1}}
\def\extline#1#2#3#4{%
\begingroup
@@ -187,7 +186,7 @@
\extlineshape
\hskip-\leftskip {#3}\nobreak
\leaders\hbox{$\m@th \mkern4.5mu\hbox{.}\mkern4.5mu$}\hfil\nobreak
- \hbox to1.55em{\hss #4\noprotrusion}\par
+ \hbox to1.55em{\hss #4\kern-1pt\kern1pt}\par
\endgroup
}
\def\extlineshape{%
@@ -204,7 +203,7 @@
\usetocifont \nobreak
\extlineshape
\hskip-\leftskip \maybeuctoc{#1}\nobreak\hfil\nobreak
- \hbox to1.55em{\hss #2\noprotrusion}\par
+ \hbox to1.55em{\hss #2\kern-1pt\kern1pt}\par
\endgroup
}
\def\l@subsection {\extline{toc}{2}}
@@ -217,10 +216,12 @@
\def\tociiifont#1{\def\usetociiifont{#1}}
\def\tocivfont#1{\def\usetocivfont{#1}}
\def\tocvfont#1{\def\usetocvfont{#1}}
+% |ecode !------------------------------------------------
-% SECIONAMENTO
-% ================================================
+% |sec SECIONAMENTO
+% !=======================================================
+% |bcode !------------------------------------------------
\def\tnba@nbpar{\interlinepenalty=10000\par}
\def\noindentfirst{\global\everypar={\tnba@wipeepar \setbox7=\lastbox}}
\def\tnba@wipeepar{\global\everypar={}}
@@ -236,7 +237,9 @@
\ifdim\savedlastskip>\dimen0 \vskip\savedlastskip \else #2\fi
}
\def\smartbelowskip#1{#1\global\savedtitleskip=\lastskip \penalty11333}
+% |ecode !------------------------------------------------
+% |bcode !------------------------------------------------
\newcount\sectioncount
\newcount\subsectioncount
\newcount\subsubsectioncount
@@ -254,12 +257,16 @@
\def\subsubsectionmark#1{}
\def\paragraphmark#1{}
\def\subparagraphmark#1{}
+% |ecode !------------------------------------------------
+% |bcode !------------------------------------------------
\def\section#1{\par \smartaboveskip{\penalty351}{\vskip\sectionabove}\noindent
\advancecount\sectioncount
+ \def\@currentlabel{seção~\thesection}%
\setbox0=\hbox{\usesectionfont \thesection\quad}%
{\usesectionfont \hangindent=\wd0 \box0 \maybeucsec{#1}\tnba@nbpar}%
% \noindentfirst
+ \hreftocline{section}%
\addcontentsline{toc}{section}{\protect\extlabelbox{\thesection\hss}#1}%
\nobreak \smartbelowskip{\vskip\sectionbelow}%
}
@@ -268,6 +275,7 @@
\setbox0=\hbox{\usesubsectionfont \thesubsection\quad}%
{\usesubsectionfont \hangindent=\wd0 \box0 #1\tnba@nbpar}%
% \noindentfirst
+ \hreftocline{subsection}%
\addcontentsline{toc}{subsection}{\protect\extlabelbox{\thesubsection\hss}#1}%
\nobreak \smartbelowskip{\vskip\subsectionbelow}%
}
@@ -276,6 +284,7 @@
\setbox0=\hbox{\usesubsubsectionfont \thesubsubsection\quad}%
{\usesubsubsectionfont \hangindent=\wd0 \box0 #1\tnba@nbpar}%
% \noindentfirst
+ \hreftocline{subsubsection}%
\addcontentsline{toc}{subsubsection}{\protect\extlabelbox{\thesubsubsection\hss}#1}%
\nobreak \smartbelowskip{\vskip\subsubsectionbelow}%
}
@@ -284,6 +293,7 @@
\setbox0=\hbox{\useparagraphfont \theparagraph\quad}%
{\useparagraphfont \hangindent=\wd0 \box0 #1\tnba@nbpar}%
% \noindentfirst
+ \hreftocline{paragraph}%
\addcontentsline{toc}{paragraph}{\protect\extlabelbox{\theparagraph\hss}#1}%
\nobreak \smartbelowskip{\vskip\paragraphbelow}%
}
@@ -292,17 +302,23 @@
\setbox0=\hbox{\subsubparagraphfont \thesubparagraph\quad}%
{\usesubparagraphfont \hangindent=\wd0 \box0 #1\tnba@nbpar}%
% \noindentfirst
+ \hreftocline{subparagraph}%
\addcontentsline{toc}{subparagraph}{\protect\extlabelbox{\thesubparagraph\hss}#1}%
\nobreak \smartbelowskip{\vskip\subparagraphbelow}%
}
\def\heading#1{\noindent
{\usesectionfont \centering \maybeucsec{#1}\tnba@nbpar}%
-% \noindentfirst
\nobreak \vskip\sectionbelow
-% \addcontentsline{toc}{section}{\hbox to\extlabelwidth{}\maybeuctoc{#1}}%
}
+\def\hreftocline#1{\Hy@MakeCurrentHrefAuto{#1}%
+ \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
+}
+\tnba@tobdocument{\ifx\hypertarget\undefined \let\hreftocline=\@gobble \fi}
+% |ecode !------------------------------------------------
+
+% |bcode !------------------------------------------------
\def\tociuppercase{\def\maybeuctoc{\MakeUppercase}}
\def\tocilowercase{\let\maybeuctoc=\relax}
\def\sectionuppercase{\def\maybeucsec{\MakeUppercase}}
@@ -319,27 +335,61 @@
\def\subsubsectionspaces#1#2{\def\subsubsectionabove{#1}\def\subsubsectionbelow{#2}}
\def\paragraphspaces#1#2{\def\paragraphabove{#1}\def\paragraphbelow{#2}}
\def\subparagraphspaces#1#2{\def\subparagraphabove{#1}\def\subparagraphbelow{#2}}
+% |ecode !------------------------------------------------
+
+% |bcode !------------------------------------------------
+\newcount\appendixcount
+\newcount\annexcount
+
+\def\theappendix{\@Alph\appendixcount}
+\def\theannex{\@Alph\annexcount}
+\def\appendixlabelwidth{8em}
+\def\annexlabelwidth{6.2em}
+
+\def\l@appendix{%
+ \let\extlabelwidth=\appendixlabelwidth
+ \def\extlabelbox##1{\hbox to\extlabelwidth{Apêndice~##1~---~\hfil}}%
+ \l@section
+}
+\def\l@annex{%
+ \let\extlabelwidth=\annexlabelwidth
+ \def\extlabelbox##1{\hbox to\extlabelwidth{Anexo~##1~---~\hfil}}%
+ \l@section
+}
+
+\def\appendix{\def\section##1{\noindent \advance\appendixcount by1
+ {\usesectionfont \centering \maybeucsec{Apêndice~\theappendix~---~##1}\tnba@nbpar}%
+ \addcontentsline{toc}{appendix}{\protect\extlabelbox{\theappendix}##1}%
+ \nobreak \vskip\sectionbelow
+ }%
+}
+\def\annex{\def\section##1{\noindent \advance\annexcount by1
+ {\usesectionfont \centering \maybeucsec{Anexo~\theannex~---~##1}\tnba@nbpar}%
+ \addcontentsline{toc}{annex}{\protect\extlabelbox{\theannex}##1}%
+ \nobreak \vskip\sectionbelow
+ }%
+}
+% |ecode !------------------------------------------------
-% CITAÇÕES
-% ================================================
+% |sec CITAÇÕES
+% !=======================================================
+% |bcode !------------------------------------------------
\def\qt#1{``#1''}
\def\quote#1{\smartaboveskip{\penalty351}{\vskip\baselineskip}%
-\hfill\vtop{\advance\hsize-4cm \noindent\small #1\getprev}\useprev
+ \hbox to\hsize{\hfil\vtop{\advance\hsize-4cm \noindent\small #1\getprev}}\useprev
\smartbelowskip{\vskip\baselineskip}%
}
+% |ecode !------------------------------------------------
-% ALÍNEAS
-% ================================================
+% |sec ALÍNEAS
+% !=======================================================
+% |bcode !------------------------------------------------
\newcount\topicsdepth
\newcount\topicscount
-\def\topicsindenti{\advance\leftskip\topicslabelwidth}
-\def\topicsindentii{\advance\leftskip\topicslabelwidth \advance\leftskip\topicslabelwidth}
-\def\topicslabelwidth{4ex}
-
\def\topicsitem{\par\leavevmode\noindent \advance\topicscount by1
\def\@currentlabel{alínea~\@alph\topicscount )}%
\kern\dimexpr-\parindent-\topicslabelwidth\relax
@@ -350,23 +400,26 @@
\def\topicslabelii{---}
\def\topics{\par \advance\topicsdepth by1
- \leftskip=\parindent
- \csname topicsindent\romannumeral\topicsdepth\endcsname
+ \ifnum\topicsdepth=1 \advance\leftskip\parindent \fi
+ \advance\leftskip\topicslabelwidth
\edef\topicsmakelabel{\expandafter\noexpand\csname topicslabel\romannumeral\topicsdepth\endcsname}%
\let\item=\topicsitem
\tnba@addto\@esphack\ignorespaces
}
-
\let\endtopics=\par
+% |ecode !------------------------------------------------
% |sec TABELAS
-% ! ================================================
+% !=======================================================
+% |bcode !------------------------------------------------
\newenvironment{table}[1]{\begin{tabular}{#1}}{\end{tabular}}
+% |ecode !------------------------------------------------
-% ÁREAS DE LEGENDA
-% ================================================
+% |sec ÁREAS DE LEGENDA
+% !=======================================================
+% |bcode !------------------------------------------------
%\long\def\@makecaption#1#2{\sbox0{#1~—~#2}%
% \ifdim\wd0>\hsize
% #1~—~#2\par \else
@@ -389,24 +442,28 @@
% \@nameedef{ftype@#1}{\the\numexpr\tnba@lastplacenum+1}
% \@namedef{fnum@#1}{\csname #1name\endcsname ~\csname the#1\csname}
}
+% |ecode !------------------------------------------------
-\def\tnba@makelegend{\advancecount{\csname c@\tnba@savedplace\endcsname}%
- \hfil \hbox{\vtop{\setbox0=\hbox{\legendlabel \tnba@savedlegend}%
+% |bcode !------------------------------------------------
+\def\tnba@makelegend{\hbox to\hsize{\hfil\tnba@makelegendA\hfil}}
+\def\tnba@makelegendA{\advancecount{\csname c@\tnba@savedplace\endcsname}%
+ \vtop{\setbox0=\hbox{\legendlabel \tnba@savedlegend}%
\ifdim\wd0>\legendmaxwidth \hsize=\legendmaxwidth \else \hsize=\wd0 \fi
- \setbox0=\hbox{\legendlabel}\legendlabel
- \vtop{\advance\hsize-\wd0 \tnba@savedlegend}%
- }}%
+ \legendlabel
+ \vtop{\setbox0=\hbox{\legendlabel}\advance\hsize-\wd0 \tnba@savedlegend}%
+ }%
\addcontentsline{\csname ext@\tnba@savedplace\endcsname}%
- {\tnba@savedplace}%
- {\protect\extlabelbox\thelegend \tnba@savedlegend}%
+ {\tnba@savedplace}%
+ {\protect\extlabelbox\thelegend \tnba@savedlegend}%
}
-\def\tnba@makesrc{\vskip8pt
- \hfil \hbox{\vtop{\hsize=\tnba@placewidth
- \setbox0=\hbox{\srclabel}\srclabel
- \vtop{\advance\hsize-\wd0 \tnba@savedsrc\getprev}%
- }}\useprev
+
+\def\tnba@makesrc{\hbox to\hsize{\hfil\tnba@makesrcA\hfil}\useprev}
+\def\tnba@makesrcA{\vtop{\hsize=\tnba@placewidth \srclabel
+ \vtop{\setbox0=\hbox{\srclabel}\advance\hsize-\wd0 \tnba@savedsrc \getprev}}%
}
+% |ecode !------------------------------------------------
+% |bcode !------------------------------------------------
\def\legend#1#2{%
\ifdim\lastskip<0pt \else
\ifnum\lastpenalty=11333 \vskip-\placeabovespace \else
@@ -425,33 +482,49 @@
\def\tnba@savedsrc{#1}%
}
\def\srcname{Fonte}
+% |ecode !------------------------------------------------
-\def\placespaces#1#2{\def\placeabovespace{#1}\def\placebelowspace{#2}}
-
+% |bcode !------------------------------------------------
\let\tnba@savedplace=\empty
\let\tnba@savedlegend=\empty
\let\tnba@savedsrc=\empty
-\long\def\place#1{%
- \ifx\tnba@savedplace\empty \else \vskip\placeabovespace \fi
- \begingroup \setbox0=\hbox{\ignorespaces#1}\edef\tnba@placewidth{\the\wd0}%
+\long\def\place#1{\setbox0=\hbox{\ignorespaces#1}\edef\tnba@placewidth{\the\wd0}%
+ \vskip\placeabovespace
+ \begingroup
\parindent=0pt
- \ifx\tnba@savedplace\empty\else\tnba@makelegend\fi
- \nobreak\par\nointerlineskip
- \hbox to\hsize{\hss\box0\hss}%
- \nobreak\par\nointerlineskip
- \ifx\tnba@savedsrc\empty \else \tnba@makesrc \vskip\placebelowspace \fi
-\par
+ \ifx\tnba@savedplace\empty\else\tnba@makelegend\fi
+ \nointerlineskip\nobreak\vskip10pt
+ \hbox to\hsize{\hfil\box0\hfil}%
+ \nointerlineskip\nobreak\vskip8pt
+ \tnba@makesrc
+ \vskip\placebelowspace
\endgroup
\let\tnba@savedplace=\empty
\let\tnba@savedlegend=\empty
\let\tnba@savedsrc=\empty
- \let\@currentlabel=\relax
+ \let\@currentlabel=\empy
}
+\def\placespaces#1#2{\def\placeabovespace{#1}\def\placebelowspace{#2}}
+% |ecode !------------------------------------------------
+
+% |sec NOTAS DE RODAPÉ
+% !=======================================================
+
+% As notas de rodapé também foram modificadas.
-% UTILIDADES
-% ================================================
+% |bcode !------------------------------------------------
+\let\footnotesize=\relax
+\def\@makefnmark{\hbox{\@textsuperscript{\selectfont\@thefnmark}}}
+\def\@makefntext#1{\leavevmode \setbox0=\hbox{\@makefnmark\kern2pt}%
+\hangindent=\wd0 \box0 \small #1}
+\def\footnoterule{\kern18pt\hrule width5cm\kern2.6pt}
+% |ecode !------------------------------------------------
+
+% |sec UTILIDADES
+% !=======================================================
+% |bcode !------------------------------------------------
\def\getprev{\par\xdef\tnba@getprevA{\the\prevdepth}}
\def\useprev{\par\prevdepth=\tnba@getprevA}
@@ -468,10 +541,12 @@
\def\tnba@EnterS[#1]{\vskip#1\baselineskip}
\def\twonewpage{\newpage\leavevmode\newpage}
+% |ecode !------------------------------------------------
-% IDENTIFICAÇÃO DO TRABALHO
-% ================================================
+% |sec IDENTIFICAÇÃO DO TRABALHO
+% !=======================================================
+% |bcode !------------------------------------------------
%\long\def\indexcarddebug#1{\hbox{\vrule\vbox to7.5cm{\hsize=\hsize %\advance\hsize-2cm \advance\hsize-0.8pt
% \hrule\indexcardA{#1}\vss\indexcardbar\hrule}\vrule}%
%}
@@ -487,14 +562,15 @@
\def\indexcardbar{\hrule\kern1cm}
\def\judgeline#1{\par{\centering \rule{.7\linewidth}{.6pt}\\ #1\Enter[1.5]}}
+% |ecode !------------------------------------------------
-% |sec ?
-% ! ================================================
+% |sec A VÍRGULA COMO SEPARADOR DECIMAL
+% !=======================================================
+% |bcode !------------------------------------------------
{\catcode`,=\active
\gdef,{\futurelet\next\tnba@smartcomma}
}
-
\def\tnba@smartcomma{%
\ifx\next\@sptoken \else
\ifx\next\space \else \mathord \fi\fi
@@ -503,20 +579,23 @@
\mathchardef\tnba@mathcomma\mathcode`\,
\mathcode`\,="8000
+% |ecode !------------------------------------------------
+% |bcode !------------------------------------------------
\ifx\XeTeXversion\undefined
\AddToHook{begindocument/before}{
\let\tnba@hyper@linkstart=\hyper@linkstart
\protected\def\hyper@linkstart#1#2{\lowercase{\tnba@hyper@linkstart{#1}{#2}}}
}
\fi
+% |ecode !------------------------------------------------
% |sec INICIALIZAÇÃO
-% ! ================================================
+% !=======================================================
% |bcode !------------------------------------------------
\fontsizedef{12pt}{
- \sizeselectordef\normalsize{12pt}{14.5pt}
+ \normalsizedef{12pt}{14.5pt}
\sizeselectordef\small{10pt}{12pt}
}
\setfontsize{12pt}
@@ -568,19 +647,21 @@
\def\makelof{\heading{Lista de figuras}
\def\extlabelwidth{12.5ex}%
\def\extlabelbox##1{\hbox to\extlabelwidth{Figura ##1 ---\hfil}}%
- \extfile{lof}\newpage
+ \@starttoc{lof}\twonewpage
}
\def\makelot{\heading{Lista de tabelas}
- \def\extlabelwidth{12.5ex}
+ \def\extlabelwidth{12.5ex}%
\def\extlabelbox##1{\hbox to\extlabelwidth{Tabela ##1 ---\hfil}}%
- \extfile{lot}\newpage
+ \@starttoc{lot}\twonewpage
}
\def\maketoc{\heading{Sumário}
- \def\extlabelwidth{4ex}
+ \def\extlabelwidth{4ex}%
\def\extlabelbox##1{\hbox to\extlabelwidth{##1\hfil}}%
- \extfile{toc}\newpage
+ \@starttoc{toc}\newpage
}
+\def\topicslabelwidth{4ex}
+
\arrayrulewidth=0.4pt
\topskip=12pt
diff --git a/macros/latex/contrib/colorframed/README.md b/macros/latex/contrib/colorframed/README.md
index 1d5084a71a..be683de121 100644
--- a/macros/latex/contrib/colorframed/README.md
+++ b/macros/latex/contrib/colorframed/README.md
@@ -1,6 +1,6 @@
-% colorframed 0.9a
+% colorframed 0.9b
% Jean-François Burnol
-% 2022/09/23
+% 2022/10/01
## Usage
@@ -11,20 +11,13 @@ For reporting issues, use the
## Purpose
-The initial release fixes colour leak issues which one encounters
+The package fixes colour leak issues which one encounters
with the environments provided by the
[framed](https://ctan.org/pkg/framed) package.
-It is planned to extend `colorframed` with one more environment,
-based upon [pict2e](https://ctan.org/pkg/pict2e), which will
-provide breakable boxes with possibly rounded corners, optional
-background colour, external or inset shadow, separate
-customizability of the padding separations and border widths in
-the four directions, ...
-
## Copyright and License
-Copyright (c) 2022 Jean-François Burnol
+Copyright (C) 2022 Jean-François Burnol
The colorframed [CTAN package](https://ctan.org/pkg/colorframed)
is distributed under the
diff --git a/macros/latex/contrib/colorframed/colorframed-doc.pdf b/macros/latex/contrib/colorframed/colorframed-doc.pdf
index 640c47d683..59ad4f5fcd 100644
--- a/macros/latex/contrib/colorframed/colorframed-doc.pdf
+++ b/macros/latex/contrib/colorframed/colorframed-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/colorframed/colorframed-doc.tex b/macros/latex/contrib/colorframed/colorframed-doc.tex
index 3f00ea2706..787d428b91 100644
--- a/macros/latex/contrib/colorframed/colorframed-doc.tex
+++ b/macros/latex/contrib/colorframed/colorframed-doc.tex
@@ -1,4 +1,4 @@
-\documentclass[a4paper,dvipdfmx,11pt,english]{article}
+\documentclass[a4paper,dvipdfmx,10pt,english]{article}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage{geometry}
@@ -13,7 +13,9 @@
\colorlet{TFTitleColor}{purple}
\def\colorframedTFconlabcolorcommand{\color{purple}}
% shaded
-\colorlet{shadecolor}{orange!10}
+%\colorlet{shadecolor}{orange!10}
+\colorlet{shadecolor}{lightgray!25}
+
% framed
\FrameRule5pt\relax
\FrameSep9pt\relax % this is framed.sty default anyhow, 3\fboxsep
@@ -23,8 +25,8 @@
\title{The \colorframed package%
\vadjust{\vtop to 0pt{\hbox
- to\linewidth{\strut\footnotesize Release 0.9a of
- 2022/09/23\hss report issues at \url{https://github.com/jfbu/colorframed}}\vss}}%
+ to\linewidth{\strut\footnotesize Release 0.9b of
+ 2022/10/01\hss report issues at \url{https://github.com/jfbu/colorframed/issues}}\vss}}%
}
\author{Jean-François Burnol}
\date{}
@@ -37,6 +39,12 @@
\usepackage{parskip}
\usepackage{xspace}
+\usepackage{metalogo}
+\setlogokern{La}{-0.258em}
+\setlogokern{aT}{-0.08em}
+\setlogokern{eL}{-0.1em}
+%\setlogokern{X2}{0em}
+\usepackage{enumitem}
\definecolor{joli}{RGB}{225,95,0}
\definecolor{JOLI}{RGB}{225,95,0}
@@ -44,30 +52,58 @@
\texorpdfstring{{\color{joli}\bfseries colorframed}}{colorframed}\xspace}
-{\makeatletter\sbox0{\color{RawSienna}\xdef\foo{\current@color}}}
- \edef\verbatimpushcolor{\special{color push \foo}}
- \def\verbatimpopcolor{\special{color pop}}
+% ATTENTION: dvipdfmx syntax here!
+{\makeatletter
+ \sbox0{\color{RawSienna}%
+ \xdef\verbatimpushcolor{\special{color push \current@color}}}%
+}
+\def\verbatimpopcolor{\special{color pop}}
\AddToHook{env/verbatim/before}{\verbatimpushcolor}
\AddToHook{env/verbatim/end}{\verbatimpopcolor}
+
+\newcommand\ghissue[2][]{\href{https://github.com/jfbu/colorframed/issues/#2}{#1\##2}}
+
+\makeatletter
+ %\show\verbatim@font % pas changé at begin doc
+ \def\verbatim@font{\normalfont\ttfamily\color{RawSienna}}%
+\makeatother
+
\begin{document}
\maketitle
+\vskip-1.75\baselineskip
+
+{\footnotesize
+\halign{\tabskip1em\bfseries#\unskip&\hfil(#\unskip)\hfil&#\unskip\hfil\cr
+0.9 & 2022/09/22 & initial release\cr
+0.9a & 2022/09/23 & doc fixes, mention \ctanpackage{longfbox}\cr
+0.9b & 2022/10/01 & - fix "placement of titled-frame title
+ is not backwards compatible" (\ghissue{2})\cr
+\omit&\omit& - |\colorframedTitleBarFrame| as workaround to upstream issues with titled-frame
+ (\ghissue{3}, \ghissue{4})\cr
+\omit&\omit& - add link to \ghissue{5} for usage with list items, other doc improvements
+ such as \ghissue{1}\cr
+}}
+
+\vskip-\baselineskip\vskip0pt\relax
+
\section{Description}
+
This package fixes various colour leaks one encounters with
the environments from Donald Arseneau's package
\ctanpackage{framed}. Typically, colour leaks occur if using
-|\color| (at top level) inside the environments, or more subtly also when
-using |\textcolor| with an argument ending up being split at a
-page break.
+|\color| (at top level or whose scope involves a page break) inside the
+environments, or more subtly also when using |\textcolor| with
+an argument ending up being split at a page break.
This latter type of colour leak (or colour disappearance) is the
more challenging one as the fix requires modifications or
replacements not only of some of the \ctanpackage{framed}.sty
macros (such as its |\CustomFBox|, which \colorframed overwrites)
-but also to some \LaTeX2e internals, as some environments of
+but also to some \LaTeX{} internals, as some environments of
\ctanpackage{framed}.sty rely on usage of |\fbox| or |\colorbox|.
-Rather than overwriting internal \LaTeX2e macros such as
+Rather than overwriting internal \LaTeX{} macros such as
|\@frameb@x| or |\color@b@x|, \colorframed simply replaces |\fbox|
and |\colorbox| in the \ctanpackage{framed}.sty environments by
appropriate substitutes.
@@ -75,14 +111,18 @@ appropriate substitutes.
I am aware \ctanpackage{tcolorbox} package documentation explains at
least one colour issue which looks similar to those fixed
here in \ctanpackage{framed} context, and that the fix overthere uses
-an extra colour stack, hence is not xelatex compatible
+an extra colour stack, hence is not \XeLaTeX{} compatible
currently.
The problems are solved here without involving an extra
-colour stack, hence the fixes work also with xelatex.
+colour stack, hence the fixes work also with \XeLaTeX.
\section{The environments from \ctanpackage{framed}}
+ We refer the reader to \ctanpackage{framed} for the official
+ documentation and provide here only a few relevant details,
+ particularly
+ regarding the `titled-frame' environment.
\begin{titled-frame}{A list of the environments from package \ctanpackage{framed}}
This list indicates which boxing macros are
used in the original, and their replacement.
@@ -90,7 +130,7 @@ colour stack, hence the fixes work also with xelatex.
% preamble does not work)
\halign{\bfseries#\hfil&(#\unskip)~\hfil&#\hfil\cr
%
- framed & |\fbox| & Replaced by specialization of own \rlap{\string\CustomFBox.}\cr
+ framed & |\fbox| & Replaced by specialization of own \rlap{\expandafter|\string\CustomFBox|.}\cr
%
oframed & |\CustomFBox| & \colorframed uses a redefined |\CustomFBox|.\cr
%
@@ -107,23 +147,64 @@ colour stack, hence the fixes work also with xelatex.
leftbar & none & This one does not use any boxing macro.\cr
}
\end{titled-frame}
-
-\begin{shaded*}
- We refer the reader to \ctanpackage{framed} documentation
- and provide here only a few additional details, particularly
- regarding the `titled-frame' environment as it is described
- in \ctanpackage{framed} documentation more as being a
- template than a user-level finalized environment. The above
- box gives an example of its use. It is an environment with
+The previous box gives an example of use of `titled-frame' environment.
+ It is an environment with
one mandatory argument which provides the title of the
frame, which is repeated after a page break with |(cont)|
appended. The colours |TFFrameColor| and
- |TFTitleColor| must be defined by user. To customize
- further one will need to renew the environment definition,
- which is left untouched by \colorframed (which modifies
- rather |\TitleBarFrame| and |\CustomFBox|). Here is
- how this environment is defined inside \ctanpackage{framed}.sty: (code and comments by Donald Arseneau)\par
+ |TFTitleColor| must have been defined by the user.
+ \colorframed adds the possibility to colorize separately the continuation
+ label. For example we used
+\begin{verbatim}
+\renewcommand\colorframedTFconlabcolorcommand{\color{purple}}
+\end{verbatim}
+ and the default definition of this macro is to do nothing (and then the
+ symbol obeys the |TFFrameColor|).
+
+\medskip
+% check why topsep influences separation of item 1 and 2
+% it shouldn't? hmm... ah yes I think framed itself uses \topsep...
+%\begin{enumerate}[noitemsep,topsep=6pt,font=\normalcolor]
+% j'utilise enumitem+noitemsep sinon je vois dans la partie ombrée
+% de l'espace supplémentaire au début de l'item (peut-être aussi
+% lié à l'emploi du package parskip)
+% \colorlet{shadecolor}{lightgray!25}
+
\begin{footnotesize}
+\begin{itemize}[noitemsep,topsep=3pt,% influences strangely item separation
+ parsep=3pt]
+\begin{shaded}
+\item
+\emph{The current box is an example of \emph{`shaded'}
+ environment; The
+ |shadecolor| must have been defined by user. See the
+ \ghissue[repository issue ]{5} for some comments about how to use
+ such environment with list items, if the environment is to start
+ at start of the item, as here. }
+\end{shaded}
+
+\begin{snugshade}
+\item \emph{This is an example of \emph{`snugshade'}
+ environment. It shares with \emph{`shaded'} the usage of |shadecolor|.}
+\end{snugshade}
+
+\begin{snugshade*}
+\item \emph{This is an example of \emph{`snugshade*'}.}
+\end{snugshade*}
+
+\begin{snugshade}
+\item
+%
+ The `titled-frame' environment was in effect broken in recent \LaTeX\ which
+ has modified how |\smash| behaves (the continuation label created a blank
+ line interrupting the framing); \colorframed fixes this infelicity in
+ passing.
+
+ To customize
+ further usage of `titled-frame' one must renew its definition,
+ which is left untouched by \colorframed.
+ Here is its source from \ctanpackage{framed}.sty: (code and
+ comments by Donald Arseneau)%
\begin{verbatim}
% A particular type of titled frame with continuation marks.
% Parameter #1 is the title, repeated on each page.
@@ -141,122 +222,175 @@ colour stack, hence the fixes work also with xelatex.
% could interfere with the width measurement.
{\endMakeFramed}
\end{verbatim}
-% pas de \footnote dans les environnements de framed...
-\normalcolor
-Side note: this `titled-frame' environment was in effect
-broken in recent \LaTeX\ which has modified how |\smash|
-behaves; \colorframed fixes this infelicity in passing.\par
-
-\emph{(the current box is an example of \emph{`shaded*'} environment, next one is with
-\emph{`snugshade*'}, both use a \emph{shadecolor} which must be defined by user)}
-\par
+ The continuation label used in the `titled-frame' environment
+ is |$\blacktriangleright$|
+ (which despite its name reacts to current text colour setting).
+ It requires to
+ the best of the author knowledge loading \ctanpackage{amssymb} or
+ some other math symbols package and it is up to user to do it.
+\end{snugshade}
+
+% \begin{shaded} % nesting does not work
+\begin{framed}
+\item
+\emph{(one can not nest environments of \ctanpackage{framed}.sty, else we would
+ have done so here.)}
+
+\textcolor{blue}{(Here is an attempt to use the {`framed'} environment
+ around a list item; we can see an unexpected
+ induced indentation of the
+ paragraph. And, by the way, there is no {`snugframe'} environment which would
+ let the border fit not the whole width but only the indented item.)}
+\end{framed}
+% \end{shaded} % nesting does not work
+
+\begin{snugshade}
+\item To customize the `titled-frame' output, one may simply redefine the
+ environment via suitable changes e.g. to the setting of |\fboxsep| and
+ |\fboxrule|. But doing so, one quickly discovers that the layout from
+ |\TitleBarFrame| has problems (see on this the repository issues \ghissue{3}
+ and \ghissue{4}). So \colorframed |0.9b| provides
+ |\colorframedTitleBarFrame|, which can be used as a replacement to
+ |\TitleBarFrame| in a redefined custom `titled-framed' environment. Check
+ the source code for comments. This alternative
+ obeys added customizing
+ macros whose defaults are shown here:
+\begin{verbatim}
+% (such \fboxsep should be set by environment itself, like titled-frame does)
+\def\colorframedTFtitlesep{\fboxsep}% hor. distance of title from left border
+\def\colorframedTFconlabsep{3pt}% hor. distance of continuation label from border
+\end{verbatim}
+ This variant handles differently than its model the horizontal and vertical
+ placement of the title. It is provided as an exception
+ to the general rule that this package should take care only of fixing colour
+ problems (addition of \emph{new} environments may be considered in future,
+ but fixing existing environments will not be done beyond what is described here).
+
+\end{snugshade}
+\end{itemize}
+ As was already
+ mentioned `titled-frame' had been broken some years ago by an
+ upstream \LaTeX\ change and we did not change it beyond
+ fixing this problem. The alternative |\colorframedTitleBarFrame| must be
+ opted-for explicitly by user in a re-definition of `titled-frame'
+ environment, the default remaining with the problematic
+ |\TitleBarFrame|. Or the user can do
+ |\let\TitleBarFrame\colorframedTitleBarFrame|
+ and use `titled-frame', not a new environment.
+ \par
\end{footnotesize}
-\end{shaded*}
-% jeudi 22 septembre 2022 à 14:37:08
-% Il se passe des choses très bizarres avec snugshade* ou
-% framed en premier après un \item qui me semblent être des
-% bugs de framed. Dans Sphinx, je n'ai pas eu ces problèmes,
-% au contraire je suis sûr que ça fonctionne avec les
-% environnements que j'y ai définis reposant sur framed (et un
-% \trivlist en général), j'ai testé plusieurs fois.
-% Ce n'est pas induit par colorframed j'ai vérifié sans lui.
-%\begin{enumerate}
-%\item\relax% {\footnotesize Now testing the `snugshade*' environment.}
-\begin{snugshade*}
-\leavevmode\color{OliveGreen}
- One does not need to dive into the details of the macros
- used above to understand intuitively how they are supposed
- to influence the final output. To modify this output,
- simply redefine this environment with suitable changes.
-
- Notice in particular that |$\blacktriangleright$|
- (which produces $\blacktriangleright$ and acquires thus a colour
- despite its name) requires to
- the best of my knowledge loading \ctanpackage{amssymb} or
- some other math symbols package and it is up to user to do it, if
- its usage is kept.
-%
- The original environment gives to this continuation label the
- same colour as the frame. \colorframed adds the
- possibility to customize this colour via suitably defining a
- macro, like this for example:% le % pour éviter un bug lorsqu'un caractère
- % espace est à la fin d'une ligne quasi-pleine,
- % je soupçonne bug de TeX que j'ai déjà
- % rencontré plusieurs fois, ou peut-être ici un
- % problème du \trivlist de verbatim
+
+
+
+% The aim of \colorframed regarding \ctanpackage{framed} existing
+% code base is strictly limited to fixing the colour leak issues,
+% there is no general intent to modify the existing environments of
+% \ctanpackage{framed} for them to acquire additional capabilities and
+% customizability.
+
+Already we have mentioned
\begin{verbatim}
-\renewcommand\colorframedTFconlabcolorcommand{\color{purple}}
+\colorframedTFconlabcolorcommand
\end{verbatim}
-\end{snugshade*}
+whose default definition let it expands to nothing at all (the continuation label
+then inherits the |TFFrameColor| colour).
-\begin{framed}
- This is an example of usage of the environment `framed'.
+Regarding the `framed' environment, \colorframed adds the
+\begin{verbatim}
+\colorframedbordercolorcommand
+\end{verbatim}
+which expands by default to |\normalcolor|. It influences the colour of the
+framing done by environment `framed', the original having no such
+customizability. Do not redefine it to do nothing, it always should set some
+colour, else the borders may display colour loss after a page break.
- This environment allows customization of the border width
- and of the separation with contents, via |\FrameRule| and
- |\FrameSep|, but not of the colour of the border. The
- \colorframed version adds this possibility: it is simply a
- matter of redefining the |\colorframedbordercolorcommand|
- macro, which defaults to |\normalcolor|.
-
-\footnotesize (|\color{blue}| in source)
-\normalsize
-\color{blue}
- So the current frame was configured using:
+For example
\begin{verbatim}
\setlength{\FrameRule}{5pt}
\setlength{\FrameSep}{9pt}
-\renewcommand\colorframedbordercolorcommand{\color{red!20}}
+\renewcommand\colorframedbordercolorcommand{\color{gray!50}}
\end{verbatim}
-\begin{footnotesize}\normalcolor
+configures the next usage of `framed'.
+
+\setlength{\FrameRule}{5pt}
+\setlength{\FrameSep}{9pt}
+\renewcommand\colorframedbordercolorcommand{\color{gray!50}}
+\begin{framed}
+ This environment allows indeed customization of the border width
+ and of the separation with contents, via |\FrameRule| and
+ |\FrameSep|.
+
The length |\FrameSep| influences also `oframed', `shaded', and `shaded*',
but `snugshade' and `snugshade*' employ |\fboxsep| rather.
- As per |\FrameRule|, it influences `framed' and `oframed' but not
- `titled-frame' which simply uses |\fboxrule| for its border width.\par
-\end{footnotesize}
- The text colour induced from a |\color{blue}|
- will not leak out to the frame or to the text following this
- environment, even in case of a pagebreak.
+ |\FrameRule| influences both `framed' and `oframed'.
\end{framed}
-The aim of \colorframed regarding \ctanpackage{framed} existing
-code base is strictly limited to fixing the colour leak issues,
-there is not intent to extend the existing environments of
-\ctanpackage{framed} with additional capabilities and
-customizability: we have mentioned already the two sole
-customization additions.
+\section{Technicalities, musings about future}
-\section{TODO}
+\begin{snugshade}
+I first developed the analysis of the colour leaks/losses at page breaks with
+\ctanpackage{framed} on occasion of some contributions I made to
+the \href{https://github.com/sphinx-doc/sphinx}{Sphinx project} and I am
+transferring here the gained knowledge.
+
+The key thing is that the boxes handled by \ctanpackage{framed}.sty may
+contain isolated colour push or colour pop. We must make
+sure an isolated colour push, if followed by colour changes,
+is always followed by paired ones, and never by a colour pop
+from a colour command originated "prior" and symmetrically that a sole
+colour pop does not follow a yet unpaired colour push from some other
+colour command related to the framing.
+
+This means we can not ever use things such as |\fbox|, |\colorbox| or
+|\fcolorbox| (whether or not \ctanpackage{xcolor} is loaded) as they will
+cause colour pops after a possibly isolated colour push contained in the
+(already boxed) contents which are fetched to them as arguments by
+\ctanpackage{framed}.sty internals. We must re-implement them otherwise.
+This is what is done here, without touching the \LaTeX\ internal macros
+themselves.
+
+Some portion of the macro file is occupied with the
+`titled-frame' environment of \ctanpackage{framed}.sty, which was broken by an
+upstream LaTeX change related to |\smash|, and has obvious problems
+apart from that.
+Further "obvious problems" do exist for the other \ctanpackage{framed}.sty
+environments but it is not the matter of this package to fix them.
+Perhaps in future another package will be provided based upon the
+work here and adding a completely new environment fixing the "obvious
+problems" (some of them being simply lack of customizability).
The author has developed based upon usage of \ctanpackage{pict2e}
breakable boxes with round corners, background colour, optional
-shadow (possibly inset), and other goodies and is planning on
-incorporating this environment into the package.
-%
-Of course, it will remain limited in comparison to the fully
-customizable boxes provided by package \ctanpackage{tcolorbox}
-but our testing showed significant speed-up in build time, which
-may matter for long documents.
+shadow (possibly inset), and other goodies and was planning on
+incorporating this environment into the package at some time in future.
% Hopefully this addition will be done when time will permit.
-\thispagestyle{empty}
-\enlargethispage{2\baselineskip}
+% \thispagestyle{empty}
+% \enlargethispage{2\baselineskip}
-\colorlet{shadecolor}{lightgray!50}
-\footnotesize
-\begin{snugshade}
- After initial release made it to CTAN on
+%\colorlet{shadecolor}{lightgray!50}
+% \footnotesize
+ But after initial release made it to CTAN on
2022/09/22 I became aware of \ctanpackage{longfbox} which
provides already such \ctanpackage{pict2e} breakable boxes with
rounded corners (even elliptical arcs), and furthermore with a
CSS-like interface which is exactly what I had done on my side
too... I need to check more \ctanpackage{longfbox} before a
decision is made here! Perhaps it will be better to keep
- \colorframed as it is currently and produce another package for
- extras such as \ctanpackage{pict2e}-based boxes or a key-value
- interface to `inline' or `display' box macros and environments.
+ \colorframed as it is currently and
+ extras such as new \ctanpackage{pict2e}-based boxes with a key-value
+ interface to `inline' or `display' boxing macros and environments
+ should make it to another package (loading \colorframed of course).
+
+ Of course, such a package would remain limited in its graphics abilities
+ (and customizability) in comparison to the customizable boxing environments
+ provided by package \ctanpackage{mdframed} or \ctanpackage{tcolorbox} but
+ testing with my own \ctanpackage{pict2e}-based boxes showed significant
+ speed-up in build time compared to using \ctanpackage{framed}+|\tcbox| or
+ the "breakable" option of \ctanpackage{tcolorbox}.
+
\end{snugshade}
\centerline{\hrulefill documentation ends here\hrulefill}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/colorframed/colorframed.sty b/macros/latex/contrib/colorframed/colorframed.sty
index 677cdef8a2..6b6de47977 100644
--- a/macros/latex/contrib/colorframed/colorframed.sty
+++ b/macros/latex/contrib/colorframed/colorframed.sty
@@ -1,23 +1,10 @@
-% colorframed.sty v0.9a 2022/09/23
-% Copyright (c) 2022 Jean-François Burnol
+% colorframed.sty v0.9b 2022/10/01
+% Copyright (C) 2022 Jean-François Burnol
% Distributed under the terms of the LPPL 1.3c, see README.md
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{colorframed}
- [2022/09/23 v0.9a fix `framed' breakable boxes colour leaks (JFB)]
-% This is actually same as 0.9 release of 2022/09/22 apart from these
-% comments:
-%
-% The analysis and original workarounds for using framed.sty
-% with colours were developed by me in some contributions I made
-% to the Sphinx project (\url{https://github.com/sphinx-doc/sphinx})
-% and I am transferring here the general idea.
-%
-% The key thing is that the boxes handled by framed.sty may
-% contain isolated colour push or colour pop. We must make
-% sure an isolated colour push, if followed by colour changes,
-% is always followed by paired ones, and never by a colour pop
-% from a colour command originated "prior".
-%
+ [2022/10/01 v0.9b fix `framed' breakable boxes colour leaks (JFB)]
+% Apart from code comments here, documentation is in colorframed-doc.pdf
\RequirePackage{framed}
\RequirePackage{color}
% First we must make \MakeFramed/\endMakeFramed colour safe.
@@ -123,8 +110,8 @@
\vbox{%
\colorframedbordercolorcommand % defaults to \normalcolor
\hrule\@height#3\relax
- \kern-#3\relax
#1%
+ \kern-#3\relax % see discussion of issue #2
\copy\z@ % deliberate overlap hrules+vrules to avoid anti-aliasing artefacts
\kern-#4\relax
#2%
@@ -167,4 +154,63 @@
%}% <<<< REMOVED
\endgroup
}
+% There are various issues with \TitleBarFrame/\TF@Title/TF@conlab
+% we provide an alternative
+\def\colorframedTFconlabsep{3pt}
+\newcommand\colorframedTitleBarFrame[3][]{\begingroup
+ \ifx\delimiter#1\delimiter
+ \let\TF@conlab\@empty
+ \else
+ \def\TF@conlab{%
+ \nointerlineskip
+ \hbox{\colorframedTFconlabcolorcommand
+ \smash{\rlap{\kern\wd\@tempboxa
+ % 2\fboxrule, not \fboxrule\fboxsep!
+ \kern2\fboxrule
+ \kern\dimexpr\colorframedTFconlabsep\relax #1}}}%
+ }%
+ \fi
+ \def\colorframedbordercolorcommand{\color{TFFrameColor}}%
+ \CustomFBox
+ {\colorframed@TF@Title{#2}}{\TF@conlab}%
+ \fboxrule\fboxrule\fboxrule\fboxrule
+ {#3}%
+ \endgroup
+}
+% The title bar for \colorframedTitleBarFrame, it will wrap its argument
+% as paragraphs in case it is too long, the horizontal placement is improved
+% and it will be suitably vertically centered. Nota Bene: for #1 to be
+% allowed to contain \par, the \textbf in titled-frame must be replaced by
+% some \bfseries.
+% Macro to customize the horizontal placement. For example
+% \def\colorframedTFtitleshift{0pt}
+% if \fboxrule is set by the environment to a high value.
+% Don't use negative value, some parts of the title may then be hidden
+% behind the left border.
+\def\colorframedTFtitlesep{\fboxsep}
+\newcommand\colorframed@TF@Title[1]{%
+ \ifx\delimiter#1\delimiter\else
+ %\kern-0.04pt\relax
+ \kern-.5\fboxrule
+ \begingroup
+ \setbox\@tempboxa\vbox{%
+ \kern0.8ex
+ \hbox{\kern\fboxrule
+ \kern\dimexpr\colorframedTFtitlesep\relax
+ \vbox{\hsize\dimexpr\linewidth-2\fboxrule-
+ 2\dimexpr\colorframedTFtitlesep\relax\relax
+ \noindent\color{TFTitleColor}%
+ #1\par}}%
+ \kern0.8ex}%
+ \hrule\@height\ht\@tempboxa
+ \kern-\ht\@tempboxa
+ \box\@tempboxa
+ \endgroup
+ %\nointerlineskip
+ %\kern-0.04pt\relax
+ \hrule\@height.5\fboxrule
+ \fi
+}
+% maybe provide a titled-frame variant using the above and acting like
+% snugshade respective to being used in a list?
\endinput
diff --git a/macros/latex/contrib/l3backend/CHANGELOG.md b/macros/latex/contrib/l3backend/CHANGELOG.md
index e2e4f4a3b3..448e3d3325 100644
--- a/macros/latex/contrib/l3backend/CHANGELOG.md
+++ b/macros/latex/contrib/l3backend/CHANGELOG.md
@@ -6,6 +6,11 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-09-28]
+
+### Changed
+- Add support for media box setting
+
## [2022-08-30]
### Added
@@ -267,7 +272,8 @@ this project uses date-based 'snapshot' version identifiers.
- Include `l3backend` in file names
- Moved backend code to internal for each 'parent' module
-[Unreleased]: https://github.com/latex3/latex3/compare/2022-08-30...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2022-09-28...HEAD
+[2022-09-28]: https://github.com/latex3/latex3/compare/2022-08-30...2022-09-28
[2022-08-30]: https://github.com/latex3/latex3/compare/2022-08-23...2022-08-30
[2022-08-23]: https://github.com/latex3/latex3/compare/2022-08-05...2022-08-23
[2022-08-05]: https://github.com/latex3/latex3/compare/2022-07-01...2022-08-05
diff --git a/macros/latex/contrib/l3backend/README.md b/macros/latex/contrib/l3backend/README.md
index 5961e2ff7a..321c754bcd 100644
--- a/macros/latex/contrib/l3backend/README.md
+++ b/macros/latex/contrib/l3backend/README.md
@@ -1,7 +1,7 @@
LaTeX3 Backend Drivers
======================
-Release 2022-08-30
+Release 2022-09-28
This package forms parts of `expl3`, and contains the code used to interface
with backends (drivers) across the `expl3` codebase. The functions here are
diff --git a/macros/latex/contrib/l3backend/l3backend-basics.dtx b/macros/latex/contrib/l3backend/l3backend-basics.dtx
index 09672f0ac8..99abfca034 100644
--- a/macros/latex/contrib/l3backend/l3backend-basics.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
@@ -70,27 +70,27 @@
% \begin{macrocode}
\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-dvipdfmx.def}{2022-08-30}{}
+ {l3backend-dvipdfmx.def}{2022-09-28}{}
{L3 backend support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-dvips.def}{2022-08-30}{}
+ {l3backend-dvips.def}{2022-09-28}{}
{L3 backend support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-dvisvgm.def}{2022-08-30}{}
+ {l3backend-dvisvgm.def}{2022-09-28}{}
{L3 backend support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-luatex.def}{2022-08-30}{}
+ {l3backend-luatex.def}{2022-09-28}{}
{L3 backend support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-pdftex.def}{2022-08-30}{}
+ {l3backend-pdftex.def}{2022-09-28}{}
{L3 backend support: PDF output (pdfTeX)}
%</pdftex>
%<*xetex>
- {l3backend-xetex.def}{2022-08-30}{}
+ {l3backend-xetex.def}{2022-09-28}{}
{L3 backend support: XeTeX}
%</xetex>
% \end{macrocode}
diff --git a/macros/latex/contrib/l3backend/l3backend-box.dtx b/macros/latex/contrib/l3backend/l3backend-box.dtx
index 4a41423fb0..b7748ef640 100644
--- a/macros/latex/contrib/l3backend/l3backend-box.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-code.pdf b/macros/latex/contrib/l3backend/l3backend-code.pdf
index 9862216c01..8ccb437311 100644
--- a/macros/latex/contrib/l3backend/l3backend-code.pdf
+++ b/macros/latex/contrib/l3backend/l3backend-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3backend/l3backend-color.dtx b/macros/latex/contrib/l3backend/l3backend-color.dtx
index a4eef23098..8f8ca477d1 100644
--- a/macros/latex/contrib/l3backend/l3backend-color.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-draw.dtx b/macros/latex/contrib/l3backend/l3backend-draw.dtx
index 952a849ec6..66fc78975c 100644
--- a/macros/latex/contrib/l3backend/l3backend-draw.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-draw.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-graphics.dtx b/macros/latex/contrib/l3backend/l3backend-graphics.dtx
index 53e9c767ff..424c274044 100644
--- a/macros/latex/contrib/l3backend/l3backend-graphics.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-graphics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
@@ -374,7 +374,7 @@
\@@_backend_loaded:n
{
\seq_set_from_clist:Nn \l_graphics_search_ext_seq
- { .pdf , .eps , .ps , .png , .jpg ., jpeg , .bmp }
+ { .pdf , .eps , .ps , .png , .jpg , .jpeg , .bmp }
}
% \end{macrocode}
% \end{variable}
@@ -873,7 +873,7 @@
% \texttt{dvisvgm.def} for a more complex approach, needed if clipping,
% \emph{etc.}, is covered at the graphic backend level). We have to deal
% with the fact that the image reference point is at the \emph{top}, so
-% there is a need for a veritcal shift to put it in the right place.
+% there is a need for a vertical shift to put it in the right place.
% The other issue is that |#1| must be quote-corrected. The
% \texttt{dvisvgm:img} operation quotes the file name, but if it is already
% quoted (contains spaces) then we have an issue: we simply strip off any
diff --git a/macros/latex/contrib/l3backend/l3backend-header.dtx b/macros/latex/contrib/l3backend/l3backend-header.dtx
index aab4a1228c..04ef8f63a6 100644
--- a/macros/latex/contrib/l3backend/l3backend-header.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-header.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-opacity.dtx b/macros/latex/contrib/l3backend/l3backend-opacity.dtx
index e47475eece..d9726f5d9b 100644
--- a/macros/latex/contrib/l3backend/l3backend-opacity.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-opacity.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-pdf.dtx b/macros/latex/contrib/l3backend/l3backend-pdf.dtx
index b31805b0fd..ed2339cb00 100644
--- a/macros/latex/contrib/l3backend/l3backend-pdf.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
@@ -1699,6 +1699,85 @@
%</dvisvgm>
% \end{macrocode}
%
+% \subsection{PDF Page size (media box)}
+%
+% For setting the media box, the split between backends is somewhat different
+% to other areas, thus we approach this separately. The code here assumes a
+% recent \LaTeXe{}: that is ensured at the level above.
+%
+% \begin{macrocode}
+%<*dvipdfmx|dvips>
+% \end{macrocode}
+%
+% \begin{macro}{\@@_backend_pagesize_set:nn}
+% \begin{macro}[EXP]{\@@_backend_pagesize_set:n}
+% This is done as a backend literal, so we deal with it using the shipout
+% hook. The inclusion of \cs{tex_mag:D} here is essentially to work with
+% (u)p\LaTeX{}, where this is used to adjust apparent font size.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_pagesize_set:nn #1#2
+ {
+ \__kernel_backend_first_shipout:n
+ {
+ \__kernel_backend_literal:e
+ {
+%<*dvipdfmx>
+ pdf:pagesize ~
+ width ~ \@@_backend_pagesize_set:n {#1} ~
+ height ~ \@@_backend_pagesize_set:n {#2}
+%</dvipdfmx>
+%<*dvips>
+ papersize =
+ \@@_backend_pagesize_set:n {#1} ,
+ \@@_backend_pagesize_set:n {#2}
+%</dvips>
+ }
+ }
+ }
+\cs_new:Npn \@@_backend_pagesize_set:n #1
+ { \fp_to_dim:n { \tex_mag:D / 1000 * (#1) } }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+%</dvipdfmx|dvips>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*luatex|pdftex|xetex>
+% \end{macrocode}
+%
+% \begin{macro}{\@@_backend_pagesize_set:nn}
+% Pass to the primitives.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_pagesize_set:nn #1#2
+ {
+ \dim_set:Nn \tex_pagewidth:D {#1}
+ \dim_set:Nn \tex_pageheight:D {#2}
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</luatex|pdftex|xetex>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*dvisvgm>
+% \end{macrocode}
+%
+% \begin{macro}{\@@_backend_pagesize_set:nn}
+% A no-op.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_pagesize_set:nn #1#2 { }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</dvisvgm>
+% \end{macrocode}
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md
index 90ed2a8771..33b9759edd 100644
--- a/macros/latex/contrib/l3kernel/CHANGELOG.md
+++ b/macros/latex/contrib/l3kernel/CHANGELOG.md
@@ -7,6 +7,15 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-09-28]
+
+### Added
+- Set media box for test phase documents
+
+### Fixed
+- Text case switching in `\text_titlecase_first:n` (issue
+ [\#1130](https://github.com/latex3/latex3/issues/1130))
+
## [2022-08-30]
### Added
@@ -1199,7 +1208,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/2022-08-30...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2022-09-28...HEAD
+[2022-09-28]: https://github.com/latex3/latex3/compare/2022-08-30...2022-09-28
[2022-08-30]: https://github.com/latex3/latex3/compare/2022-08-23...2022-08-30
[2022-08-23]: https://github.com/latex3/latex3/compare/2022-08-05...2022-08-23
[2022-08-05]: https://github.com/latex3/latex3/compare/2022-07-15...2022-08-05
diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md
index b6538e1855..3553676388 100644
--- a/macros/latex/contrib/l3kernel/README.md
+++ b/macros/latex/contrib/l3kernel/README.md
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2022-08-30
+Release 2022-09-28
Overview
--------
diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx
index ebf703b25f..b38c98239a 100644
--- a/macros/latex/contrib/l3kernel/expl3.dtx
+++ b/macros/latex/contrib/l3kernel/expl3.dtx
@@ -24,7 +24,7 @@
%
%<*driver|generic|package|2ekernel>
%</driver|generic|package|2ekernel>
-\def\ExplFileDate{2022-08-30}%
+\def\ExplFileDate{2022-09-28}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf
index 5726610041..df634990ec 100644
--- a/macros/latex/contrib/l3kernel/expl3.pdf
+++ b/macros/latex/contrib/l3kernel/expl3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf
index 99e424d0c3..138489c04d 100644
--- a/macros/latex/contrib/l3kernel/interface3.pdf
+++ b/macros/latex/contrib/l3kernel/interface3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex
index 64d4cff561..443c656a7b 100644
--- a/macros/latex/contrib/l3kernel/interface3.tex
+++ b/macros/latex/contrib/l3kernel/interface3.tex
@@ -54,7 +54,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2022-08-30}
+\date{Released 2022-09-28}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx
index b881dbcf1d..b971bdcc60 100644
--- a/macros/latex/contrib/l3kernel/l3basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
index 963aae5ddb..2c7ee330b8 100644
--- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx
+++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx
index bc0fbb7eb5..cc21049baf 100644
--- a/macros/latex/contrib/l3kernel/l3box.dtx
+++ b/macros/latex/contrib/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx
index 3279dda762..1bcbfc4ece 100644
--- a/macros/latex/contrib/l3kernel/l3candidates.dtx
+++ b/macros/latex/contrib/l3kernel/l3candidates.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
@@ -1639,7 +1639,7 @@
% \begin{macro}{\tl_build_end:N, \tl_build_gend:N, \@@_build_end_loop:NN}
% Get the data then clear the \meta{next~tl} recursively until finding
% an empty one. It is perhaps wasteful to repeatedly use
-% \cs{cs_to_sr:N}. The local/global scope is checked by
+% \cs{cs_to_str:N}. The local/global scope is checked by
% \cs{tl_set:Nx} or \cs{tl_gset:Nx}.
% \begin{macrocode}
\cs_new_protected:Npn \tl_build_end:N #1
diff --git a/macros/latex/contrib/l3kernel/l3cctab.dtx b/macros/latex/contrib/l3kernel/l3cctab.dtx
index 6bc41991e5..f7c26612b8 100644
--- a/macros/latex/contrib/l3kernel/l3cctab.dtx
+++ b/macros/latex/contrib/l3kernel/l3cctab.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx
index 4814d90427..643e98223e 100644
--- a/macros/latex/contrib/l3kernel/l3clist.dtx
+++ b/macros/latex/contrib/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx
index ded70d1248..1552a03c34 100644
--- a/macros/latex/contrib/l3kernel/l3coffins.dtx
+++ b/macros/latex/contrib/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3color.dtx b/macros/latex/contrib/l3kernel/l3color.dtx
index 08b4f523e0..a40f5fd381 100644
--- a/macros/latex/contrib/l3kernel/l3color.dtx
+++ b/macros/latex/contrib/l3kernel/l3color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx
index 4867d5f563..767041cbb1 100644
--- a/macros/latex/contrib/l3kernel/l3debug.dtx
+++ b/macros/latex/contrib/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx
index ef7d77d064..02f353516f 100644
--- a/macros/latex/contrib/l3kernel/l3deprecation.dtx
+++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx
index 6fdf2e694f..f3182d54fb 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 2022-08-30}
+% \date{Released 2022-09-28}
% \maketitle
% \tableofcontents
%
diff --git a/macros/latex/contrib/l3kernel/l3doc.pdf b/macros/latex/contrib/l3kernel/l3doc.pdf
index 115b0155b9..d2cfc22fed 100644
--- a/macros/latex/contrib/l3kernel/l3doc.pdf
+++ b/macros/latex/contrib/l3kernel/l3doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx
index b7dc2c2257..4d918812bb 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.dtx
+++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf
index 492c003636..6c75d44a1a 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.pdf
+++ b/macros/latex/contrib/l3kernel/l3docstrip.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx
index e975071462..6543b82274 100644
--- a/macros/latex/contrib/l3kernel/l3expan.dtx
+++ b/macros/latex/contrib/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx
index 7aaf7085de..5927ee425d 100644
--- a/macros/latex/contrib/l3kernel/l3file.dtx
+++ b/macros/latex/contrib/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx
index cbe5351708..c22d20e881 100644
--- a/macros/latex/contrib/l3kernel/l3flag.dtx
+++ b/macros/latex/contrib/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
index 8fa46b49dd..90ab28c215 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 2022-08-30}
+% \date{Released 2022-09-28}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
index 63c97ba5c1..e5d18a8d85 100644
--- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
index 74bd289d7a..be408dda0a 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 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
index f39b77b9ee..4ec2f5ec5e 100644
--- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
index ca6d5091c7..920993a13a 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 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
index b24112a5a0..fef1d48c59 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 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
index 6fb84bfb97..abd24f7219 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 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
index facb50f0ea..75e61a6f2f 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 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx
index ae5b968eca..5f6ebaa316 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 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx
index f6122647e9..cb76873a8a 100644
--- a/macros/latex/contrib/l3kernel/l3fp-round.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
index 1f0fbfa6a8..2845a9801f 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 2022-08-30}
+% \date{Released 2022-09-28}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
index f19a864aab..ce7c423ca8 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 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx
index da64860f8c..bce8ddb14b 100644
--- a/macros/latex/contrib/l3kernel/l3fp.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx
index 293154cad0..ee47549dac 100644
--- a/macros/latex/contrib/l3kernel/l3fparray.dtx
+++ b/macros/latex/contrib/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx
index 7fce0b7a2d..359b0671b5 100644
--- a/macros/latex/contrib/l3kernel/l3int.dtx
+++ b/macros/latex/contrib/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx
index be1fe6f7e3..ae476fb771 100644
--- a/macros/latex/contrib/l3kernel/l3intarray.dtx
+++ b/macros/latex/contrib/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
index d122477aeb..d7c0879fc2 100644
--- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
+++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx
index f626c9bdb2..f7ed4e7fbd 100644
--- a/macros/latex/contrib/l3kernel/l3keys.dtx
+++ b/macros/latex/contrib/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
@@ -806,7 +806,7 @@
% setting, even though these keys have the same path. For example, with
% a set of keys defined using
% \begin{verbatim}
-% \keys define:nn { mymodule }
+% \keys_define:nn { mymodule }
% {
% key-one .code:n = { \my_func:n {#1} } ,
% key-two .tl_set:N = \l_my_a_tl ,
@@ -820,7 +820,7 @@
% arbitrary sets which are independent of the key tree. Thus modifying the
% example to read
% \begin{verbatim}
-% \keys define:nn { mymodule }
+% \keys_define:nn { mymodule }
% {
% key-one .code:n = { \my_func:n {#1} } ,
% key-one .groups:n = { first } ,
diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx
index 3d37094612..8cf6620f80 100644
--- a/macros/latex/contrib/l3kernel/l3legacy.dtx
+++ b/macros/latex/contrib/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx
index bb5779f09e..175fa42d86 100644
--- a/macros/latex/contrib/l3kernel/l3luatex.dtx
+++ b/macros/latex/contrib/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx
index 32f66edd92..b369bb560d 100644
--- a/macros/latex/contrib/l3kernel/l3msg.dtx
+++ b/macros/latex/contrib/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx
index 5566ead50c..f5ab42eade 100644
--- a/macros/latex/contrib/l3kernel/l3names.dtx
+++ b/macros/latex/contrib/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf
index 11ac8695c2..9bb99485aa 100644
--- a/macros/latex/contrib/l3kernel/l3news.pdf
+++ b/macros/latex/contrib/l3kernel/l3news.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news01.pdf b/macros/latex/contrib/l3kernel/l3news01.pdf
index 23221ecb1f..4ee70dc6ee 100644
--- a/macros/latex/contrib/l3kernel/l3news01.pdf
+++ b/macros/latex/contrib/l3kernel/l3news01.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news02.pdf b/macros/latex/contrib/l3kernel/l3news02.pdf
index 8443ef5802..2a0fa6436a 100644
--- a/macros/latex/contrib/l3kernel/l3news02.pdf
+++ b/macros/latex/contrib/l3kernel/l3news02.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news03.pdf b/macros/latex/contrib/l3kernel/l3news03.pdf
index b085e34232..08404d7013 100644
--- a/macros/latex/contrib/l3kernel/l3news03.pdf
+++ b/macros/latex/contrib/l3kernel/l3news03.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news04.pdf b/macros/latex/contrib/l3kernel/l3news04.pdf
index 223cf69281..4b2ae23422 100644
--- a/macros/latex/contrib/l3kernel/l3news04.pdf
+++ b/macros/latex/contrib/l3kernel/l3news04.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news05.pdf b/macros/latex/contrib/l3kernel/l3news05.pdf
index 17dac20b2c..e8fefe11ee 100644
--- a/macros/latex/contrib/l3kernel/l3news05.pdf
+++ b/macros/latex/contrib/l3kernel/l3news05.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news06.pdf b/macros/latex/contrib/l3kernel/l3news06.pdf
index b8514e2cc3..c0c4a9506f 100644
--- a/macros/latex/contrib/l3kernel/l3news06.pdf
+++ b/macros/latex/contrib/l3kernel/l3news06.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news07.pdf b/macros/latex/contrib/l3kernel/l3news07.pdf
index 753717acd7..7dd8191920 100644
--- a/macros/latex/contrib/l3kernel/l3news07.pdf
+++ b/macros/latex/contrib/l3kernel/l3news07.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news08.pdf b/macros/latex/contrib/l3kernel/l3news08.pdf
index 136b9e6c8a..4181681985 100644
--- a/macros/latex/contrib/l3kernel/l3news08.pdf
+++ b/macros/latex/contrib/l3kernel/l3news08.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news09.pdf b/macros/latex/contrib/l3kernel/l3news09.pdf
index 83f867b7f0..0f8e475609 100644
--- a/macros/latex/contrib/l3kernel/l3news09.pdf
+++ b/macros/latex/contrib/l3kernel/l3news09.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news10.pdf b/macros/latex/contrib/l3kernel/l3news10.pdf
index 99341027da..a04326f21e 100644
--- a/macros/latex/contrib/l3kernel/l3news10.pdf
+++ b/macros/latex/contrib/l3kernel/l3news10.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news11.pdf b/macros/latex/contrib/l3kernel/l3news11.pdf
index dc636b1ddb..17e1d46497 100644
--- a/macros/latex/contrib/l3kernel/l3news11.pdf
+++ b/macros/latex/contrib/l3kernel/l3news11.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news12.pdf b/macros/latex/contrib/l3kernel/l3news12.pdf
index 07aeb8ed1f..5ea38f32af 100644
--- a/macros/latex/contrib/l3kernel/l3news12.pdf
+++ b/macros/latex/contrib/l3kernel/l3news12.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3pdf.dtx b/macros/latex/contrib/l3kernel/l3pdf.dtx
index f02362df38..091ece8b43 100644
--- a/macros/latex/contrib/l3kernel/l3pdf.dtx
+++ b/macros/latex/contrib/l3kernel/l3pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
@@ -493,9 +493,52 @@
% \end{macrocode}
% \end{macro}
%
+% \subsection{PDF Page size (media box)}
+%
+% Everything here is delayed to the start of the document so that the
+% backend will definitely be loaded.
+% \begin{macrocode}
+\cs_if_exist:NT \@kernel@before@begindocument
+ {
+ \tl_gput_right:Nn \@kernel@before@begindocument
+ {
+ \bool_lazy_all:nT
+ {
+ { \cs_if_exist_p:N \stockheight }
+ { \cs_if_exist_p:N \stockwidth }
+ { \cs_if_exist_p:N \IfDocumentMetadataTF }
+ { \IfDocumentMetadataTF { \c_true_bool } { \c_false_bool } }
+ }
+ {
+ \bool_lazy_and:nnTF
+ { \dim_compare_p:nNn \stockheight > { 0pt } }
+ { \dim_compare_p:nNn \stockwidth > { 0pt } }
+ {
+ \@@_backend_pagesize_set:nn
+ \stockwidth \stockheight
+ }
+ {
+ \bool_lazy_or:nnF
+ { \dim_compare_p:nNn \stockheight < { 0pt } }
+ { \dim_compare_p:nNn \stockwidth < { 0pt } }
+ {
+ \bool_lazy_and:nnT
+ { \dim_compare_p:nNn \paperheight > { 0pt } }
+ { \dim_compare_p:nNn \paperwidth > { 0pt } }
+ {
+ \@@_backend_pagesize_set:nn
+ \paperwidth \paperheight
+ }
+ }
+ }
+ }
+ }
+ }
+% \end{macrocode}
+%
% \subsection{Deprecated functions}
%
-% \begin{variable}{\g_@@_object_prop}
+% \begin{variable}{\g_@@_obejct_prop}
% For tracking objects.
% \begin{macrocode}
\prop_new:N \g_@@_object_prop
diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf
index 7aebfbe9bc..40c5daf8f9 100644
--- a/macros/latex/contrib/l3kernel/l3prefixes.pdf
+++ b/macros/latex/contrib/l3kernel/l3prefixes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx
index cb0d282a3c..b1e789bba9 100644
--- a/macros/latex/contrib/l3kernel/l3prg.dtx
+++ b/macros/latex/contrib/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx
index 6964f9ae47..6c97ea7ea7 100644
--- a/macros/latex/contrib/l3kernel/l3prop.dtx
+++ b/macros/latex/contrib/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx
index 9723e11509..a2d23c521b 100644
--- a/macros/latex/contrib/l3kernel/l3quark.dtx
+++ b/macros/latex/contrib/l3kernel/l3quark.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx
index 5da0fa163f..c1f668f21b 100644
--- a/macros/latex/contrib/l3kernel/l3regex.dtx
+++ b/macros/latex/contrib/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx
index 218bf5e507..d8d696d104 100644
--- a/macros/latex/contrib/l3kernel/l3seq.dtx
+++ b/macros/latex/contrib/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx
index e829802de1..08e5504b2f 100644
--- a/macros/latex/contrib/l3kernel/l3skip.dtx
+++ b/macros/latex/contrib/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx
index fac7fb0d1f..75574e3251 100644
--- a/macros/latex/contrib/l3kernel/l3sort.dtx
+++ b/macros/latex/contrib/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx
index 78f6a12649..f2d3793461 100644
--- a/macros/latex/contrib/l3kernel/l3str-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx
index 1ffa124f9e..ea62c4946d 100644
--- a/macros/latex/contrib/l3kernel/l3str.dtx
+++ b/macros/latex/contrib/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf
index 3a082655fd..6a572e6ba7 100644
--- a/macros/latex/contrib/l3kernel/l3styleguide.pdf
+++ b/macros/latex/contrib/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex
index c7352e8c42..bba7fc00b9 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 2022-08-30}
+\date{Released 2022-09-28}
\begin{document}
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
index 459cdc2b01..3df33c43d9 100644
--- a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
+++ b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex
index 83cca7ef05..ce7d578d7b 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 2022-08-30}
+\date{Released 2022-09-28}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx
index 2e9b5b939d..28e4f0b83c 100644
--- a/macros/latex/contrib/l3kernel/l3sys.dtx
+++ b/macros/latex/contrib/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
index b940dadaf5..26aadf38b0 100644
--- a/macros/latex/contrib/l3kernel/l3term-glossary.pdf
+++ b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex
index a4d96e4164..8fcf1fd489 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 2022-08-30}
+\date{Released 2022-09-28}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx
index 8a5615a1f6..cad0ed2954 100644
--- a/macros/latex/contrib/l3kernel/l3text-case.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-case.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
@@ -158,7 +158,8 @@
% {
% \@@_change_case_switch_lower:nnNnnnn ,
% \@@_change_case_switch_upper:nnNnnnn ,
-% \@@_change_case_switch_title:nnNnnnn
+% \@@_change_case_switch_title:nnNnnnn ,
+% \@@_change_case_switch_titleonly:nnNnnnn
% }
% \begin{macro}[EXP]
% {
@@ -518,6 +519,11 @@
\@@_change_case_store:n {#7}
\@@_change_case_loop:nnw {#1} {#2}
}
+\cs_new:Npn \@@_change_case_switch_titleonly:nnNnnnn #1#2#3#4#5#6#7
+ {
+ \@@_change_case_store:n {#7}
+ \@@_change_case_break:w
+ }
% \end{macrocode}
% Letter-like commands may still be present: they are set up using a simple
% lookup approach, so can easily be handled with no loop. If there is no
diff --git a/macros/latex/contrib/l3kernel/l3text-map.dtx b/macros/latex/contrib/l3kernel/l3text-map.dtx
index 8d8da0122f..3373f7508c 100644
--- a/macros/latex/contrib/l3kernel/l3text-map.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-map.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx
index 3b5f5cb8c9..7caaeb0b5e 100644
--- a/macros/latex/contrib/l3kernel/l3text-purify.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-purify.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx
index 3e89563a5e..d4b841adfe 100644
--- a/macros/latex/contrib/l3kernel/l3text.dtx
+++ b/macros/latex/contrib/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
index 912436441f..612ab5e724 100644
--- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx
index 8bdbf5098b..bf9708a153 100644
--- a/macros/latex/contrib/l3kernel/l3tl.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx
index eb2ef81b19..0312bf9874 100644
--- a/macros/latex/contrib/l3kernel/l3token.dtx
+++ b/macros/latex/contrib/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx
index 737f970484..069301057d 100644
--- a/macros/latex/contrib/l3kernel/l3unicode.dtx
+++ b/macros/latex/contrib/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-08-30}
+% \date{Released 2022-09-28}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf
index d262f0d76f..2baa614c2a 100644
--- a/macros/latex/contrib/l3kernel/source3.pdf
+++ b/macros/latex/contrib/l3kernel/source3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex
index 090cb47785..51e9ca106d 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 2022-08-30}
+\date{Released 2022-09-28}
\pagenumbering{roman}
\maketitle