summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/coolfn/README5
-rw-r--r--macros/latex/contrib/coolfn/coolfn.sty9
-rw-r--r--macros/latex/contrib/coolfn/coolfndocumentation.pdfbin67039 -> 52355 bytes
-rw-r--r--macros/latex/contrib/coolfn/coolfndocumentation.tex21
-rw-r--r--macros/latex/contrib/listings/README2
-rw-r--r--macros/latex/contrib/listings/listings-devel.pdfbin1150640 -> 1454263 bytes
-rw-r--r--macros/latex/contrib/listings/listings.dtx385
-rw-r--r--macros/latex/contrib/listings/listings.pdfbin750616 -> 1031323 bytes
-rw-r--r--macros/latex/contrib/listings/lstdrvrs.dtx48
-rw-r--r--macros/latex/contrib/listings/lstdrvrs.pdfbin565192 -> 752443 bytes
-rw-r--r--macros/latex/contrib/photobook/LICENSE2
-rw-r--r--macros/latex/contrib/photobook/README.md2
-rw-r--r--macros/latex/contrib/photobook/photobook.cls18
-rw-r--r--macros/latex/contrib/photobook/photobook.pdfbin138172 -> 138003 bytes
-rw-r--r--macros/latex/contrib/spacingtricks/README.md11
-rw-r--r--macros/latex/contrib/spacingtricks/spacingtricks.dtx595
-rw-r--r--macros/latex/contrib/spacingtricks/spacingtricks.ins6
-rw-r--r--macros/latex/contrib/spacingtricks/spacingtricks.pdfbin125414 -> 177965 bytes
-rw-r--r--macros/latex/contrib/unicode-alphabets/README.md2
-rw-r--r--macros/latex/contrib/unicode-alphabets/docs/specimen.pdfbin646266 -> 646039 bytes
-rw-r--r--macros/latex/contrib/unicode-alphabets/docs/specimen.tex2
-rw-r--r--macros/latex/contrib/unicode-alphabets/docs/unicode-alphabets.pdfbin70990 -> 73270 bytes
-rw-r--r--macros/latex/contrib/unicode-alphabets/docs/unicode-alphabets.tex2
-rw-r--r--macros/latex/contrib/unicode-alphabets/latex/csvsimple.tmp.patch.tex20
-rw-r--r--macros/latex/contrib/unicode-alphabets/latex/unicode-alphabets.sty4
25 files changed, 773 insertions, 361 deletions
diff --git a/macros/latex/contrib/coolfn/README b/macros/latex/contrib/coolfn/README
index 9b6beb43e2..8572f3fb7d 100644
--- a/macros/latex/contrib/coolfn/README
+++ b/macros/latex/contrib/coolfn/README
@@ -1,15 +1,16 @@
coolfn - a package for cool footnotes
-version: 1.0.0
+version: 1.1.0
This package provides formatting for footnotes in long legal documents, using hanging indents to make them look nicer
This work may be distributed and/or modified under the conditions of the
-LaTeX Project Public License (LPPL), version 1.3 or later.
+LaTeX Project Public License (LPPL), version 1.3c or later.
For suggestions, feature requests, and bug reports, please use the project's
GitHub site: https://github.com/ezgranet/coolfn
Version history:
+27/02/2023 Update with bottom footnotes
06/10/2022 Package creation \ No newline at end of file
diff --git a/macros/latex/contrib/coolfn/coolfn.sty b/macros/latex/contrib/coolfn/coolfn.sty
index af3ee854a2..f8bdc2dffc 100644
--- a/macros/latex/contrib/coolfn/coolfn.sty
+++ b/macros/latex/contrib/coolfn/coolfn.sty
@@ -1,13 +1,13 @@
-\def\coolfnversionnumber{1.0.0}
+\def\coolfnversionnumber{1.1.0}
\ProvidesPackage{coolfn}
-[2022/10/06\coolfnversionnumber\
+[2023/27/02\coolfnversionnumber\
A cool way to format footnotes]
% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
+% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
+% and version 1.3c or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
@@ -24,6 +24,7 @@
% from https://tex.stackexchange.com/questions/305033/is-there-a-latex-package-that-defines-an-environment-for-parskip-like-capabiliti
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage[bottom]{footmisc}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/coolfn/coolfndocumentation.pdf b/macros/latex/contrib/coolfn/coolfndocumentation.pdf
index 768c97fe7d..d273760f60 100644
--- a/macros/latex/contrib/coolfn/coolfndocumentation.pdf
+++ b/macros/latex/contrib/coolfn/coolfndocumentation.pdf
Binary files differ
diff --git a/macros/latex/contrib/coolfn/coolfndocumentation.tex b/macros/latex/contrib/coolfn/coolfndocumentation.tex
index 2d72b17ec8..43d3576b25 100644
--- a/macros/latex/contrib/coolfn/coolfndocumentation.tex
+++ b/macros/latex/contrib/coolfn/coolfndocumentation.tex
@@ -23,7 +23,7 @@ ItalicFont={Palatine Parliamentary Italic}
\setmonofont[Scale=.9,BoldFont=Source Code Pro Bold]{Source Code Pro}
\usepackage{minted}
-\date{6 October 2022\\\smallskip\ttfamily Version \coolfnversionnumber}
+\date{\today\\\smallskip\ttfamily Version \coolfnversionnumber}
\author{Elijah Z Granet\thanks{e-mail: \href{mailto:ezg21@cantab.ac.uk}{\ttfamily ezg21@cantab.ac.uk}}}
\title{\texttt{coolfn}:\\A package for a cool way to typeset footnotes}
@@ -59,17 +59,16 @@ breaklines,
firstnumber=last
]
{latex}
-
-\def\coolfnversionnumber{1.0.0}
+\def\coolfnversionnumber{1.1.0}
\ProvidesPackage{coolfn}
-[2022/10/06\coolfnversionnumber\
+[2023/27/02\coolfnversionnumber\
A cool way to format footnotes]
% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
+% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
+% and version 1.3c or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
@@ -83,9 +82,11 @@ firstnumber=last
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% from https://tex.stackexchange.com/questions/305033/is-there-a-latex-package-that-defines-an-environment-for-parskip-like-capabiliti
+% from%
+% tex.stackexchange.com/questions/305033/
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage[bottom]{footmisc}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -171,7 +172,11 @@ firstnumber=last
\section{Version History}
-\subsection{\texttt{1.0.0}}
+\subsection*{\texttt{1.1.0}}
+
+\ttfamily 27 February 2023: Fixed issue with footnotes at the bottom
+
+\subsection*{\texttt{1.0.0}}
\ttfamily 6 October 2022: Package creation
diff --git a/macros/latex/contrib/listings/README b/macros/latex/contrib/listings/README
index 5c4a4f0628..8dfe5a667e 100644
--- a/macros/latex/contrib/listings/README
+++ b/macros/latex/contrib/listings/README
@@ -3,7 +3,7 @@ Listings package
Copyright 1996--2004 Carsten Heinz (the package)
Copyright 1996--2007 individual authors (language drivers)
Copyright 2006--2007 Brooks Moses (continued maintenance)
-Copyright 2013--2020 Jobst Hoffmann (continued maintenance)
+Copyright 2013-- Jobst Hoffmann (continued maintenance)
Released under the LaTeX Project Public License 1.3c or later
diff --git a/macros/latex/contrib/listings/listings-devel.pdf b/macros/latex/contrib/listings/listings-devel.pdf
index bece208f87..4febb79f4e 100644
--- a/macros/latex/contrib/listings/listings-devel.pdf
+++ b/macros/latex/contrib/listings/listings-devel.pdf
Binary files differ
diff --git a/macros/latex/contrib/listings/listings.dtx b/macros/latex/contrib/listings/listings.dtx
index 1874a17849..c507ab5fc1 100644
--- a/macros/latex/contrib/listings/listings.dtx
+++ b/macros/latex/contrib/listings/listings.dtx
@@ -133,7 +133,7 @@
% Hoffmann became the maintainer of the \packagename{listings}
% package in 2013; see the Preface for details.}~ %
% \textless\lstemail\textgreater}
-% \date{2020/03/24\enspace\enspace Version 1.8d\ \box\abstractbox}
+% \date{2023/02/27\enspace\enspace Version 1.9\ \box\abstractbox}
% \def\lstemail{\href{mailto:j.hoffmann@fh-aachen.de}{\texttt{j.hoffmann(at)fh-aachen.de}}}
% \ifhyper
% \hypersetup{pdftitle=The Listings Package,
@@ -921,8 +921,12 @@
% insensitive and that spaces have no effect.
%
% There is at least one language (VDM, Vienna Development Language,
-% \url{http://www.vdmportal.org}) which is not directly supported by the
-% \packagename{listings} package. It needs a package for its own:
+% \url{https://en.wikipedia.org/wiki/Vienna_Development_Method}^^A
+% \footnote{\lsthelper{Vladimir Nikishkin}{2019/11/15}%
+% {bug report in the listings package documentation} informed that the
+% previous mentioned URL \url{http://www.vdmportal.org} doesn't point
+% to a VDM specific page anymore.}) which is not directly supported by
+% the \packagename{listings} package. It needs a package for its own:
% \packagename{vdmlisting}. On the other hand \packagename{vdmlisting} uses
% the \packagename{listings} package and so it should be mentioned in this
% context.
@@ -938,7 +942,7 @@
% |listings-|\meta{language}|.prf|, \meta{language} is the name of the
% supported programming language in lowercase letters.
%
-% So if an user of the \packagename{listings} package wants to use these
+% So if a user of the \packagename{listings} package wants to use these
% preferences, she/he can say for example when using Python
% \begin{quote}
% |\input{listings-python.prf}|
@@ -1257,9 +1261,13 @@
%
% \paragraph{Captions}
% Now we come to \ikeyname{caption} and \ikeyname{label}. You might guess
-% (correctly) that they can be used in the same manner as \LaTeX's |\caption|
-% and |\label| commands, although here it is also possible to have a caption
-% regardless of whether or not the listing is in a float:
+% (correctly) that they can be used in the same manner as \LaTeX's
+% |\caption| and |\label| commands, although here it is also possible to
+% have a caption regardless of whether or not the listing is in a
+% float:\footnote{You should keep in mind that according to
+% \cite{Mittelbach:companion} \ldots{} if the caption's text fits on one
+% line, the text is centered; if the text does not fit on a single line, it
+% will be typeset as a paragraph with a width equal to the line width.}
% \begin{lstsample}[caption,label]{\lstset{xleftmargin=.05\linewidth}}{}
% \begin{lstlisting}[caption={Useless code},label=useless]
% for i:=maxint to 0 do
@@ -1788,7 +1796,7 @@
% \end{lstsample}
% As you can see, you have the choice between specifying the style explicitly
% by \LaTeX\ commands or implicitly by other style keys. But, you're right,
-% some implicitly defined styles have no seperate keys, for example the second
+% some implicitly defined styles have no separate keys, for example the second
% order keyword style. Here---and never with the number 1---you just append
% the order to the base key: \texttt{keywordstyle2}.
%
@@ -1985,7 +1993,7 @@
% \lstthanks{Chris~Edwards}{edwch00p@infoscience.otago.ac.nz},
% \lstthanks{David~John~Evans}{Matrix.Software@dial.pipex.com},
% \lstthanks{Tanguy~Fautr\'e}{tfautre@pandora.be},
-% \lstthanks{Ulrike~Fischer}{-},
+% \lstthanks{Ulrike~Fischer}{news3@nililand.de},
% \lstthanks{Robert~Frank}{rf7@ukc.ac.uk},
% \lstthanks{Michael~Franke}{-},
% \lstthanks{Ignacio~Fern\'andez~Galv\'an}{-},
@@ -2337,7 +2345,7 @@
% can be used on individual listings only. They determine the physical
% input lines used to print displayed listings.
%
-% \item[1.2]
+% \item[1.2;1.9]
% \rkeyname{linerange}|={|\meta{first1}\texttt-\meta{last1}\texttt,^^A
% \meta{first2}\texttt-\meta{last2}\texttt, and so
% on|}|\label{uoption:linerange}
@@ -2346,6 +2354,14 @@
% listing are displayed. The intervals must be sorted and must not
% intersect.
%
+% In fact each part of the triplet \meta{first}\texttt-\meta{last} may
+% be omitted. Omitting \meta{first} or \meta{last} means, that the
+% range begins at line no. 1 and ends at \meta{last} or begins at
+% \meta{first} ends at the last line of the file, a single number
+% means, that the range begins and ends at the line given by the
+% number, whereas omitting \meta{first} or \meta{last} means the range
+% begins at line no. 1 and ends at the last line of the file.
+%
% \item[1.8, true]
% \rkeyname{consecutivenumbers}|=|\meta{\alternative{true,false}}^^A
% \syntaxor\rkeyname{consecutivenumbers}\label{uoption:consecutivenumbers}
@@ -3590,7 +3606,7 @@
% example, but the examples apply to \keyname{comment} and
% \keyname{deletecomment} as well.
%
-% \item[0.13] \keyname{morecomment}|=[l]|\meta{delimiter}
+% \item[0.13] \rkeyname{morecomment}|=[l]|\meta{delimiter}
%
% The delimiter starts a comment line, which in general starts with the
% delimiter and ends at end of line. If the character sequence |//|
@@ -3598,7 +3614,7 @@
% |morecomment=[l]//| is the correct declaration. For Matlab it would
% be |morecomment=[l]\%|---note the preceding backslash.
%
-% \item[0.13] \keyname{morecomment}|=[s]|\marg{delimiter}\marg{delimiter}
+% \item[0.13] \rkeyname{morecomment}|=[s]|\marg{delimiter}\marg{delimiter}
%
% Here we have two delimiters. The second ends a comment starting with
% the first delimiter. If you require two such comments you can use
@@ -3607,14 +3623,14 @@
% |morecomment=[s]{\#}{\#}|, which means that the sharp delimits both
% beginning and end of a single comment.
%
-% \item[0.13] \keyname{morecomment}|=[n]|\marg{delimiter}\marg{delimiter}
+% \item[0.13] \rkeyname{morecomment}|=[n]|\marg{delimiter}\marg{delimiter}
%
% is similar to type |s|, but comments can be nested. Identical
% arguments are not allowed---think a while about it! Modula-2 and
% Oberon-2 use |morecomment=[n]{(*}{*)}|.
%
-% \item[0.18] \keyname{morecomment}|=[f]|\meta{delimiter}
-% \item[0.18] \keyname{morecomment}|=[f][commentstyle]|\oarg{n=preceding
+% \item[0.18] \rkeyname{morecomment}|=[f]|\meta{delimiter}
+% \item[0.18] \rkeyname{morecomment}|=[f][commentstyle]|\oarg{n=preceding
% columns}\meta{delimiter}
%
% The delimiter starts a comment line if and only if it appears on a
@@ -4487,6 +4503,11 @@
% Robin Fairbairns.
% \newblock{The \textsf{moreverb} package}, 2011.
%
+% \bibitem[Mi04]{Mittelbach:companion}
+% Frank Mittelbach, Michel Goossens, Johannes Braams,
+% David P. Carlisle, and Chris Rowley.
+% \newblock{The \LaTeX-Companion}, 2004.
+%
% \bibitem[Som11]{Sommerfeldt:captions}
% Axel Sommerfeldt.
% \newblock{Customizing captions of floating environments}, 2011.
@@ -5216,7 +5237,7 @@
% defines the specified character respectively assigns \meta{token}.
% The catcode table if not affected. Be careful if your definition has
% parameters: it is not safe to read more than one character ahead.
-% Moreover, the argument can be \emph{arbitrary}; somtimes it's the next
+% Moreover, the argument can be \emph{arbitrary}; sometimes it's the next
% source code character, sometimes it's some code of the
% \packagename{listings} package, e.g.~|\relax|, |\@empty|, |\else|,
% |\fi|, and so on. Therefore don't use \TeX's ord-operator |`| on such
@@ -5909,7 +5930,7 @@
% \part{Implementation}
%
%
-% \CheckSum{12394}
+% \CheckSum{12388}
%^^A
%^^A Don't index TeX-primitives.
%^^A
@@ -6053,8 +6074,8 @@
% All files will have same date and version.
% \begin{macrocode}
%<*kernel|misc|doc>
-\def\filedate{2020/03/24}
-\def\fileversion{1.8d}
+\def\filedate{2023/02/27}
+\def\fileversion{1.9}
%</kernel|misc|doc>
% \end{macrocode}
% What we need and who we are.
@@ -8570,10 +8591,19 @@
%
% \begin{macro}{\lst@outputspace}
% \begin{macro}{\lst@visiblespace}
-% The first macro is a default definition, \ldots
+% \lsthelper{Denis Bitouz\'e}{2020/09/12}{`lst@visiblespace:
+% `verbvisiblespace instead of `textvisiblespace} pointed out, that,
+% with Lua\LaTeX{} and some monospaced font which doesn't have an
+% appropriate glyph in slot 32, `showspaces' hasn't any effect by using
+% |\textvisiblespace|. So now we're using |\verbvisiblespace| as a default
+% definition for the first macro, the test for the fontfamily
+% |\lst@ttfamily| is deleted, because in most of the cases it lead to
+% the (wrong) output of |\char32|. The definition of |\verbvisible|
+% from latex.ltx takes the different behaviour of the modern \TeX{}
+% engines into account and defines a valid |\verbvisiblespace|
% \begin{macrocode}
\def\lst@outputspace{\ }
-\def\lst@visiblespace{\lst@ttfamily{\char32}\textvisiblespace}
+\def\lst@visiblespace{\verbvisiblespace}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -11876,6 +11906,7 @@
\lst@procnamefalse
\fi}
% \end{macrocode}
+% And these are the two implemented keys:
% \begin{macrocode}
\lst@Key{procnamestyle}{}{\def\lst@procnamestyle{#1}}
\lst@Key{indexprocnames}{false}[t]{\lstKV@SetIf{#1}\lst@ifindexproc}
@@ -12622,7 +12653,7 @@
}{\def\lst@firstnumber{#1\relax}}}
\lst@AddToHook{PreSet}{\let\lst@advancenumber\z@}
% \end{macrocode}
-% |\lst@firstnumber| now set to |\lst@lineno| instead of |\lst@firstline|,
+% |\lst@firstnumber| is now set to |\lst@lineno| instead of |\lst@firstline|,
% as per changes in |lstpatch.sty| from 1.3b pertaining to linerange markers.
% \begin{macrocode}
\lst@AddToHook{PreInit}
@@ -13690,8 +13721,7 @@
% \begin{lstkey}{print}
% \begin{lstkey}{firstline}
% \begin{lstkey}{lastline}
-% \begin{lstkey}{linerange}
-% The `current line' counter and three keys.
+% The `current line' counter and three option keys.
% \begin{macrocode}
\newcount\lst@lineno % \global
\lst@AddToHook{InitVars}{\global\lst@lineno\@ne}
@@ -13701,12 +13731,19 @@
\lst@Key{firstline}\relax{\def\lst@firstline{#1\relax}}
\lst@Key{lastline}\relax{\def\lst@lastline{#1\relax}}
% \end{macrocode}
+% Initialize the linerange with reasonable values
% \begin{macrocode}
\lst@AddToHook{PreSet}
- {\let\lst@firstline\@ne \def\lst@lastline{9999999\relax}}
+{%
+ \def\lst@firstline{1\relax}
+ \def\lst@lastline{9999999\relax}
+ \let\lst@linerange\@empty
+}
% \end{macrocode}
% \end{lstkey}
-% \end{lstkey}\end{lstkey}\end{lstkey}\end{macro}
+% \end{lstkey}
+% \end{lstkey}
+% \end{macro}
% The following code is just copied from the current development version, and
% from the |lstpatch.sty| file that Carsten left in version 1.3b for doing
% line ranges with numbers and range markers. It uses some more keys:
@@ -13724,8 +13761,11 @@
% \begin{macrocode}
\lst@Key{linerange}\relax{\lstKV@OptArg[]{#1}{%
\def\lst@interrange{##1}\def\lst@linerange{##2,}}}
+\lst@Key{consecutivenumbers}{true}[t]{%
+ \lstKV@SetIf{#1}\lst@ifconsecutivenumbers}
% \end{macrocode}
-%
+% The next options are needed for an easy description of arbitrary linerange
+% markers:
% \begin{macrocode}
\lst@Key{rangeprefix}\relax{\def\lst@rangebeginprefix{#1}%
\def\lst@rangeendprefix{#1}}
@@ -13735,67 +13775,127 @@
\lst@Key{rangebeginsuffix}{}{\def\lst@rangebeginsuffix{#1}}
\lst@Key{rangeendprefix}{}{\def\lst@rangeendprefix{#1}}
\lst@Key{rangeendsuffix}{}{\def\lst@rangeendsuffix{#1}}
-\lst@Key{includerangemarker}{true}[t]{\lstKV@SetIf{#1}\lst@ifincluderangemarker}
-\lst@AddToHook{PreSet}{\def\lst@firstline{1\relax}%
- \let\lst@linerange\@empty}
+\lst@Key{includerangemarker}{true}[t]{\lstKV@SetIf{#1}%
+ \lst@ifincluderangemarker}
+% \end{macrocode}
+% The line range is known---it is set either explicitly (by numbers or by
+% arbitrary linerange markers) or implicitly from the default values (1 and
+% 999999). |\lst@GetLineInterval| parses the known line range recursively,
+% because there may be a comma separated list of pairs.
+% \begin{macrocode}
\lst@AddToHook{Init}
- {\ifx\lst@linerange\@empty
- \edef\lst@linerange{{\lst@firstline}-{\lst@lastline},}%
- \fi%
- \lst@GetLineInterval}%
+{%
+ \ifx\lst@linerange\@empty
+ \edef\lst@linerange{{\lst@firstline}-{\lst@lastline},}%
+ \fi%
+ \lst@GetLineInterval%
+}%
\def\lst@GetLineInterval{\expandafter\lst@GLI\lst@linerange\@nil}
-\def\lst@GLI#1,#2\@nil{\def\lst@linerange{#2}\lst@GLI@#1--\@nil}
+% \end{macrocode}
+% Splitting the comma separated list of pairs is done by
+% \begin{macrocode}
+\def\lst@GLI#1,#2\@nil{%
+% \end{macrocode}
+% The list is split into two parts: the first element (\#1) of the list and
+% the rest of the list (\#2) which is stored in |\lst@linerange| to be
+% processed later.
+% \begin{macrocode}
+ \def\lst@linerange{#2}\lst@GLI@#1--\@nil%
+}
+% \end{macrocode}
+% Further parsing is done by |lst@GLI@|, the argument is |#1--\@nil| that
+% is the first element of the list augmented by a sentinel. This
+% argument is parsed with the template |#1-#2-#3\@nil|. A linerange given
+% as e.\,g. `|12-21|' leads to the argument |12-21--\@nil|, so it is parsed
+% as \#1\(\leftarrow\) |12|, \#2\(\leftarrow\)|21|, and \#3\(\leftarrow\)|-|.
+% \begin{macrocode}
\def\lst@GLI@#1-#2-#3\@nil{%
- \lst@IfNumber{#1}%
- {\ifx\@empty#1\@empty
- \let\lst@firstline\@ne
- \else
- \def\lst@firstline{#1\relax}%
- \fi
- \ifx\@empty#3\@empty
- \def\lst@lastline{9999999\relax}%
- \else
- \ifx\@empty#2\@empty
- \let\lst@lastline\lst@firstline
- \else
- \def\lst@lastline{#2\relax}%
- \fi
- \fi}%
% \end{macrocode}
-% If we've found a general marker, we set firstline and lastline to 9999999.
-% This prevents (almost) anything from being printed for now.
+% First we test, if the linerange starts with a number (consisting of -, 1,
+% 2, 3, \ldots) or an arbitrary linerange marker. If a linerange starts
+% erroneously with a `|-|' character, the argument \#1 isn't set and so the
+% range starts with 1, so giving a perhaps expected result, but the
+% definition of a linerange must always consist at least of the three parts
+% \meta{first}, `|-|', and \meta{last}.
+% \begin{macrocode}
+ \lst@IfNumber{#1}%
+ {%
+ \ifx\@empty#1\@empty
+ \let\lst@firstline\@ne
+ \else
+ \def\lst@firstline{#1\relax}%
+ \fi
+% \end{macrocode}
+% Now we know the starting number of the linerange. \#3 isn't set with a
+% linerange consisting of a single number, in all other cases \#2 defines
+% the last line (explicitly or implicitly).
+% \begin{macrocode}
+ \ifx\@empty#3\@empty%
+ \def\lst@lastline{9999999\relax}%
+ \ifx\@empty#2\@empty
+ \let\lst@lastline\lst@firstline%
+ \fi
+ \else%
+ \ifx\@empty#2\@empty
+ \def\lst@lastline{9999999\relax}
+ \else % doesn't happen(?)
+ \def\lst@lastline{#2\relax}%
+ \fi
+ \fi
+ }%
+% \end{macrocode}
+% If we've found an arbitrary linerange marker, we set firstline and lastline to
+% 9999999. This prevents (almost) anything from being printed for now.
% \begin{macrocode}
- {\def\lst@firstline{9999999\relax}%
- \let\lst@lastline\lst@firstline
+ {%
+ \def\lst@firstline{9999999\relax}%
+ \let\lst@lastline\lst@firstline
% \end{macrocode}
% We add the prefixes and suffixes to the markers.
% \begin{macrocode}
- \let\lst@rangebegin\lst@rangebeginprefix
- \lst@AddTo\lst@rangebegin{#1}\lst@Extend\lst@rangebegin\lst@rangebeginsuffix
- \ifx\@empty#3\@empty
- \let\lst@rangeend\lst@rangeendprefix
- \lst@AddTo\lst@rangeend{#1}\lst@Extend\lst@rangeend\lst@rangeendsuffix
- \else
- \ifx\@empty#2\@empty
- \let\lst@rangeend\@empty
- \else
- \let\lst@rangeend\lst@rangeendprefix
- \lst@AddTo\lst@rangeend{#2}\lst@Extend\lst@rangeend\lst@rangeendsuffix
- \fi
- \fi
+ \let\lst@rangebegin\lst@rangebeginprefix
+ \lst@AddTo\lst@rangebegin{#1}%
+ \lst@Extend\lst@rangebegin\lst@rangebeginsuffix
+ \ifx\@empty#3\@empty
+ \let\lst@rangeend\lst@rangeendprefix
+ \lst@AddTo\lst@rangeend{#1}
+ \lst@Extend\lst@rangeend\lst@rangeendsuffix
+ \else
+ \ifx\@empty#2\@empty
+ \let\lst@rangeend\@empty
+ \else
+ \let\lst@rangeend\lst@rangeendprefix
+ \lst@AddTo\lst@rangeend{#2}%
+ \lst@Extend\lst@rangeend\lst@rangeendsuffix
+ \fi
+ \fi
% \end{macrocode}
% The following definition will be executed in the
% \hookname{SelectCharTable} hook and here right now if we are already
% processing a listing.
% \begin{macrocode}
- \global\def\lst@DefRange{\expandafter\lst@CArgX\lst@rangebegin\relax\lst@DefRangeB}%
- \ifnum\lst@mode=\lst@Pmode \expandafter\lst@DefRange \fi}}
+ \global\def\lst@DefRange{%
+ \expandafter\lst@CArgX\lst@rangebegin\relax\lst@DefRangeB}%
+ \ifnum\lst@mode=\lst@Pmode \expandafter\lst@DefRange \fi%
+ }%
+}
% \end{macrocode}
+% \end{lstkey}
+% \end{lstkey}
+% \end{lstkey}
+% \end{lstkey}
+% \end{lstkey}
+% \end{lstkey}
+% \end{lstkey}
+% \end{lstkey}
+% \end{lstkey}
+%
+% \begin{macro}{\lst@DefRange}
% |\lst@DefRange| is not inserted via a hook anymore. Instead it is now called
% directly from |\lst@SelectCharTable|. This was necessary to get rid of an
% interference with the escape-to-LaTeX-feature. The bug was reported by
% \lsthelper{Michael~Bachmann}{2004/07/21}{Keine label-Referenzierung
-% m\"oglich...}. Another chance is due to the same bug: |\lst@DefRange| is
+% m\"oglich...}. Another change is due to the same bug: |\lst@DefRange| is
% redefined globally when the begin of code is found, see below. The bug was
% reported by \lsthelper{Tobias~Rapp}{2004/04/06}{undetected end of range if
% listing crosses page break} and \lsthelper{Markus~Luisser}{2004/08/13}{Bug mit
@@ -13803,9 +13903,6 @@
% \begin{macrocode}
\lst@AddToHookExe{DeInit}{\global\let\lst@DefRange\@empty}
% \end{macrocode}
-% \end{lstkey}\end{lstkey}\end{lstkey}
-% \end{lstkey}\end{lstkey}\end{lstkey}
-% \end{lstkey}\end{lstkey}\end{lstkey}
%
% Actually defining the marker (via |\lst@GLI@|, |\lst@DefRange|,
% |\lst@CArgX| as seen above) is similar to |\lst@DefDelimB|---except that
@@ -13830,6 +13927,7 @@
\lst@CArgEmpty}%
\@empty}
% \end{macrocode}
+% \end{macro}
%
% Modify labels and define |\lst@InitLstNumber| used above according to an
% error reported by
@@ -13896,11 +13994,31 @@
\fi}
% \end{macrocode}
%
+% Sometimes it is good to have two or more excerpts of one program numbered
+% consecutively, i.\,e. 1--11 instead of 3--5, 12--17, 20--21. So we
+% introduce |\lst@DisplayConsecutiveNumbersOrNot|, which corrects the
+% displayed line numbers to be always equal to the input line numbers
+% \begin{macrocode}
+\def\lst@DisplayConsecutiveNumbersOrNot{%
+ \lst@ifconsecutivenumbers\else%
+ \c@lstnumber=\numexpr-1+\lst@lineno
+ \fi%
+}
+% \end{macrocode}
+%
% Eventually we shouldn't forget to install |\lst@OnceAtEOL|, which must
% also be called in |\lst@MSkipToFirst|.
% \begin{macrocode}
\lst@AddToHook{EOL}{\lst@OnceAtEOL\global\let\lst@OnceAtEOL\@empty}
\gdef\lst@OnceAtEOL{}% Init
+% \end{macrocode}
+% The following code was introduced in listings version 1.4. The code
+% resembles the lines 14031--14061 of version 1.3c, but contains loops:
+% \newline|\def\lst@next{...}\expandafter\lst@next|.\newline
+% In fact that code will never be expanded, because there are two analoguous
+% definitions in section \ref{iTheInputCommand} below, so they override
+% these two commands.
+% \begin{macrocode}
\def\lst@MSkipToFirst{%
\global\advance\lst@lineno\@ne
\ifnum \lst@lineno=\lst@firstline
@@ -13959,10 +14077,13 @@
% Some keys and \ldots
% \begin{macrocode}
\lst@Key{captionpos}{t}{\def\lst@captionpos{#1}}
-\lst@Key{abovecaptionskip}\smallskipamount{\def\lst@abovecaption{#1}}
-\lst@Key{belowcaptionskip}\smallskipamount{\def\lst@belowcaption{#1}}
+\lst@Key{abovecaptionskip}\smallskipamount{%
+ \def\lst@abovecaption{#1}}
+\lst@Key{belowcaptionskip}\smallskipamount{%
+ \def\lst@belowcaption{#1}}
% \end{macrocode}
-% \lsthelper{Rolf~Niepraschk}{2000/01/10}{key: title} proposed \keyname{title}.
+% \lsthelper{Rolf~Niepraschk}{2000/01/10}{key: title} proposed
+% \keyname{title}.
% \begin{macrocode}
\lst@Key{label}\relax{\def\lst@label{#1}}
\lst@Key{title}\relax{\def\lst@title{#1}\let\lst@caption\relax}
@@ -14009,7 +14130,8 @@
\lst@UserCommand\lstlistingnamestyle{}
% \end{macrocode}
% \begin{macrocode}
-\lst@Key{numberbychapter}{true}[t]{\lstKV@SetIf{#1}\lst@ifnumberbychapter}
+\lst@Key{numberbychapter}{true}[t]{%
+ \lstKV@SetIf{#1}\lst@ifnumberbychapter}
% \end{macrocode}
% \end{lstkey}
% \end{macro}
@@ -14030,19 +14152,20 @@
% titles. The first is to separate the definitions of the skip registers and
% |\@makecaption|.
% \begin{macrocode}
-\@ifundefined{abovecaptionskip}
-{\newskip\abovecaptionskip
- \newskip\belowcaptionskip}{}
-\@ifundefined{@makecaption}
-{\long\def\@makecaption#1#2{%
- \vskip\abovecaptionskip
- \sbox\@tempboxa{#1: #2}%
- \ifdim \wd\@tempboxa >\hsize
- #1: #2\par
- \else
- \global \@minipagefalse
- \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
- \fi
+\@ifundefined{abovecaptionskip}{%
+ \newskip\abovecaptionskip%
+ \newskip\belowcaptionskip%
+}{}
+\@ifundefined{@makecaption}{%
+ \long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip%
+ \sbox\@tempboxa{#1: #2}%
+ \ifdim \wd\@tempboxa >\hsize%
+ #1: #2\par%
+ \else%
+ \global \@minipagefalse%
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi%
\vskip\belowcaptionskip}%
}{}
% \end{macrocode}
@@ -14050,13 +14173,14 @@
% replacement text was used directly in |\lst@MakeCaption|. A |\noindent| has
% been moved elsewhere and became |\@parboxrestore| after a bug report from
% \lsthelper{Frank~Mittelbach}{2004/02/13}{Re: Info: Inkompatibilit\"at
-% zwischen caption und listings}. \lsthelper{Karl Berry}{bold "listings
-% 1"?} asked for the ability of customizing the label. So
+% zwischen caption und listings}. \lsthelper{Karl Berry}{2019/08/18}{bold
+% "listings 1"?} asked for the ability of customizing the label. So
% |\lstlistingnamestyle| was introduced in front of |\lstlistingname|.
% \begin{macrocode}
\def\fnum@lstlisting{%
{\lstlistingnamestyle\lstlistingname
- \ifx\lst@@caption\@empty\else~\thelstlisting\fi}}%
+ \ifx\lst@@caption\@empty\else~\thelstlisting\fi}%
+}
% \end{macrocode}
% Captions are set only for display style listings -- thanks to
% \lsthelper{Peter~L\"offler}{2004/04/24}{pdfTeX warning (dest): name{figure.1}
@@ -14070,7 +14194,7 @@
% \begin{macrocode}
\def\lst@MakeCaption#1{%
\lst@ifdisplaystyle
- \ifx #1t%
+ \ifx #1t \allowbreak%
\ifx\lst@@caption\@empty\expandafter\lst@HRefStepCounter \else
\expandafter\refstepcounter
\fi {lstlisting}%
@@ -14098,8 +14222,8 @@
\addcontentsline{lol}{lstlisting}%
{\protect\numberline{\thelstlisting}\lst@@caption}%
\fi
- \fi
- \fi
+ \fi
+ \fi
% \end{macrocode}
% We make a caption if and only if the caption is not empty and the user
% requested a caption at |#1| $\in\{\mathtt t,\mathtt b\}$. To disallow
@@ -14121,9 +14245,10 @@
\def\vskip{\afterassignment\lst@vskip \@tempskipa}%
\def\lst@vskip{\nobreak\@@vskip\@tempskipa\nobreak}%
\par\@parboxrestore\normalsize\normalfont % \noindent (AS)
- \ifx #1t\allowbreak \fi
+ %%\ifx #1t\allowbreak \fi
\ifx\lst@title\@empty
- \lst@makecaption\fnum@lstlisting{\ignorespaces \lst@caption}
+ \lst@makecaption\fnum@lstlisting{%
+ \ignorespaces \lst@caption}
\else
\lst@maketitle\lst@title % (AS)
\fi
@@ -14836,7 +14961,8 @@
% |\lst@ShortInlineOldCatcode\|\meta{c}.
% \begin{macrocode}
\expandafter
- \xdef\csname lst@ShortInlineOldCatcode\string#1\endcsname{\the\catcode`#1}%
+ \xdef\csname lst@ShortInlineOldCatcode\string#1\endcsname{%
+ \the\catcode`#1}%
% \end{macrocode}
% The character is spliced into the definition using the same trick as
% used in |\verb| (for instance), having activated |~| in a group.
@@ -14850,7 +14976,8 @@
% \begin{macrocode}
\global\expandafter\let
\csname lst@ShortInlineOldMeaning\string#1\endcsname~%
- \expandafter\gdef\expandafter~\expandafter{\lst@shortinlinedef#1}}%
+ \expandafter\gdef\expandafter~\expandafter{%
+ \lst@shortinlinedef#1}}%
\endgroup
% \end{macrocode}
% Finally the character is made active.
@@ -14873,7 +15000,8 @@
% \begin{macro}{\lstDeleteShortInline}
% \begin{macrocode}
\def\lstDeleteShortInline#1{%
- \expandafter\ifx\csname lst@ShortInlineOldCatcode\string#1\endcsname\relax
+ \expandafter\ifx%
+ \csname lst@ShortInlineOldCatcode\string#1\endcsname\relax%
\PackageError{Listings}%
{#1 is not a short reference for \string\lstinline}%
{Use \string\lstMakeShortInline first.}%
@@ -15103,15 +15231,6 @@
% We just look whether to drop more lines or to leave the mode which restores
% the definition of chr(13) and chr(10).
% \begin{macrocode}
- \lst@Key{consecutivenumbers}{true}[t]{\lstKV@SetIf{#1}\lst@ifconsecutivenumbers}
- \def\lst@DisplayConsecutiveNumbersOrNot{%
- \lst@ifconsecutivenumbers\typeout{consecutive:}\else%
- \typeout{non-consecutive:}
- \c@lstnumber=\numexpr-1+\lst@lineno %\relax % this enforces the
- %displayed line numbers to always be the
- %input line numbers
- \fi%
-}
\def\lst@MSkipToFirst{%
\global\advance\lst@lineno\@ne
\ifnum \lst@lineno=\lst@firstline
@@ -15875,23 +15994,22 @@
% \end{macrocode}
%
% \paragraph{Indexing}
-% The `user' commands. |\rstyle| is defined below.
+% The `user' commands. There are two different ways to mark up a
+% key. |\ikeyname| is the commmand for keys which are used \textit{i}nline,
+% |\rkeyname| defines the \textit{r}eference of a key---displayed green---,
+% |\rstyle| is defined below.
% \begin{macrocode}
\newcommand\ikeyname[1]{%
\lstkeyindex{#1}{}%
\lstaspectindex{#1}{}%
\keyname{#1}}
-\newcommand\ekeyname[1]{%
- \@bsphack
- \lstkeyindex{#1}{}%
- \lstaspectindex{#1}{}%
- \@esphack}
\newcommand\rkeyname[1]{%
\@bsphack
\lstkeyindex{#1}{}%
\lstaspectindex{#1}{}%
\@esphack{\rstyle\keyname{#1}}}
% \end{macrocode}
+% The same rules apply to |\icmdname| and |\rcmdname|:
% \begin{macrocode}
\newcommand\icmdname[1]{%
\@bsphack
@@ -15950,6 +16068,7 @@
\fi}}
% \end{macrocode}
%
+%
% \paragraph{Unique styles}
% \begin{macrocode}
\newcommand*\lst{\texttt{lst}}
@@ -15972,7 +16091,8 @@
\else\fontfamily#1\fi
\selectfont}
% \end{macrocode}
-% The color mainly for keys and commands in the reference guide.
+% The color mainly for keys and commands in the reference
+% guide---\textit{r} means reference.
% \begin{macrocode}
\ifcolor
\definecolor{darkgreen}{rgb}{0,0.5,0}
@@ -16948,8 +17068,13 @@
\lst@UseHook{SetStyle}\lst@UseHook{EmptyStyle}
\lst@UseHook{SetLanguage}\lst@UseHook{EmptyLanguage}
% \end{macrocode}
-% Finally we load the configuration files.
+% Finally we load the configuration files. \lsthelper{Ulrike~Fischer}{2020/11/13}
+% {.cfg-file is read with wrong catcode} pointed out that this must happen
+% with the correct catcode. At the moment the catcode of |^^M| is 9, which
+% is wrong. So we reset the catcodes to the correct values before loading
+% the files:
% \begin{macrocode}
+\lst@RestoreCatcodes%
\InputIfFileExists{listings.cfg}{}{}
\InputIfFileExists{lstlocal.cfg}{}{}
%<info>\lst@ReportAllocs
@@ -17059,16 +17184,26 @@
% \item[1.5] 2013/06/27
% \item new maintainership
% \item[1.6] 2015/05/05
-% \item add discussion about using |\lstinline|\oarg{key=value list}\marg{source code}.
+% \item add discussion about using |\lstinline|\oarg{key=value list}\marg{source code}
% \item add section ``Bugs and workarounds''.
% \item[1.7] 2018/09/02
-% \item some new or updated language definitions.
-% \item several error corrections.
+% \item some new or updated language definitions
+% \item several error corrections
% \item[1.8] from 2019/02/27 on
-% \item corrected and activated the option |inputpath|.
-% \item some new or updated language definitions.
-% \item several error corrections.
-% \item introduced |\lstlistingnamestyle|.
+% \item corrected and activated the option |inputpath|
+% \item some new or updated language definitions
+% \item several error corrections
+% \item introduced |\lstlistingnamestyle|
+% \item[1.9] from 2023/02/27 on
+% \item hopefully corrected the long outstanding wrong behaviour of
+% displaying visible spaces
+% \item generalized the use of |linerange|
+% \item introduced key |consecutivenumbers|
+% \item a pagebreak between a (top) caption and source code isn't allowed
+% anymore
+% \item the configuration files |listings.cfg| and |lstlocal.cfg| are read
+% with the correct catcode
+% \item some documentation and layout enhancements.
% \end{itemize}
% \endgroup
%
diff --git a/macros/latex/contrib/listings/listings.pdf b/macros/latex/contrib/listings/listings.pdf
index 4d827f4980..bf8ad68ce9 100644
--- a/macros/latex/contrib/listings/listings.pdf
+++ b/macros/latex/contrib/listings/listings.pdf
Binary files differ
diff --git a/macros/latex/contrib/listings/lstdrvrs.dtx b/macros/latex/contrib/listings/lstdrvrs.dtx
index f710ef02ae..1d2f4cc5a2 100644
--- a/macros/latex/contrib/listings/lstdrvrs.dtx
+++ b/macros/latex/contrib/listings/lstdrvrs.dtx
@@ -33,7 +33,7 @@
% \title{Language, Style and Format drivers\\ for \textsf{Listings}\\
% {\large by Carsten Heinz and individual authors:}}
% \author{\InputIfFileExists{lstdrvrs.tmp}{}{}}
-% \date{2020/03/24\enspace\enspace Version 1.8d\ \box\abstractbox}
+% \date{2023/02/27\enspace\enspace Version 1.9\ \box\abstractbox}
%
% \ifhyper
% \hypersetup{pdftitle={Language, Style and Format drivers for the
@@ -137,7 +137,7 @@
% \endgroup
% We mainly define default dialects.
% \begin{macrocode}
-\ProvidesFile{listings.cfg}[2020/03/24 1.8d listings configuration]
+\ProvidesFile{listings.cfg}[2023/02/27 1.9 listings configuration]
\def\lstlanguagefiles
{lstlang0.sty,lstlang1.sty,lstlang2.sty,lstlang3.sty}
\lstset{defaultdialect=[R/3 6.10]ABAP,
@@ -184,7 +184,7 @@
%<+hansl-prf>\ProvidesFile{listings-hansl.prf}
%<+lua-prf>\ProvidesFile{listings-lua.prf}
%<+python-prf>\ProvidesFile{listings-python.prf}
-%<-config> [2020/03/24 1.8d listings language file]
+%<-config> [2023/02/27 1.9 listings language file]
% \end{macrocode}
%
%
@@ -1724,7 +1724,30 @@
% \begin{macrocode}
%<*lang1>
% \end{macrocode}
-% The current version of Fortran (Fortran 2008) is defined by ISO/IEC
+% The current version of Fortran (Fortran 2018) is defined by ISO/IEC
+% 1539-1:2018, for a deeper insight have a look at
+% \url{https://wg5-fortran.org/f2018.html}. It contains ? new keywords, ?
+% of them consisting of
+% two words: ^^A
+% |FAIL IMAGE|, so
+% the list of keywords contains the single parts |FAIL| and |IMAGE|.
+% So there is the following definition of Fortran 2018 keywords
+% \begin{macrocode}
+\lst@definelanguage[18]{Fortran}[08]{Fortran}{%
+ morekeywords={FAIL, IMAGE, NON_RECURSIVE},%
+% \end{macrocode}
+% and procedures:
+% \begin{macrocode}
+ morekeywords=[3]{GET_TEAM, TEAM_NUMBER, IMAGE_TEAMS, NUM_IMAGES,
+ THIS_IMAGE, FAILED_IMAGES, STOPPED_IMAGES, IMAGES_STATUS, CO_BROADCAST,
+ CO_MAX, CO_MIN, CO_SUM, CO_REDUCE, ATOMIC_ADD, ATOMIC_AND, ATOMIC_OR,
+ ATOMIC_XOR, ATOMIC_FETCH_ADD, ATOMIC_FETCH_AND, ATOMIC_FETCH_OR,
+ ATOMIC_FETCH_XOR, ATOMIC_FETCH_CAS, IEEE_GET_MODES, IEEE_SET_MODES,
+ IEEE_FMA, IEEE_SIGNBIT, IEEE_INT, IEEE_REM, IEEE_MAX_NUM, IEEE_MAX_NUM_MAG, IEEE_MIN_NUM, IEEE_MAX_NUM_MAG, IEEE_NEXT_DOWN, IEEE_NEXT_UP, IEEE_SUPPORT_DATATYPE, IEEE_QUIET_EQ, IEEE_QUIET_GE, IEEE_QUIET_GT, IEEE_QUIET_LE, IEEE_QUIET_LT, IEEE_QUIET_NE, IEEE_SIGNALING_EQ, IEEE_SIGNALING_GE, IEEE_SIGNALING_GT, IEEE_SIGNALING_LE, IEEE_SIGNALING_LT, IEEE_SIGNALING_NE}%
+}%
+% \end{macrocode}
+%
+% The Fortran 2008 version is defined by ISO/IEC
% 1539-1:2010. It contains nine new keywords, four of them consisting of
% two words: ^^A
% |ERROR STOP|, |SYNC ALL|, |SYNC IMAGES|, |SYNC MEMORY|, so
@@ -1733,7 +1756,7 @@
% \begin{macrocode}
\lst@definelanguage[08]{Fortran}[03]{Fortran}{%
morekeywords={ALL, BLOCK, CODIMENSION, CONCURRENT, CONTIGUOUS, CRITICAL,%
- ERROR, LOCK, SUBMODULE, SYNC, UNLOCK},%
+ ERROR, IMAGES, LOCK, MEMORY, SUBMODULE, SYNC, UNLOCK},%
% \end{macrocode}
% New procedures in Fortran 2008:
% \begin{macrocode}
@@ -1781,8 +1804,8 @@
morekeywords={ALLOCATABLE, ALLOCATE, ASSIGNMENT, CASE, CONTAINS, CYCLE,%
DEALLOCATE, DEFAULT, EXIT, INCLUDE, IN, NONE, OUT, INTENT, INTERFACE,%
MODULE, NAMELIST, NULLIFY, ONLY, OPERATOR, OPTIONAL, OUT, POINTER,%
- PRIVATE, PUBLIC, RECURSIVE, RESULT, SELECT, SEQUENCE, TARGET, USE,%
- WHERE, WHILE, BLOCKDATA, DOUBLEPRECISION, ENDBLOCKDATA, ENDFILE,%
+ PRIVATE, PUBLIC, RECURSIVE, RESULT, SELECT, SEQUENCE, TARGET, TYPE,%
+ USE, WHERE, WHILE, BLOCKDATA, DOUBLEPRECISION, ENDBLOCKDATA, ENDFILE,%
ENDFUNCTION, ENDINTERFACE, ENDMODULE, ENDPROGRAM, ENDSELECT,%
ENDSUBROUTINE, ENDTYPE, ENDWHERE, INOUT, SELECTCASE,%
% \end{macrocode}
@@ -1835,8 +1858,8 @@ morecomment=[l]!%
FILE, FORMAT, FUNCTION, GO, TO, GOTO, IF, IMPLICIT, %
INQUIRE, INTEGER, INTRINSIC, LOGICAL, %
OPEN, PARAMETER, PAUSE, PRECISION, PRINT, PROGRAM, READ, REAL, %
- RETURN, REWIND, STOP, SUBROUTINE, THEN, %
- WRITE, SAVE},%
+ RETURN, REWIND, SAVE, STOP, SUBROUTINE, THEN, %
+ WRITE},%
morekeywords=[2]{ACCESS, BLANK, BLOCK, DIRECT, EOF, ERR, EXIST,%
FMT, FORM, FORMATTED, IOSTAT, NAMED, NEXTREC, NUMBER, OPENED,%
REC, RECL, SEQUENTIAL, STATUS, TYPE, UNFORMATTED, UNIT},%
@@ -3703,7 +3726,7 @@ morecomment=[l]!%
%
% \subsection{Matlab}
%
-% I took the keywords from \texttt{http://www.utexas.edu/math/Matlab/Manual},
+% I (C.\,H.?) took the keywords from \texttt{http://www.utexas.edu/math/Matlab/Manual},
% but I removed the keywords |i|, |j| and |tmp|---the change was proposed by
% \lsthelper{Kai Below}{below@tu-harburg.de}{1998/09/21}{Matlab: keywords
% i,j,tmp removed}.
@@ -3711,6 +3734,11 @@ morecomment=[l]!%
% \begin{macrocode}
%<*lang1>
% \end{macrocode}
+% From the revision history one can conclude that ``Matlab´´ means ``Matlab
+% 5.1´´ which was released in 1997
+% \begin{macrocode}
+\lst@definelanguage[5.1]{Matlab}[]{Matlab}{}
+% \end{macrocode}
% \begin{macrocode}
\lst@definelanguage{Matlab}%
{morekeywords={gt,lt,gt,lt,amp,abs,acos,acosh,acot,acoth,acsc,acsch,%
diff --git a/macros/latex/contrib/listings/lstdrvrs.pdf b/macros/latex/contrib/listings/lstdrvrs.pdf
index baac9f4b03..2bf416063a 100644
--- a/macros/latex/contrib/listings/lstdrvrs.pdf
+++ b/macros/latex/contrib/listings/lstdrvrs.pdf
Binary files differ
diff --git a/macros/latex/contrib/photobook/LICENSE b/macros/latex/contrib/photobook/LICENSE
index d28638300d..b6912847b4 100644
--- a/macros/latex/contrib/photobook/LICENSE
+++ b/macros/latex/contrib/photobook/LICENSE
@@ -1,6 +1,6 @@
BSD 3-Clause License
-Copyright (c) 2021, Alex A. Naanou
+Copyright (c) 2021-2023, Alex A. Naanou
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/macros/latex/contrib/photobook/README.md b/macros/latex/contrib/photobook/README.md
index 8a1aea8caa..e2fd880008 100644
--- a/macros/latex/contrib/photobook/README.md
+++ b/macros/latex/contrib/photobook/README.md
@@ -51,7 +51,7 @@ For more info on `make` targets see the: [./Makefile](./Makefile)
[BSD 3-Clause License](./LICENSE)
-Copyright (c) 2021-2022, Alex A. Naanou,
+Copyright (c) 2021-2023, Alex A. Naanou,
All rights reserved.
diff --git a/macros/latex/contrib/photobook/photobook.cls b/macros/latex/contrib/photobook/photobook.cls
index 4fb5c623ae..06f00aa4bb 100644
--- a/macros/latex/contrib/photobook/photobook.cls
+++ b/macros/latex/contrib/photobook/photobook.cls
@@ -44,6 +44,8 @@
% XXX see where we need to \ignorespaces...
% XXX might be a good idea to add a spine calculator...
% XXX might be fun to add a 'box' layout to build book boxes...
+% XXX add a grid cell / image cell (???)
+% make it trivial to define AxB cell layouts and fill them (fully/partially)
% XXX manual / book:
% - basic usage
% - setup
@@ -58,8 +60,8 @@
%%% NOTE: \def\<module-name>@[A-Z]+ macros will be visible to both the
%%% code and the generated docs...
-\edef\photobook@FILEVERSION{v0.1.6}
-\edef\photobook@FILEDATE{2023-01-17}
+\edef\photobook@FILEVERSION{v0.1.7}
+\edef\photobook@FILEDATE{2023-02-27}
%% \documentclass{ltxdoc}
@@ -601,6 +603,8 @@
\RequirePackage{trimclip}
%% \href{https://ctan.org/pkg/xcolor}{xcolor},
\RequirePackage{xcolor}
+%% \href{https://ctan.org/pkg/pagecolor}{pagecolor},
+\RequirePackage{pagecolor}
%% \href{https://ctan.org/pkg/colorspace}{colorspace},
\RequirePackage{colorspace}
%% \href{https://ctan.org/pkg/graphicx}{graphicx},
@@ -1133,6 +1137,13 @@
paperwidth=\bleedblockwidth, paperheight=\bleedblockheight,
]{geometry}
+% colors...
+%
+% This prevents \pagecolor from getting drawn over other elements...
+\pagecolor{white}
+\pagecolor{none}
+\color{black}
+
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% pre-document...
@@ -2435,6 +2446,9 @@
\begin{minipage}[t][\cellheight][#2]{\cellwidth}%
\begin{\photobook@captioncell@align}%
\ignorespaces%
+ % XXX BUG: for some reason the text here will not line-break...
+ % putting it in a minipage here does nothing while the same
+ % minipage on the lient size fixes the issue...
#3%
\end{\photobook@captioncell@align}%
\end{minipage}
diff --git a/macros/latex/contrib/photobook/photobook.pdf b/macros/latex/contrib/photobook/photobook.pdf
index 5772d347a9..1380393835 100644
--- a/macros/latex/contrib/photobook/photobook.pdf
+++ b/macros/latex/contrib/photobook/photobook.pdf
Binary files differ
diff --git a/macros/latex/contrib/spacingtricks/README.md b/macros/latex/contrib/spacingtricks/README.md
index 1d79082e9b..80f4d30c68 100644
--- a/macros/latex/contrib/spacingtricks/README.md
+++ b/macros/latex/contrib/spacingtricks/README.md
@@ -3,15 +3,18 @@
## Presentation
-This package provides macros for dealing with some spacing issues e.g.
- centering a single line, making a variable strut, indenting a block, typesetting a compact list,
- placing two boxes side by side with vertical adjustment.
+This package provides macros for dealing with some spacing issues, e.g.
+- centering a single line,
+- making a variable strut,
+- indenting a block,
+- typesetting a compact list,
+- placing two boxes side by side with vertical adjustment.
## Installation
- run LaTeX on spacingtricks.ins, you get the file spacingtricks.sty,
-- if then you run LaTeX + dvips + ps2pdf on spacingtricks.dtx you get the file spacingtricks.pdf which is also in the archive,
+- if then you run pdfLaTeX on spacingtricks.dtx you get the file spacingtricks.pdf which is also in the archive,
- put the files spacingtricks.sty and spacingtricks.pdf in your TeX Directory Structure.
diff --git a/macros/latex/contrib/spacingtricks/spacingtricks.dtx b/macros/latex/contrib/spacingtricks/spacingtricks.dtx
index d9ff9bc46d..68a4afbdd9 100644
--- a/macros/latex/contrib/spacingtricks/spacingtricks.dtx
+++ b/macros/latex/contrib/spacingtricks/spacingtricks.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2019-2021 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+% Copyright (C) 2019-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr>
%
% This file may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, either version 1.3 of this license
@@ -20,26 +20,30 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{spacingtricks}
- [2021/09/20 v1.4 .dtx spacingtricks file]
+ [2023/02/27 v1.5 .dtx spacingtricks file]
%</package>
%<*driver>
\documentclass{ltxdoc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
-\usepackage[french,english]{babel}
-\usepackage{lmodern}
-\usepackage{spacingtricks}
-\usepackage{pifont}
+\usepackage[english]{babel}
+\usepackage{mathptmx}
+\usepackage[pifont]{spacingtricks}
\usepackage{amsmath}
-\usepackage{pstricks-add}
+\usepackage{tikz}
+\usepackage{sectsty}
+\usepackage{xcolor}
+
+\definecolor{darkbrown}{rgb}{0.5,0.1,0.1}
+\allsectionsfont{\color{darkbrown}}
\DisableCrossrefs
%\CodelineIndex
%\RecordChanges
\usepackage{hyperref}
\hypersetup{%
colorlinks,
- linkcolor=blue,
- citecolor=blue,
+ linkcolor=blue, %red by default
+ citecolor=red, %green by default
pdftitle={spacingtricks},
pdfsubject={LaTeX package},
pdfauthor={Antoine Missier}
@@ -54,7 +58,7 @@
%</driver>
% \fi
%
-% \CheckSum{165}
+% \CheckSum{242}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -74,59 +78,91 @@
%
%
% \changes{v0.1}{2011/12/27}{Initial version}
-% \changes{v1.0}{2019/05/04}{dtx and ins files, added the footnote command}
+% \changes{v1.0}{2019/05/04}{dtx and ins files, adding the footnote command}
% \changes{v1.0}{2019/06/16}{English translation of the documentation}
-% \changes{v1.1}{2019/09/06}{No automatic line breaking at the end of the centered command,
-% new length compactitemlist}
-% \changes{v1.2}{2019/09/09}{A bug correction in the last update}
-% \changes{v1.3}{2020/11/02}{Loading the setspace package,
-% small changes in compactlist environment, improvement in dualboxes macro}
-% \changes{v1.4}{2021/09/21}{A mistake in the documentation is now corrected}
+%
+% \changes{v1.1}{2019/09/06}{
+% - No automatic line breaking at the end of the centered command,
+% - new length compactitemlist}
+%
+% \changes{v1.2}{2019/09/09}{
+% - A bug correction in the last update}
+%
+% \changes{v1.3}{2020/11/02}{
+% - Loading the setspace package,
+% - small changes in compactlist environment,
+% - improvement in dualboxes macro}
+%
+% \changes{v1.4}{2021/09/21}{
+% - A mistake in the documentation is now corrected}
+%
+% \changes{v1.5}{2023/02/23}{
+% - Changing font to times (with the mathptmx package),
+% - changing pstricks figure to tikz to avoid double compilation,
+% - tests and comments about wrapfig and picinpar packages}
+% \changes{v1.5}{2023/02/25}{
+% - adding the centeredline package,
+% - adding the pifont package as option,
+% - taking over the juxtapose environment from Christian Obrecht,
+% - topsep of indentblock environment reduced to zero}
+% \changes{v1.5}{2023/02/26}{
+% - Tests and comments about paracol and reledpar packages}
%
% \GetFileInfo{spacingtricks.sty}
%
-% \title{The \texttt{spacingtricks} package\thanks{This document
+% \title{The \textsf{spacingtricks} package\thanks{This document
% corresponds to \textsf{spacingtricks}~\fileversion, dated \filedate.}}
% \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}}
-% \date{September 20, 2021}
+% \date{February 27, 2023}
% \maketitle
%
% \section{Introduction}
%
% This package offers some macros to deal with spacing issues. Thus:
% \begin{compactlist}
-% \item "\centered" yields good horizontal centering without vertical spacing;
-% \item "\footnote" has been redefined to avoid unsuitable spacing;
-% \item "\vstrut" produces a strut with variable height or depth;
-% \item "\indent" has been redefined to indent a line at the beginning
+% \item \hyperlink{centered}{\texttt{\bslash centered}} yields good horizontal
+% centering without vertical spacing;
+% \item \hyperlink{footnote}{\texttt{\bslash footnote}} has been redefined
+% to avoid unsuitable spacing;
+% \item \hyperlink{vstrut}{\texttt{\bslash vstrut}} produces a strut
+% with variable height or depth;
+% \item \hyperlink{indent}{\texttt{\bslash indent}} has been redefined
+% to indent a line at the beginning
% of a particular paragraph even if "\parindent" has been set to 0;
-% \item the "indentblock" environment produces indentation of all its content;
-% \item the "compactlist" environment yields a compact list, without vertical spacing
-% between the items, like here;
-% several aliases are provided to type some list symbols shorter:
+% \item the \hyperlink{indentblock}{\texttt{indentblock}} environment
+% produces indentation of all its content;
+% \item the \hyperlink{compactlist}{\texttt{compactlist}} environment
+% yields a compact list, without vertical spacing between the items, like here;
+% several \hyperlink{aliases}{aliases} are provided to type some list symbols shorter:
% "\bul", "\dash", "\ddash", "\aster", "\hand", "\checksymb", "\arrowsymb";
-% \item the macros "\ie" and "\eg" attends to typeset common abbreviations
-% \ie and \eg with correct spacing;
-% \item the "\dualboxes" command attends to place two boxes
-% (figures, tables, text) side by side by adjusting the vertical positioning.
+% \item common abbreviations \hyperlink{ie-eg}{\ie and \eg}
+% are typeset by the macros "\ie" and "\eg" with correct spacing;
+% \item the \hyperlink{dualboxes}{\texttt{\bslash dualboxes}} command attends to place
+% two boxes (figures, tables, text) side by side by adjusting the vertical positioning.
% \end{compactlist}
%
% \medskip
-% Two other common packages are loaded by \textsf{spacingtricks}:
-% \textsf{setspace} (natively in \LaTeXe),
-% for setting line spacing in a piece of text
-% (with the \texttt{spacing} environment), and
+% Three other ``spacing'' packages are loaded by \textsf{spacingtricks}:
+% \hyperlink{setspace}{\textsf{setspace}}~\cite{SETSP} (natively in \LaTeXe),
+% for setting line spacing in a piece of text,
% \textsf{xspace}~\cite{XSP}, which adds an inter-word space unless the macro
-% is followed by a punctuation character.
-%
-% Otherwise, we provide the package \textsf{arraycols}~\cite{ARCOL},
-% which allows a good management of spacing in \texttt{tabular}
-% and \texttt{array} environments,
-% and \textsf{mismath}~\cite{MSMATH} of which several macros tends to improve spacing
+% is followed by a punctuation character,
+% and \hyperlink{centeredline}{\textsf{centeredline}}~\cite{CENTER}
+% which gives an interesting alternative
+% to our "\centered" macro (see further).
+% We also took over the fine \hyperlink{juxtapose}{\texttt{juxtapose}} environment
+% from the \textsf{mafr}~\cite{MAFR}
+% distribution, as another way to place boxes side by side.
+%
+% Otherwise, we have develop the package \textsf{arraycols}~\cite{ARCOL},
+% that allows a good management of spacing in \texttt{tabular}
+% or \texttt{array} environments,
+% and \textsf{mismath}~\cite{MSMATH} that provides several macros to improve spacing
% in mathematical formulas.
%
% \section{Usage}
%
+% \hypertarget{centered}{}
% \DescribeMacro{\centered}
% The "\centered"\marg{text} command yields a centered line without vertical spacing.
% It acts like "\centerline" except in lists or tables where its behavior is much better
@@ -145,27 +181,65 @@
% \begin{center} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \end{center}
% \end{enumerate}
%
-% In tables, "\centered" allows to center a particular cell independently of
-% the (general) column alignment
+% After "\centered{...}", the end of line must be explicit,
+% otherwise "\centered" will not work. You can use "\\",
+% which is equivalent to "\linebreak", or
+% a blank line to begin a new paragraph (equivalent to "\par").
+% In the former case, no vertical space
+% is added after the centered line, in the latter case, the vertical space
+% following the centered line is a bit larger.
+% In the example above, the centered line comes to the end, without line breaking,
+% because of the next "\item" command, and the vertical space is set by the
+% \texttt{enumerate} environment.
+%
+% \medskip
+% In tables, "\centered" allows to center a particular line in a cell independently of
+% the column alignment
% \footnote{In tables, we can also use the powerful \texttt{\bslash makecell} command
-% of the \textsf{makecell} package~\cite{MKCELL}, on the other hand
-% the \texttt{\bslash centerline} command doesn't work for a single line in a cell.
-% Let us also mention the \texttt{\bslash centeredline} command, from the package
-% \textsf{centeredline}~\cite{CENTER}, which allows to use \texttt{\bslash verb}
-% commands inside the text to center; but it doesn't work in tables either.}.
+% of the \textsf{makecell} package~\cite{MKCELL}; on the other hand,
+% neither \texttt{\bslash centerline} nor \texttt{\bslash centering} commands
+% do work for a single line in a cell.},
+% here with "\begin{tabular}{|l|r|}":
%
% \begin{center}
% \begin{tabular}{|l|r|}
% \hline
% left aligned column & right aligned column \\
% \hline
-% another cell & \centered{centered cell} \\
+% the second cell fixes the width & \centered{centered cell} \\
% \hline
-% \centered{centered line} & the last cell right aligned \\
+% \centered{centered cell} & the last cell fixes the width \\
% \hline
% \end{tabular}
% \end{center}
%
+% \medskip
+% \hypertarget{centeredline}{}
+% \DescribeMacro{\centeredline}
+% A limitation of our "\centered" macro is that it doesn't allow to use \texttt{\bslash verb}
+% commands inside its argument. For this purpose, you get
+% the "\centeredline" command, from the package
+% \textsf{centeredline} by Jean-François Burnol~\cite{CENTER}.
+% This small package is now loaded by \textsf{spacingtricks}.
+% Another advantage of "\centeredline" is that it does not require an explicit
+% end, the text can follow the command on the same line, and the line break will
+% be automatic.
+% Nevertheless, it doesn't work in tables (like in the example above),
+% except with \texttt{p} column declaration.
+%
+% \hypertarget{setspace}{}
+% \medskip
+% \DescribeEnv{onehalfspace}\DescribeEnv{doublespace}\DescribeEnv{spacing}
+% \begin{onehalfspace}
+% The \textsf{setspace} package~\cite{SETSP}, loaded by \textsf{spacingtricks}, provides
+% environments for changing the spacing between lines. The present paragraph is nested
+% in a \texttt{onhalfspace} environment as you can see.
+% The \texttt{spacing} environment can be used to get other interline spacing, \eg
+% "\begin{spacing}{2.5}".
+% \end{onehalfspace}
+%
+% \hypertarget{footnote}{}
+% \medskip
% \DescribeMacro{\footnote}
% The "\footnote" command doesn't have a good management of spacing issues,
% in particular when the \textsf{hyperref} package has been loaded.
@@ -189,31 +263,31 @@
% at the end of line; its effect is to cancel the space produced by a line break,
% but we do not always think of using it.}.
%
-% \pagebreak
% \medskip
% \noindent\begin{minipage}{5.6cm}
% \begin{verbatim}
-%This a note
+%This is a note
%\footnote{
-%Bad spacing example.}
-%with the old command.
+%The old command.}
+%with bad spacing.
% \end{verbatim}
% \vspace{-4ex} This a note
% \footnt{
-% Bad spacing example.}
-% with the old command.
+% The old command.}
+% with bad spacing.
% \end{minipage}
% \hfill
% \begin{minipage}{5.6cm}
% \begin{verbatim}
-%This a note
+%This is a note
%\footnote{
-%Good spacing example.}
-%with the new command.
+%The new command.}
+%with good spacing.
% \end{verbatim}
% \vspace{-4ex} This a note
-% \footnote{ Good spacing example.}
-% with the new command.
+% \footnote{
+% The new command.}
+% with good spacing.
% \end{minipage}
%
% \medskip
@@ -225,7 +299,7 @@
% but two new macros have been added to manage spacing:
% "\footnotespace" produces the space before the note call symbol
% and "\footnoteindent" produces the space at the beginning of the footnote text.
-% For instance, with "\renewcommand{\footnotespace}{\,}"
+% For instance, with "\renewcommand{\footnotespace}{\,}" \\
% and "\renewcommand{\footnoteindent}{\enskip}"
% \footnote{\texttt{\bslash enskip} is equivalent to \texttt{\bslash hspace\{0.5em\}}.}
% we get:
@@ -241,6 +315,7 @@
% \renewcommand{\footnotespace}{}
% \renewcommand{\footnoteindent}{}
%
+% \hypertarget{vstrut}{}
% \DescribeMacro{\vstrut}
% "\vstrut"\oarg{depth}\marg{height} produces a strut with variable height or depth,
% in order to increase the line's height (above the base line) or depth
@@ -264,7 +339,7 @@
% \\
% "\fbox{\vstrut{2ex}$\sigma(X)=1$}" gives
% \fbox{\vstrut{2ex}$\sigma(X)=1$}
-% better than \fbox{$\sigma(X)=1$}
+% better than \fbox{$\sigma(X)=1$}.
%
% \medskip
% \noindent
@@ -312,16 +387,19 @@
%
% In a text line, "\vstrut" can be used in place of "\vspace".
%
+% \hypertarget{indent}{}
% \medskip
-% \DescribeMacro{\indent} \DescribeMacro{\parindentlength}
+% \DescribeMacro{\indent}
% The command "\setlength{\parindent}{0cm}" allow to eliminate any indentation of lines
% at the beginning of every paragraph.
% But in this case, the "\indent" command does not work anymore
% if we want exceptional indentation of a particular paragraph.
% So, the initial length of "\parindent" has been saved in "\parindentlength"
+% \DescribeMacro{\parindentlength}
% and the command "\indent" has been redefined to still allow indentation
% of length "\parindentlength".
%
+% \hypertarget{indentblock}{}
% \medskip
% \DescribeEnv{indentblock}
% The \texttt{indentblock} environment allows indentation of a whole block of lines.
@@ -331,6 +409,7 @@
% "\begin{indentblock}\itshape" and stanzas 2 and 4 have been affected by
% an additional indentation with "\begin{indentblock}[3em]".
%
+% \smallskip
% \begin{indentblock}\itshape
% Overhead the albatross hangs motionless upon the air \\
% And deep beneath the rolling waves in labyrinths of coral caves \\
@@ -357,41 +436,64 @@
% \end{indentblock}
% \end{indentblock}
%
+% \hypertarget{compactlist}{}
% \DescribeEnv{compactlist}
% As its name tells it, the "compactlist" environment allows to create
-% a \og compact\fg\ list, \ie without vertical space neither above nor between items.
+% a ``compact'' list, \ie without vertical space neither above nor between items.
% As for lists in \LaTeX, items are generated by the "\item" command.
% The environment has an optional argument: "\begin{compactlist}"\oarg{symbol}.
%
+% \hypertarget{aliases}{}
+% \medskip
% \DescribeMacro{\bul}\DescribeMacro{\dash}\DescribeMacro{\ddash}\DescribeMacro{\aster}
-% \DescribeMacro{\hand}
-% Default item symbol is "\textbullet" but it can be changed.
+% The default item symbol is "\textbullet", but can be changed.
% We provide aliases for several symbols commonly used in lists:
-% "\bul" \bul\ (alias for "\textbullet"), "\dash" \dash\ ("\textendash"),
-% "\ddash" \ddash\ ("\textemdash"), "\aster" \aster\ ("\textasteriskcentered"),
-% as well as "\hand" \hand ("\ding{43}"), "\checksymb" \checksymb ("\ding{51}")
-% and "\arrowsymb" \arrowsymb ("\ding{226}")
-% which need to load the \textsf{pifont} package in the preamble.
-% \DescribeMacro{\checksymb}\DescribeMacro{\arrowsymb}
-% The following example is obtained with "\begin{compactlist}[\checksymb]":
+% "\bul" \bul\ (alias for "\textbullet"), "\dash" \dash\ (alias for "\textendash"),
+% "\ddash" \ddash\ (alias for "\textemdash"),
+% "\aster" \aster\ ("alias for \textasteriskcentered").
+%
+% \smallskip
+% \DescribeEnv{[pifont]}
+% \DescribeMacro{\hand}\DescribeMacro{\checksymb}\DescribeMacro{\arrowsymb}
+% Some other common symbols can be found in the \textsf{pifont} package~\cite{PIFONT}.
+% Therefore \textsf{spacingtricks} has a \texttt{pifont} option,
+% that loads this package and creates the appropriate aliases:
+% "\hand" \hand for "\ding{43}", "\checksymb" \checksymb for "\ding{51}"
+% and "\arrowsymb" \arrowsymb for "\ding{226}".
+%
+% \medskip \noindent
+% The following example is produced by "\begin{compactlist}[\checksymb]":
% \begin{compactlist}[\checksymb]
% \item First item.
% \item Second item.
% \item Third item.
% \end{compactlist}
-% \hand These aliases can be used directly in text mode, of course.
+% \hand These aliases can also be used directly in text mode, of course.
% For "\hand", "\checksymb" and "\arrowsymb", the symbol is followed by a space
% if there is no punctuation character just after it (thanks to the
% macro \texttt{xspace} from the \textsf{xspace} package~\cite{XSP}).
%
-% \medskip
+% \smallskip
% \DescribeMacro{\compactlistindent}
-% This length (fixed at 0.5\,em by default) can be modified with "\setlength" to increase
-% or decrease the indentation of the \texttt{compactlist} environment.
+% Indentation length is set by "\compactlistindent" (fixed at 0.5\,em by default)
+% and can be modified with "\setlength".
% Notice that there are several other ways to construct a compact list in particular
% with the \texttt{noitemsep} key of the \textsf{enumitem} package~\cite{ENUM}.
%
% \medskip
+% \DescribeEnv{dinglist}
+% The \textsf{pifont} package has also a list environment "\begin{dinglist}"\marg{number}
+% to typeset a list with normal spacing, using the "\ding"\marg{number} symbol
+% for each "\item" (instead of using "\item[\ding"\marg{number}"]").
+% So "\begin{dinglist}{226}" yields:
+% \begin{dinglist}{51}
+% \item The first item in the list.
+% \item The second item in the list.
+% \item The third item in the list.
+% \end{dinglist}
+%
+% \hypertarget{ie-eg}{}
+% \medskip
% \DescribeMacro{\ie} \DescribeMacro{\eg}
% In English, at the end of a sentence, the point is followed by an em space
% which is larger than an inter-word space.
@@ -403,105 +505,197 @@
% on the other hand, some authors prefer to typeset \textit{\ie} in italic shape,
% which is always possible with "\textit{\ie}".
%
+% \hypertarget{dualboxes}{}
% \medskip
% \DescribeMacro{\dualboxes}
-% Several packages intend to set the text around a figure or a table,
-% but in general we have to give the width of the box containing the figure or the table.
-% Let us mention however the \textsf{picins} package~\cite{PICINS},
-% cited in The \LaTeX\ Companion~\cite{COMP}, which do not ask for the box width
-% and it can also be used with lists.
-% Nevertheless vertical positioning can be tricky.
-% For this purpose, we have written the "\dualboxes"\oarg{pos}\marg{left}\marg{right} macro,
+% Several packages intend to typeset text around a figure or a table,
+% but some of them need to give the width of the box containing the figure or the table.
+% We provide here another approach with the macro
+% "\dualboxes"\oarg{pos}\marg{left}\marg{right},
% which places two boxes, \meta{left} and \meta{right}, side by side.
-% These boxes can contain figures, tables, text, \texttt{minipage} environments
+% These boxes can contain figures, tables, one small line text,
+% parbox text, \texttt{minipage} environments
% (for several paragraphs and lists), etc.
% The optional \meta{pos} parameter sets the vertical level on which the boxes are aligned:
% a number between 0 (bottom) and 1 (top, default value).
-% Here is a first example with "\dualboxes[0.65]".
+%
+% Here is a first example in which we have adjusted the postion
+% of the boxes vertically, with "\dualboxes[0.6]".
+%
+% \def\myfigure{%
+% \begin{tikzpicture}[scale=0.6]\tiny
+% \draw[->] (-4.5,0) -- (4.5,0);
+% \draw[->] (0,-2) -- (0,1.5);
+% \foreach \x in {-4,...,4} {\draw (\x,0.1cm) -- (\x,-0.1cm) node[below] {$\x$};}
+% \foreach \y in {-1,1} {\draw (0.1cm,\y) -- (-0.1cm,\y) node[left] {$\y$};}
+% \draw[domain=-4.5:4.5,samples=100,color=red] plot ({\x},{2*\x/(exp(\x)-\x)});
+% \end{tikzpicture}}
+%
+% \def\mytable{
+% $\begin{array}{|*{6}{c|}} \hline
+% x & -2 & -1 & 0 & 1 & 2 \\ \hline
+% f(x) & -1,87 & -1,46 & 0 & 1,16 & 0,74 \\ \hline
+% \end{array}$
+% }
%
% \medskip
-% \psset{xunit=0.5cm,yunit=1.0cm,algebraic=true}
-% \dualboxes[0.65]{\footnotesize
-% $\begin{array}{|*{7}{c|}} \hline
-% x & -2 & -1 & 0 & 1 & 2 & 3 \\ \hline
-% f(x) & -0.96 & -0.71 & 0 & 0.59 & 0.38 & 0.18 \\ \hline
-% \end{array}$
-% }{
-% \begin{pspicture}(-4.5,-1.5)(4.5,1)
-% \psaxes[labelFontSize=\scriptstyle,ticksize=-2pt,linewidth=0.3pt]
-% {->}(0,0)(-4.5,-1.5)(4.5,1)
-% \psplot[linecolor=red]{-4.5}{4.5}{x/(EXP(x)-x)}
-% \end{pspicture}
-% }
+% \dualboxes[0.6]{\scriptsize \mytable}{\myfigure}
%
% \noindent
-% The horizontal space is equally shared between left margin, inter-box space and right margin.
+% The horizontal space is equally shared between left margin, inter-box space
+% and right margin.
%
% \medskip
-% In the following example the right box has been shifted back
+% In the following example boxes are aligned by top and
+% the right box has been shifted back (left) from 3\,cm
% to make an overlapping with the left one, what \textsf{picins} cannot do.
%
-%\dualboxes{\footnotesize
-% $\begin{array}{|*{7}{c|}} \hline
-% x & -2 & -1 & 0 & 1 & 2 & 3 \\ \hline
-% f(x) & -0.96 & -0.71 & 0 & 0.59 & 0.38 & 0.18 \\ \hline
-% \end{array}$
-% }{\mbox{} \hspace{-3cm}
-% \begin{pspicture}(-4.5,-1.5)(4.5,1)
-% \psaxes[labelFontSize=\scriptstyle,ticksize=-2pt,linewidth=0.3pt]
-% {->}(0,0)(-4.5,-1.5)(4.5,1)
-% \psplot[linecolor=red]{-4.5}{4.5}{x/(EXP(x)-x)}
-% \end{pspicture}
-%}
+% \dualboxes{\scriptsize \mytable}{\mbox{} \hspace{-3cm} \myfigure}
% \begin{verbatim}
-% \dualboxes{\footnotesize
-% $\begin{array}{|*{7}{c|}} \hline
-% x & -2 & -1 & 0 & 1 & 2 & 3 \\ \hline
-% f(x) & -0.96 & -0.71 & 0 & 0.59 & 0.38 & 0.18 \\ \hline
-% \end{array}$
+% \dualboxes{\scriptsize
+% $\begin{array}{|*{6}{c|}} \hline
+% x & -2 & -1 & 0 & 1 & 2 \\ \hline
+% f(x) & -1,87 & -1,46 & 0 & 1,16 & 0,74 \\ \hline
+% \end{array}$
% }{\mbox{} \hspace{-3cm}
-% \begin{pspicture}(-4.5,-1.5)(4.5,1) % needs the pstricks-add package
-% \psaxes[labelFontSize=\scriptstyle,ticksize=-2pt,linewidth=0.3pt]
-% {->}(0,0)(-4.5,-1.5)(4.5,1)
-% \psplot[linecolor=red]{-4.5}{4.5}{x/(EXP(x)-x)}
-% \end{pspicture}
+% \begin{tikzpicture}[scale=0.6]\tiny
+% \draw[->] (-4.5,0) -- (4.5,0);
+% \draw[->] (0,-2) -- (0,1.5);
+% \foreach \x in {-4,...,4} {
+% \draw (\x,0.1cm) -- (\x,-0.1cm) node[below] {$\x$};}
+% \foreach \y in {-1,1} {
+% \draw (0.1cm,\y) -- (-0.1cm,\y) node[left] {$\y$};}
+% \draw[domain=-4.5:4.5,samples=100,color=red]
+% plot ({\x},{2*\x/(exp(\x)-\x)});
+% \end{tikzpicture}
% }
% \end{verbatim}
%
% \DescribeMacro{\dualboxes*}
-% This command has a starred version which eliminates spaces at the beginning and at the
-% end of the line, the only remaining space is between the boxes:
+% This command has a starred version that eliminates space before the first box
+% and after the second one, but not between them:
% "\dualboxes*"\oarg{pos}\marg{left}\marg{right}.
-% \dualboxes*{\parbox{7cm}{
-% Here the left part consist of a paragraph box obtained with
-% \texttt{\bslash parbox\{7cm\}\{...\}}.
-% If we want several paragraphs, a list or a mathematical displayed formula,
-% in one of the boxes,
-% then we have to put them in a \texttt{minipage} environment.
-% }}{\begin{pspicture}(-4.5,-1.5)(4.5,1)
-% \psaxes[labelFontSize=\scriptstyle,ticksize=-2pt,linewidth=0.3pt]
-% {->}(0,0)(-4.5,-1.5)(4.5,1)
-% \psplot[linecolor=red]{-4.5}{4.5}{x/(EXP(x)-x)}
-% \end{pspicture}
-% }
%
-% \noindent
-% Let us indicate that it's unfortunately not possible to use \texttt{verbatim} environments
+% \smallskip
+% \dualboxes*[0.6]{\parbox{6.5cm}{
+% In practice, \texttt{\bslash dualboxes} is suitable for boxes in which
+% you put figures or tables or small one line text.
+% For longer text, this one must be nested in a paragraph box, \eg
+% here we used \texttt{\bslash parbox\{6.5cm\}\{...\}}.
+% If you want several paragraphs, a list or a mathematical displayed formula,
+% then you have to put them in a \texttt{minipage} environment.}
+% }{\myfigure}
+%
+% \medskip
+% Let us indicate that it is unfortunately not possible to use \texttt{verbatim} environments
% (nor the in-line \texttt{\bslash verb} command)
% within "\dualboxes" arguments,
-% just as it's not possible for footnotes or margin notes.
+% as well as it is not possible for footnotes or margin notes.
+%
+% \medskip
+% For putting two figures side by side, or a table and a figure, "\dualboxes" is perfect.
+% But for text around a figure, some other package may be more efficient.
+% Les us mention first \textsf{wrapfig}~\cite{WRAPFIG}, one of the easiest, but text must
+% contain in a single paragraph (like above), without list or you have to place it in
+% a \texttt{minipage} environment.
+%
+% More sophisticated is the \textsf{picins} package~\cite{PICINS},
+% cited in The \LaTeX\ Companion~\cite{COMP}.
+% Unlike most others, it can be used with lists,
+% nevertheless vertical positioning can be tricky
+% and it doesn't belong to common distributions \TeX{}\,Live or MiK\TeX.
+% A last one we mention is \textsf{picinpar}~\cite{PICINPAR} in which
+% text can begin after the first line and can flow to the two side of the figure.
+%
+% \hypertarget{juxtapose}{}
+% \medskip
+% \DescribeEnv{juxtapose}
+% As a very interesting alternative, we present the powerful \texttt{juxtapose} environment,
+% written by Christian Obrecht in the \texttt{fiche.cls class} file,
+% which is part of the \textsf{mafr} distribution~\cite{MAFR}.
+% We made small improvements, among others to work correctly with lists and
+% get customization of some lengths:
+% \DescribeMacro{\juxtopskip}\DescribeMacro{\juxbottomskip}
+% \DescribeMacro{\juxsepspace}
+% top and bottom lengths are set by default to "\smallskipamount"
+% and separation space is set to 1.5\,em.
+% For spacing above or below the environment, if the default length doesn't fit well,
+% you can add a "\bigskip" or a "\vspace"\marg{dimen} for example,
+% or at worst redefine the length "\juxtopskip" and "\juxbottomskip".
+% \begin{juxtapose}
+% In this example the environment begins here.
+% \texttt{juxtapose} can deal with figures, tables, but also:
+% \begin{compactlist}
+% \item verbatim text: "\mytestmacro",
+% \item text with several paragraphs,
+% \item lists, like here (a compact list),
+% \item displayed mathematics as shown on the right side,
+% \end{compactlist}
+% without the need of \texttt{multipage} environments.
+
+% The two boxes are aligned by their center, but
+% unlike "\dualboxes", you cannot adjust vertical positioning.
+%
+% \otherside
+% \myfigure
+% \[ f(x) = \frac{2x}{\mathrm{e}^x-x} \]
+% This is the last line of the environment.
+% \end{juxtapose}
+%
+% Here begins the following text. The syntax of \texttt{juxtapose} is simple:
+% \begin{center}
+% "\begin{juxtapose} ... \otherside ... \end{juxtapose}"
+% \end{center}
+% It has an optional argument "\begin{juxtapose}"\oarg{leftratio}
+% where \meta{leftratio} is the width ratio of the left side relatively to "\textwidth"
+% (the default value is "0.5" which means "0.5\textwidth").
+%
+% Paragraphs are indented inside each side, except the first one,
+% because for a figure, there's no need to shift it to the right
+% (from indent length) and otherwise the user may forgot to
+% put "\noindent" before the figure.
+% If you still want to indent the first paragraph use "\indent".
+% For horizontal alignment inside one side, you can use "\centering" or "\flushright"
+% (useful for a figure).
+% If you want a global indentation of the first (or the second) box, you
+% can put it in an \texttt{indentblock} environment, it works fine!
+%
+% \medskip
+% One may ask why not using multi column environments instead.
+% In the classic \textsf{multicol} environment you cannot choose unbalanced
+% columns and you cannot choose where to pass to the other column.
+%
+% Some nice packages improve \textsf{multicols}, \eg \textsf{vwcol}~\cite{VWCOL} in which
+% you can fix on the columns width, but unfortunately it doesn't accept
+% verbatim text, and doesn't manage correctly lists and figures like above.
+%
+% Let us mention \textsf{paracol}~\cite{PARA} and \textsf{reledpar}~\cite{RELP},
+% which are intended to typeset two column of text in parallel,
+% useful for translation or critical edition of text.
+% They work fine with lists, figures, verbatim text, and also footnotes and margin notes,
+% but it is not immediate to obtain just a chosen vertical positioning of two boxes.
+% They have synchronization mechanisms, convenient for text, but
+% not when you place two figures side by side.
+% Besides they are a bit oversized for our need. They don't have the same purpose.
+% So we can hope \texttt{juxtapose} or "\dualboxes" are useful.
%
% \StopEventually{}
%
% \section{Implementation}
% \begin{macrocode}
+\newif\ifspacingtricks@pifont
+\DeclareOption{pifont}{\spacingtricks@pifonttrue}
+\ProcessOptions \relax
+
\RequirePackage{ifthen}
\RequirePackage{calc}
\RequirePackage{setspace}
\RequirePackage{xspace}
+\RequirePackage{centeredline}
+\ifspacingtricks@pifont \RequirePackage{pifont} \fi
\newcommand*{\centered}[1]{{\setlength{\parskip}{0pt}\par\noindent\hfill
- #1\hfill\mbox{}}}
+ #1\hfill\mbox{}}}
% \end{macrocode}
% The double braces are necessary here to ensure that the "\parskip" modification applies
% locally within the command and not globally to the rest of the document.
@@ -536,29 +730,29 @@
\newenvironment*{indentblock}[1][\parindentlength]{
\begin{list}{}{%
- \setlength{\leftmargin}{#1}
- \setlength{\itemsep}{0pt}
- \setlength{\topsep}{1ex}
- \setlength{\partopsep}{0pt}
- }
- \item[]
- }{\end{list}}
+ \setlength{\leftmargin}{#1}
+ \setlength{\itemsep}{0pt}
+ \setlength{\topsep}{0pt} % previously 1ex
+ \setlength{\partopsep}{0pt}
+ }
+ \item[]
+}{\end{list}}
\newlength{\compactlistindent}
\setlength{\compactlistindent}{0.5em}
\newenvironment*{compactlist}[1][\textbullet]{
\par % sometimes necessary
- \begin{list}{#1\unskip}{% \unskip suppresses the space created by \xspace
- \setlength{\itemsep}{0pt}
- \setlength{\parsep}{0pt}
- \setlength{\topsep}{0ex}
- \setlength{\partopsep}{0pt}
- \setlength{\labelwidth}{1em}
- \setlength{\leftmargin}{\labelwidth}
- \addtolength{\leftmargin}{\labelsep}
- \addtolength{\leftmargin}{\compactlistindent}
- }
- }{\end{list}}
+ \begin{list}{#1\unskip}{% \unskip gobbles space created by \xspace
+ \setlength{\itemsep}{0pt}
+ \setlength{\parsep}{0pt}
+ \setlength{\topsep}{0ex}
+ \setlength{\partopsep}{0pt}
+ \setlength{\labelwidth}{1em}
+ \setlength{\leftmargin}{\labelwidth}
+ \addtolength{\leftmargin}{\labelsep}
+ \addtolength{\leftmargin}{\compactlistindent}
+ }
+}{\end{list}}
\providecommand{\bul}{\textbullet}
\providecommand{\dash}{\textendash}
@@ -569,16 +763,18 @@
% The following macros need the \textsf{pifont} package.
% \smallskip
% \begin{macrocode}
-\providecommand{\hand}{\ding{43}\xspace}
-\providecommand{\checksymb}{\ding{51}\xspace}
-\providecommand{\arrowsymb}{\ding{226}\xspace}
+\ifspacingtricks@pifont
+ \providecommand{\hand}{\ding{43}\xspace}
+ \providecommand{\checksymb}{\ding{51}\xspace}
+ \providecommand{\arrowsymb}{\ding{226}\xspace}
+\fi
\providecommand{\ie}{i.e.\@\xspace}
\providecommand{\eg}{e.g.\@\xspace}
\newcommand{\@@dualboxes}[3][1]{
\par\noindent
- \raisebox{\depth-#1\totalheight}{#2} \hfill
+ \raisebox{\depth-#1\totalheight}{#2} \hfill % needs calc
\raisebox{\depth-#1\totalheight}{#3} \smallskip
}
\newcommand{\@dualboxes}[3][1]{
@@ -587,26 +783,81 @@
\raisebox{\depth-#1\totalheight}{#3} \hfill\mbox{}\smallskip
}
\newcommand{\dualboxes}{\@ifstar{\@@dualboxes}{\@dualboxes}}
+
+% \end{macrocode}
+%
+% The following macro has been found in the \texttt{fiche.cls} file,
+% distributed with the \textsf{mafr} package by Christian Obrecht~\cite{MAFR}.
+% It had some tiny bugs in spacing.
+% I just made small changes: adding some lengths parameters and the "\linewidth"
+% instruction (without whom, lists in the first side send the second side out of the page).
+% \begin{macrocode}
+\newlength\juxtopskip
+\setlength\juxtopskip{\smallskipamount}
+\newlength\juxbottomskip
+\setlength\juxbottomskip{\smallskipamount}
+\newlength\juxsepspace
+\setlength\juxsepspace{1.5em}
+\newlength\side@width
+
+\newenvironment{juxtapose}[1][0.5]{% left side ratio
+ \def\otherside{\egroup % internal function remembers \side@width
+ \@tempdima=\side@width
+ \side@width=\textwidth
+ \advance\side@width by -\@tempdima
+ \advance\side@width by -\juxsepspace
+ \hskip\juxsepspace
+ \linewidth=\side@width % for lists environments
+ \vcenter\bgroup\hsize=\side@width\noindent % \ignorespaces useless
+ }
+ \side@width=#1\textwidth
+ \advance\side@width by -0.5\juxsepspace
+ \linewidth=\side@width % for lists environments
+ \par\vskip\juxtopskip%
+ \hbox\bgroup\begin{math}
+ \vcenter\bgroup\hsize=\side@width\noindent\ignorespaces
+ }{\egroup\end{math}\egroup\vskip\juxbottomskip}
+
% \end{macrocode}
%
% \medskip
-% \begin{thebibliography}{9}
+% \begin{thebibliography}{17}
+% \begin{raggedright}
+% \bibitem{SETSP} \emph{The \textsf{setspace} Package}, Robin Fairbairns, Geoffrey Tobin,
+% CTAN, v9.7b 2022/12/04.
% \bibitem{XSP} \emph{The \textsf{xspace} package}, David Carlisle, Morten Høgholm,
% CTAN v1.13 2014/10/28.
-% \bibitem{MKCELL} \emph{The \textsf{makecell} package}, Olga Lapko, CTAN, v0.1e 2009/08/03.
% \bibitem{CENTER} \emph{\textsf{centeredline} -- A macro for centering lines}, Jean-François
-% Burnol, CTAN, v1.1 2019/05/03.
-% \bibitem{CELLSP} \emph{The \textsf{cellspace} package}, Josselin Noirel, CTAN, v1.8 2019/03/11.
+% Burnol, CTAN, v1.2 2022/10/10.
+% \bibitem{MAFR} \emph{La distribution \textsf{mafr}}, Christian Obrecht,
+% CTAN, v1.0 17/09/2006.
+% \bibitem{ARCOL} \emph{The \textsf{arraycols} package}, Antoine Missier, CTAN,
+% v1.2 2021/09/20.
+% \bibitem{MSMATH} \emph{\textsf{mismath} -- Miscellaneous mathematical macros},
+% Antoine Missier, CTAN, v2.5 2023/02/24.
+% \bibitem{MKCELL} \emph{The \textsf{makecell} package}, Olga Lapko, CTAN, v0.1e 2009/08/03.
+% \bibitem{CELLSP} \emph{The \textsf{cellspace} package}, Josselin Noirel, CTAN,
+% v1.9.0 2022/01/04.
+% \bibitem{PIFONT} \emph{\textsf{pifont} -- Using common PostScript fonts with \LaTeX},
+% Walter Schmidt, CTAN, v9.3 2020/03/25.
% \bibitem{ENUM} \emph{Customizing lists with the \textsf{enumitem} package}, Javier Bezos,
% CTAN, v3.9 2019/06/20.
-% \bibitem{ARCOL} \emph{The \textsf{arraycols} package}, Antoine Missier, CTAN, v1.2 2021/09/20.
-% \bibitem{MSMATH} \emph{\textsf{mismath} -- Miscellaneous mathematical macros}, Antoine Missier,
-% CTAN, v1.8 2020/11/15.
+% \bibitem{WRAPFIG} \emph{The \textsf{wrapfig} package}, Donald Arseneau, CTAN,
+% v3.6 2003/01/31.
% \bibitem{PICINS} \emph{Bilder in \LaTeX -Dokumenten -- PicIns-Benutzerhandbuch},
% Joachim Bleser, Edmund Lang, CTAN, v3.0 sept. 1992.
+% \bibitem{PICINPAR} \emph{The \textsf{picinpar} package}, Friedhelm Sowa, Stefan Blochwitz,
+% CTAN, v1.3 2022/11/25.
+% \bibitem{VWCOL} \emph{The \textsf{vwcol} package}, Will Robertson, CTAN, v0.2 2015/02/10.
+% \bibitem{PARA} \emph{Package \textsf{paracol}: Yet Another Multi-Column Package
+% to Typeset Columns in Parallel}, Hiroshi Nakashima, CTAN, v1.35 2018/12/31.
+% \bibitem{RELP} \emph{Parallel typesetting for critical editions:
+% the \textsf{reledpar} package}, Maïeul Rouquette, Peter Wilson, Herries Press, CTAN,
+% 2.25.3 2022/04/22.
% \bibitem{COMP} \emph{The \LaTeX\ Companion}. Frank Mittelbach, Michel Goossens,
% Johannes Braams, David Carlisle, Chris Rowley, 2nd edition, Pearson Education, 2004.
+% \end{raggedright}
% \end{thebibliography}
-
+%
% \Finale
\endinput
diff --git a/macros/latex/contrib/spacingtricks/spacingtricks.ins b/macros/latex/contrib/spacingtricks/spacingtricks.ins
index fb950279c3..a2b2aa9776 100644
--- a/macros/latex/contrib/spacingtricks/spacingtricks.ins
+++ b/macros/latex/contrib/spacingtricks/spacingtricks.ins
@@ -1,5 +1,5 @@
%%
-%% Copyright (C) 2019-2021 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+%% Copyright (C) 2019-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr>
%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3 of this license
@@ -21,7 +21,7 @@
This is a generated file.
-Copyright (C) 2019-2021 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+Copyright (C) 2019-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr>
This file may be distributed and/or modified under the conditions of
the LaTeX Project Public License, either version 1.3 of this license
@@ -46,7 +46,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\Msg{* spacingtricks.sty *}
\Msg{* *}
\Msg{* To produce the documentation run the file *}
-\Msg{* spacingtricks.dtx through LaTeX + dvips + ps2pdf *}
+\Msg{* spacingtricks.dtx through LaTeX *}
\Msg{* *}
\Msg{* Happy TeXing! *}
\Msg{* *}
diff --git a/macros/latex/contrib/spacingtricks/spacingtricks.pdf b/macros/latex/contrib/spacingtricks/spacingtricks.pdf
index a7ab69f54e..ba4d8631b8 100644
--- a/macros/latex/contrib/spacingtricks/spacingtricks.pdf
+++ b/macros/latex/contrib/spacingtricks/spacingtricks.pdf
Binary files differ
diff --git a/macros/latex/contrib/unicode-alphabets/README.md b/macros/latex/contrib/unicode-alphabets/README.md
index 347049456b..7796c6b201 100644
--- a/macros/latex/contrib/unicode-alphabets/README.md
+++ b/macros/latex/contrib/unicode-alphabets/README.md
@@ -7,7 +7,7 @@ See [unicode-alphabets.pdf](docs/unicode-alphabets.pdf) for the documentation.
See [specimen.pdf](docs/specimen.pdf) for examples.
-Contents last updated 2020-03-11.
+Contents last updated 2023-02-27.
Package available via CTAN at https://www.ctan.org/pkg/unicode-alphabets
diff --git a/macros/latex/contrib/unicode-alphabets/docs/specimen.pdf b/macros/latex/contrib/unicode-alphabets/docs/specimen.pdf
index e9c191c990..2d9feb131c 100644
--- a/macros/latex/contrib/unicode-alphabets/docs/specimen.pdf
+++ b/macros/latex/contrib/unicode-alphabets/docs/specimen.pdf
Binary files differ
diff --git a/macros/latex/contrib/unicode-alphabets/docs/specimen.tex b/macros/latex/contrib/unicode-alphabets/docs/specimen.tex
index 3f52b09cd2..00c781dbec 100644
--- a/macros/latex/contrib/unicode-alphabets/docs/specimen.tex
+++ b/macros/latex/contrib/unicode-alphabets/docs/specimen.tex
@@ -15,8 +15,6 @@
hidelinks,
]{hyperref}
-\include{csvsimple.tmp.patch}
-
\title{Unicode Alphabets for \LaTeX\\\bigskip\large Specimen}
\author{Mikkel Eide Eriksen}
diff --git a/macros/latex/contrib/unicode-alphabets/docs/unicode-alphabets.pdf b/macros/latex/contrib/unicode-alphabets/docs/unicode-alphabets.pdf
index 29907ed86e..07157b96bd 100644
--- a/macros/latex/contrib/unicode-alphabets/docs/unicode-alphabets.pdf
+++ b/macros/latex/contrib/unicode-alphabets/docs/unicode-alphabets.pdf
Binary files differ
diff --git a/macros/latex/contrib/unicode-alphabets/docs/unicode-alphabets.tex b/macros/latex/contrib/unicode-alphabets/docs/unicode-alphabets.tex
index 3969d13260..3bca58af21 100644
--- a/macros/latex/contrib/unicode-alphabets/docs/unicode-alphabets.tex
+++ b/macros/latex/contrib/unicode-alphabets/docs/unicode-alphabets.tex
@@ -20,8 +20,6 @@
hidelinks,
]{hyperref}
-\include{csvsimple.tmp.patch}
-
\title{Unicode Alphabets for \LaTeX}
\author{Mikkel Eide Eriksen\\\href{mailto:mikkel.eriksen@gmail.com}{mikkel.eriksen@gmail.com}}
diff --git a/macros/latex/contrib/unicode-alphabets/latex/csvsimple.tmp.patch.tex b/macros/latex/contrib/unicode-alphabets/latex/csvsimple.tmp.patch.tex
deleted file mode 100644
index ea229dad78..0000000000
--- a/macros/latex/contrib/unicode-alphabets/latex/csvsimple.tmp.patch.tex
+++ /dev/null
@@ -1,20 +0,0 @@
-% https://github.com/T-F-S/csvsimple/issues/7
-
-\makeatletter
-
-\def\set@csv@autohead{%
- \toks0=\expandafter{\csname\csv@headnameprefix\csv@current@col\endcsname}%
- \toks1=\expandafter{\csname csvcol\romannumeral\c@csvcol\endcsname}%
- \begingroup\edef\csv@temp{\endgroup\noexpand\gdef\the\toks0{\the\toks1}\noexpand\csv@AtEndLoop{\noexpand\gdef\the\toks0{}}}%
- \csv@temp%
-}
-
-\csvset{%
- head to column names prefix/.store in=\csv@headnameprefix,%
- head to column names prefix=,%
- xltabular/.style 2 args={
- @table={\csv@pretable\begin{xltabular}{#1}{#2}\csv@tablehead}{\csv@tablefoot\end{xltabular}\csv@posttable},
- late after line=\\},
-}
-
-\makeatother
diff --git a/macros/latex/contrib/unicode-alphabets/latex/unicode-alphabets.sty b/macros/latex/contrib/unicode-alphabets/latex/unicode-alphabets.sty
index 898fa9d4d9..0dd446dc21 100644
--- a/macros/latex/contrib/unicode-alphabets/latex/unicode-alphabets.sty
+++ b/macros/latex/contrib/unicode-alphabets/latex/unicode-alphabets.sty
@@ -1,4 +1,4 @@
-\ProvidesPackage{unicode-alphabets}[2020/03/11 Unicode alphabets in the Private Use Area]
+\ProvidesPackage{unicode-alphabets}[2023/02/27 Unicode alphabets in the Private Use Area]
% License: CC-BY-SA 4.0
% Author: Mikkel Eide Eriksen <mikkel.eriksen@gmail.com>
@@ -12,8 +12,6 @@
\RequirePackage{csvsimple}
-\input{csvsimple.tmp.patch}
-
\makeatletter
\newcommand\alph@keys[1]{\pgfkeys{/unicode-alphabets/.cd,#1}}