summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/babel-contrib/danish/README.md16
-rw-r--r--macros/latex/contrib/babel-contrib/danish/danish.dtx36
-rw-r--r--macros/latex/contrib/babel-contrib/danish/danish.pdfbin127671 -> 136164 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/finnish/README.md12
-rw-r--r--macros/latex/contrib/babel-contrib/finnish/finnish.dtx23
-rw-r--r--macros/latex/contrib/babel-contrib/finnish/finnish.pdfbin139230 -> 147638 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/portuges/README.md12
-rw-r--r--macros/latex/contrib/babel-contrib/portuges/portuges.dtx34
-rw-r--r--macros/latex/contrib/babel-contrib/portuges/portuges.pdfbin145322 -> 153755 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/slovenian/README.md17
-rw-r--r--macros/latex/contrib/babel-contrib/slovenian/slovene.dtx32
-rw-r--r--macros/latex/contrib/babel-contrib/slovenian/slovene.pdfbin127434 -> 135706 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/sorbian/README.md16
-rw-r--r--macros/latex/contrib/babel-contrib/sorbian/lsorbian.dtx20
-rw-r--r--macros/latex/contrib/babel-contrib/sorbian/lsorbian.pdfbin124566 -> 131086 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/sorbian/usorbian.dtx37
-rw-r--r--macros/latex/contrib/babel-contrib/sorbian/usorbian.pdfbin132650 -> 140300 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/swedish/README.md16
-rw-r--r--macros/latex/contrib/babel-contrib/swedish/swedish.dtx38
-rw-r--r--macros/latex/contrib/babel-contrib/swedish/swedish.pdfbin130054 -> 138372 bytes
-rw-r--r--macros/latex/contrib/cmap/README3
-rw-r--r--macros/latex/contrib/cmap/cmap.sty44
-rw-r--r--macros/latex/contrib/europecv/CHANGELOG.rst6
-rw-r--r--macros/latex/contrib/europecv/README.md3
-rw-r--r--macros/latex/contrib/europecv/ecvpt.def4
-rw-r--r--macros/latex/contrib/europecv/europecv.pdfbin683232 -> 662190 bytes
-rw-r--r--macros/latex/contrib/europecv/europecv.tex12
-rw-r--r--macros/latex/contrib/europecv/examples/europass-cv.pdfbin224310 -> 224305 bytes
-rw-r--r--macros/latex/contrib/europecv/examples/europasslogo-eps-converted-to.pdfbin14481 -> 14480 bytes
-rw-r--r--macros/latex/contrib/europecv/templates/cv_template_academic_en.pdfbin52031 -> 38531 bytes
-rw-r--r--macros/latex/contrib/europecv/templates/cv_template_en.pdfbin38261 -> 31728 bytes
-rw-r--r--macros/latex/contrib/fontsize/fontsize.dtx501
-rw-r--r--macros/latex/contrib/fontsize/fontsize.pdfbin296971 -> 343569 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin425830 -> 439492 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex480
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx1145
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin1078565 -> 1131373 bytes
-rw-r--r--macros/latex/contrib/ragged2e/LICENSE416
-rw-r--r--macros/latex/contrib/ragged2e/Makefile31
-rw-r--r--macros/latex/contrib/ragged2e/README28
-rw-r--r--macros/latex/contrib/ragged2e/README.md42
-rw-r--r--macros/latex/contrib/ragged2e/ragged2e.dtx174
-rw-r--r--macros/latex/contrib/ragged2e/ragged2e.ins86
-rw-r--r--macros/latex/contrib/ragged2e/ragged2e.pdfbin636665 -> 666241 bytes
-rw-r--r--macros/latex/contrib/ragged2e/raggtest.tex75
-rw-r--r--macros/latex/contrib/ragged2e/test-koma.tex37
-rw-r--r--macros/latex/contrib/ragged2e/test1.tex61
-rw-r--r--macros/latex/contrib/ragged2e/test2.tex61
-rw-r--r--macros/latex/contrib/suftesi/README2
-rw-r--r--macros/latex/contrib/suftesi/suftesi.dtx74
-rw-r--r--macros/latex/contrib/suftesi/suftesi.pdfbin794737 -> 795474 bytes
51 files changed, 2143 insertions, 1451 deletions
diff --git a/macros/latex/contrib/babel-contrib/danish/README.md b/macros/latex/contrib/babel-contrib/danish/README.md
new file mode 100644
index 0000000000..4a1f1b1400
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/danish/README.md
@@ -0,0 +1,16 @@
+# babel-danish – Babel contributed support for Danish
+
+Version: 2021-02-06 v1.3s
+
+The package provides a language definition, file for use with babel,
+which establishes Danish conventions in a document
+(or a subset of the conventions,
+if Danish is not the main language of the document).
+
+
+
+## Copyright (C)
+* 1989–2009 Johannes L. Braams
+
+## License
+LATEX Project Public License, version 1.3 or later.
diff --git a/macros/latex/contrib/babel-contrib/danish/danish.dtx b/macros/latex/contrib/babel-contrib/danish/danish.dtx
index ba05ec2f82..07793da26f 100644
--- a/macros/latex/contrib/babel-contrib/danish/danish.dtx
+++ b/macros/latex/contrib/babel-contrib/danish/danish.dtx
@@ -2,10 +2,10 @@
%
% Copyright 1989-2009 Johannes L. Braams and any individual authors
% listed elsewhere in this file. All rights reserved.
-%
+%
% This file is part of the Babel system.
% --------------------------------------
-%
+%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -13,20 +13,20 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
+%
% The Current Maintainer of this work is Johannes Braams.
-%
+%
% The list of all files belonging to the Babel system is
% given in the file `manifest.bbl. See also `legal.bbl' for additional
% information.
-%
+%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
% \fi
-% \CheckSum{160}
+% \CheckSum{164}
% \iffalse
% Tell the \LaTeX\ system who we are and write an entry on the
% transcript.
@@ -36,7 +36,7 @@
%<code>\ProvidesLanguage{danish}
%\fi
%\ProvidesFile{danish.dtx}
- [2009/09/19 v1.3r Danish support from the babel system]
+ [2021/02/06 v1.3s Danish support from the babel system]
%\iffalse
%% File `danish.dtx'
%% Babel package for LaTeX version 2e
@@ -114,7 +114,7 @@
% loaded more than once, checking the category code of the
% \texttt{@} sign, etc.
% \changes{danish-1.3j}{1996/11/02}{Now use \cs{LdfInit} to perform
-% initial checks}
+% initial checks}
% \begin{macrocode}
%<*code>
\LdfInit{danish}\captionsdanish
@@ -245,7 +245,7 @@
% First we define access to the low opening double quote and
% guillemets for quotations,
% \changes{danish-1.3j}{1996/08/15}{Changed definition of \texttt{"'}
-% to print \texttt{``} instead of \texttt{''}}
+% to print \texttt{``} instead of \texttt{''}}
% \changes{danish-1.3k}{1997/04/03}{Removed empty groups after double
% quote and guillemot characters}
% \begin{macrocode}
@@ -261,24 +261,30 @@
% then we define commands to be able to specify hyphenation
% breakpoints that behave a little different from |\-|.
% \changes{danish-1.3j}{1996/08/15}{Added definition of
-% \texttt{"\char126} and \texttt{"\char61}}
+% \texttt{"\char126} and \texttt{"\char61}}
% \begin{macrocode}
\declare@shorthand{danish}{"-}{\nobreak-\bbl@allowhyphens}
\declare@shorthand{danish}{""}{\hskip\z@skip}
-\declare@shorthand{danish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}
+% \end{macrocode}
+% \changes{danish-1.3s}{2021/02/06}{Adapted some shorthands to changes in hyperref}
+% To avoid problems in bookmarks some shorthands should be hyperref aware.
+% \begin{macrocode}
+\providecommand\texorpdfstring[2]{#1}
+\declare@shorthand{danish}{"~}{%
+ \texorpdfstring{\textormath{\leavevmode\hbox{-}}{-}}{-}}
\declare@shorthand{danish}{"=}{\nobreak-\hskip\z@skip}
% \end{macrocode}
% And we want to have a shorthand for disabling a ligature.
% \begin{macrocode}
\declare@shorthand{danish}{"|}{%
- \textormath{\discretionary{-}{}{\kern.03em}}{}}
+ \texorpdfstring{\textormath{\discretionary{-}{}{\kern.03em}}{}}{}}
% \end{macrocode}
%
% To enable hyphenation in two words, written together but
% separated by a slash, as in `uitdrukking/opmerking' we define the
% command |"/|.
% \changes{danish-1.3q}{2008/03/17}{Added definition of \texttt{"/}
-% from \texttt{dutch.ldf}}
+% from \texttt{dutch.ldf}}
% \changes{danish-1.3r}{2009/09/19}{Made "/ a real Danish shorthand}
% \begin{macrocode}
\declare@shorthand{danish}{"/}{\textormath
@@ -310,7 +316,7 @@
% at |\begin{document}| and resetting the category code of
% \texttt{@} to its original value.
% \changes{danish-1.3j}{1996/11/02}{Now use \cs{ldf@finish} to wrap
-% up}
+% up}
% \begin{macrocode}
\ldf@finish{danish}
%</code>
diff --git a/macros/latex/contrib/babel-contrib/danish/danish.pdf b/macros/latex/contrib/babel-contrib/danish/danish.pdf
index 2f1efd5605..40cd9bbbf4 100644
--- a/macros/latex/contrib/babel-contrib/danish/danish.pdf
+++ b/macros/latex/contrib/babel-contrib/danish/danish.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/finnish/README.md b/macros/latex/contrib/babel-contrib/finnish/README.md
index 585667c5ca..3dde1066be 100644
--- a/macros/latex/contrib/babel-contrib/finnish/README.md
+++ b/macros/latex/contrib/babel-contrib/finnish/README.md
@@ -1,5 +1,6 @@
-Finnish 1.3r
---------------
+# babel-danish – Babel contributed support for Danish
+
+Version: 2021-02-06 v1.3s
This is the babel style for Finnish.
@@ -8,7 +9,8 @@ got fixed if you report them. If you want to take over maintenance
of this language style, please contact me at
http://www.texnia.com/contact.html .**
-Changes 1.3r
-------------
+## Copyright (C)
+* 1989-2020 Johannes L. Braams, Javier Bezos
-Sisällys is the preferred form for contents name.
+## License
+LATEX Project Public License, version 1.3 or later.
diff --git a/macros/latex/contrib/babel-contrib/finnish/finnish.dtx b/macros/latex/contrib/babel-contrib/finnish/finnish.dtx
index f454aac39c..d18dd761ad 100644
--- a/macros/latex/contrib/babel-contrib/finnish/finnish.dtx
+++ b/macros/latex/contrib/babel-contrib/finnish/finnish.dtx
@@ -3,10 +3,10 @@
% Copyright 1989-2020 Johannes L. Braams, Javier Bezos and any
% individual authors listed elsewhere in this file. All rights
% reserved.
-%
+%
% This file is part of the Babel system.
% --------------------------------------
-%
+%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -14,20 +14,19 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
+%
% The Current Maintainer of this work is Javier Bezos
-%
+%
% The list of all files belonging to the Babel system is
% given in the file `manifest.bbl. See also `legal.bbl' for additional
% information.
-%
+%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
% \fi
-% \CheckSum{172}
% \iffalse
% Tell the \LaTeX\ system who we are and write an entry on the
% transcript.
@@ -37,7 +36,7 @@
%<code>\ProvidesLanguage{finnish}
%\fi
%\ProvidesFile{finnish.dtx}
- [2020/04/16 v1.3r Finnish support from the babel system]
+ [2021/02/06 v1.3s Finnish support from the babel system]
%\iffalse
%% File `finnish.dtx'
%% Babel package for LaTeX version 2e
@@ -119,7 +118,7 @@
% loaded more than once, checking the category code of the
% \texttt{@} sign, etc.
% \changes{finnish-1.3i}{1996/11/02}{Now use \cs{LdfInit} to perform
-% initial checks}
+% initial checks}
% \begin{macrocode}
%<*code>
\LdfInit{finnish}\captionsfinnish
@@ -293,9 +292,12 @@
\declare@shorthand{finnish}{"=}{\hbox{-}\bbl@allowhyphens}
% \end{macrocode}
% And we want to have a shorthand for disabling a ligature.
+% \changes{finish-1.3s}{2021/02/06}{Adapted to changes in hyperref}
+% To avoid problems in bookmarks this shorthand should be hyperref aware.
% \begin{macrocode}
+\providecommand\texorpdfstring[2]{#1}
\declare@shorthand{finnish}{"|}{%
- \textormath{\discretionary{-}{}{\kern.03em}}{}}
+ \texorpdfstring{\textormath{\discretionary{-}{}{\kern.03em}}{}}{}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -361,4 +363,3 @@
%% Right brace \} Tilde \~}
%%
\endinput
-
diff --git a/macros/latex/contrib/babel-contrib/finnish/finnish.pdf b/macros/latex/contrib/babel-contrib/finnish/finnish.pdf
index 61f4f9b794..a7b124953a 100644
--- a/macros/latex/contrib/babel-contrib/finnish/finnish.pdf
+++ b/macros/latex/contrib/babel-contrib/finnish/finnish.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/portuges/README.md b/macros/latex/contrib/babel-contrib/portuges/README.md
index c81d3294a8..a4eee9cebe 100644
--- a/macros/latex/contrib/babel-contrib/portuges/README.md
+++ b/macros/latex/contrib/babel-contrib/portuges/README.md
@@ -1,5 +1,6 @@
-Portuguese 1.2r
---------------
+# babel-portuges – Babel contributed support for Portuguese and Brazilian
+
+Version: 2021-02-06 v1.2s
This is the babel style for Portuguese.
@@ -8,9 +9,10 @@ got fixed if you report them. If you want to take over maintenance
of this language style, please contact me at
http://www.texnia.com/contact.html .**
-Changes 1.2r
-------------
+## Copyright (C)
+* 1989-2020 Johannes L. Braams, Javier Bezos
-Months are now lowercased in all 'dialects'.
+## License
+LATEX Project Public License, version 1.3 or later.
diff --git a/macros/latex/contrib/babel-contrib/portuges/portuges.dtx b/macros/latex/contrib/babel-contrib/portuges/portuges.dtx
index 09ff720e40..bec2a3f332 100644
--- a/macros/latex/contrib/babel-contrib/portuges/portuges.dtx
+++ b/macros/latex/contrib/babel-contrib/portuges/portuges.dtx
@@ -3,10 +3,10 @@
% Copyright 1989-2020 Johannes L. Braams, Javier Bezos, and any
% individual authors listed elsewhere in this file. All rights
% reserved.
-%
+%
% This file is part of the Babel system.
% --------------------------------------
-%
+%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -14,20 +14,19 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
+%
% The Current Maintainer of this work is Javier Bezos.
-%
+%
% The list of all files belonging to the Babel system is
% given in the file `manifest.bbl. See also `legal.bbl' for additional
% information.
-%
+%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
% \fi
-% \CheckSum{320}
% \iffalse
% Tell the \LaTeX\ system who we are and write an entry on the
% transcript.
@@ -37,7 +36,7 @@
%<code>\ProvidesLanguage{portuges}
%\fi
%\ProvidesFile{portuges.dtx}
- [2020/05/04 v1.2r Portuguese support from the babel system]
+ [2021/02/04 v1.2s Portuguese support from the babel system]
%\iffalse
%% File `portuges.dtx'
%% Babel package for LaTeX version 2e
@@ -80,7 +79,7 @@
% \changes{portuges-1.2g}{1995/06/04}{Enhanced support for brasilian}
% \changes{portuges-1.2j}{1996/07/11}{Replaced \cs{undefined} with
% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
-% with \LaTeX}
+% with \LaTeX}
% \changes{portuges-1.2j}{1996/10/10}{Moved the definition of
% \cs{atcatcode} right to the beginning.}
%
@@ -122,7 +121,7 @@
% loaded more than once, checking the category code of the
% \texttt{@} sign, etc.
% \changes{portuges-1.2j}{1996/11/03}{Now use \cs{LdfInit} to perform
-% initial checks}
+% initial checks}
% \begin{macrocode}
%<*code>
\LdfInit\CurrentOption{captions\CurrentOption}
@@ -174,7 +173,7 @@
% loaded for Portuguese or Brasilian use. This can be done by
% checking the contents of |\CurrentOption|. When it doesn't
% contain either `portuges' or `portuguese' we make |\bbl@tempb|
-% empty.
+% empty.
% \begin{macrocode}
\def\bbl@tempa{portuguese}
\ifx\CurrentOption\bbl@tempa
@@ -260,7 +259,7 @@
% \changes{portuges-1.2k}{1997/10/01}{Use \cs{edef} to define
% \cs{today} to save memory}
% \changes{portuges-1.2k}{1998/03/28}{use \cs{def} instead of
-% \cs{edef}}
+% \cs{edef}}
% \changes{portuges-1.2n}{2001/01/27}{Removed spurious space after
% Dezembro}
% \begin{macrocode}
@@ -275,7 +274,7 @@
% \end{macro}
%
% For the Brasilian version of these definitions we just add a
-% ``dialect''.
+% ``dialect''.
% \begin{macrocode}
\expandafter
\adddialect\csname l@\CurrentOption\endcsname\l@portuges
@@ -326,7 +325,7 @@
% \changes{portuges-1.2k}{1997/10/01}{Use \cs{edef} to define
% \cs{today} to save memory}
% \changes{portuges-1.2k}{1998/03/28}{use \cs{def} instead of
-% \cs{edef}}
+% \cs{edef}}
% \changes{portuges-1.2n}{2001/01/27}{Removed spurious space after
% dezembro}
% \begin{macrocode}
@@ -396,9 +395,12 @@
\declare@shorthand{portuges}{""}{\hskip\z@skip}
% \end{macrocode}
% And we want to have a shorthand for disabling a ligature.
+% \changes{portuges-1.2s}{2021/02/06}{Adapted this shorthand to changes in hyperref}
+% To avoid problems in bookmarks the shorthand should be hyperref aware.
% \begin{macrocode}
+\providecommand\texorpdfstring[2]{#1}
\declare@shorthand{portuges}{"|}{%
- \textormath{\discretionary{-}{}{\kern.03em}}{}}
+ \texorpdfstring{\textormath{\discretionary{-}{}{\kern.03em}}{}}{}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -446,7 +448,7 @@
% at |\begin{document}| and resetting the category code of
% \texttt{@} to its original value.
% \changes{portuges-1.2j}{1996/11/03}{ow use \cs{ldf@finish} to wrap
-% up}
+% up}
% \begin{macrocode}
\ldf@finish\CurrentOption
%</code>
diff --git a/macros/latex/contrib/babel-contrib/portuges/portuges.pdf b/macros/latex/contrib/babel-contrib/portuges/portuges.pdf
index cb8bc27062..47d13ed00f 100644
--- a/macros/latex/contrib/babel-contrib/portuges/portuges.pdf
+++ b/macros/latex/contrib/babel-contrib/portuges/portuges.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/slovenian/README.md b/macros/latex/contrib/babel-contrib/slovenian/README.md
new file mode 100644
index 0000000000..a29734f9fe
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/slovenian/README.md
@@ -0,0 +1,17 @@
+# babel-slovenian – Babel contributed support for Slovenian
+
+Version: 2021-02-06 v1.2n
+
+This is the babel style for Sloveniane.
+
+The package provides the language definition file for support
+of Slovenian in babel. Several shortcuts are defined,
+as well as translations to Slovenian of standard “LaTeX names”.
+
+## Copyright (C)
+* 1989–2005 Johannes L. Braams
+
+## License
+LATEX Project Public License, version 1.3 or later.
+
+
diff --git a/macros/latex/contrib/babel-contrib/slovenian/slovene.dtx b/macros/latex/contrib/babel-contrib/slovenian/slovene.dtx
index 391f39e7f9..834296b7d6 100644
--- a/macros/latex/contrib/babel-contrib/slovenian/slovene.dtx
+++ b/macros/latex/contrib/babel-contrib/slovenian/slovene.dtx
@@ -2,10 +2,10 @@
%
% Copyright 1989-2005 Johannes L. Braams and any individual authors
% listed elsewhere in this file. All rights reserved.
-%
+%
% This file is part of the Babel system.
% --------------------------------------
-%
+%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -13,20 +13,19 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
+%
% The Current Maintainer of this work is Johannes Braams.
-%
+%
% The list of all files belonging to the Babel system is
% given in the file `manifest.bbl. See also `legal.bbl' for additional
% information.
-%
+%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
% \fi
-% \CheckSum{142}
% \iffalse
% Tell the \LaTeX\ system who we are and write an entry on the
% transcript.
@@ -36,7 +35,7 @@
%<code>\ProvidesLanguage{slovene}
%\fi
%\ProvidesFile{slovene.dtx}
- [2005/03/31 v1.2m Slovene support from the babel system]
+ [2021/02/06 v1.2n Slovene support from the babel system]
%\iffalse
%% File `slovene.dtx'
%% Babel package for LaTeX version 2e
@@ -78,7 +77,7 @@
% \changes{slovene-1.2d}{1994/06/26}{Removed the use of \cs{filedate}
% and moved identification after the loading of \file{babel.def}}
% \changes{slovene-1.2i}{1995/11/03}{Replaced `Slovanian' with correct
-% `Slovenian'}
+% `Slovenian'}
% \changes{slovene-1.2i}{1996/10/10}{Replaced \cs{undefined} with
% \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency
% with \LaTeX, moved the definition of \cs{atcatcode} right to the
@@ -101,7 +100,7 @@
% \begin{table}[htb]
% \begin{center}
% \begin{tabular}{lp{8cm}}
-% |"c| & |\"c|, also implemented for the
+% |"c| & |\"c|, also implemented for the
% lowercase and uppercase s and z. \\
% |"-| & an explicit hyphen sign, allowing hyphenation
% in the rest of the word. \\
@@ -123,7 +122,7 @@
% loaded more than once, checking the category code of the
% \texttt{@} sign, etc.
% \changes{slovene-1.2i}{1996/11/03}{Now use \cs{LdfInit} to perform
-% initial checks}
+% initial checks}
% \begin{macrocode}
%<*code>
\LdfInit{slovene}\captionsslovene
@@ -209,7 +208,7 @@
% \begin{macro}{\noextrasslovene}
% The macro |\extrasslovene| performs all the extra definitions
% needed for the Slovenian language. The macro |\noextrasslovene|
-% is used to cancel the actions of |\extrasslovene|.
+% is used to cancel the actions of |\extrasslovene|.
%
% For Slovene the \texttt{"} character is made active. This is done
% once, later on its definition may vary. Other languages in the
@@ -232,7 +231,7 @@
% First we define shorthands to facilitate the occurence of letters
% such as \v{c}.
% \changes{slovene-1.2i}{1996/09/21}{removed shorthand for \texttt{"L}
-% as it is not needed for slovenian}
+% as it is not needed for slovenian}
% \begin{macrocode}
\declare@shorthand{slovene}{"c}{\textormath{\v c}{\check c}}
\declare@shorthand{slovene}{"s}{\textormath{\v s}{\check s}}
@@ -263,9 +262,12 @@
\declare@shorthand{slovene}{""}{\hskip\z@skip}
% \end{macrocode}
% And we want to have a shorthand for disabling a ligature.
+% \changes{slovene-1.2n}{2021/02/06}{Adapted this shorthand to changes in hyperref}
+% To avoid problems in bookmarks the shorthand should be hyperref aware.
% \begin{macrocode}
+\providecommand\texorpdfstring[2]{#1}
\declare@shorthand{slovene}{"|}{%
- \textormath{\discretionary{-}{}{\kern.03em}}{}}
+ \texorpdfstring{\textormath{\discretionary{-}{}{\kern.03em}}{}}{}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -275,7 +277,7 @@
% at |\begin{document}| and resetting the category code of
% \texttt{@} to its original value.
% \changes{slovene-1.2i}{1996/11/03}{Now use \cs{ldf@finish} to wrap
-% up}
+% up}
% \begin{macrocode}
\ldf@finish{slovene}
%</code>
diff --git a/macros/latex/contrib/babel-contrib/slovenian/slovene.pdf b/macros/latex/contrib/babel-contrib/slovenian/slovene.pdf
index 9966e7a9e0..38a238638f 100644
--- a/macros/latex/contrib/babel-contrib/slovenian/slovene.pdf
+++ b/macros/latex/contrib/babel-contrib/slovenian/slovene.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/sorbian/README.md b/macros/latex/contrib/babel-contrib/sorbian/README.md
new file mode 100644
index 0000000000..dd9cd0ea1d
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/sorbian/README.md
@@ -0,0 +1,16 @@
+# babel-sorbian – Babel support for Upper and Lower Sorbian
+
+Version: 2021-02-06 v1.0i
+
+The package provides language definitions file for support of
+both Upper and Lower Sorbian, in babel.
+Some shortcuts are defined, as well as translations to the relevant
+language of standard “LaTeX names”.
+
+## Copyright (C)
+* 1994–2008 Eduard Werner and Johannes Braams
+
+## License
+LATEX Project Public License, version 1.3 or later.
+
+
diff --git a/macros/latex/contrib/babel-contrib/sorbian/lsorbian.dtx b/macros/latex/contrib/babel-contrib/sorbian/lsorbian.dtx
index f5adbe4763..24ac4b7854 100644
--- a/macros/latex/contrib/babel-contrib/sorbian/lsorbian.dtx
+++ b/macros/latex/contrib/babel-contrib/sorbian/lsorbian.dtx
@@ -2,10 +2,10 @@
%
% Copyright 1989-2008 Johannes L. Braams and any individual authors
% listed elsewhere in this file. All rights reserved.
-%
+%
% This file is part of the Babel system.
% --------------------------------------
-%
+%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -13,15 +13,15 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
+%
% The Current Maintainer of this work is Johannes Braams.
-%
+%
% The list of all files belonging to the Babel system is
% given in the file `manifest.bbl. See also `legal.bbl' for additional
% information.
-%
+%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
@@ -37,7 +37,7 @@
%<code>\ProvidesLanguage{lsorbian}
%\fi
%\ProvidesFile{lsorbian.dtx}
- [2008/03/17 v1.0g Lower Sorbian support from the babel system]
+ [2021/02/06 v1.0i Lower Sorbian support from the babel system]
%\iffalse
%% File `lsorbian.dtx'
%% Babel package for LaTeX version 2e
@@ -171,7 +171,7 @@
% \changes{lsorbian-1.0e}{1997/10/01}{Use \cs{edef} to define
% \cs{today} to save memory}
% \changes{lsorbian-1.0e}{1998/03/28}{use \cs{def} instead of
-% \cs{edef}}
+% \cs{edef}}
% \changes{lsorbian-1.0g}{2007/10/19}{Make this work for more than one
% option name.}
% \begin{macrocode}
@@ -202,7 +202,7 @@
\v znje\'nca\or
po\v znje\'nca\or
winowca\or
- nazymnika\or
+ nazymnika\or
godownika\fi \space \number\year}}
% \end{macrocode}
% \end{macro}
@@ -236,7 +236,7 @@
% at |\begin{document}| and resetting the category code of
% \texttt{@} to its original value.
% \changes{lsorbian-1.0d}{1996/11/03}{Now use \cs{ldf@finish} to wrap
-% up}
+% up}
% \changes{lsorbian-1.0g}{2007/10/19}{Make this work for more than one
% option name}
% \begin{macrocode}
diff --git a/macros/latex/contrib/babel-contrib/sorbian/lsorbian.pdf b/macros/latex/contrib/babel-contrib/sorbian/lsorbian.pdf
index c02cb8ee80..dec82bce1e 100644
--- a/macros/latex/contrib/babel-contrib/sorbian/lsorbian.pdf
+++ b/macros/latex/contrib/babel-contrib/sorbian/lsorbian.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/sorbian/usorbian.dtx b/macros/latex/contrib/babel-contrib/sorbian/usorbian.dtx
index 7c02a293cd..2349133b57 100644
--- a/macros/latex/contrib/babel-contrib/sorbian/usorbian.dtx
+++ b/macros/latex/contrib/babel-contrib/sorbian/usorbian.dtx
@@ -2,10 +2,10 @@
%
% Copyright 1989-2008 Johannes L. Braams and any individual authors
% listed elsewhere in this file. All rights reserved.
-%
+%
% This file is part of the Babel system.
% --------------------------------------
-%
+%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -13,20 +13,19 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
+%
% The Current Maintainer of this work is Johannes Braams.
-%
+%
% The list of all files belonging to the Babel system is
% given in the file `manifest.bbl. See also `legal.bbl' for additional
% information.
-%
+%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
% \fi
-% \CheckSum{344}
% \iffalse
% Tell the \LaTeX\ system who we are and write an entry on the
% transcript.
@@ -36,7 +35,7 @@
%<code>\ProvidesLanguage{usorbian}
%\fi
%\ProvidesFile{usorbian.dtx}
- [2008/03/17 v1.0k Upper Sorbian support from the babel system]
+ [2021/02/06 v1.0i Upper Sorbian support from the babel system]
%\iffalse
%% File `usorbian.dtx'
%% Babel package for LaTeX version 2e
@@ -98,7 +97,7 @@
% loaded more than once, checking the category code of the
% \texttt{@} sign, etc.
% \changes{usorbian-1.0e}{1996/11/03}{Now use \cs{LdfInit} to perform
-% initial checks}
+% initial checks}
% \changes{usorbian-1.0j}{2007/10/19}{This file can be loaded under
% more than one name.}
% \begin{macrocode}
@@ -109,7 +108,7 @@
% When this file is read as an option, i.e. by the |\usepackage|
% command, \texttt{usorbian} will be an `unknown' language, in which
% case we have to make it known. So we check for the existence of
-% |\l@usorbian| to see whether we have to do something here.
+% |\l@usorbian| to see whether we have to do something here.
% \changes{usorbian-1.0j}{2007/10/19}{Check for the option
% lowersorbian}
% As
@@ -236,8 +235,9 @@
% Don't forget to turn the shorthands off again.
% \changes{usorbian-1.0h}{1999/12/17}{Deactivate shorthands ouside of
% Upper Sorbian}
+% \changes{usorbian-1.0i}{2021/02/06}{correct deactivation command}
% \begin{macrocode}
-\expandafter\addto\csname extras\CurrentOption\endcsname{%
+\expandafter\addto\csname noextras\CurrentOption\endcsname{%
\bbl@deactivate{"}}
% \end{macrocode}
%
@@ -247,7 +247,7 @@
% language definitions turn the character |^| into a shorthand we
% need to make sure that it has it's orginial definition here.
% \changes{usorbian-1.0k}{2008/03/17}{Make sure the caret has the
-% right \cs{catcdoe}}
+% right \cs{catcdoe}}
% \begin{macrocode}
\begingroup \catcode`\^7
\def\x{\endgroup
@@ -344,9 +344,14 @@
% and some additional commands:
% \begin{macrocode}
\declare@shorthand{usorbian}{"-}{\nobreak\-\bbl@allowhyphens}
+% \end{macrocode}
+% \changes{usorbian-1.0i}{2021/02/06}{Adapted some shorthands to changes in hyperref}
+% To avoid problems in bookmarks the shorthands should be hyperref aware.
+% \begin{macrocode}
+\providecommand\texorpdfstring[2]{#1}
\declare@shorthand{usorbian}{"|}{%
- \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
- \allowhyphens}{}}
+ \texorpdfstring{\textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+ \allowhyphens}{}}{}}
\declare@shorthand{usorbian}{""}{\hskip\z@skip}
% \end{macrocode}
%
@@ -356,7 +361,7 @@
% All that's left to do now is to define a couple of commands
% for reasons of compatibility with \file{german.sty}.
% \changes{usorbian-1.0g}{1998/06/07}{Now use \cs{shorthandon} and
-% \cs{shorthandoff}}
+% \cs{shorthandoff}}
% \begin{macrocode}
\def\mdqon{\shorthandon{"}}
\def\mdqoff{\shorthandoff{"}}
@@ -371,7 +376,7 @@
% at |\begin{document}| and resetting the category code of
% \texttt{@} to its original value.
% \changes{usorbian-1.0e}{1996/11/03}{Now use \cs{ldf@finish} to wrap
-% up}
+% up}
% \changes{usorbian-1.0j}{2007/10/19}{Make this work for more than one
% option name}
% \begin{macrocode}
diff --git a/macros/latex/contrib/babel-contrib/sorbian/usorbian.pdf b/macros/latex/contrib/babel-contrib/sorbian/usorbian.pdf
index d4848e69e5..edba5ff080 100644
--- a/macros/latex/contrib/babel-contrib/sorbian/usorbian.pdf
+++ b/macros/latex/contrib/babel-contrib/sorbian/usorbian.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/swedish/README.md b/macros/latex/contrib/babel-contrib/swedish/README.md
new file mode 100644
index 0000000000..484610b119
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/swedish/README.md
@@ -0,0 +1,16 @@
+# babel-danish – Babel contributed support for Danish
+
+Version: 2021-02-06 v2.3e
+
+This is the babel style for Finnish.
+
+**This package is NOT being actively maintained, but bugs might
+got fixed if you report them. If you want to take over maintenance
+of this language style, please contact me at
+http://www.texnia.com/contact.html .**
+
+## Copyright (C)
+* 1989–2005 Johannes Braams, Sten Hellman
+
+## License
+LATEX Project Public License, version 1.3 or later.
diff --git a/macros/latex/contrib/babel-contrib/swedish/swedish.dtx b/macros/latex/contrib/babel-contrib/swedish/swedish.dtx
index 6beb68787b..67b6b049d4 100644
--- a/macros/latex/contrib/babel-contrib/swedish/swedish.dtx
+++ b/macros/latex/contrib/babel-contrib/swedish/swedish.dtx
@@ -2,10 +2,10 @@
%
% Copyright 1989-2005 Johannes L. Braams and any individual authors
% listed elsewhere in this file. All rights reserved.
-%
+%
% This file is part of the Babel system.
% --------------------------------------
-%
+%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -13,20 +13,19 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
+%
% The Current Maintainer of this work is Johannes Braams.
-%
+%
% The list of all files belonging to the Babel system is
% given in the file `manifest.bbl. See also `legal.bbl' for additional
% information.
-%
+%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
% \fi
-% \CheckSum{272}
% \iffalse
% Tell the \LaTeX\ system who we are and write an entry on the
% transcript.
@@ -36,7 +35,7 @@
%<code>\ProvidesLanguage{swedish}
%\fi
%\ProvidesFile{swedish.dtx}
- [2005/03/31 v2.3d Swedish support from the babel system]
+ [2021/02/06 v2.3e Swedish support from the babel system]
%\iffalse
%% File `swedish.dtx'
%% Babel package for LaTeX version 2e
@@ -50,7 +49,7 @@
% code for the Swedish language definition file. A contribution
% was made by Sten Hellman HELLMAN@CERNVM.CERN.CH
%
-% Further enhancements for version 2.0 were provided by
+% Further enhancements for version 2.0 were provided by
% Erik "Osthols <erik\_osthols@yahoo.com>
%<*filedriver>
\documentclass{ltxdoc}
@@ -105,7 +104,7 @@
% should be hyphenated as \texttt{straff-f{\aa}nge}.
% This is also implemented for b, d, f, g, l, m, n,
% p, r, s, and t. \\
-% \verb="|= & disable ligature at this position. This should be
+% \verb="|= & disable ligature at this position. This should be
% used for compound words, such as
% ``\texttt{stra|"|ffinr\"attning}'',
% which should not have the ligature ``ffi''. \\
@@ -141,7 +140,7 @@
% loaded more than once, checking the category code of the
% \texttt{@} sign, etc.
% \changes{swedish-2.1}{1996/11/03}{Now use \cs{LdfInit} to perform
-% initial checks}
+% initial checks}
% \begin{macrocode}
%<*code>
\LdfInit{swedish}\captionsswedish
@@ -215,7 +214,7 @@
\def\alsoname{se \"aven}%
% \end{macrocode}
% \changes{swedish-1.3g}{1995/11/03}{Replaced `Proof' by its
-% translation}
+% translation}
% \changes{swedish-2.3b}{2000/09/26}{Added \cs{glossaryname}}
% \changes{swedish-2.3c}{2001/03/12}{Provided translation for
% Glossary}
@@ -296,7 +295,7 @@
% For Swedish the \texttt{"} character is made active. This is done
% once, later on its definition may vary.
% \changes{swedish-2.0}{1996/01/24}{Added active double quote
-% character}
+% character}
%
% \begin{macrocode}
\initiate@active@char{"}
@@ -386,12 +385,17 @@
% \texttt{"\protect\indexeqs}, \cs{-} and \texttt{"~}}
% \begin{macrocode}
\declare@shorthand{swedish}{"-}{\nobreak-\bbl@allowhyphens}
+% \end{macrocode}
+% \changes{swedish-2.3e}{2021/02/06}{Adapted some shorthands to changes in hyperref}
+% To avoid problems in bookmarks some shorthands should be hyperref aware.
+% \begin{macrocode}
+\providecommand\texorpdfstring[2]{#1}
\declare@shorthand{swedish}{"|}{%
- \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
- \bbl@allowhyphens}{}}
-\declare@shorthand{swedish}{""}{\hskip\z@skip}
+ \texorpdfstring{\textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+ \bbl@allowhyphens}{}}{}}
\declare@shorthand{swedish}{"~}{%
- \textormath{\leavevmode\hbox{-}\bbl@allowhyphens}{-}}
+ \texorpdfstring{\textormath{\leavevmode\hbox{-}\bbl@allowhyphens}{-}}{-}}
+\declare@shorthand{swedish}{""}{\hskip\z@skip}
\declare@shorthand{swedish}{"=}{\hbox{-}\allowhyphens}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/babel-contrib/swedish/swedish.pdf b/macros/latex/contrib/babel-contrib/swedish/swedish.pdf
index ef105bc33b..acdbe438ec 100644
--- a/macros/latex/contrib/babel-contrib/swedish/swedish.pdf
+++ b/macros/latex/contrib/babel-contrib/swedish/swedish.pdf
Binary files differ
diff --git a/macros/latex/contrib/cmap/README b/macros/latex/contrib/cmap/README
index 3a012e5b34..54009c7469 100644
--- a/macros/latex/contrib/cmap/README
+++ b/macros/latex/contrib/cmap/README
@@ -92,3 +92,6 @@ History:
change was inspired by discussion with Alexey Kuligin and Alexey Vikhlinin.
2021/01/29 version 1.0i:
suppress cmaps automatically generated by pdfTeX for all handled fonts
+2021/02/06 version 1.0j:
+ Don't fail if \pdfnobuiltintounicode primitive is missing
+ Add support for LuaTeX without luatex85
diff --git a/macros/latex/contrib/cmap/cmap.sty b/macros/latex/contrib/cmap/cmap.sty
index f77cc99d61..104468d84f 100644
--- a/macros/latex/contrib/cmap/cmap.sty
+++ b/macros/latex/contrib/cmap/cmap.sty
@@ -11,7 +11,7 @@
% Werner Lemberg
% Oleg Katsitadze
-\ProvidesPackage{cmap}[2021/01/29 v1.0i CMap support: searchable PDF]
+\ProvidesPackage{cmap}[2021/02/06 v1.0j CMap support: searchable PDF]
\DeclareOption{resetfonts}{%
\@for\reserved@a:=%
@@ -26,12 +26,27 @@
\ProcessOptions
\@ifundefined{pdffontattr}{%
-% The cmap package can be used only with pdflatex,
+ \@ifundefined{pdfextension}{%
+% The cmap package can be used only with pdflatex and lualatex,
% but not with ordinary latex
- \PackageWarningNoLine{cmap}{pdftex not detected - exiting}%
- \endinput
-}\relax
-\ifnum\pdfoutput<1
+ \PackageWarningNoLine{cmap}{pdftex not detected - exiting}%
+ \endinput
+ }{%
+ \protected\def\cmap@pdfobj{\pdfextension obj }%
+ \protected\def\cmap@fontattr{\pdfextension fontattr }%
+ \def\cmap@lastobj{\number\pdffeedback lastobj \space 0 R}%
+ }%
+}{%
+ \let\cmap@pdfobj\pdfobj
+ \let\cmap@fontattr\pdffontattr
+ \def\cmap@lastobj{\number\pdflastobj\space 0 R}%
+}
+
+\@ifundefined{pdfoutput}{%
+ \ifnum\outputmode<1
+}{%
+ \ifnum\pdfoutput<1
+}%
\PackageWarningNoLine{cmap}{pdftex in DVI mode - exiting}
\expandafter\endinput
\fi
@@ -45,6 +60,17 @@
%\PackageWarningNoLine{cmap}{babel already loaded - some fonts may be unprocessed}%
%}\relax
+\@ifundefined{pdfnobuiltintounicode}{%
+ \@ifundefined{pdfgentounicode}\relax{%
+ \pdfgentounicode=0
+ }%
+ \protected\def\cmap@nobuiltintounicode{%
+ \expandafter\@gobble\the
+ }%
+}{%
+ \let\cmap@nobuiltintounicode\pdfnobuiltintounicode
+}
+
\def\extract@font{%
\get@external@font
\global\expandafter\font\font@name\external@font\relax
@@ -58,12 +84,12 @@
\edef\reserved@f{\lowercase{\def\noexpand\reserved@f{\cmap@f@encoding.cmap}}}%
\reserved@f
\IfFileExists{\reserved@f}{%
- \immediate\pdfobj stream
+ \immediate\cmap@pdfobj stream
%attr {/Type /CIDFile}
file {\reserved@f}%
\expandafter\xdef\csname cmap@set@\cmap@f@encoding\endcsname{%
- \pdfnobuiltintounicode\noexpand\font@name
- \noexpand\expandafter\pdffontattr\noexpand\font@name{/ToUnicode \the\pdflastobj\space 0 R}}%
+ \cmap@nobuiltintounicode\noexpand\font@name
+ \noexpand\expandafter\cmap@fontattr\noexpand\font@name{/ToUnicode \cmap@lastobj}}%
}{%
\global\expandafter\let\csname cmap@set@\cmap@f@encoding\endcsname\empty
}%
diff --git a/macros/latex/contrib/europecv/CHANGELOG.rst b/macros/latex/contrib/europecv/CHANGELOG.rst
index 528e30b75e..addeeb85ef 100644
--- a/macros/latex/contrib/europecv/CHANGELOG.rst
+++ b/macros/latex/contrib/europecv/CHANGELOG.rst
@@ -2,6 +2,12 @@
Changelog for package europecv
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+2021.02.05
+----------
+* Improved Portuguese translation (#24)
+* Update package documentation
+* Contributors: Nuno Fachada, Giuseppe Silano
+
2020.01.03
-----------
* Added example with the geometry package (#20)
diff --git a/macros/latex/contrib/europecv/README.md b/macros/latex/contrib/europecv/README.md
index 971cba1738..f399bddf7d 100644
--- a/macros/latex/contrib/europecv/README.md
+++ b/macros/latex/contrib/europecv/README.md
@@ -1,6 +1,7 @@
-[![All Contributors](https://img.shields.io/badge/all_contributors-21-orange.svg?style=flat-square)](#contributors)
+[![All Contributors](https://img.shields.io/badge/all_contributors-23-orange.svg?style=flat-square)](#contributors)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![first-timers-only](https://img.shields.io/badge/first--timers--only-friendly-blue.svg?style=flat-square)](https://www.firsttimersonly.com/)
+[![License](https://svgshare.com/i/KPL.svg)](https://spdx.org/licenses/LPPL-1.3c.html)
# EuropeCV
TeX code associated to the EuropeCV [CTAN repository](https://ctan.org/pkg/europecv).
diff --git a/macros/latex/contrib/europecv/ecvpt.def b/macros/latex/contrib/europecv/ecvpt.def
index 786d7f9054..79a5533b1a 100644
--- a/macros/latex/contrib/europecv/ecvpt.def
+++ b/macros/latex/contrib/europecv/ecvpt.def
@@ -1,6 +1,6 @@
%!TEX encoding = UTF-8 Unicode
%
-% Translation completed on 01/03/2020
+% Translation completed on 04/02/2021
\ProvidesFile{ecvpt.def}[europecv Portuguese definitions]
% Personal information
\def\ecv@infosectionkey{\ecv@utf{Informa\c{c}\~ao pessoal}}
@@ -29,7 +29,7 @@
\def\ecv@assesskey{\ecv@utf{Auto-avalia\c{c}\~ao}}
\def\ecv@levelkey{\ecv@utf{N\'ivel europeu}}
\def\ecv@understandkey{\ecv@utf{Compreens\~ao}}
-\def\ecv@speakkey{\ecv@utf{Conversas\~ao}}
+\def\ecv@speakkey{\ecv@utf{Conversa\c{c}\~ao}}
\def\ecv@writekey{\ecv@utf{Escrita}}
\def\ecv@listenkey{\ecv@utf{Compreens\~ao oral}}
\def\ecv@readkey{\ecv@utf{Compreens\~ao escrita}}
diff --git a/macros/latex/contrib/europecv/europecv.pdf b/macros/latex/contrib/europecv/europecv.pdf
index d2ee875423..2c800f564e 100644
--- a/macros/latex/contrib/europecv/europecv.pdf
+++ b/macros/latex/contrib/europecv/europecv.pdf
Binary files differ
diff --git a/macros/latex/contrib/europecv/europecv.tex b/macros/latex/contrib/europecv/europecv.tex
index 0c15c3d57e..8d7c9e53b2 100644
--- a/macros/latex/contrib/europecv/europecv.tex
+++ b/macros/latex/contrib/europecv/europecv.tex
@@ -47,11 +47,11 @@
University of Udine, Italy\\
\\
Giuseppe Silano\\
- \href{mailto:giuseppe.silano@unisannio.it}{\texttt{giuseppe.silano@unisannio.it}}\\
- Department of Engineering\\
- University of Sannio in Benevento, Italy\\
+ \href{mailto:giuseppe.silano@fel.cvut.cz}{\texttt{giuseppe.silano@fel.cvut.cz}}\\
+ Faculty of Electrical Engineering\\
+ Czech Technical University in Prague, Czech Republic\\
}
-\date{January 03, 2020}
+\date{February 6, 2021}
\begin{document}
@@ -735,7 +735,9 @@ Europass logo. Thanks to \textbf{Roman Bertle} for suggesting to redefine item m
Gardstr\"{o}m} for fixing the German (2018.10.12) and Swedish (2019.01.25) translation,
respectively. Thanks to \textbf{JPSPLeite} for improving the Portuguese translation. Thanks to
\textbf{Marc-Andre Hermanns} for adding the \texttt{nobranding} feature. Thanks to \textbf{Antonios
-Tsolomitis} for his suggestions into the 2020.01.06 package release.
+Tsolomitis} for his suggestions into the 2020.01.06 package release. Thanks to \textbf{
+Davide Peressoni} for the biber support (2020.10.26 package release). Thanks to \textbf{Nuno
+Fachada} for his help with the Portuguese translation (2021.02.05 package release).
\vspace{0.5cm}
\textbf{\large{8\hspace{0.5cm}Disclaimer}}
diff --git a/macros/latex/contrib/europecv/examples/europass-cv.pdf b/macros/latex/contrib/europecv/examples/europass-cv.pdf
index 3f3d0fed2a..1ff01923fc 100644
--- a/macros/latex/contrib/europecv/examples/europass-cv.pdf
+++ b/macros/latex/contrib/europecv/examples/europass-cv.pdf
Binary files differ
diff --git a/macros/latex/contrib/europecv/examples/europasslogo-eps-converted-to.pdf b/macros/latex/contrib/europecv/examples/europasslogo-eps-converted-to.pdf
index 49098052be..d80538658b 100644
--- a/macros/latex/contrib/europecv/examples/europasslogo-eps-converted-to.pdf
+++ b/macros/latex/contrib/europecv/examples/europasslogo-eps-converted-to.pdf
Binary files differ
diff --git a/macros/latex/contrib/europecv/templates/cv_template_academic_en.pdf b/macros/latex/contrib/europecv/templates/cv_template_academic_en.pdf
index dff20b5bb1..3d6338d908 100644
--- a/macros/latex/contrib/europecv/templates/cv_template_academic_en.pdf
+++ b/macros/latex/contrib/europecv/templates/cv_template_academic_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/europecv/templates/cv_template_en.pdf b/macros/latex/contrib/europecv/templates/cv_template_en.pdf
index 4384340881..89e03bb4e7 100644
--- a/macros/latex/contrib/europecv/templates/cv_template_en.pdf
+++ b/macros/latex/contrib/europecv/templates/cv_template_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/fontsize/fontsize.dtx b/macros/latex/contrib/fontsize/fontsize.dtx
index 3d3d31f92f..983eb46521 100644
--- a/macros/latex/contrib/fontsize/fontsize.dtx
+++ b/macros/latex/contrib/fontsize/fontsize.dtx
@@ -56,7 +56,7 @@ This work has the LPPL maintenance status "author-maintained".
%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<package>\ProvidesPackage{fontsize}
%<*package>
- [2021/01/31 v0.5 'fontsize' package. Set main font sizes (Ivan Valbusa)]
+ [2021/02/06 v0.6 'fontsize' package. Set main font sizes (Ivan Valbusa)]
%</package>
%<*driver>
\documentclass[12pt]{ltxdoc}
@@ -86,6 +86,7 @@ This work has the LPPL maintenance status "author-maintained".
\let\cs\relax
\let\cmd\relax
\usepackage{ltxdockit}
+\usepackage{kantlipsum}
%--------------------------------------------------------
% FONTS
%--------------------------------------------------------
@@ -96,7 +97,6 @@ This work has the LPPL maintenance status "author-maintained".
\usepackage[cochineal,bigdelims,cmintegrals,vvarbb]{newtxmath}
\usepackage[cal=boondoxo]{mathalfa}
\usepackage{manfnt}
-\usepackage{lettrine}
%--------------------------------------------------------
% LAYOUT
%--------------------------------------------------------
@@ -199,7 +199,7 @@ This work has the LPPL maintenance status "author-maintained".
%</driver>
% \fi
%
-% \CheckSum{2372}
+% \CheckSum{2991}
%
% \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
@@ -218,7 +218,8 @@ This work has the LPPL maintenance status "author-maintained".
% Right brace \} Tilde \~}
%
%
-% \changes{v0.5}{2021/01/31}{New font sizing commands \cmd{\meta{cmdname}r}, \cmd{\meta{cmdname}rr}, \cmd{\meta{cmdname}rrr}. New command \cmd{printsamples}. Updated documentation.}
+% \changes{v0.6}{2021/02/06}{New font sizing commands from \cmd{small} down. Updated documentation.}
+% \changes{v0.5}{2021/01/31}{New font sizing commands from \cmd{normalsize} up. New command \cmd{printsamples}. Updated documentation.}
% \changes{v0.4}{2021/01/25}{Maintenance release. Updated documentation.}
% \changes{v0.3}{2020/12/19}{Added definitions of some lengths omitted from KOMA-script files: \cmd{smallskiamount}, \cmd{medskiamount}, \cmd{bigskiamount}. Redefined \cmd{parindent} and \cmd{headheight}.}
% \changes{v0.2}{2020/05/24}{Updated documentation and code comments.}
@@ -310,7 +311,8 @@ This work has the LPPL maintenance status "author-maintained".
%
% \begin{abstract}
% \noindent The \sty{fontsize} package allows you to set arbitrary sizes
-% for the main font of the document and to adjust the line spacing accordingly. You can also generate your own \file{.clo} file for better tuning.
+% for the main font of the document and to adjust the line spacing accordingly.
+% It also provides new font sizing commands and lets you generate your own \file{.clo} file for better tuning.
% \end{abstract}
%
% \tableofcontents
@@ -327,10 +329,10 @@ This work has the LPPL maintenance status "author-maintained".
% \section*{Caveat}
%^^A---------------------------------------------------------------------
%
-% Although effective with any value for the \meta{fontsize} (as long as the font
+% Although effective with any value of the font size (as long as the font
% is scalable), the package is meant for small font size changes.
% For truly optimal results you should (re)define your own \file{.clo} file.
-% Indeed note that the file generated with \cmd{generateclofile}, as well as the macros redefined via \cmd{changefontsize}, are a subset of the standard \file{.clo} files.
+% In fact note that the file generated with \cmd{generateclofile}, as well as the macros redefined via \cmd{changefontsize}, are a subset of the standard \file{.clo} files.
%^^A---------------------------------------------------------------------
% \section{Usage}
%^^A---------------------------------------------------------------------
@@ -357,11 +359,11 @@ This work has the LPPL maintenance status "author-maintained".
% \cmd{small}, ecc.) and line spacings are set proportionally.
% You can use any unit recognized by \TeX\ and you can
% omit the unit as well (in which case it defaults to \texttt{pt}).
-% If a file named \file{\meta{name}\meta{fontsize}.clo} exists it is used to setup
+% If a file named \file{\meta{name}\meta{fontsize}.clo} exists, it is used to setup
% the font sizes. This file can be generated through the \cmd{generateclofile}
% command (see below).
%
-% \optitem[custom]{cloname}{\meta{name}}
+% \optitem[fontsize]{cloname}{\meta{name}}
%
% Sets to \meta{name} the name prefix of the \file{.clo} file generated
% by \cmd{generateclofile} (see below).
@@ -379,7 +381,7 @@ This work has the LPPL maintenance status "author-maintained".
% Sets the normal size to \meta{fontsize} and the normal line spacing to
% \meta{baselineskip}. The other sizes (\cmd{tiny}, \cmd{scriptsize},
% \cmd{small}, ecc.) and line spacings are set proportionally.
-% If the first optional argument is omitted the command has the same effect
+% If the first optional argument is omitted, the command has the same effect
% of the \opt{fontsize} option. You can use any unit recognized by \TeX\ and
% you can omit the unit as well (in which case it defaults to \texttt{pt}).
% For example:
@@ -398,17 +400,17 @@ This work has the LPPL maintenance status "author-maintained".
% You can use any unit recognized
% by \TeX\ and you can omit the unit as well (in which case it defaults
% to \texttt{pt}).
-% If \opt{cloname=\meta{name}} \textit{and} \opt{fontsize=\meta{fontsize}}
+% If \opt{cloname=\meta{name}} \textit{and} \opt{fontsize=\meta{fontsize}},
% the generated file will be automatically used to setup the main sizes.
%
% \alert \emph{In fact the \file{.clo} file is only needed if you intend to modify it.
% In this case remember to comment the command, otherwise the edited
-% file will be overwrittern}
+% file will be overwrittern.}
%
%\begin{latexcode}
%\begin{verbatim}
-%\usepackage[cloname=fs,fontsize=11.5pt]{fontsize} % loads fs11.5pt.clo
-% \generateclofile{fs}[13.5pt]{11.5pt} % creates fs11.5pt.clo
+%\usepackage[cloname=fs,fontsize=11.5]{fontsize} % loads fs11.5.clo
+% \generateclofile{fs}[13.5]{11.5} % creates fs11.5.clo
%\end{verbatim}
%\end{latexcode}
%
@@ -416,7 +418,7 @@ This work has the LPPL maintenance status "author-maintained".
%
% A command thought to test the \sty{fontsize} settings.
% It prints a text sample for every size given in the third optional argument.
-% If this argument is omitted it prints a sample for each available size.
+% If this argument is omitted, it prints a sample for each available size.
%
%\begin{latexcode}
%\begin{verbatim}
@@ -427,26 +429,77 @@ This work has the LPPL maintenance status "author-maintained".
%
% \end{ltxsyntax}
%^^A---------------------------------------------------------------------
-% \section{New sizing commands}\label{sec:sizingcmd}
+% \section{New font sizing commands}\label{sec:sizingcmd}
%^^A--------------------------------------------------------------------
-% The packages provides three variants for each size bigger then \cmd{normalsize}:
+% The package provides three additional font sizing commands for each standard size:
%
-%\newcolumntype{L}{>{\color{sufred}}l}
-%\begin{tabular}{@{}LLLLLL}
-% \cmd{normalsizer} & \cmd{larger} & \cmd{Larger} & \cmd{LARGEr}& \cmd{huger}& \cmd{Huger}\\
-% \cmd{normalsizerr} & \cmd{largerr} & \cmd{Largerr} & \cmd{LARGErr}& \cmd{hugerr}& \cmd{Hugerr}\\
-% \cmd{normalsizerrr} & \cmd{largerrr} & \cmd{Largerr} & \cmd{LARGErrr}& \cmd{hugerrr}& \cmd{Hugerrr}\\
+%\def\fshw{Lipsum}
+%\newcommand{\tcmd}[1]{\textcolor{sufred}{\cmd{#1}}}
+%\begin{center}
+%\begin{tabular}{@{}llll}
+%\cmd{tiny} & \tiny \fshw &\cmd{large} & \large \fshw \\
+%\tcmd{tinyr} & \tinyr \fshw &\tcmd{larger} & \larger \fshw \\
+%\tcmd{tinyrr} & \tinyrr \fshw &\tcmd{largerr} & \largerr \fshw \\
+%\tcmd{tinyrrr} & \tinyrrr \fshw &\tcmd{largerrr} & \largerrr \fshw \\
+%\cmd{scriptsize} & \scriptsize \fshw &\cmd{Large} & \Large \fshw \\
+%\tcmd{scriptsizer} & \scriptsizer \fshw &\tcmd{Larger} & \Larger \fshw \\
+%\tcmd{scriptsizerr} & \scriptsizerr \fshw &\tcmd{Largerr} & \Largerr \fshw \\
+%\tcmd{scriptsizerrr} & \scriptsizerrr \fshw &\tcmd{Largerrr} & \Largerrr \fshw \\
+%\cmd{footnotesize} & \footnotesize \fshw &\cmd{LARGE} & \LARGE \fshw \\
+%\tcmd{footnotesizer} & \footnotesizer \fshw &\tcmd{LARGEr} & \LARGEr \fshw \\
+%\tcmd{footnotesizerr} & \footnotesizerr \fshw &\tcmd{LARGErr} & \LARGErr \fshw \\
+%\tcmd{footnotesizerrr} & \footnotesizerrr \fshw &\tcmd{LARGErrr} & \LARGErrr \fshw \\
+%\cmd{small} & \small \fshw &\cmd{huge} & \huge \fshw \\
+%\tcmd{smallr} & \smallr \fshw &\tcmd{huger} & \huger \fshw \\
+%\tcmd{smallrr} & \smallrr \fshw &\tcmd{huger} & \hugerr \fshw \\
+%\tcmd{smallrrr} & \smallrrr \fshw &\tcmd{huger} & \hugerrr \fshw \\
+%\cmd{normalsize} & \normalsize \fshw &\cmd{Huge} & \Huge \fshw \\
+%\tcmd{normalsizer} & \normalsizer \fshw &\tcmd{Huger} & \Huger \fshw \\
+%\tcmd{normalsizerr} & \normalsizerr \fshw &\tcmd{Hugerr} & \Hugerr \fshw \\
+%\tcmd{normalsizerrr} & \normalsizerrr \fshw &\tcmd{Hugerr} & \Hugerrr \fshw
%\end{tabular}
+%\end{center}
+%
+% \begin{normalsize}
+%\alert If you want these commands to work as expected, the font must be
+% smoothly scalable. This is the case of many Type 1 and Open Type fonts.
+% Anyway, if the font has optical sizes, unusual things can happen:
+% some larger sizes may appear smaller. For example, with the Latin Modern 12\,pt typeface a similar situation can be encountered:\medskip
+%
+% \begingroup
+% \centering
+% \fontfamily{lmr}\selectfont
+%\begin{minipage}[b]{8cm}
+% \begin{tabular}[b]{lll}
+% \tcmd{largerr} & \texttlf{15.84\,pt} &\largerr Hello world \\
+% \tcmd{larger} & \texttlf{15.12\,pt} &\larger Hello world \\
+% \tcmd{large} & \texttlf{14.40\,pt} &\large Hello world
+% \end{tabular}
+%\end{minipage}
+% \tikz[overlay]{\draw[->,draw=red,very thick] (0.17,1.25) -- (3.7,1.4);}
+% \scalebox{3}{\large H} \scalebox{3}{\larger H} \scalebox{3}{\largerr H}
+%
+% \endgroup
+% \end{normalsize}
+% \medskip
+%
+% In fact the font used for the \cmd{larger} `Hello world' is bigger than
+% that used for the \cmd{large} one. This optical effect is due to the minor
+% thickness of the stems, which makes the words appear shorter and clearer,
+% but not less high (as you can see in the figure on the
+% right which shows the letter H appropriately scaled to see the
+% differences better).
+%
%^^A---------------------------------------------------------------------
% \section{Some text samples}\label{sec:example}
%
%^^A--------------------------------------------------------------------
%
-% Below you can see some text samples scaled proportionally
-% to match the different values of the selected normal size and line spacing.
+%^^A Below you can see some text samples scaled proportionally
+%^^A to match the different values of the selected normal size and line spacing.
%
-% \printsamples{13pt}{11pt}[normalsizer,normalsizerr,normalsizerrr]
-% \printsamples{13.5pt}{12pt}[large,larger]
+% \printsamples{13pt}{11pt}[normalsizerr,normalsizerrr,large]
+% \printsamples{13.4pt}{11.7pt}[normalsizerr,normalsizerrr]
%
% \nocite{xkeyval,etoolbox}
%
@@ -463,25 +516,21 @@ This work has the LPPL maintenance status "author-maintained".
%\alert \textcolor{DarkBlue}{The parts added to the basic structure of \file{scrextend} and \file{scrfontsizes} are highlighted in blue.}
%
%\noindent All the options of the package are defined via \sty{xkeyval}, while \sty{etoolbox}
-% is required to execute \cmd{AtEndOfPackage}. It is probably not necessary but for the moment I prefer to take advantage of it.
-%
+% is required to execute \cmd{AtEndOfPackage}. It is probably not necessary
+% but for the moment I prefer to take advantage of it. Only a new package
+% option called \opt{cloname} is defined.
% \baddition
% \begin{macrocode}
\@ifpackageloaded{xkeyval}{}{\RequirePackage{xkeyval}}
\@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}}
-% \end{macrocode}
-% \eaddition
-% Here we define the only new package option \opt{cloname}:
-% \baddition
-% \begin{macrocode}
-\DeclareOptionX{cloname}[custom]{\def\@fontsizefilebase{#1}}
+\DeclareOptionX{cloname}[fontsize]{\def\@fontsizefilebase{#1}}
% \end{macrocode}
% \eaddition
%
% \paragraph{Excerpt from \file{scrextend.sty}}
%
% Here the \sty{scrextend} code begins. Only a few names have been changed.
-% The value of \cmd{|@|fontsizefilebase} is set to \texttt{custom} instead of \texttt{scrsize}.
+% The value of \cmd{|@|fontsizefilebase} is set to \texttt{fontsize} instead of \texttt{scrsize}.
% \begin{macrocode}
\DeclareOptionX{fontsize}[10]{%
\expandafter\@defaultunits\expandafter\@tempdima#1 pt\relax\@nnil
@@ -653,34 +702,161 @@ This work has the LPPL maintenance status "author-maintained".
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% Here we define some new font sizing commands. There are three variants
-% for each standard command starting from \cmd{normalsize} to \cmd{Huge}:
+% We will now define some new font sizing commands. There are three variants
+% for each standard command:
% \cmd{\meta{cmd}r} > \cmd{\meta{cmd}rr} > \cmd{\meta{cmd}rrr}.
% Every level is scaled proportionally in order to preserve the default
% value of the corresponding standard command.
% \baddition
-% \paragraph{\color{black}Definition of \cmd{normalsizer}, \cmd{normalsizerr}, \cmd{normalsizerrr}. Scale factor: 0.05.}
+% \begin{macrocode}
+ \def\fontsize@pre{%
+ \ctm@setlength{\abovedisplayskip}%
+ {.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}%
+ \ctm@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}%
+ \ctm@setlength{\belowdisplayshortskip}%
+ {.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}%
+ \setlength{\belowdisplayskip}{\abovedisplayskip}%
+ }
+ \def\fontsize@app{%
+ \abovedisplayskip \the\abovedisplayskip
+ \abovedisplayshortskip \the\abovedisplayshortskip
+ \belowdisplayskip \the\belowdisplayskip
+ \belowdisplayshortskip \the\belowdisplayshortskip
+ }
+% \end{macrocode}
+% {\color{black}Definition of \cmd{smallr}, \cmd{smallrr}, \cmd{smallrrr}. Scale factor: 0,021875.}
+% \begin{macrocode}
+ \setlength{\@tempdima}{0.934375\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \fontsize@pre
+ \edef\smallr{%
+ \noexpand\@setfontsize\noexpand\smallr
+ {\the\@tempdima}{\the\@tempdimb}%
+ \fontsize@app
+ \let\noexpand\@listi\noexpand\@listi@small
+ }%
+ \setlength{\@tempdima}{0.95625\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \fontsize@pre
+ \edef\smallrr{%
+ \noexpand\@setfontsize\noexpand\smallrr
+ {\the\@tempdima}{\the\@tempdimb}%
+ \fontsize@app
+ \let\noexpand\@listi\noexpand\@listi@small
+ }%
+ \setlength{\@tempdima}{0.978125\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \fontsize@pre
+ \edef\smallrrr{%
+ \noexpand\@setfontsize\noexpand\smallrrr
+ {\the\@tempdima}{\the\@tempdimb}%
+ \fontsize@app
+ \let\noexpand\@listi\noexpand\@listi@small
+ }%
+% \end{macrocode}
+% {\color{black}Definition of \cmd{footnotesizer}, \cmd{footnotesizerr}, \cmd{footnotesizerrr}. Scale factor: 0.01979.}
+% \begin{macrocode}
+ \setlength{\@tempdima}{0.85313\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \fontsize@pre
+ \edef\footnotesizer{%
+ \noexpand\@setfontsize\noexpand\footnotesizer
+ {\the\@tempdima}{\the\@tempdimb}%
+ \fontsize@app
+ \let\noexpand\@listi\noexpand\@listi@footnotesize
+ }%
+ \setlength{\@tempdima}{0.87292\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \fontsize@pre
+ \edef\footnotesizerr{%
+ \noexpand\@setfontsize\noexpand\footnotesizerr
+ {\the\@tempdima}{\the\@tempdimb}%
+ \fontsize@app
+ \let\noexpand\@listi\noexpand\@listi@footnotesize
+ }%
+ \setlength{\@tempdima}{0.89271\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \fontsize@pre
+ \edef\footnotesizerrr{%
+ \noexpand\@setfontsize\noexpand\footnotesizerrr
+ {\the\@tempdima}{\the\@tempdimb}%
+ \fontsize@app
+ \let\noexpand\@listi\noexpand\@listi@footnotesize
+ }%
+% \end{macrocode}
+% {\color{black}Definition of \cmd{scriptsizer}, \cmd{scriptsizerr}, \cmd{scriptsizerrr}. Scale factor: 0,0416675.}
+% \begin{macrocode}
+ \setlength{\@tempdima}{0.7083375\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\scriptsizer{%
+ \noexpand\@setfontsize\noexpand\scriptsizer
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+ \setlength{\@tempdima}{0.750005\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\scriptsizerr{%
+ \noexpand\@setfontsize\noexpand\scriptsizerr
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+ \setlength{\@tempdima}{0.7916725\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\scriptsizerrr{%
+ \noexpand\@setfontsize\noexpand\scriptsizerrr
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+% \end{macrocode}
+% {\color{black}Definition of \cmd{tinyr}, \cmd{tinyrr}, \cmd{tinyrrr}. Scale factor: 0.0416675.}
+% \begin{macrocode}
+ \setlength{\@tempdima}{0.5416675\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\tinyr{%
+ \noexpand\@setfontsize\noexpand\tinyr
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+ \setlength{\@tempdima}{0.583335\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\tinyrr{%
+ \noexpand\@setfontsize\noexpand\tinyrr
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+ \setlength{\@tempdima}{0.6250025\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\tinyrrr{%
+ \noexpand\@setfontsize\noexpand\tinyrrr
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+% \end{macrocode}
+% {\color{black}Definition of \cmd{normalsizer}, \cmd{normalsizerr}, \cmd{normalsizerrr}. Scale factor: 0.05.}
% \begin{macrocode}
\setlength{\@tempdima}{1.05\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \fontsize@pre
\edef\normalsizer{%
\noexpand\@setfontsize\noexpand\normalsizer
{\the\@tempdima}{\the\@tempdimb}%
+ \fontsize@app
+ \let\noexpand\@listi\noexpand\@listI
}%
\setlength{\@tempdima}{1.1\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \fontsize@pre
\edef\normalsizerr{%
\noexpand\@setfontsize\noexpand\normalsizerr
{\the\@tempdima}{\the\@tempdimb}%
+ \fontsize@app
+ \let\noexpand\@listi\noexpand\@listI
}%
\setlength{\@tempdima}{1.15\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
\edef\normalsizerrr{%
+ \fontsize@pre
\noexpand\@setfontsize\noexpand\normalsizerrr
{\the\@tempdima}{\the\@tempdimb}%
+ \fontsize@app
+ \let\noexpand\@listi\noexpand\@listI
}%
% \end{macrocode}
-% \paragraph{\color{black}Definition of \cmd{larger}, \cmd{largerr}, \cmd{largerrr}. Scale factor: 0,06.}
+% {\color{black}Definition of \cmd{larger}, \cmd{largerr}, \cmd{largerrr}. Scale factor: 0,06.}
% \begin{macrocode}
\setlength{\@tempdima}{1.26\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -701,7 +877,7 @@ This work has the LPPL maintenance status "author-maintained".
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% \paragraph{\color{black}Definition of \cmd{Larger}, \cmd{Largerr}, \cmd{Largerrr}. Scale factor: 0,072.}
+% {\color{black}Definition of \cmd{Larger}, \cmd{Largerr}, \cmd{Largerrr}. Scale factor: 0,072.}
% \begin{macrocode}
\setlength{\@tempdima}{1.512\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -722,7 +898,7 @@ This work has the LPPL maintenance status "author-maintained".
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% \paragraph{\color{black}Definition of \cmd{LARGEr}, \cmd{LARGErr}, \cmd{LARGErrr}. Scale factor: 0,0865.}
+% {\color{black}Definition of \cmd{LARGEr}, \cmd{LARGErr}, \cmd{LARGErrr}. Scale factor: 0,0865.}
% \begin{macrocode}
\setlength{\@tempdima}{1.8145\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -743,7 +919,7 @@ This work has the LPPL maintenance status "author-maintained".
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% \paragraph{\color{black}Definition of \cmd{huger}, \cmd{hugerr}, \cmd{hugerrr}. Scale factor: 0,1035.}
+% {\color{black}Definition of \cmd{huger}, \cmd{hugerr}, \cmd{hugerrr}. Scale factor: 0,1035.}
% \begin{macrocode}
\setlength{\@tempdima}{2.1775\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -764,7 +940,7 @@ This work has the LPPL maintenance status "author-maintained".
{\the\@tempdima}{\the\@tempdimb}%
}%
% \end{macrocode}
-% \paragraph{\color{black}Definition of \cmd{Huger}, \cmd{Hugerr}, \cmd{Hugerrr}. Scale factor: 0.123.}
+% {\color{black}Definition of \cmd{Huger}, \cmd{Hugerr}, \cmd{Hugerrr}. Scale factor: 0.123.}
% \begin{macrocode}
\setlength{\@tempdima}{2.611\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
@@ -789,28 +965,27 @@ This work has the LPPL maintenance status "author-maintained".
% \begin{macrocode}
\normalsize%
% \end{macrocode}
-% The KOMA files do not define \cmd{parindent} and other lengths related to the page dimensions (\cmd{textheight}, \cmd{headheight}, \cmd{headsep}, etc.) Anyway I think that some of these lengths are strictly linked to the font rather than to the page and text dimensions. Particularly \cmd{headheight}, whose value may cause a well known warning if \sty{fancyhdr} is loaded. So we definte the following new
-% lengths:
+% The KOMA files do not define \cmd{parindent} and other lengths related to the page dimensions (\cmd{textheight}, \cmd{headheight}, \cmd{headsep}, etc.) Anyway, I think that some of these lengths are strictly linked to the font rather than to the dimensions of the page and the text, particularly \cmd{headheight}, whose value may cause a well known warning if \sty{fancyhdr} is loaded. So we define the following new lengths:
% \baddition
% \begin{macrocode}
-\setlength\parindent{\f@size pt}%
-\setlength\headheight{\dimexpr(\f@size pt+2pt)}%
+\setlength\parindent{\@tempdimb}%
+\setlength\headheight{\dimexpr(\@tempdimb+2pt)}%
% \end{macrocode}
% \eaddition
-% For these other lengths, all values are calculated proportionally to the main font. I took the \file{bk11.clo} file as a reference point. Note that the differences of these lengths in the files \file{bk10.clo} \file{bk11.clo} and \file{bk12.clo} only affect \cmd{headsep}, \cmd{topskip} and \cmd{footskip}, which are not redefined here.
+% For the following lengths, all values are calculated proportionally to the main font. I took the \file{bk11.clo} file as a reference point. Note that the differences of these lengths in the files \file{bk10.clo} \file{bk11.clo} and \file{bk12.clo} only affect \cmd{headsep}, \cmd{topskip} and \cmd{footskip}, which are not redefined here.
% \baddition
% \begin{macrocode}
-\setlength\smallskipamount{\dimexpr((\f@size pt+1pt)/4) \@plus 1\p@ \@minus 1\p@}%
-\setlength\medskipamount{\dimexpr((\f@size pt+1pt)/2) \@plus 2\p@ \@minus 2\p@}%
-\setlength\bigskipamount{\dimexpr(\f@size pt+1pt) \@plus 4\p@ \@minus 4\p@}%
+\setlength\smallskipamount{\dimexpr((\@tempdimb+1pt)/4) \@plus 1\p@ \@minus 1\p@}%
+\setlength\medskipamount{\dimexpr((\@tempdimb+1pt)/2) \@plus 2\p@ \@minus 2\p@}%
+\setlength\bigskipamount{\dimexpr(\@tempdimb+1pt) \@plus 4\p@ \@minus 4\p@}%
% \end{macrocode}
% \eaddition
% The following table shows the values of some specific lengths
-% defined by the pacakge, relative to some significant settings
-% of the main font and line spacing. The values are exressed in pt
+% defined by the package, in relation to some significant settings
+% of the main font and line spacing. The values are expressed in pt
% and rounded to the second decimal place.
%
-% \begin{small}
+% \begin{footnotesizer}
% \newcolumntype{Y}{@{}S[table-column-width=1.04cm]}
% \noindent\begin{tabular}{@{}m{3.7cm}@{\hskip2mm}YYYYYYYYYYY@{\hskip-2mm}}
% \toprule
@@ -823,7 +998,7 @@ This work has the LPPL maintenance status "author-maintained".
% \cmd{smallskipamount}\ \hfill$\pm$\SI{1}{pt} &2.75 &2.78 &2.8 &2.82 &2.85 &2.88 &2.9 &2.93 &2.95 &2.98 &3\\
% \bottomrule
% \end{tabular}
-% \end{small}
+% \end{footnotesizer}
% \begin{macrocode}
\setlength{\@tempdimb}{\f@baselineskip}%
\ctm@setlength{\parsep}%
@@ -955,7 +1130,7 @@ This work has the LPPL maintenance status "author-maintained".
%
% \paragraph{Excerpt from \file{scrfontsizes.sty}}
%
-% Here is a portion of the \sty{scrfontsizes} package. It simply provides the \cmd{generateclofile} command, without the KOMA-related definitions. There are no reserved names for the \file{.clo} files. The command name is a new name for the KOMA \cmd{generatefontfile}. In fact, what the command generates, is a \file{.clo} file.
+% Here is a portion of the \sty{scrfontsizes} package. It simply provides the \cmd{generateclofile} command, without the KOMA-related definitions. There are no reserved names for the \file{.clo} files. The command name is a new name for the KOMA \cmd{generatefontfile}. In fact what the command generates is a \file{.clo} file.
% \begin{macrocode}
\newcommand*{\generateclofile}[1]{%
\kernel@ifnextchar [{\@generatefontfile{#1}}{\@@generatefontfile{#1}}%
@@ -964,7 +1139,7 @@ This work has the LPPL maintenance status "author-maintained".
\def\@generatefontfile#1[#2]#3{%
\begingroup
% \end{macrocode}
-% At least starting with version 3.31 of the \sty{scrfontsizes} package
+% At least starting from version 3.31 of \sty{scrfontsizes},
% the code of the \cmd{@generatefontfile} and \cmd{@@generatefontfile}
% commands sets the \cmd{parskip} value to |0pt|. We also use |[#2]|
% in place of |[{#2}]| for the optional argument of \cmd{changefontsize}
@@ -992,7 +1167,7 @@ This work has the LPPL maintenance status "author-maintained".
\@percentchar\space This is file `#1#2.clo', generated with^^J%
% \end{macrocode}
% In the next three lines we only replace `scrfontsizes' with `fontsize'
-% and `Markus Kohm' with `Ivan Valbusa', in order to get the correc informations
+% and `Markus Kohm' with `Ivan Valbusa', in order to get the correct information
% in the .log file.
% \begin{macrocode}
\@percentchar\space fontsize
@@ -1103,25 +1278,142 @@ This work has the LPPL maintenance status "author-maintained".
% written in the .clo file if the \cmd{generateclofile} command is used.
% \baddition
% \begin{macrocode}
+ \begingroup\tinyr
+\immediate\write\@fontfile{%
+ \string\def\string\tinyr{%
+ \string\@setfontsize\string\tinyr{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+}%
+\endgroup
+\begingroup\tinyrr
+\immediate\write\@fontfile{%
+ \string\def\string\tinyrr{%
+ \string\@setfontsize\string\tinyrr{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+}%
+\endgroup
+\begingroup\tinyrrr
+\immediate\write\@fontfile{%
+ \string\def\string\tinyrrr{%
+ \string\@setfontsize\string\tinyrrr{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+}%
+ \endgroup
+ \begingroup\scriptsizer
+ \immediate\write\@fontfile{%
+ \string\def\string\scriptsizer{%
+ \string\@setfontsize\string\scriptsizer{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+ }%
+ \endgroup
+ \begingroup\scriptsizerr
+ \immediate\write\@fontfile{%
+ \string\def\string\scriptsizerr{%
+ \string\@setfontsize\string\scriptsizerr{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+ }%
+\endgroup
+ \begingroup\scriptsizerrr
+ \immediate\write\@fontfile{%
+ \string\def\string\scriptsizerrr{%
+ \string\@setfontsize\string\scriptsizerrr{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+ }%
+ \endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\fs@appnormal{
+ \@percentchar^^J%
+ \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J%
+ \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J%
+ \@ind\string\belowdisplayskip\space \the\belowdisplayskip^^J%
+ \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J%
+ \@ind\string\let\string\@listi\string\@listI^^J%
+}
+\def\fs@appsmall{%
+ \@percentchar^^J%
+ \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J%
+ \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J%
+ \@ind\string\belowdisplayskip\space \the\belowdisplayskip^^J%
+ \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J%
+ \@ind\string\def\string\@listi{\@percentchar^^J%
+ \@ind\@ind\string\leftmargin\string\leftmargini^^J%
+ \@ind\@ind\string\topsep \the\topsep^^J%
+ \@ind\@ind\string\parsep \the\parsep^^J%
+ \@ind\@ind\string\itemsep \string\parsep^^J%
+ \@ind}\@percentchar^^J%
+}
+ \begingroup\smallr\@listi
+\immediate\write\@fontfile{%
+ \string\def\string\smallr{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\smallr{\f@size}{\f@baselineskip}%
+ \fs@appsmall%
+ }\@percentchar%
+}%
+\endgroup
+\begingroup\smallrr\@listi
+\immediate\write\@fontfile{%
+ \string\def\string\smallrr{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\smallrr{\f@size}{\f@baselineskip}%
+ \fs@appsmall%
+ }\@percentchar%
+}%
+\endgroup
+\begingroup\smallrrr\@listi
+\immediate\write\@fontfile{%
+ \string\def\string\smallrrr{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\smallrrr{\f@size}{\f@baselineskip}%
+ \fs@appsmall%
+ }\@percentchar%
+}%
+\endgroup
+\begingroup\footnotesizer\@listi
+\immediate\write\@fontfile{%
+ \string\def\string\footnotesizer{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\footnotesizer{\f@size}{\f@baselineskip}%
+ \fs@appsmall%
+ }\@percentchar%
+}%
+\endgroup
+\begingroup\footnotesizerr\@listi
+\immediate\write\@fontfile{%
+ \string\def\string\footnotesizerr{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\footnotesizerr{\f@size}{\f@baselineskip}%
+ \fs@appsmall%
+ }\@percentchar%
+}%
+\endgroup
+\begingroup\footnotesizerrr\@listi
+\immediate\write\@fontfile{%
+ \string\def\string\footnotesizerrr{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\footnotesizerrr{\f@size}{\f@baselineskip}%
+ \fs@appsmall%
+ }\@percentchar%
+}%
+\endgroup
\begingroup\normalsizer
\immediate\write\@fontfile{%
- \string\def\string\normalsizer{%
- \string\@setfontsize\string\normalsizer{\f@size}{\f@baselineskip}%
+ \string\def\string\normalsizer{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\normalsizer{\f@size}{\f@baselineskip}%
+ \fs@appnormal%
}\@percentchar%
}%
\endgroup
\begingroup\normalsizerr
\immediate\write\@fontfile{%
- \string\def\string\normalsizerr{%
- \string\@setfontsize\string\normalsizerr{\f@size}{\f@baselineskip}%
- }\@percentchar%
+ \string\def\string\normalsizerr{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\normalsizerr{\f@size}{\f@baselineskip}%
+ \fs@appnormal%
+ }\@percentchar%
}%
\endgroup
\begingroup\normalsizerrr
\immediate\write\@fontfile{%
- \string\def\string\normalsizerrr{%
- \string\@setfontsize\string\normalsizerrr{\f@size}{\f@baselineskip}%
- }\@percentchar%
+ \string\def\string\normalsizerrr{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\normalsizerrr{\f@size}{\f@baselineskip}%
+ \fs@appnormal%
+ }\@percentchar%
}%
\endgroup
\begingroup\larger
@@ -1172,6 +1464,7 @@ This work has the LPPL maintenance status "author-maintained".
\string\@setfontsize\string\Largerrr{\f@size}{\f@baselineskip}%
}\@percentchar%
}%
+\endgroup
\begingroup\LARGEr
\immediate\write\@fontfile{%
\string\def\string\LARGEr{%
@@ -1192,6 +1485,7 @@ This work has the LPPL maintenance status "author-maintained".
\string\@setfontsize\string\LARGErrr{\f@size}{\f@baselineskip}%
}\@percentchar%
}%
+\endgroup
\begingroup\huger
\immediate\write\@fontfile{%
\string\def\string\huger{%
@@ -1212,6 +1506,7 @@ This work has the LPPL maintenance status "author-maintained".
\string\@setfontsize\string\hugerrr{\f@size}{\f@baselineskip}%
}\@percentchar%
}%
+\endgroup
\begingroup\Huger
\immediate\write\@fontfile{%
\string\def\string\Huger{%
@@ -1232,6 +1527,7 @@ This work has the LPPL maintenance status "author-maintained".
\string\@setfontsize\string\Hugerrr{\f@size}{\f@baselineskip}%
}\@percentchar%
}%
+\endgroup
% \end{macrocode}
% \eaddition
% \begin{macrocode}
@@ -1392,45 +1688,60 @@ This work has the LPPL maintenance status "author-maintained".
\@onlypreamble\generateclofile
% \end{macrocode}
% We will now define some internal commands to test the package functions.
+% Since version 0.6 I have been using the \LaTeX 3 solution provided by
+% Enrico Gregorio in place of the previous macros based on \sty{etoolbox}.
% \baddition
% \begin{macrocode}
\ExplSyntaxOn
-\NewExpandableDocumentCommand{\getlength}{O{5}m}
+\NewDocumentCommand{\printsamples}
+{
+ m
+ m
+ O{tiny,tinyr,tinyrr,tinyrrr,
+ scriptsize,scriptsizer,scriptsizerr,scriptsizerrr,
+ footnotesize,footnotesizer,footnotesizerr,footnotesizerrr,
+ small,smallr,smallrr,smallrrr,
+ normalsize,normalsizer,normalsizerr,normalsizerrr,
+ large,larger,largerr,largerrr,
+ Large,Larger,Largerr,Largerrr,
+ LARGE,LARGEr,LARGErr,LARGErrr,
+ huge,huger,hugerr,hugerrr,
+ Huge,Huger,Hugerr,Hugerrr}
+}
{
- \fp_eval:n { round(#2,#1) }
+ \fontsize_printsamples:nnn { #1 } { #2 } { #3 }
}
-\ExplSyntaxOff
-\def\fontsize@lipsum{As any dedicated reader can clearly see, the Ideal of
- practical reason is a representation of, as far as I know, the
- things in themselves; as I have shown elsewhere, the phenomena
- should only be used as a canon for our understanding. The paralogisms
- of practical reason are what first give rise to the architectonic of
- practical reason. As will be shown, reason would
- be made to contradict.}
-\chardef\fsbslash=`\\
-% Thanks to @Werner (https://tex.stackexchange.com/a/87423/231952)
-\newcommand{\sizesamples}[1]{%
- \def\nextitem{\par}% Separator
- \renewcommand*{\do}[1]{\nextitem\bgroup\csname##1\endcsname
- \noindent{\csname ##1\endcsname \texttt{\fsbslash ##1}:
- \getlength[2]{\f@size}\,pt on \getlength[2]{\the\baselineskip}\,pt.} \fontsize@lipsum\par\egroup
- }% How to process each item
- \docsvlist{#1}% Process list
+% helper function to print the rounded sizes
+\cs_new:Nn \__fontsize_round_f:n
+{
+ \fp_eval:n { round(\use:c{f@#1},1) } pt
}
-\NewDocumentCommand \printsamples { m m O{
- normalsize,normalsizer,normalsizerr,normalsizerrr,
- large,larger,largerr,largerrr,
- Large,Larger,Largerr,Largerrr,
- LARGE,LARGEr,LARGErr,LARGErrr,
- huge,huger,hugerr,hugerrr,
- Huge,Huger,Hugerr,Hugerrr} }
+
+% the main function
+\cs_new_protected:Nn \fontsize_printsamples:nnn
{
- \changefontsize[#1]{#2}
- \subsubsection*{Text samples for #2 on #1}
- \sizesamples{#3}
+ % group to bound the font changes
+ \group_begin:
+ % set the size
+ \changefontsize[#1]{#2}\selectfont
+ % header
+ \subsubsection*{Text~samples~for~#2~on~#1}
+ % map through the desired sizes
+ \clist_map_inline:nn { #3 }
+ {
+ \use:c{##1} % set the font size
+ \noindent\texttt{\symbol{92}##1}:~ % print the font size command
+ \__fontsize_round_f:n {size}~ % print the size in points
+ \__fontsize_round_f:n {baselineskip}.~ % print the baseline skip in points
+ \kant[1][1-3] % sample text
+ \par\addvspace{\medskipamount} % finish up
+ }
+ % close the group
+ \group_end:
}
+\ExplSyntaxOff
% \end{macrocode}
% \eaddition
% \iffalse
diff --git a/macros/latex/contrib/fontsize/fontsize.pdf b/macros/latex/contrib/fontsize/fontsize.pdf
index 742ff73fe3..7db67bf43d 100644
--- a/macros/latex/contrib/fontsize/fontsize.pdf
+++ b/macros/latex/contrib/fontsize/fontsize.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index 833a876d41..b5ce89cab3 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index ca8beb88fc..ef0cd4123b 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -1,4 +1,4 @@
-% -*- coding: utf-8 ; -*-
+% -*- coding: utf-8 ; -*-
\documentclass[dvipsnames]{article}% dvipsnames is for xcolor (loaded by Tikz, loaded by nicematrix)
\usepackage{xltxtra}
\usepackage[french]{babel}
@@ -122,9 +122,10 @@ classique |latex|-|dvips|-|ps2pdf| (ou Adobe Distiller). \textsl{Néanmoins, le
ne peut être compilé qu'avec XeLaTeX.}
\bigskip
-Cette extension nécessite et charge les extensions \pkg{l3keys2e}, \pkg{xparse}, \pkg{array}, \pkg{amsmath} et
-\pkg{pgfcore} ainsi que le module \pkg{shapes} de \textsc{pgf} (l'extension \pkg{tikz}, qui est une surcouche de
-\textsc{pgf}, n'est \emph{pas} chargée). L'utilisateur final n'a qu'à charger l'extension \pkg{nicematrix} avec
+Cette extension nécessite et charge les extensions \pkg{l3keys2e}, \pkg{array},
+\pkg{amsmath} et \pkg{pgfcore} ainsi que le module \pkg{shapes} de \textsc{pgf}
+(l'extension \pkg{tikz}, qui est une surcouche de \textsc{pgf}, n'est \emph{pas}
+chargée). L'utilisateur final n'a qu'à charger l'extension \pkg{nicematrix} avec
l'instruction habituelle : |\usepackage{nicematrix}|.
@@ -215,7 +216,7 @@ doit être chargé avec l'option |define-L-C-R|.
\section{L'espace vertical entre les rangées}
-Il est bien connu que certaines rangées des tableaux créés par défault avec
+Il est bien connu que certaines rangées des tableaux créés par défaut avec
LaTeX sont trop proches l'une de l'autre. On en donne ci-dessous un exemple
classique.
@@ -538,11 +539,11 @@ arum & iris & jacinthe & muguet
\end{center}
\medskip
-\colorbox{yellow!30}{Nouveau 5.7}\enskip Comme on le voit sur cet exemple, on
-peut fixer la couleur de fond avec la clé |fill| et la couleur du cadre avec la
-clé |draw|\footnote{Si la clé |draw| est utilisée sans valeur, c'est la couleur
- par défaut des filets de tableaux qui est utilisée.}. On peut aussi fixer
-l'épaisseur du trait avec la clé |line-width|.
+Comme on le voit sur cet exemple, on peut fixer la couleur de fond avec la clé
+|fill| et la couleur du cadre avec la clé |draw|\footnote{Si la clé |draw| est
+ utilisée sans valeur, c'est la couleur par défaut des filets de tableaux qui
+ est utilisée.}. On peut aussi fixer l'épaisseur du trait avec la clé
+|line-width|.
@@ -1087,7 +1088,9 @@ $\begin{pNiceArray}{cccc:c}
\bigskip
Il est possible de changer dans \pkg{nicematrix} la lettre utilisée pour
indiquer dans le préambule un trait vertical en pointillés avec l'option
-|letter-for-dotted-lines| disponible dans |\NiceMatrixOptions|.
+|letter-for-dotted-lines| disponible dans |\NiceMatrixOptions|.
+Ainsi libérée, la lettre «|:|» peut être utilisée par ailleurs (par exemple par
+l'extension \pkg{arydshln}).
\bigskip
@@ -1097,7 +1100,7 @@ insère rendent le tableau plus large ou plus long d'une quantité égale à la
largeur du trait\footnote{En fait, cela est vrai pour |\hline| et «\verb+|+»
mais pas pour |\cline| : cf. p.~\pageref{remark-cline}}. Avec
\pkg{nicematrix}, les lignes en pointillés tracées par |\hdottedline| et «|:|»
-ont le même effet.
+ont ce même effet.
@@ -1142,7 +1145,7 @@ Concernant ce phénomène, Adobe Reader donne de meilleurs résultats que
MuPDF.
\end{itemize}
-L'extension \pkg{nicematrix} proposent des outils qui permettent d'éviter ces
+L'extension \pkg{nicematrix} propose des outils qui permettent d'éviter ces
inconvénients.
\end{itemize}
@@ -1277,11 +1280,11 @@ rangées avec les deux couleurs à partir de la rangée dont le numéro est donn
premier argument (obligatoire), comme le fait la commande |\rowcolors| de
\pkg{xcolor}.
-\colorbox{yellow!50}{\textbf{Nouveau 5.8}}\enskip
+\colorbox{yellow!30}{Nouveau 5.8}\enskip
En fait, le premier argument (obligatoire) peut, plus généralement, contenir
une liste d'intervalles correspondant à l'ensemble des rangées sur lesquelles
portera l'effet de |\rowcolors| (un intervalle de la forme $i$ désigne en fait
-l'intervalle constitué de toutes les rangées du tableau à partir de de la rangée~$i$).
+l'intervalle constitué de toutes les rangées du tableau à partir de la rangée~$i$).
\bigskip
@@ -1290,12 +1293,12 @@ optionnel en dernière position (l'argument optionel en première position
correspond à l'espace colorimétrique). Les clés disponibles sont |cols|,
|restart| et |respect-blocks|.
\begin{itemize}
-\item \colorbox{yellow!50}{\textbf{Nouveau 5.8}}\enskip
+\item \colorbox{yellow!30}{Nouveau 5.8}\enskip
La clé |cols| décrit un ensemble de colonnes sur lesquelles portera
l'effet de |\rowcolors|. Cet ensemble de colonnes est une liste d'intervalles de
la forme $i$|-|$j$.
-\item \colorbox{yellow!50}{\textbf{Nouveau 5.8}}\enskip Avec la clé |restart|, chacun
+\item \colorbox{yellow!30}{Nouveau 5.8}\enskip Avec la clé |restart|, chacun
des intervalles de rangées spécifié par le premier argument de |\rowcolors|
recommence avec la même couleur.\footnote{Autrement, la couleur d'une rangée ne
dépend que de la partié de son numéro.}
@@ -1373,7 +1376,8 @@ Henri & 14 \\
\bigskip
-\item La commande |\chessboardcolors| prend en arguments obligatoires deux
+\item \label{chessboardcolors}%
+La commande |\chessboardcolors| prend en arguments obligatoires deux
couleurs et colorie les cases en quinconces avec les deux couleurs.
\medskip
@@ -2137,7 +2141,7 @@ $\begin{pmatrix}
\subsection{Les labels des lignes en pointillés}
Les commandes |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Iddots| et |\Hdotsfor|
-(ainsi que la commande |\line| dans le |code-after| décrite
+(ainsi que la commande |\line| dans le |\CodeAfter| décrite
p.~\pageref{line-in-code-after}) peuvent en fait prendre deux arguments
optionnels spécifiés par les caractères |_| et |^| pour des labels situés
au-dessous et au-dessus de la ligne. Les arguments sont composés en mode
@@ -2161,7 +2165,7 @@ $\begin{bNiceMatrix}
\label{customization}
Les lignes pointillées tracées par |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|,
-|\Iddots| et |\Hdotsfor| (ainsi que par la commande |\line| dans le |code-after|
+|\Iddots| et |\Hdotsfor| (ainsi que par la commande |\line| dans le |\CodeAfter|
décrite p.~\pageref{line-in-code-after}) peuvent être paramétrées par trois
options (que l'on met entre crochets après la commande) :
%
@@ -2289,47 +2293,193 @@ $\begin{bNiceMatrix}[margin,hvlines]
\end{bNiceMatrix}$
-\section{Le code-after}
+\section{Le \textbackslash CodeAfter}
\label{code-after}
+On a présenté p.~\pageref{code-before} la clé |code-before|. Il existe en fait
+une clé similaire |code-after| qui peut être utilisée pour indiquer du code qui
+sera exécuté après la construction du tableau.
-L'option |code-after| peut être utilisée pour indiquer du code qui sera exécuté
-après la construction de la matrice.\footnote{Il existe aussi une clé
- |code-before| décrite p.~\pageref{code-before}.}
+\medskip
+Pour améliorer la lisibilité du code, une syntaxe alternative est proposée : on
+peut spécifier les instructions du |code-after| à la fin de l'environnement,
+après le mot-clé |\CodeAfter|.
+
+\medskip
+Deux commandes spéciales sont disponibles dans le |\CodeAfter| : |\line| et
+|\SubMatrix|.
-Une commande spéciale, nommée |\line| est disponible pour tracer directement des
-lignes en pointillés entre les cases. Elle prend deux arguments correspondant
-aux deux cases à relier, chacun de la forme $i$-$j$ où $i$ est le numéro de
-ligne et $j$ est le numéro de colonne. Elle peut par exemple être utilisée pour
-tracer une ligne entre deux cases adjacentes comme dans l'exemple suivant.
+
+\subsection{La commande \textbackslash line dans le \textbackslash CodeAfter}
+
+La commande |\line| permet de tracer directement des lignes en pointillés entre
+les cases. Elle prend deux arguments correspondant aux deux cases à relier,
+chacun de la forme $i$-$j$ où $i$ est le numéro de ligne et $j$ est le numéro de
+colonne. Elle peut par exemple être utilisée pour tracer une ligne entre deux
+cases adjacentes comme dans l'exemple suivant.
\label{line-in-code-after}
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=11cm]
\NiceMatrixOptions{xdots/shorten = 0.6 em}
-\begin{pNiceMatrix}[~emphase#code-after=\line{2-2}{3-3}@]
+\begin{pNiceMatrix}
I & 0 & \Cdots &0 \\
0 & I & \Ddots &\Vdots\\
\Vdots &\Ddots & I &0 \\
0 &\Cdots & 0 &I
+~emphase#\CodeAfter \line{2-2}{3-3}@
\end{pNiceMatrix}
\end{BVerbatim}
\begin{scope}
\NiceMatrixOptions{xdots/shorten = 0.6 em}
-$\begin{pNiceMatrix}[code-after=\line{2-2}{3-3}]
+$\begin{pNiceMatrix}
I & 0 & \Cdots &0 \\
0 & I & \Ddots &\Vdots\\
\Vdots &\Ddots & I &0 \\
0 &\Cdots & 0 &I
+\CodeAfter \line{2-2}{3-3}
\end{pNiceMatrix}$
\end{scope}
+\subsection{La commande \textbackslash SubMatrix dans le \textbackslash CodeAfter}
+
+\label{sub-matrix}
+
+\colorbox{yellow!50}{\textbf{Nouveau 5.10}}\enskip
+La commande |\SubMatrix| permet de positionner des délimiteurs sur une partie du
+tableau considérée comme une sous-matrice. La commande |\SubMatrix| prend cinq
+arguments :
+\begin{itemize}
+\item le premier argument est le délimiteur gauche qui peut être n'importe
+quel délimiteur extensible de LaTeX : |(|, |[|, |\{|, |\langle|, |\lgroup|,
+|\lfloor|, etc. mais aussi le délimiteur nul |.| ;
+\item le deuxième argument est le coin supérieur gauche de la sous-matrice avec
+la syntaxe $i$|-|$j$ où $i$ est le numéro de rangée et $j$ le numéro de colonne
+;
+\item le troisième argument est le coin inférieur droit avec la même syntaxe ;
+\item la quatrième argument est le délimiteur droit ;
+\item le cinquième argument, optionnel, entre crochets, est une liste de couples
+clé-valeur.
+\end{itemize}
+
+On remarquera que la commande |\SubMatrix| trace les délimiteurs après la
+construction de la matrice : aucun espace n'est inséré par la commande
+|\SubMatrix|. C'est pourquoi, dans l'exemple suivant, on a utilisé la clé
+|margin| et on a inséré à la main de l'espace entre la troisième et la quatrième
+colonne avec |@{\hspace{1.5em}}| dans le préambule du tableau.
+
\medskip
-Pour améliorer la lisibilité du code, une syntaxe alternative est proposée : on
-peut spécifier les instructions du |code-after| à la fin de l'environnement,
-après le mot-clé |\CodeAfter| (pour un exemple, voir page
-\pageref{exemple-CodeAfter}).
+\begin{scope}
+\fvset{commandchars=\~\#\+}%
+\begin{BVerbatim}[boxwidth=11cm,baseline=c]
+\[\begin{NiceArray}{ccc~emphase#@{\hspace{1.5em}}+c}%
+ [cell-space-limits=2pt,~emphase#margin+]
+ 1 & 1 & 1 & x \\
+\dfrac{1}{4} & \dfrac{1}{2} & \dfrac{1}{4} & y \\
+ 1 & 2 & 3 & z
+\CodeAfter
+~emphase#\SubMatrix({1-1}{3-3})+
+~emphase#\SubMatrix({1-4}{3-4})+
+\end{NiceArray}\]
+\end{BVerbatim}
+\end{scope}
+$\begin{NiceArray}{ccc@{\hspace{1.5em}}c}[cell-space-limits=2pt,margin]
+ 1 & 1 & 1 & x \\
+\dfrac{1}{4} & \dfrac{1}{2} & \dfrac{1}{4} & y \\
+ 1 & 2 & 3 & z
+\CodeAfter
+\SubMatrix({1-1}{3-3})
+\SubMatrix({1-4}{3-4})
+\end{NiceArray}$
+\bigskip
+Les options de la commande |\SubMatrix| sont les suivantes :
+%
+\begin{itemize}
+\item |left-xshift| et |right-xshift| déplacent horizontalement les délimiteurs
+(il existe aussi la clé |xshift| qui permet de régler simultanément ces deux
+clés) ;
+\item |extra-height| ajoute une quantité à la hauteur totale des délimiteurs
+(hauteur~|\ht| + profondeur |\dp|) ;
+\item |delimiters-color| permet de fixer la couleur des délimiteurs (cette clé
+est également disponible dans |\NiceMatrixOptions| et au niveau des
+environnements à délimiteurs ou comme option de |\CodeAfter|) ;
+\item |slim| qui est une clé booléenne : lorsqu'elle est utilisée la position
+horizontale des délimiteurs est calculée uniquement sur le contenu des cases
+de la sous-matrice alors, que, dans le cas général, elle est calculée sur le
+contenu des cases des colonnes mises en jeu (voir exemple ci-dessous).
+\end{itemize}
+
+Ces clés sont aussi accessibles dans |\NiceMatrixOptions|, au niveau des
+environnements de \pkg{nicematrix} ou comme option de |\CodeAfter| avec le
+préfixe |sub-matrix|, c'est-à-dire qu'elles sont alors nommées
+|sub-matrix/left-xshift|, |sub-matrix/right-xshift|, |sub-matrix/xshift|, etc.
+
+\bigskip
+\begin{scope}
+\fvset{commandchars=\~\#\!}%
+\begin{BVerbatim}[baseline=c,boxwidth=11cm]
+$\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
+ & & \frac12 \\
+ & & \frac14 \\[1mm]
+a & b & \frac12a+\frac14b \\
+c & d & \frac12c+\frac14d \\
+\CodeAfter
+\SubMatrix({1-3}{2-3})
+\SubMatrix({3-1}{4-2})
+\SubMatrix({3-3}{4-3})
+\end{NiceArray}$
+\end{BVerbatim}
+\end{scope}
+$\begin{NiceArray}{cc@{\hspace{5mm}}l}%
+ [cell-space-limits=2pt]
+ & & \frac12 \\
+ & & \frac14 \\[1mm]
+a & b & \frac12a+\frac14b \\
+c & d & \frac12c+\frac14d \\
+\CodeAfter
+\SubMatrix({1-3}{2-3})
+\SubMatrix({3-1}{4-2})
+\SubMatrix({3-3}{4-3})
+\end{NiceArray}$
+
+\medskip
+Voici le même exemple avec la clé |slim| pour l'une des sous-matrices.
+
+\medskip
+\begin{scope}
+\fvset{commandchars=\~\#\!}%
+\begin{BVerbatim}[baseline=c,boxwidth=11cm]
+$\begin{NiceArray}{cc@{\hspace{5mm}}l}%
+ [cell-space-limits=2pt]
+ & & \frac12 \\
+ & & \frac14 \\[1mm]
+a & b & \frac12a+\frac14b \\
+c & d & \frac12c+\frac14d \\
+\CodeAfter
+\SubMatrix({1-3}{2-3})[~emphase#slim!]
+\SubMatrix({3-1}{4-2})
+\SubMatrix({3-3}{4-3})
+\end{NiceArray}$
+\end{BVerbatim}
+\end{scope}
+%
+$\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
+ & & \frac12 \\
+ & & \frac14 \\[1mm]
+a & b & \frac12a+\frac14b \\
+c & d & \frac12c+\frac14d \\
+\CodeAfter
+\SubMatrix({1-3}{2-3})[slim]
+\SubMatrix({3-1}{4-2})
+\SubMatrix({3-3}{4-3})
+\end{NiceArray}$
+
+
+\bigskip
+Il existe aussi une clé |name| qui permet de donner un nom à une sous-matrice
+créée par une commande |\SubMatrix|. Ce nom est utilisé pour créer des nœuds
+PGF/Tikz : voir p.~\pageref{node-sub-matrix}.
\section{Les notes dans les tableaux}
@@ -2654,7 +2804,7 @@ Pour un exemple de personnalisation des notes de tableau, voir p.~\pageref{ex:no
\subsection{Utilisation de \{NiceTabular\} avec threeparttable}
-Si vous souhaitez utiliser l'environnement |{NiceTabular}| ou |{NiceTAbular*}|
+Si vous souhaitez utiliser l'environnement |{NiceTabular}| ou |{NiceTabular*}|
dans un environnement |{threeparttable}| de l'extension éponyme, vous devez
patcher |{threeparttable}| avec le code suivant (avec une version de LaTeX
postérieure à 2020/10/01).
@@ -2836,7 +2986,7 @@ colonne courante\footnote{On rappelle que le numéro de la «première rangée»
existe) est $0$ également.}. Bien entendu, l'utilisateur ne doit pas modifier
les valeurs de ces compteurs qui sont utilisés en interne par \pkg{nicematrix}.
-Dans le |code-before| (cf. p. \pageref{code-before}) et dans le |code-after|
+Dans le |code-before| (cf. p. \pageref{code-before}) et dans le |\CodeAfter|
(cf. p. \pageref{code-after}), |iRow| représente le nombre total de rangées
(hors éventuelles rangées extérieures) et |jCol| le nombre total de colonnes
(hors potentielles colonnes extérieures).
@@ -3024,7 +3174,7 @@ sont accessibles à travers les noms «\textsl{nom}-$i$-$j$» où \textsl{nom} e
le nom donné au tableau et $i$ et $j$ les numéros de rangée et de colonne de la
case considérée. On peut les utiliser avec \textsc{pgf} mais l'utilisateur final
préférera sans doute utiliser Tikz (qui est une sur-couche de \textsc{pgf}). Il
-faut néanmoins se souvenir que \pkg{nicematrix} ne charge pas Tikz par défault.
+faut néanmoins se souvenir que \pkg{nicematrix} ne charge pas Tikz par défaut.
Dans les exemples qui suivent, on suppose que Tikz a été chargé par
l'utilisateur.
@@ -3051,7 +3201,7 @@ Ne pas oublier les options |remember picture| et |overlay|.
\bigskip
-Dans le |code-after|, et si Tikz est chargé, les choses sont plus simples. On
+Dans le |\CodeAfter|, et si Tikz est chargé, les choses sont plus simples. On
peut (et on doit) désigner les nœuds sous la forme $i$-$j$ : il n'y a pas à
préciser l'environnement qui est évidemment l'environnement courant.
@@ -3118,33 +3268,33 @@ seconds avec l'option |create-large-nodes|.\footnote{Il existe aussi l'option
|create-medium-nodes| et |create-large-nodes|.}
\medskip
-Ces nœuds ne sont pas utilisés par défault par \pkg{nicematrix}.
+Ces nœuds ne sont pas utilisés par défaut par \pkg{nicematrix}.
\medskip
Les noms des «nœuds moyens» s'obtiennent en ajoutant le suffixe «|-medium|» au
nom des nœuds normaux. Dans l'exemple suivant, on a surligné tous les «nœuds
moyens». Nous considérons que cet exemple se suffit à lui-même comme définition
de ces nœuds.
-\[\begin{pNiceMatrix}[
- create-medium-nodes,
- code-after = {\begin{tikzpicture}
- [every node/.style = {fill = red!15,
- blend mode = multiply,
- inner sep = 0 pt},
- name suffix = -medium]
- \node [fit = (1-1)] {} ;
- \node [fit = (1-2)] {} ;
- \node [fit = (1-3)] {} ;
- \node [fit = (2-1)] {} ;
- \node [fit = (2-2)] {} ;
- \node [fit = (2-3)] {} ;
- \node [fit = (3-1)] {} ;
- \node [fit = (3-2)] {} ;
- \node [fit = (3-3)] {} ;
- \end{tikzpicture}}]
+\[\begin{pNiceMatrix}[create-medium-nodes]
a & a + b & a + b + c \\
a & a & a + b \\
a & a & a
+\CodeAfter
+\begin{tikzpicture}
+ [every node/.style = {fill = red!15,
+ blend mode = multiply,
+ inner sep = 0 pt},
+ name suffix = -medium]
+\node [fit = (1-1)] {} ;
+\node [fit = (1-2)] {} ;
+\node [fit = (1-3)] {} ;
+\node [fit = (2-1)] {} ;
+\node [fit = (2-2)] {} ;
+\node [fit = (2-3)] {} ;
+\node [fit = (3-1)] {} ;
+\node [fit = (3-2)] {} ;
+\node [fit = (3-3)] {} ;
+\end{tikzpicture}
\end{pNiceMatrix}\]
@@ -3156,25 +3306,25 @@ de ces nœuds.\footnote{Il n'y a pas de «nœuds larges» créés dans les rang
colonnes extérieures (pour ces rangées et colonnes, voir
p.~\pageref{exterior}).}
-\[\begin{pNiceMatrix}[
- create-large-nodes,
- code-after = {\begin{tikzpicture}
- [every node/.style = {blend mode = multiply,
- inner sep = 0 pt},
- name suffix = -large]
- \node [fit = (1-1),fill = red!15] {} ;
- \node [fit = (1-3),fill = red!15] {} ;
- \node [fit = (2-2),fill = red!15] {} ;
- \node [fit = (3-1),fill = red!15] {} ;
- \node [fit = (3-3),fill = red!15] {} ;
- \node [fit = (1-2),fill = blue!15] {} ;
- \node [fit = (2-1),fill = blue!15] {} ;
- \node [fit = (2-3),fill = blue!15] {} ;
- \node [fit = (3-2),fill = blue!15] {} ;
- \end{tikzpicture}}]
+\[\begin{pNiceMatrix}[create-large-nodes]
a & a + b & a + b + c \\
a & a & a + b \\
a & a & a
+\CodeAfter
+\begin{tikzpicture}
+ [every node/.style = {blend mode = multiply,
+ inner sep = 0 pt},
+ name suffix = -large]
+\node [fit = (1-1),fill = red!15] {} ;
+\node [fit = (1-3),fill = red!15] {} ;
+\node [fit = (2-2),fill = red!15] {} ;
+\node [fit = (3-1),fill = red!15] {} ;
+\node [fit = (3-3),fill = red!15] {} ;
+\node [fit = (1-2),fill = blue!15] {} ;
+\node [fit = (2-1),fill = blue!15] {} ;
+\node [fit = (2-3),fill = blue!15] {} ;
+\node [fit = (3-2),fill = blue!15] {} ;
+\end{tikzpicture}
\end{pNiceMatrix}\]
@@ -3189,25 +3339,25 @@ utilisé les options |left-margin| et |right-margin|.\footnote{Les options
aucune valeur n'est donnée, c'est la valeur par défaut qui est utilisée et
elle est égale à |\arraycolsep| (valeur initiale : 5~pt). Il existe aussi une
option |margin| pour fixer à la fois |left-margin| et |right-margin|.}
-\[\begin{pNiceMatrix}[
- create-large-nodes,left-margin,right-margin,
- code-after = {\begin{tikzpicture}
- [every node/.style = {blend mode = multiply,
- inner sep = 0 pt},
- name suffix = -large]
- \node [fit = (1-1),fill = red!15] {} ;
- \node [fit = (1-3),fill = red!15] {} ;
- \node [fit = (2-2),fill = red!15] {} ;
- \node [fit = (3-1),fill = red!15] {} ;
- \node [fit = (3-3),fill = red!15] {} ;
- \node [fit = (1-2),fill = blue!15] {} ;
- \node [fit = (2-1),fill = blue!15] {} ;
- \node [fit = (2-3),fill = blue!15] {} ;
- \node [fit = (3-2),fill = blue!15] {} ;
- \end{tikzpicture}}]
+\[\begin{pNiceMatrix}[create-large-nodes,left-margin,right-margin]
a & a + b & a + b + c \\
a & a & a + b \\
a & a & a
+\CodeAfter
+\begin{tikzpicture}
+ [every node/.style = {blend mode = multiply,
+ inner sep = 0 pt},
+ name suffix = -large]
+\node [fit = (1-1),fill = red!15] {} ;
+\node [fit = (1-3),fill = red!15] {} ;
+\node [fit = (2-2),fill = red!15] {} ;
+\node [fit = (3-1),fill = red!15] {} ;
+\node [fit = (3-3),fill = red!15] {} ;
+\node [fit = (1-2),fill = blue!15] {} ;
+\node [fit = (2-1),fill = blue!15] {} ;
+\node [fit = (2-3),fill = blue!15] {} ;
+\node [fit = (3-2),fill = blue!15] {} ;
+\end{tikzpicture}
\end{pNiceMatrix}\]
\medskip
@@ -3215,25 +3365,26 @@ Il est aussi possible d'ajouter de l'espace sur les côtés du tableau avec les
options |extra-left-margin| et |extra-right-margin|. Ces marges ne sont pas
incorporées dans les «nœuds larges». Dans l'exemple suivant, nous avons utilisé
|extra-left-margin| et |extra-right-margin| avec la valeur $3$~pt.
-\[\begin{pNiceMatrix}[
- create-large-nodes,left-margin,right-margin,extra-right-margin=3pt,extra-left-margin=3pt,
- code-after = {\begin{tikzpicture}
- [every node/.style = {blend mode = multiply,
- inner sep = 0 pt},
- name suffix = -large]
- \node [fit = (1-1),fill = red!15] {} ;
- \node [fit = (1-3),fill = red!15] {} ;
- \node [fit = (2-2),fill = red!15] {} ;
- \node [fit = (3-1),fill = red!15] {} ;
- \node [fit = (3-3),fill = red!15] {} ;
- \node [fit = (1-2),fill = blue!15] {} ;
- \node [fit = (2-1),fill = blue!15] {} ;
- \node [fit = (2-3),fill = blue!15] {} ;
- \node [fit = (3-2),fill = blue!15] {} ;
- \end{tikzpicture}}]
+\[\begin{pNiceMatrix}%
+ [create-large-nodes,left-margin,right-margin,extra-right-margin=3pt,extra-left-margin=3pt]
a & a + b & a + b + c \\
a & a & a + b \\
a & a & a
+\CodeAfter
+\begin{tikzpicture}
+ [every node/.style = {blend mode = multiply,
+ inner sep = 0 pt},
+ name suffix = -large]
+\node [fit = (1-1),fill = red!15] {} ;
+\node [fit = (1-3),fill = red!15] {} ;
+\node [fit = (2-2),fill = red!15] {} ;
+\node [fit = (3-1),fill = red!15] {} ;
+\node [fit = (3-3),fill = red!15] {} ;
+\node [fit = (1-2),fill = blue!15] {} ;
+\node [fit = (2-1),fill = blue!15] {} ;
+\node [fit = (2-3),fill = blue!15] {} ;
+\node [fit = (3-2),fill = blue!15] {} ;
+\end{tikzpicture}
\end{pNiceMatrix}\]
@@ -3267,7 +3418,8 @@ noix & noisette & brugnon
\vspace{1cm}
\begin{minipage}[c]{7cm}
-Ci-contre, on a colorié toutes les cases de ce tableau avec |\chessboardcolors|.
+Ci-contre, on a colorié toutes les cases de ce tableau avec
+|\chessboardcolors| (cf.~p.~\pageref{chessboardcolors}).
\end{minipage}
\hspace{1.5cm}
\begin{scope}
@@ -3288,25 +3440,25 @@ Voici maintenant tous les «nœuds larges» de ce tableau (sans utilisation de
\hspace{1.5cm}
\begin{scope}
\large
-\begin{NiceTabular}[c]{w{l}{2cm}ll}[hvlines,
- create-large-nodes,
- code-after = {\begin{tikzpicture}
- [every node/.style = {blend mode = multiply,
- inner sep = 0 pt},
- name suffix = -large]
- \node [fit = (1-1),fill = red!15] {} ;
- \node [fit = (1-3),fill = red!15] {} ;
- \node [fit = (2-2),fill = red!15] {} ;
- \node [fit = (3-1),fill = red!15] {} ;
- \node [fit = (3-3),fill = red!15] {} ;
- \node [fit = (1-2),fill = blue!15] {} ;
- \node [fit = (2-1),fill = blue!15] {} ;
- \node [fit = (2-3),fill = blue!15] {} ;
- \node [fit = (3-2),fill = blue!15] {} ;
- \end{tikzpicture}}]
+\begin{NiceTabular}[c]{w{l}{2cm}ll}[hvlines,create-large-nodes]
fraise & amande & abricot \\
prune & pêche & poire \\[1ex]
noix & noisette & brugnon
+\CodeAfter
+\begin{tikzpicture}
+ [every node/.style = {blend mode = multiply,
+ inner sep = 0 pt},
+ name suffix = -large]
+\node [fit = (1-1),fill = red!15] {} ;
+\node [fit = (1-3),fill = red!15] {} ;
+\node [fit = (2-2),fill = red!15] {} ;
+\node [fit = (3-1),fill = red!15] {} ;
+\node [fit = (3-3),fill = red!15] {} ;
+\node [fit = (1-2),fill = blue!15] {} ;
+\node [fit = (2-1),fill = blue!15] {} ;
+\node [fit = (2-3),fill = blue!15] {} ;
+\node [fit = (3-2),fill = blue!15] {} ;
+\end{tikzpicture}
\end{NiceTabular}
\end{scope}
@@ -3317,7 +3469,7 @@ noix & noisette & brugnon
L'extension \pkg{nicematrix} crée un nœud PGF-Tikz indiquant la position
potentielle de chaque filet horizontal (avec les noms |row-|$i$) et de chaque
filet vertical (avec les noms |col-|$j$), comme décrit sur la figure ci-dessous.
-Ces nœuds sont accessibles dans le |code-before| et dans le |code-after|.
+Ces nœuds sont accessibles dans le |code-before| et dans le |\CodeAfter|.
\begin{center}
\begin{NiceTabular}{ccc}[hvlines,rules/width=1pt,rules/color=gray]
rose & tulipe & lys \\
@@ -3343,7 +3495,7 @@ muguet & dahlia & souci
\bigskip
Si on utilise Tikz (on rappelle que \pkg{nicematrix} ne charge pas Tikz par
-défaut), on peut donc accéder (dans le |code-before| et le |code-after|) à
+défaut), on peut donc accéder (dans le |code-before| et le |\CodeAfter|) à
l'intersection du filet horizontal~$i$ et du filet vertical~$j$ avec la syntaxe
|(row-|$i$\verb+-|col-+$j$|)|.
@@ -3390,6 +3542,45 @@ l'intersection du filet horizontal~$i$ et du filet vertical~$j$ avec la syntaxe
\end{NiceMatrix}\]
+\subsection{Les nœuds correspondant aux commandes \textbackslash SubMatrix}
+
+\label{node-sub-matrix}
+
+La commande |\SubMatrix| disponible dans le |\CodeAfter| a été présentée
+p.~\pageref{sub-matrix}.
+
+\smallskip
+Si une commande |\SubMatrix| est utilisée avec la clé |name| sous la forme
+|name=|\textsl{\ttfamily MonNom}, trois nœuds PGF/Tikz sont créés avec les noms
+\textsl{\ttfamily MonNom}|-left|, \textsl{\ttfamily MonNom} et \textsl{\ttfamily
+ MonNom}|-right|.
+
+\smallskip
+Les nœuds \textsl{\ttfamily MonNom}|-left| et \textsl{\ttfamily MonNom}|-right| correspondent aux
+délimiteurs gauche et droit et le nœud \textsl{\ttfamily MonNom} correspond à la
+sous-matrice elle-même.
+
+\medskip
+Dans l'exemple suivant, on a surligné ces trois nœuds (la sous-matrice elle-même
+a été créée avec |\SubMatrix\{{2-2}{3-3}\}|).
+%
+\[\begin{pNiceMatrix}
+121 & 23 & 345 & 345\\
+45 & 346 & 863 & 444\\
+3462 & 38458 & 34 & 294 \\
+34 & 7 & 78 & 309 \\
+\CodeAfter
+\SubMatrix\{{2-2}{3-3}\}[name=A]
+\begin{tikzpicture}
+ [every node/.style = {blend mode = multiply,
+ inner sep = 0 pt}]
+\node [fit = (A),fill = red!15] {} ;
+\node [fit = (A-left),fill = blue!15] {} ;
+\node [fit = (A-right),fill = blue!15] {} ;
+\end{tikzpicture}
+\end{pNiceMatrix}\]
+
+
\section{API pour les développeurs}
L'extension \pkg{nicematrix} fournit deux variables internes mais publiques\footnote{Conformément aux conventions de LaTeX3,
@@ -3550,7 +3741,7 @@ est sans effet.
Par défaut, toutes les lignes diagonales\footnote{On parle des lignes créées par
|\Ddots| et non des lignes créées par une commande |\line| dans le
- |code-after|.} d'un même tableau sont «parallélisées». Cela signifie que la
+ |\CodeAfter|.} d'un même tableau sont «parallélisées». Cela signifie que la
première diagonale est tracée et que, ensuite, les autres lignes sont tracées
parallèlement à la première (par rotation autour de l'extrémité la plus à gauche
de la ligne). C'est pourquoi la position des instructions |\Ddots| dans un
@@ -3692,6 +3883,18 @@ environnements de l'extension \pkg{nicematrix} ne sont pas affectés).
L'extension \pkg{nicematrix} n'est pas parfaitement compatible avec l'extension \pkg{arydshln} (parce que cette
extension redéfinit de nombreuses commandes internes de \pkg{array}).
+Pour pouvoir utiliser \pkg{arydshln}, il faut, de toutes manières, au préalable,
+libérer la lettre «|:|» en choisissant une autre lettre pour les filets verticaux
+pointillés de \pkg{nicematrix} :
+
+\begin{Verbatim}
+\NiceMatrixOptions{letter-for-dotted-lines=;}
+\end{Verbatim}
+
+\bigskip
+L'extension \pkg{nicematrix} n'est pas compatible avec la classe \cls{aastex63}.
+Si vous souhaitez utiliser \pkg{nicematrix} with \cls{aastex63}, envoyez-moi un
+courrier électronique et j'essaierai de résoudre les incompatibilités.
\section{Exemples}
@@ -4087,7 +4290,7 @@ $\begin{pNiceArray}{cccc:c}
Pour mettre en évidence une case d'une matrice, il est possible de «dessiner»
cette case avec la clé |draw| de la commande |\Block| (c'est l'un des usages des
blocs mono-case\footnote{On rappelle que si le premier argument obligatoire de
-la commande |\Block| est laissé vide, le bloc est considéré comme mono-case}).
+la commande |\Block| est laissé vide, le bloc est considéré comme mono-case.}).
\label{exemple-CodeAfter}
@@ -4284,21 +4487,20 @@ moyens» au lieu des «nœuds normaux».
\medskip
On obtient la matrice suivante.
-\[\begin{pNiceArray}{ccc}[
- last-col,
- create-medium-nodes,
- code-after = {\begin{tikzpicture}[highlight/.style = {fill = red!15,
- blend mode = multiply,
- inner sep = 0pt,
- fit = #1},
- name suffix = -medium]
- \node [highlight = (1-1) (1-3)] {} ;
- \node [highlight = (2-1) (2-3)] {} ;
- \node [highlight = (3-1) (3-3)] {} ;
- \end{tikzpicture}}]
+\[\begin{pNiceArray}{ccc}[last-col,create-medium-nodes]
a & a + b & a + b + c & L_1 \\
a & a & a + b & L_2 \\
-a & a & a & L_3
+a & a & a & L_3 \\
+\CodeAfter
+\begin{tikzpicture}[highlight/.style = {fill = red!15,
+ blend mode = multiply,
+ inner sep = 0pt,
+ fit = #1},
+ name suffix = -medium]
+\node [highlight = (1-1) (1-3)] {} ;
+\node [highlight = (2-1) (2-3)] {} ;
+\node [highlight = (3-1) (3-3)] {} ;
+\end{tikzpicture}
\end{pNiceArray}\]
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index c6f1a06f31..3b7f4d278e 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -15,8 +15,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{5.9}
-\def\myfiledate{2021/01/08}
+\def\myfileversion{5.10}
+\def\myfiledate{2021/02/05}
%
%
%<*batchfile>
@@ -581,11 +581,11 @@ version 2005/12/01 or later.
% \end{NiceTabular}
% \end{center}
%
-% \colorbox{yellow!30}{New 5.7}\enskip As we can see on this example, it's
-% possible to fill the block by using the key |fill| and to draw the frame with
-% the key |draw|\footnote{If the key |draw| is used without value, the default
-% color the rules of the tabulars is used}. It's also possible to change the
-% width (thickness) of that rules with the key |line-width|.
+% As we can see on this example, it's possible to fill the block by using the
+% key |fill| and to draw the frame with the key |draw|\footnote{If the key
+% |draw| is used without value, the default color the rules of the tabulars is
+% used}. It's also possible to change the width (thickness) of that rules with
+% the key |line-width|.
%
% \subsection{The mono-column blocks}
%
@@ -666,7 +666,7 @@ version 2005/12/01 or later.
% \begin{BVerbatim}[baseline=c,boxwidth=10cm]
% \begin{NiceTabular}{cc}
% \toprule
-% Write & ~emphase#\Block[l]{}{year\\ of birth}@ \\
+% Writer & ~emphase#\Block[l]{}{year\\ of birth}@ \\
% \midrule
% Hugo & 1802 \\
% Balzac & 1799 \\
@@ -675,7 +675,7 @@ version 2005/12/01 or later.
% \end{BVerbatim}
% \begin{NiceTabular}{cc}
% \toprule
-% Write & \Block[l]{}{year\\ of birth} \\
+% Writer & \Block[l]{}{year\\ of birth} \\
% \midrule
% Hugo & 1802 \\
% Balzac & 1799 \\
@@ -1105,7 +1105,8 @@ version 2005/12/01 or later.
% \bigskip
% It's possible to change in \pkg{nicematrix} the letter used to specify a
% vertical dotted line with the option |letter-for-dotted-lines| available in
-% |\NiceMatrixOptions|.
+% |\NiceMatrixOptions|. Thus released, the letter ``|:|'' can be used otherwise
+% (for example by the package \pkg{arydshln}).
%
% \bigskip
% \emph{Remark} : In the package \pkg{array} (on which the package
@@ -1287,7 +1288,7 @@ version 2005/12/01 or later.
% tow colors (provided in second and third argument), beginning
% with the row whose number is given in first (mandatory) argument.
%
-% \colorbox{yellow!50}{\textbf{New 5.8}}\enskip In fact, the first (mandatory)
+% \colorbox{yellow!30}{New 5.8}\enskip In fact, the first (mandatory)
% argument is, more generally, a comma separated list of intervals describing
% the rows involved in the action of |\rowcolors| (an interval of the form
% $i$|-| describes in fact the interval of all the rows of the tabular,
@@ -1300,10 +1301,10 @@ version 2005/12/01 or later.
% optional argument in the first position corresponds to the colorimetric
% space). The available keys are |cols|, |restart| and |respect-blocks|.
% \begin{itemize}
-% \item \colorbox{yellow!50}{\textbf{New 5.8}}\enskip The key |cols| describes a
+% \item \colorbox{yellow!30}{New 5.8}\enskip The key |cols| describes a
% set of columns. The command |\rowcolors| will color only the cells of these
% columns. The value is a comma-separated list of intervals of the form $i$-$j$.
-% \item \colorbox{yellow!50}{\textbf{New 5.8}}\enskip With the key |restart|,
+% \item \colorbox{yellow!30}{New 5.8}\enskip With the key |restart|,
% each interval of rows (specified by the first mandatory argument) begins with
% the same color.\footnote{Otherwise, the color of a given row relies only upon the
% parity of its number.}
@@ -2126,7 +2127,7 @@ version 2005/12/01 or later.
% \subsection{The labels of the dotted lines}
%
% The commands |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Iddots| and |\Hdotsfor|
-% (and the command |\line| in the |code-after| which is described
+% (and the command |\line| in the |\CodeAfter| which is described
% p.~\pageref{line-in-code-after}) accept two optional arguments specified
% by the tokens |_| and |^| for labels positionned below and above the line. The
% arguments are composed in math mode with |\scriptstyle|.
@@ -2148,7 +2149,7 @@ version 2005/12/01 or later.
%
% \label{customization}
% The dotted lines drawn by |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Iddots|
-% and |\Hdotsfor| (and by the command |\line| in the |code-after| which is described
+% and |\Hdotsfor| (and by the command |\line| in the |\CodeAfter| which is described
% p.~\pageref{line-in-code-after}) may be customized by three options (specified
% between square brackets after the command):
% \begin{itemize}
@@ -2269,47 +2270,189 @@ version 2005/12/01 or later.
%
%
%
-% \section{The code-after}
+% \section{The \textbackslash CodeAfter}
%
% \label{code-after}
% The option |code-after| may be used to give some code that will be executed
% after the construction of the matrix.\footnote{There is also a key
% |code-before| described p.~\pageref{code-before}.}
%
-% A special command, called |\line|, is available to draw directly
-% dotted lines between nodes. It takes two arguments for the two cells to rely,
-% both of the form $i$-$j$ where is the number of row and $j$ is the number of
-% column. It may be used, for example, to draw a dotted line
-% between two adjacent cells. \label{line-in-code-after}
+% \medskip
+% For the legibility of the code, an alternative syntax is provided: it's
+% possible to give the instructions of the |\code-after| at the end of the
+% environment, after the keyword |\CodeAfter|.
+%
+% \medskip
+% Two special commands are available in the |\CodeAfter|: |line| and
+% |\SubMatrix|.
+%
+% \subsection{The command \textbackslash line in the \textbackslash CodeAfter}
+%
+% The command |\line|draws directly dotted lines between nodes. It takes two
+% arguments for the two cells to rely, both of the form $i$-$j$ where is the
+% number of row and $j$ is the number of column. It may be used, for example, to
+% draw a dotted line between two adjacent cells. \label{line-in-code-after}
%
% \medskip
% \begin{BVerbatim}[baseline=c,boxwidth=11cm]
% \NiceMatrixOptions{xdots/shorten = 0.6 em}
-% \begin{pNiceMatrix}[~emphase#code-after=\line{2-2}{3-3}@]
+% \begin{pNiceMatrix}
% I & 0 & \Cdots &0 \\
% 0 & I & \Ddots &\Vdots\\
% \Vdots &\Ddots & I &0 \\
% 0 &\Cdots & 0 &I
+% ~emphase#\CodeAfter \line{2-2}{3-3}@
% \end{pNiceMatrix}
% \end{BVerbatim}
% \begin{scope}
% \NiceMatrixOptions{xdots/shorten = 0.6 em}
-% $\begin{pNiceMatrix}[code-after=\line{2-2}{3-3}]
+% $\begin{pNiceMatrix}
% I & 0 & \Cdots &0 \\
% 0 & I & \Ddots &\Vdots\\
% \Vdots &\Ddots & I &0 \\
% 0 &\Cdots & 0 &I
+% \CodeAfter \line{2-2}{3-3}
% \end{pNiceMatrix}$
% \end{scope}
%
+%
+% \subsection{The command \textbackslash SubMatrix in the \textbackslash CodeAfter}
+%
+% \label{sub-matrix}
+%
+% \colorbox{yellow!50}{\textbf{New 5.10}}\enskip
+% The command |\SubMatrix| provides a way to put delimiters on an portion
+% of the array considered as a submatrix. The command |\SubMatrix| takes in five
+% arguments:
+% \begin{itemize}
+% \item the first argument is the left delimiter, which may be any extensible delimiter
+% provided by LaTeX : |(|, |[|, |\{|, |\langle|, |\lgroup|, |\lfloor|, etc. but also
+% the null delimiter |.|;
+% \item the second argument is the upper-left corner of the submatrix with the
+% syntax $i$|-|$j$ where $i$ the number of row and $j$ the number of column;
+% \item the third argument is the lower-right corner with the same syntax;
+% \item the fourth argument is the right delimiter;
+% \item the last argument, which is optional, is a list of key-value pairs.
+% \end{itemize}
+%
+% One should remark that the command |\SubMatrix| draws the delimiters after the
+% construction of the array: no space is inserted by the command |\SubMatrix|
+% itself. That's why, in the following example, we have used the key |margin|
+% and you have added by hand some space between the third and fourth column with
+% |@{\hspace{1.5em}}| in the preamble of the array.
+%
% \medskip
-% For the legibility of the code, an alternative syntax is provided: it's
-% possible to give the instructions of the |\code-after| at the end of the
-% environment, after the keyword |\CodeAfter| (for an example, cf.
-% p.~\pageref{example-CodeAfter}).
+% \begin{scope}
+% \fvset{commandchars=\~\#\+}%
+% \begin{BVerbatim}[boxwidth=11cm,baseline=c]
+% \[\begin{NiceArray}{ccc~emphase#@{\hspace{1.5em}}+c}%
+% [cell-space-limits=2pt,~emphase#margin+]
+% 1 & 1 & 1 & x \\
+% \dfrac{1}{4} & \dfrac{1}{2} & \dfrac{1}{4} & y \\
+% 1 & 2 & 3 & z
+% \CodeAfter
+% ~emphase#\SubMatrix({1-1}{3-3})+
+% ~emphase#\SubMatrix({1-4}{3-4})+
+% \end{NiceArray}\]
+% \end{BVerbatim}
+% \end{scope}
+% $\begin{NiceArray}{ccc@{\hspace{1.5em}}c}[cell-space-limits=2pt,margin]
+% 1 & 1 & 1 & x \\
+% \dfrac{1}{4} & \dfrac{1}{2} & \dfrac{1}{4} & y \\
+% 1 & 2 & 3 & z
+% \CodeAfter
+% \SubMatrix({1-1}{3-3})
+% \SubMatrix({1-4}{3-4})
+% \end{NiceArray}$
%
+% \bigskip
+% The options of the command |\SubMatrix| are as follows:
+% \begin{itemize}
+% \item |left-xshift| and |right-shift| shift horizontally the delimiters (there
+% exists also the key |xshift| which fixes both parameters);
+% \item |extra-height| adds a quantity to the total height of the delimiters
+% (height |\ht| + depth |\dp|);
+% \item |delimiters-color| fixes the color of the delimiters (also
+% available in |\NiceMatrixOptions|, in the environments with delimiters and as
+% option of the command |\CodeAfter|);
+% \item |slim| is a boolean key: when that key is in force, the horizontal
+% position of the delimiters is computed by using only the contents of the cells
+% of the submatrix whereas, in the general case, the position is computed by
+% taking into account the cells of the whole columns implied in the submatrix
+% (see example below).
+% \end{itemize}
%
+% These keys are also available in |\NiceMatrixOptions|, at the level of the
+% environments of \pkg{nicematrix} or as option of the command |\CodeAfter| with
+% the prefix |sub-matrix| which means that their names are therefore
+% |sub-matrix/left-xshift|, |sub-matrix/right-xshift|, |sub-matrix/xshift|, etc.
+%
%
+% \bigskip
+% \begin{scope}
+% \fvset{commandchars=\~\#\!}%
+% \begin{BVerbatim}[baseline=c,boxwidth=11cm]
+% $\begin{NiceArray}{cc@{\hspace{5mm}}l}%
+% [cell-space-limits=2pt]
+% & & \frac12 \\
+% & & \frac14 \\[1mm]
+% a & b & \frac12a+\frac14b \\
+% c & d & \frac12c+\frac14d \\
+% \CodeAfter
+% \SubMatrix({1-3}{2-3})
+% \SubMatrix({3-1}{4-2})
+% \SubMatrix({3-3}{4-3})
+% \end{NiceArray}$
+% \end{BVerbatim}
+% \end{scope}
+% $\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
+% & & \frac12 \\
+% & & \frac14 \\[1mm]
+% a & b & \frac12a+\frac14b \\
+% c & d & \frac12c+\frac14d \\
+% \CodeAfter
+% \SubMatrix({1-3}{2-3})
+% \SubMatrix({3-1}{4-2})
+% \SubMatrix({3-3}{4-3})
+% \end{NiceArray}$
+%
+% \medskip
+% Here is the same example with the key |slim| used for one of the submatrices.
+%
+% \medskip
+% \begin{scope}
+% \fvset{commandchars=\~\#\!}%
+% \begin{BVerbatim}[baseline=c,boxwidth=11cm]
+% $\begin{NiceArray}{cc@{\hspace{5mm}}l}%
+% [cell-space-limits=2pt]
+% & & \frac12 \\
+% & & \frac14 \\[1mm]
+% a & b & \frac12a+\frac14b \\
+% c & d & \frac12c+\frac14d \\
+% \CodeAfter
+% \SubMatrix({1-3}{2-3})[~emphase#slim!]
+% \SubMatrix({3-1}{4-2})
+% \SubMatrix({3-3}{4-3})
+% \end{NiceArray}$
+% \end{BVerbatim}
+% \end{scope}
+% $\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
+% & & \frac12 \\
+% & & \frac14 \\[1mm]
+% a & b & \frac12a+\frac14b \\
+% c & d & \frac12c+\frac14d \\
+% \CodeAfter
+% \SubMatrix({1-3}{2-3})[slim]
+% \SubMatrix({3-1}{4-2})
+% \SubMatrix({3-3}{4-3})
+% \end{NiceArray}$
+%
+%
+% \bigskip
+% There is also a key |name| which gives a name to the submatrix created by
+% |\SubMatrix|. That name is used to created PGF/Tiks nodes: cf
+% p.~\pageref{node-sub-matrix}.
+%
% \section{The notes in the tabulars}
%
% \label{s:notes}
@@ -2812,7 +2955,7 @@ version 2005/12/01 or later.
% exists) has also the number~$0$.}. Of course, the user must not change the
% value of these counters which are used internally by \pkg{nicematrix}.
%
-% In the |code-before| (cf. p. \pageref{code-before}) and in the |code-after|
+% In the |code-before| (cf. p. \pageref{code-before}) and in the |\CodeAfter|
% (cf. p. \pageref{code-after}), |iRow| represents the total number of rows
% (excepted the potential exterior rows) and |jCol| represents the total number
% of columns (excepted the potential exterior columns).
@@ -3019,7 +3162,7 @@ version 2005/12/01 or later.
% Don't forget the options |remember picture| and |overlay|.
%
% \bigskip
-% In the |code-after|, the things are easier : one must refer to the nodes with
+% In the |\CodeAfter|, the things are easier : one must refer to the nodes with
% the form $i$-$j$ (we don't have to indicate the environment which is of
% course the current environment).
%
@@ -3281,7 +3424,7 @@ version 2005/12/01 or later.
% The package \pkg{nicematrix} creates a PGF/Tikz node indicating the potential
% position of each horizontal rule (with the names |row-|$i$) and each vertical
% rule (with the names |col-|$j$), as described in the following figure. These
-% nodes are available in the |code-before| and the |code-after|.
+% nodes are available in the |code-before| and the |\CodeAfter|.
% \begin{center}
% \begin{NiceTabular}{ccc}[hvlines,rules/width=1pt,rules/color=gray]
% rose & tulipe & lys \\
@@ -3306,7 +3449,7 @@ version 2005/12/01 or later.
%
% \bigskip
% If we use Tikz (we remind that \pkg{nicematrix} does not load Tikz by
-% default), we can access (in the |code-before| and the |code-after|) to the
+% default), we can access (in the |code-before| and the |\CodeAfter|) to the
% intersection of the horizontal rule~$i$ and the vertical rule~$j$ with the
% syntax |(row-|$i$\verb+-|col-+$j$|)|.
%
@@ -3350,6 +3493,44 @@ version 2005/12/01 or later.
% 1 & 8 & 28 & 56 & 70 & 56 & 28 & 8 & 1
% \end{NiceMatrix}\]
%
+% \subsection{The nodes corresponding to the command \textbackslash SubMatrix}
+%
+% \label{node-sub-matrix}
+%
+% The command |\SubMatrix| available in the |\CodeAfter| has been described
+% p.~\pageref{sub-matrix}.
+%
+% \smallskip
+% If a command |\SubMatrix| has been used with the key |name| with an expression
+% such as |name=|\textsl{\ttfamily MyName} three PGF/Tikz nodes are created
+% with the names \textsl{\ttfamily MyName}|-left|, \textsl{\ttfamily MyName} and
+% \textsl{\ttfamily MyName}|-right|.
+%
+% \smallskip
+% The nodes \textsl{\ttfamily MyName}|-left| and \textsl{\ttfamily
+% MyName}|-right| correspond to the delimiters left and right and the node
+% \textsl{\ttfamily MyName} correspond to the submatrix itself.
+%
+% \medskip
+% In the following example, we have highlighted these nodes (the submatrix itself has
+% been created with |\SubMatrix\{{2-2}{3-3}\}|).
+%
+% \[\begin{pNiceMatrix}
+% 121 & 23 & 345 & 345\\
+% 45 & 346 & 863 & 444\\
+% 3462 & 38458 & 34 & 294 \\
+% 34 & 7 & 78 & 309 \\
+% \CodeAfter
+% \SubMatrix\{{2-2}{3-3}\}[name=A]
+% \begin{tikzpicture}
+% [every node/.style = {blend mode = multiply,
+% inner sep = 0 pt}]
+% \node [fit = (A),fill = red!15] {} ;
+% \node [fit = (A-left),fill = blue!15] {} ;
+% \node [fit = (A-right),fill = blue!15] {} ;
+% \end{tikzpicture}
+% \end{pNiceMatrix}\]
+%
% \section{API for the developpers}
%
% The package \pkg{nicematrix} provides two variables which are internal but
@@ -3643,6 +3824,17 @@ version 2005/12/01 or later.
% The package \pkg{nicematrix} is not fully compatible with the package
% \pkg{arydshln} (because this package redefines many internal of \pkg{array}).
%
+% Anyway, in order to use \pkg{arydshln}, one must first free the letter ``|:|''
+% by giving a new letter for the vertical dotted rules of \pkg{nicematrix}:
+%
+% \begin{Verbatim}
+% \NiceMatrixOptions{letter-for-dotted-lines=;}
+% \end{Verbatim}
+%
+% \bigskip
+% As of now, the package \pkg{nicematrix} is not compatible with
+% \cls{aastex63}. If you want to use \pkg{nicematrix} with \cls{aastex63}, send
+% me an email and I will try to solve the incompatibilies.
%
% \section{Examples}
%
@@ -4459,7 +4651,6 @@ version 2005/12/01 or later.
% \begin{macrocode}
\RequirePackage { array }
\RequirePackage { amsmath }
-\RequirePackage { xparse }
% \end{macrocode}
%
% \bigskip
@@ -4482,6 +4673,8 @@ version 2005/12/01 or later.
% \bigskip
% \subsection*{Technical definitions}
%
+%
+% \medskip
% \begin{macrocode}
\bool_new:N \c_@@_in_preamble_bool
\bool_set_true:N \c_@@_in_preamble_bool
@@ -4489,11 +4682,15 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
+\bool_new:N \c_@@_arydshln_loaded_bool
\bool_new:N \c_@@_booktabs_loaded_bool
\bool_new:N \c_@@_enumitem_loaded_bool
\bool_new:N \c_@@_tikz_loaded_bool
\AtBeginDocument
{
+ \@ifpackageloaded { arydshln }
+ { \bool_set_true:N \c_@@_arydshln_loaded_bool }
+ { }
\@ifpackageloaded { booktabs }
{ \bool_set_true:N \c_@@_booktabs_loaded_bool }
{ }
@@ -4526,9 +4723,11 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-% We test whether the current class is \cls{revtex4-1} or \cls{revtex4-2}
-% because these classes redefines |\array| (of \pkg{array}) in a way
-% incompatible with our programmation.
+% We test whether the current class is \cls{revtex4-1} (deprecated) or
+% \cls{revtex4-2} because these classes redefines |\array| (of \pkg{array}) in a
+% way incompatible with our programmation. As of january 2021, the current
+% version \cls{revtex4-2} is 4.2e (compatible with \pkg{booktabs}).
+%
% \begin{macrocode}
\bool_new:N \c_@@_revtex_bool
\@ifclassloaded { revtex4-1 }
@@ -4538,8 +4737,17 @@ version 2005/12/01 or later.
{ \bool_set_true:N \c_@@_revtex_bool }
{ }
% \end{macrocode}
+% Maybe one of the previous classes will be loaded inside another class... We
+% try to detect that situation.
+% \begin{macrocode}
+\cs_if_exist:NT \rvtx@ifformat@geq { \bool_set_true:N \c_@@_revtex_bool }
+% \end{macrocode}
%
%
+% \begin{macrocode}
+\cs_generate_variant:Nn \tl_if_single_token_p:n { V }
+% \end{macrocode}
+%
% \bigskip
% We define a command |\iddots| similar to |\ddots| ($\ddots$) but with dots
% going forward ($\iddots$). We use |\ProvideDocumentCommand| and so, if the
@@ -5185,8 +5393,8 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% \pkg{expl3} provides scratch dimension |\l_tmpa_dim| and |\l_tmpd_dim|. We
-% creates two other in the same spirit (if they don't exist yet : that's why we
+% \pkg{expl3} provides scratch dimensions |\l_tmpa_dim| and |\l_tmpb_dim|. We
+% creates two other in the same spirit (if they don't exist yet: that's why we
% use |\dim_zero_new:N|).
% \begin{macrocode}
\dim_zero_new:N \l_tmpc_dim
@@ -5195,7 +5403,7 @@ version 2005/12/01 or later.
%
% \bigskip
% Some cells will be declared as ``empty'' (for example a cell with an
-% instrution |\Cdots|).
+% instruction |\Cdots|).
% \begin{macrocode}
\bool_new:N \g_@@_empty_cell_bool
% \end{macrocode}
@@ -5263,6 +5471,14 @@ version 2005/12/01 or later.
%
%
% \medskip
+% The list of the names of the potential |\SubMatrix| in the |code-after| of an
+% environment. Unfortunately, that list has to be global (we have to use it
+% inside the group for the options of a given |\SubMatrix|).
+% \begin{macrocode}
+\seq_new:N \g_@@_submatrix_names_seq
+% \end{macrocode}
+%
+% \medskip
% We are able to determine the number of columns specified in the preamble (for
% the environments with explicit preamble, of course and without the potential
% exterior columns).
@@ -5702,8 +5918,10 @@ version 2005/12/01 or later.
% initial value is 0.45~em but it will be changed if the option |small| is used.
% \begin{macrocode}
\dim_new:N \l_@@_inter_dots_dim
-\dim_set:Nn \l_@@_inter_dots_dim { 0.45 em }
+\AtBeginDocument { \dim_set:Nn \l_@@_inter_dots_dim { 0.45 em } }
% \end{macrocode}
+% The |\AtBeginDocument| is only a security in case \cls{revtex4-1} is used
+% (even though it is obsolete).
%
% \bigskip
% The following dimension is the minimal distance between a node (in fact an
@@ -5712,8 +5930,10 @@ version 2005/12/01 or later.
% distance may vary a little).
% \begin{macrocode}
\dim_new:N \l_@@_xdots_shorten_dim
-\dim_set:Nn \l_@@_xdots_shorten_dim { 0.3 em }
+\AtBeginDocument { \dim_set:Nn \l_@@_xdots_shorten_dim { 0.3 em } }
% \end{macrocode}
+% The |\AtBeginDocument| is only a security in case \cls{revtex4-1} is used
+% (even though it is obsolete).
%
% \bigskip
% The following dimension is the radius of the dots for the dotted lines (when
@@ -5721,8 +5941,11 @@ version 2005/12/01 or later.
% value is 0.53~pt but it will be changed if the option |small| is used.
% \begin{macrocode}
\dim_new:N \l_@@_radius_dim
-\dim_set:Nn \l_@@_radius_dim { 0.53 pt }
+\AtBeginDocument { \dim_set:Nn \l_@@_radius_dim { 0.53 pt } }
% \end{macrocode}
+% The |\AtBeginDocument| is only a security in case \cls{revtex4-1} is used
+% (even if it is obsolete).
+%
%
% \bigskip
% The token list |\l_@@_xdots_line_style_tl| corresponds to the option |tikz| of the
@@ -5795,8 +6018,10 @@ version 2005/12/01 or later.
%
% \begin{macrocode}
\dim_new:N \l_@@_notes_above_space_dim
-\dim_set:Nn \l_@@_notes_above_space_dim { 1 mm }
+\AtBeginDocument { \dim_set:Nn \l_@@_notes_above_space_dim { 1 mm } }
% \end{macrocode}
+% The |\AtBeginDocument| is only a security in case \cls{revtex4-1} is used
+% (even if it is obsolete).
%
% \bigskip
% The flag |\l_@@_nullify_dots_bool| corresponds to the option |nullify-dots|.
@@ -5955,10 +6180,10 @@ version 2005/12/01 or later.
cell-space-top-limit .value_required:n = true ,
cell-space-bottom-limit .dim_set:N = \l_@@_cell_space_bottom_limit_dim ,
cell-space-bottom-limit .value_required:n = true ,
- cell-space-limits .code:n =
+ cell-space-limits .meta:n =
{
- \dim_set:Nn \l_@@_cell_space_bottom_limit_dim { #1 }
- \dim_set:Nn \l_@@_cell_space_top_limit_dim { #1 }
+ cell-space-top-limit = #1 ,
+ cell-space-bottom-limit = #1 ,
} ,
cell-spaces-limits .value_required:n = true ,
xdots .code:n = \keys_set:nn { NiceMatrix / xdots } { #1 } ,
@@ -6143,6 +6368,8 @@ version 2005/12/01 or later.
NiceMatrixOptions / xdots .inherit:n = NiceMatrix / xdots ,
NiceMatrixOptions / rules .inherit:n = NiceMatrix / rules ,
NiceMatrixOptions / notes .inherit:n = NiceMatrix / notes ,
+ NiceMatrixOptions / sub-matrix .inherit:n = NiceMatrix / sub-matrix ,
+ CodeAfter / xdots .inherit:n = NiceMatrix / xdots ,
NiceMatrix .inherit:n =
{
NiceMatrix / Global ,
@@ -6200,7 +6427,12 @@ version 2005/12/01 or later.
% \end{macrocode}
% The key |transparent| is now considered as obsolete (because its name is ambiguous).
% \begin{macrocode}
- transparent .meta:n = { renew-dots , renew-matrix } ,
+ transparent .code:n =
+ {
+ \@@_renew_matrix:
+ \bool_set_true:N \l_@@_renew_dots_bool
+ \@@_error:n { Key~transparent }
+ } ,
transparent .value_forbidden:n = true,
% \end{macrocode}
%
@@ -6251,6 +6483,9 @@ version 2005/12/01 or later.
letter-for-dotted-lines .value_required:n = true ,
notes .code:n = \keys_set:nn { NiceMatrix / notes } { #1 } ,
notes .value_required:n = true ,
+ sub-matrix .code:n =
+ \keys_set:nn { NiceMatrix / sub-matrix } { #1 } ,
+ sub-matrix .value_required:n = true ,
unknown .code:n = \@@_error:n { Unknown~key~for~NiceMatrixOptions }
}
% \end{macrocode}
@@ -6953,11 +7188,11 @@ version 2005/12/01 or later.
% |\Cdots|, etc. give the same spacing (except when the option |nullify-dots| is
% used).
% \begin{macrocode}
- \cs_set_eq:NN \@@_old_ldots \ldots
- \cs_set_eq:NN \@@_old_cdots \cdots
- \cs_set_eq:NN \@@_old_vdots \vdots
- \cs_set_eq:NN \@@_old_ddots \ddots
- \cs_set_eq:NN \@@_old_iddots \iddots
+ \cs_set_eq:NN \@@_old_ldots \ldots
+ \cs_set_eq:NN \@@_old_cdots \cdots
+ \cs_set_eq:NN \@@_old_vdots \vdots
+ \cs_set_eq:NN \@@_old_ddots \ddots
+ \cs_set_eq:NN \@@_old_iddots \iddots
\bool_if:NTF \l_@@_standard_cline_bool
{ \cs_set_eq:NN \cline \@@_standard_cline }
{ \cs_set_eq:NN \cline \@@_cline }
@@ -7065,8 +7300,19 @@ version 2005/12/01 or later.
% a mathematical formula.
% \begin{macrocode}
\bgroup
+% \end{macrocode}
+%
+% \bigskip
+% \begin{macrocode}
\tl_set:Nn \l_@@_left_delim_tl { #1 }
\tl_set:Nn \l_@@_right_delim_tl { #2 }
+ \tl_gset:Nn \g_@@_preamble_tl { #4 }
+% \end{macrocode}
+%
+%
+% \bigskip
+%
+% \begin{macrocode}
\int_gzero:N \g_@@_block_box_int
\dim_zero:N \g_@@_width_last_col_dim
\dim_zero:N \g_@@_width_first_col_dim
@@ -7321,7 +7567,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \medskip
-% We compute the width of the two delimiters.
+% We compute the width of both delimiters.
% \begin{macrocode}
\dim_zero_new:N \l_@@_left_delim_dim
\dim_zero_new:N \l_@@_right_delim_dim
@@ -7334,9 +7580,9 @@ version 2005/12/01 or later.
% \end{macrocode}
% The command |\bBigg@| is a command of \pkg{amsmath}.
% \begin{macrocode}
- \hbox_set:Nn \l_tmpa_box { $ \bBigg@ 5 #1 $ }
+ \hbox_set:Nn \l_tmpa_box { $ \bBigg@ 5 \l_@@_left_delim_tl $ }
\dim_set:Nn \l_@@_left_delim_dim { \box_wd:N \l_tmpa_box }
- \hbox_set:Nn \l_tmpa_box { $ \bBigg@ 5 #2 $ }
+ \hbox_set:Nn \l_tmpa_box { $ \bBigg@ 5 \l_@@_right_delim_tl $ }
\dim_set:Nn \l_@@_right_delim_dim { \box_wd:N \l_tmpa_box }
}
% \end{macrocode}
@@ -7360,7 +7606,7 @@ version 2005/12/01 or later.
% \bigskip
% The preamble will be constructed in |\g_@@_preamble_tl|.
% \begin{macrocode}
- \@@_construct_preamble:n { #4 }
+ \@@_construct_preamble:
% \end{macrocode}
%
% Now, the preamble is constructed in |\g_@@_preamble_tl|
@@ -7505,7 +7751,7 @@ version 2005/12/01 or later.
\c_math_toggle_token
\tl_if_empty:NF \l_@@_delimiters_color_tl
{ \color { \l_@@_delimiters_color_tl } }
- \left #1
+ \exp_after:wN \left \l_@@_left_delim_tl
\vcenter
{
% \end{macrocode}
@@ -7513,7 +7759,6 @@ version 2005/12/01 or later.
% height in |\l_tmpa_dim|). The |\hbox:n| (or |\hbox|) is necessary here.
% \begin{macrocode}
\skip_vertical:N -\l_tmpa_dim
- \skip_vertical:N -\arrayrulewidth
\hbox
{
\bool_if:NTF \l_@@_NiceTabular_bool
@@ -7529,9 +7774,8 @@ version 2005/12/01 or later.
% height in |\l_tmpb_dim|).
% \begin{macrocode}
\skip_vertical:N -\l_tmpb_dim
- \skip_vertical:N \arrayrulewidth
}
- \right #2
+ \exp_after:wN \right \l_@@_right_delim_tl
\c_math_toggle_token
}
% \end{macrocode}
@@ -7583,12 +7827,11 @@ version 2005/12/01 or later.
% The transformation of the preamble is an operation in several steps.
%
% \bigskip
-% The argument of |\@@_construct_preamble:n| is the preamble as given by the
-% final user to the environement |{NiceTabular}| (or a variant). The preamble
-% will be constructed in |\g_@@_preamble_tl|.
-%
+% The preamble given by the final use is in |\g_@@_preamble_tl| and the modified
+% version will be stored in |\g_@@_preamble_tl| also.
+%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_construct_preamble:n #1
+\cs_new_protected:Npn \@@_construct_preamble:
{
% \end{macrocode}
% First, we will do an ``expansion'' of the preamble with the tools of the
@@ -7616,8 +7859,7 @@ version 2005/12/01 or later.
% (excepted the treatment on both sides of the preamble which will be done at
% the end).
% \begin{macrocode}
- \bool_if:NTF \l_@@_Matrix_bool
- { \tl_gset:Nn \g_@@_preamble_tl { #1 } }
+ \bool_if:NF \l_@@_Matrix_bool
{
\@@_newcolumntype w [ 2 ] { \@@_w: { ##1 } { ##2 } }
\@@_newcolumntype W [ 2 ] { \@@_W: { ##1 } { ##2 } }
@@ -7626,7 +7868,7 @@ version 2005/12/01 or later.
% First, we have to store our preamble in the token register |\@temptokena|
% (those ``token registers'' are not supported by \pkg{expl3}).
% \begin{macrocode}
- \@temptokena { #1 }
+ \exp_args:NV \@temptokena \g_@@_preamble_tl
% \end{macrocode}
% Initialisation of a flag used by \pkg{array} to detect the end of the expansion.
% \begin{macrocode}
@@ -7638,6 +7880,7 @@ version 2005/12/01 or later.
\@whilesw \if@tempswa \fi { \@tempswafalse \the \NC@list }
% \end{macrocode}
%
+%
% \bigskip
% Now, we have to ``patch'' that preamble by transforming some columns.
% We will insert in the TeX flow the preamble in its actual form (that is to say
@@ -7656,7 +7899,7 @@ version 2005/12/01 or later.
{ \tl_gclear:N \g_@@_preamble_tl }
% \end{macrocode}
% The counter |\l_tmpa_int| will count the number of consecutive occurrences
-% of the symbole \verb+|+.
+% of the symbol \verb+|+.
% \begin{macrocode}
\int_zero:N \l_tmpa_int
% \end{macrocode}
@@ -7747,15 +7990,30 @@ version 2005/12/01 or later.
\@@_w: { \@@_patch_preamble_v:nnnn { } #1 }
\@@_W: { \@@_patch_preamble_v:nnnn { \cs_set_eq:NN \hss \hfil } #1 }
\@@_true_c: { \@@_patch_preamble_vi:n #1 }
- C { \@@_error:nn { old~column~type } C }
- L { \@@_error:nn { old~column~type } L }
- R { \@@_error:nn { old~column~type } R }
+ ( { \@@_patch_preamble_vii:n #1 }
+ [ { \@@_patch_preamble_vii:n #1 }
+ \{ { \@@_patch_preamble_vii:n #1 }
+ ) { \@@_patch_preamble_viii:n #1 }
+ ] { \@@_patch_preamble_viii:n #1 }
+ \} { \@@_patch_preamble_viii:n #1 }
+ C { \@@_error:nn { old~column~type } #1 }
+ L { \@@_error:nn { old~column~type } #1 }
+ R { \@@_error:nn { old~column~type } #1 }
\q_stop { }
}
{
\str_if_eq:VnTF \l_@@_letter_for_dotted_lines_str { #1 }
- { \@@_patch_preamble_vii:n #1 }
- { \@@_fatal:nn { unknown~column~type } { #1 } }
+ { \@@_patch_preamble_xi:n #1 }
+ {
+ \bool_lazy_and:nnTF
+ { \str_if_eq_p:nn { : } { #1 } }
+ \c_@@_arydshln_loaded_bool
+ {
+ \tl_gput_right:Nn \g_@@_preamble_tl { : }
+ \@@_patch_preamble:n
+ }
+ { \@@_fatal:nn { unknown~column~type } { #1 } }
+ }
}
}
% \end{macrocode}
@@ -7772,14 +8030,13 @@ version 2005/12/01 or later.
< \@@_end_Cell:
}
% \end{macrocode}
-% We increment the counter of columns.
+%
+% We increment the counter of columns and then we test for the presence of a |<|.
% \begin{macrocode}
\int_gincr:N \c@jCol
- \@@_patch_preamble_viii:n
+ \@@_patch_preamble_x:n
}
% \end{macrocode}
-%
-%
%
% \medskip
% For |>|, |!| and |@|
@@ -7852,10 +8109,10 @@ version 2005/12/01 or later.
< { \box_use:N \@arstrutbox \end { minipage } \@@_end_Cell: }
}
% \end{macrocode}
-% We increment the counter of columns.
+% We increment the counter of columns, and then we test for the presence of a |<|.
% \begin{macrocode}
\int_gincr:N \c@jCol
- \@@_patch_preamble_viii:n
+ \@@_patch_preamble_x:n
}
% \end{macrocode}
%
@@ -7882,10 +8139,10 @@ version 2005/12/01 or later.
}
}
% \end{macrocode}
-% We increment the counter of columns.
+% We increment the counter of columns and then we test for the presence of a |<|.
% \begin{macrocode}
\int_gincr:N \c@jCol
- \@@_patch_preamble_viii:n
+ \@@_patch_preamble_x:n
}
% \end{macrocode}
%
@@ -7897,15 +8154,67 @@ version 2005/12/01 or later.
{
\tl_gput_right:Nn \g_@@_preamble_tl { c }
% \end{macrocode}
-% We increment the counter of columns.
+% We increment the counter of columns and then we test for the presence of a |<|.
% \begin{macrocode}
\int_gincr:N \c@jCol
- \@@_patch_preamble_viii:n
+ \@@_patch_preamble_x:n
+ }
+% \end{macrocode}
+%
+% \medskip
+% For |(|, |[| and |\{|.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_vii:n #1
+ {
+ \bool_if:NT \l_@@_small_bool
+ { \@@_fatal:n { Delimiter~with~small } }
+% \end{macrocode}
+% If we are before the column 1, we reserve space for the left delimiter.
+% \begin{macrocode}
+ \int_compare:nNnT \c@jCol = \c_zero_int
+ { \tl_gput_right:Nx \g_@@_preamble_tl { ! { \enskip } } }
+ \tl_gput_right:Nx \g_@@_internal_code_after_tl
+ { \@@_delimiter:nnn #1 { \@@_succ:n \c@jCol } \c_true_bool }
+ \@@_patch_preamble:n
+ }
+% \end{macrocode}
+%
+% \bigskip
+% For |)|, |]| and |\}|.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_viii:n #1
+ {
+ \bool_if:NT \l_@@_small_bool
+ { \@@_fatal:n { Delimiter~with~small } }
+ \tl_gput_right:Nx \g_@@_internal_code_after_tl
+ { \@@_delimiter:nnn #1 { \int_use:N \c@jCol } \c_false_bool }
+% \end{macrocode}
+% After this closing delimiter, we have to test whether there is a opening
+% delimiter (we consider that there can't be a second closing delimiter) in
+% order to add an horizontal space (equal to 0.5 em).
+% \begin{macrocode}
+ \@@_patch_preamble_viii_i:n
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_viii_i:n #1
+ {
+ \bool_lazy_any:nT
+ {
+ { \str_if_eq_p:nn { #1 } ( }
+ { \str_if_eq_p:nn { #1 } [ }
+ { \str_if_eq_p:nn { #1 } \{ }
+ { \str_if_eq_p:nn { #1 } \q_stop }
+ }
+ { \tl_gput_right:Nn \g_@@_preamble_tl { ! { \enskip } } }
+ \@@_patch_preamble:n #1
}
% \end{macrocode}
%
+%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_patch_preamble_vii:n #1
+\cs_new_protected:Npn \@@_patch_preamble_xi:n #1
{
\tl_gput_right:Nn \g_@@_preamble_tl
{ ! { \skip_horizontal:N 2\l_@@_radius_dim } }
@@ -7923,7 +8232,7 @@ version 2005/12/01 or later.
% |<{..}| because, after those potential |<{...}|, we have to insert
% |!{\skip_horizontal:N ...}| when the key |vlines| is used.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_patch_preamble_viii:n #1
+\cs_new_protected:Npn \@@_patch_preamble_x:n #1
{
\str_if_eq:nnTF { #1 } { < }
\@@_patch_preamble_ix:n
@@ -7942,10 +8251,11 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_patch_preamble_ix:n #1
{
\tl_gput_right:Nn \g_@@_preamble_tl { < { #1 } }
- \@@_patch_preamble_viii:n
+ \@@_patch_preamble_x:n
}
% \end{macrocode}
%
+%
%
% \bigskip
% The command |\@@_put_box_in_flow:| puts the box |\l_tmpa_box| (which contains
@@ -8105,7 +8415,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
{ \CT@arc@ \hrule height \heavyrulewidth }
}
- { \@@_error:n { bottomule~without~booktabs } }
+ { \@@_error:n { bottomrule~without~booktabs } }
}
\l_@@_notes_code_after_tl
\seq_gclear:N \g_@@_tabularnotes_seq
@@ -8315,7 +8625,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_light_syntax_i #1\CodeAfter #2\q_stop
{
- \tl_gput_right:Nn \g_nicematrix_code_after_tl { #2 }
+ \tl_gput_right:Nn \g_nicematrix_code_after_tl { #2 }
% \end{macrocode}
% The body of the array, which is stored in the argument |#1|, is now
% splitted into items (and \emph{not} tokens).
@@ -9068,6 +9378,7 @@ version 2005/12/01 or later.
}
}
\cs_set_eq:NN \line \@@_line
+ \cs_set_eq:NN \SubMatrix \@@_SubMatrix
% \end{macrocode}
% When |light-syntax| is used, we insert systematically a |\CodeAfter| in the
% flow. Thus, it's possible to have two instructions |\CodeAfter| and the second
@@ -9076,9 +9387,18 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_set_eq:NN \CodeAfter \prg_do_nothing:
% \end{macrocode}
-% And here's the |code-after|:
+%
+% We clear the list of the names of the potential |\SubMatrix| that will appear
+% in the |code-after| (unfortunately, that list has to be global).
% \begin{macrocode}
- \g_nicematrix_code_after_tl
+ \seq_gclear:N \g_@@_submatrix_names_seq
+% \end{macrocode}
+% And here's the |code-after|. Since the |code-after| may begin with an
+% ``argument'' between square brackets of the options, we extract and treat that
+% potential ``argument'' with the command |\@@_CodeAfter_keys:|.
+% \begin{macrocode}
+ \exp_last_unbraced:NV \@@_CodeAfter_keys: \g_nicematrix_code_after_tl
+ \scan_stop:
\tl_gclear:N \g_nicematrix_code_after_tl
\group_end:
% \end{macrocode}
@@ -9128,6 +9448,15 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \bigskip
+% The following command will extract the potential options (between square
+% brackets) at the beginning of the |code-after| (that is to say, when
+% |\CodeAfter| is used, the options of that ``command'' |\CodeAfter|).
+% \begin{macrocode}
+\NewDocumentCommand \@@_CodeAfter_keys: { O { } }
+ { \keys_set:nn { NiceMatrix / CodeAfter } { #1 } }
+% \end{macrocode}
+%
%
% \bigskip
% We remind that the first mandatory argument of the command |\Block| is the
@@ -9970,9 +10299,69 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_draw_line:
{
+ \pgfrememberpicturepositiononpagetrue
+ \pgf@relevantforpicturesizefalse
+ \tl_if_eq:NNTF \l_@@_xdots_line_style_tl \c_@@_standard_tl
+ \@@_draw_standard_dotted_line:
+ \@@_draw_non_standard_dotted_line:
+ }
+% \end{macrocode}
+%
+% \medskip
+% We have to do a special construction with |\exp_args:NV| to be able to put in
+% the list of options in the correct place in the Tikz instruction.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_draw_non_standard_dotted_line:
+ {
+ \begin { scope }
+ \exp_args:No \@@_draw_non_standard_dotted_line:n
+ { \l_@@_xdots_line_style_tl , \l_@@_xdots_color_tl }
+ }
+% \end{macrocode}
+% We have used the fact that, in \textsc{pgf}, un color name can be put directly
+% in a list of options (that's why we have put diredtly |\l_@@_xdots_color_tl|).
+%
+% \smallskip
+% The argument of |\@@_draw_non_standard_dotted_line:n| is, in fact, the list of options.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_draw_non_standard_dotted_line:n #1
+ {
+ \@@_draw_non_standard_dotted_line:nVV
+ { #1 }
+ \l_@@_xdots_up_tl
+ \l_@@_xdots_down_tl
+ }
% \end{macrocode}
-% First, we put the labels.
+%
% \begin{macrocode}
+\cs_new_protected:Npn \@@_draw_non_standard_dotted_line:nnn #1 #2 #3
+ {
+ \draw
+ [
+ #1 ,
+ shorten~> = \l_@@_xdots_shorten_dim ,
+ shorten~< = \l_@@_xdots_shorten_dim ,
+ ]
+ ( \l_@@_x_initial_dim , \l_@@_y_initial_dim )
+% \end{macrocode}
+% Be careful: We can't put |\c_math_toggle_token| instead of |$| in the
+% following lines because we are in the contents of Tikz nodes (and they will be
+% \emph{rescanned} if the Tikz library \pkg{babel} is loaded).
+% \begin{macrocode}
+ -- node [ sloped , above ] { $ \scriptstyle #2 $ }
+ node [ sloped , below ] { $ \scriptstyle #3 $ }
+ ( \l_@@_x_final_dim , \l_@@_y_final_dim ) ;
+ \end { scope }
+ }
+\cs_generate_variant:Nn \@@_draw_non_standard_dotted_line:nnn { n V V }
+% \end{macrocode}
+%
+% \bigskip
+% The command |\@@_draw_standard_dotted_line:| draws the line with our system of points
+% (which gives a dotted line with real round points).
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_draw_standard_dotted_line:
+ {
\bool_lazy_and:nnF
{ \tl_if_empty_p:N \l_@@_xdots_up_tl }
{ \tl_if_empty_p:N \l_@@_xdots_down_tl }
@@ -10017,52 +10406,6 @@ version 2005/12/01 or later.
{ \pgfusepath { } }
\endpgfscope
}
- \pgfrememberpicturepositiononpagetrue
- \pgf@relevantforpicturesizefalse
- \tl_if_eq:NNTF \l_@@_xdots_line_style_tl \c_@@_standard_tl
- \@@_draw_standard_dotted_line:
- \@@_draw_non_standard_dotted_line:
- }
-% \end{macrocode}
-%
-% \medskip
-% We have to do a special construction with |\exp_args:NV| to be able to put in
-% the list of options in the correct place in the Tikz instruction.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_draw_non_standard_dotted_line:
- {
- \begin { scope }
- \exp_args:No \@@_draw_non_standard_dotted_line:n
- { \l_@@_xdots_line_style_tl , \l_@@_xdots_color_tl }
- }
-% \end{macrocode}
-% We have used the fact that, in \textsc{pgf}, un color name can be put directly
-% in a list of options (that's why we have put diredtly |\l_@@_xdots_color_tl|).
-%
-% \smallskip
-% The argument of |\@@_draw_non_standard_dotted_line:n| is, in fact, the list of options.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_draw_non_standard_dotted_line:n #1
- {
- \draw
- [
- #1 ,
- shorten~> = \l_@@_xdots_shorten_dim ,
- shorten~< = \l_@@_xdots_shorten_dim ,
- ]
- ( \l_@@_x_initial_dim , \l_@@_y_initial_dim )
- --
- ( \l_@@_x_final_dim , \l_@@_y_final_dim ) ;
- \end { scope }
- }
-% \end{macrocode}
-%
-% \bigskip
-% The command |\@@_draw_standard_dotted_line:| draws the line with our system of points
-% (which give a dotted line with real round points).
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_draw_standard_dotted_line:
- {
\group_begin:
% \end{macrocode}
% The dimension |\l_@@_l_dim| is the length $\ell$ of the line to draw. We use
@@ -10132,7 +10475,7 @@ version 2005/12/01 or later.
\l_@@_inter_dots_dim
}
}
- {
+ {
\int_set:Nn \l_tmpa_int
{
\dim_ratio:nn
@@ -10244,7 +10587,8 @@ version 2005/12/01 or later.
{ #1 , down = #2 , up = #3 }
}
}
- \bool_if:NF \l_@@_nullify_dots_bool { \phantom \@@_old_ldots }
+ \bool_if:NF \l_@@_nullify_dots_bool
+ { \phantom { \ensuremath { \@@_old_ldots } } }
\bool_gset_true:N \g_@@_empty_cell_bool
}
% \end{macrocode}
@@ -10263,7 +10607,8 @@ version 2005/12/01 or later.
{ #1 , down = #2 , up = #3 }
}
}
- \bool_if:NF \l_@@_nullify_dots_bool { \phantom \@@_old_cdots }
+ \bool_if:NF \l_@@_nullify_dots_bool
+ { \phantom { \ensuremath { \@@_old_cdots } } }
\bool_gset_true:N \g_@@_empty_cell_bool
}
% \end{macrocode}
@@ -10282,7 +10627,8 @@ version 2005/12/01 or later.
{ #1 , down = #2 , up = #3 }
}
}
- \bool_if:NF \l_@@_nullify_dots_bool { \phantom \@@_old_vdots }
+ \bool_if:NF \l_@@_nullify_dots_bool
+ { \phantom { \ensuremath { \@@_old_vdots } } }
\bool_gset_true:N \g_@@_empty_cell_bool
}
% \end{macrocode}
@@ -10310,7 +10656,8 @@ version 2005/12/01 or later.
}
}
- \bool_if:NF \l_@@_nullify_dots_bool { \phantom \@@_old_ddots }
+ \bool_if:NF \l_@@_nullify_dots_bool
+ { \phantom { \ensuremath { \@@_old_ddots } } }
\bool_gset_true:N \g_@@_empty_cell_bool
}
% \end{macrocode}
@@ -10335,9 +10682,9 @@ version 2005/12/01 or later.
\@@_instruction_of_type:nnn \l_@@_draw_first_bool { Iddots }
{ #1 , down = #2 , up = #3 }
}
-
}
- \bool_if:NF \l_@@_nullify_dots_bool { \phantom \@@_old_iddots }
+ \bool_if:NF \l_@@_nullify_dots_bool
+ { \phantom { \ensuremath { \@@_old_iddots } } }
\bool_gset_true:N \g_@@_empty_cell_bool
}
}
@@ -10375,9 +10722,9 @@ version 2005/12/01 or later.
\cs_set_eq:NN \@@_old_multicolumn \multicolumn
\cs_new:Npn \@@_multicolumn:nnn #1 #2 #3
{
-% \begin{macrocode}
+% \end{macrocode}
% We have to act in an expandable way since it will begin by a |\multicolumn|.
-% \end{macrocode
+% \begin{macrocode}
\exp_args:NNe
\@@_old_multicolumn
{ #1 }
@@ -13412,6 +13759,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
+%
% \subsection*{How to draw the dotted lines transparently}
% \begin{macrocode}
\cs_set_protected:Npn \@@_renew_matrix:
@@ -13630,15 +13978,33 @@ version 2005/12/01 or later.
% \bigskip
% \subsection*{The keyword \textbackslash CodeAfter}
%
+%
+% The |code-after| (inserted with the key |code-after| or after the keyword
+% |\CodeAfter| can always begin with a list of pairs \emph{key-value} between
+% square brackets). Here the corresponding set of keys.
+% \begin{macrocode}
+\keys_define:nn { NiceMatrix / CodeAfter }
+ {
+ sub-matrix .code:n =
+ \keys_set:nn { NiceMatrix / sub-matrix } { #1 } ,
+ sub-matrix .value_required:n = true ,
+ delimiters-color .tl_set:N = \l_@@_delimiters_color_tl ,
+ delimiters-color .value_required:n = true ,
+ unknown .code:n = \@@_error:n { Unknown~key~for~CodeAfter }
+ }
+% \end{macrocode}
+%
+% \medskip
% In fact, in this subsection, we define the user command |\CodeAfter| for the
% case of the ``normal syntax''. For the case of ``light-syntax'', see the
% definition of the environment |{@@-light-syntax}| on
% p.~\pageref{code-light-syntax}.
%
+%
% \medskip
-% In the environments of \pkg{nicematrix}, |\CodeAfter| will be linked to the
-% following command |\@@_CodeAfter:|. That macro must \emph{not} be protected
-% since it begins with |\omit|.
+% In the environments of \pkg{nicematrix}, |\CodeAfter| will be linked to
+% |\@@_CodeAfter:|. That macro must \emph{not} be protected since it begins with
+% |\omit|.
% \begin{macrocode}
\cs_new:Npn \@@_CodeAfter: { \omit \@@_CodeAfter_i:n }
% \end{macrocode}
@@ -13683,8 +14049,363 @@ version 2005/12/01 or later.
% \end{macrocode}
%
%
+% \subsection*{The delimiters in the preamble}
+%
+% The command |\@@_delimiter:nnn| will be used to draw delimiters inside the
+% matrix when delimiters are specified in the preamble of the array. It does
+% \emph{not} concern the exterior delimiters added by |{NiceArrayWithDelims}|
+% (and |{pNiceArray}|, |{pNiceMatrix}|, etc.).
+%
+% A delimiter in the preamble of the array will write an instruction
+% |\@@_delimiter:nnn| in the |\g_@@_internal_code_after_tl| (and also
+% potentially add instructions in the preamble provided to |\array| in order to
+% add spaces between columns).
+%
+% \smallskip
+% The first argument is the type of delimiter (|(|, |[|, |\{|, |)|, |]| ou
+% |\}|). The second argument is the number of colummn. The third argument is a
+% boolean equal to |\c_true_bool| (resp. |\c_false_true|) when the delimiter
+% must be put on the left (resp. right) side.
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_delimiter:nnn #1 #2 #3
+ {
+ \pgfpicture
+ \pgfrememberpicturepositiononpagetrue
+ \pgf@relevantforpicturesizefalse
+% \end{macrocode}
+%
+% \medskip
+% |\l_@@_y_initial_dim| and |\l_@@_y_final_dim| will be the $y$-values of the
+% extremities of the delimiter we will have to construct.
+% \begin{macrocode}
+ \@@_qpoint:n { row - 1 }
+ \dim_set_eq:NN \l_@@_y_initial_dim \pgf@y
+ \@@_qpoint:n { row - \@@_succ:n \c@iRow }
+ \dim_set_eq:NN \l_@@_y_final_dim \pgf@y
+% \end{macrocode}
+%
+% \medskip
+% We will compute in |\l_tmpa_dim| the $x$-value where we will have to put our
+% delimiter (on the left side or on the right side).
+% \begin{macrocode}
+ \bool_if:nTF { #3 }
+ { \dim_set_eq:NN \l_tmpa_dim \c_max_dim }
+ { \dim_set:Nn \l_tmpa_dim { - \c_max_dim } }
+ \int_step_inline:nnn \l_@@_first_row_int \g_@@_row_total_int
+ {
+ \cs_if_exist:cT
+ { pgf @ sh @ ns @ \@@_env: - ##1 - #2 }
+ {
+ \pgfpointanchor
+ { \@@_env: - ##1 - #2 }
+ { \bool_if:nTF { #3 } { west } { east } }
+ \dim_set:Nn \l_tmpa_dim
+ { \bool_if:nTF { #3 } \dim_min:nn \dim_max:nn \l_tmpa_dim \pgf@x }
+ }
+ }
+% \end{macrocode}
+%
+%
+% Now we can put the delimiter with a node of \textsc{pgf}.
+% \begin{macrocode}
+ \pgfset { inner~sep = \c_zero_dim }
+ \dim_zero:N \nulldelimiterspace
+ \pgftransformshift
+ {
+ \pgfpoint
+ { \l_tmpa_dim }
+ { ( \l_@@_y_initial_dim + \l_@@_y_final_dim + \arrayrulewidth ) / 2 }
+ }
+ \pgfnode
+ { rectangle }
+ { \bool_if:nTF { #3 } { east } { west } }
+ {
+% \end{macrocode}
+% Here is the content of the \textsc{pgf} node, that is to say the delimiter,
+% constructed with its right size.
+% \begin{macrocode}
+ \nullfont
+ \c_math_toggle_token
+ \tl_if_empty:NF \l_@@_delimiters_color_tl
+ { \color { \l_@@_delimiters_color_tl } }
+ \bool_if:nTF { #3 } { \left #1 } { \left . }
+ \vcenter
+ {
+ \nullfont
+ \hrule \@height
+ \dim_eval:n { \l_@@_y_initial_dim - \l_@@_y_final_dim }
+ \@depth \c_zero_dim
+ \@width \c_zero_dim
+ }
+ \bool_if:nTF { #3 } { \right . } { \right #1 }
+ \c_math_toggle_token
+ }
+ { }
+ { }
+ \endpgfpicture
+ }
+% \end{macrocode}
+%
+% \subsection*{The command SubMatrix}
+%
+%
+% \begin{macrocode}
+\keys_define:nn { NiceMatrix / sub-matrix }
+ {
+ extra-height .dim_set:N = \l_@@_submatrix_extra_height_dim ,
+ extra-height .value_required:n = true ,
+ left-xshift .dim_set:N = \l_@@_submatrix_left_xshift_dim ,
+ left-xshift .value_required:n = true ,
+ right-xshift .dim_set:N = \l_@@_submatrix_right_xshift_dim ,
+ right-xshift .value_required:n = true ,
+ xshift .meta:n = { left-xshift = #1, right-xshift = #1 } ,
+ xshift .value_required:n = true ,
+ delimiters-color .tl_set:N = \l_@@_delimiters_color_tl ,
+ delimiters-color .value_required:n = true ,
+ slim .bool_set:N = \l_@@_submatrix_slim_bool ,
+ slim .default:n = true ,
+ }
+\keys_define:nn { NiceMatrix }
+ {
+ SubMatrix .inherit:n = NiceMatrix /sub-matrix ,
+ CodeAfter / sub-matrix .inherit:n = NiceMatrix / sub-matrix
+ }
+% \end{macrocode}
+%
+% \medskip
+% The following keys set is for the command |\SubMatrix| itself (not the tuning
+% of |\SubMatrix| that can be done elsewhere).
+% \begin{macrocode}
+\keys_define:nn { NiceMatrix / SubMatrix }
+ {
+ name .code:n =
+ \tl_if_empty:nTF { #1 }
+ { \@@_error:n { Invalid~name~format } }
+ {
+ \regex_match:nnTF { \A[A-Za-z][A-Za-z0-9]*\Z } { #1 }
+ {
+ \seq_if_in:NnTF \g_@@_submatrix_names_seq { #1 }
+ { \@@_error:nn { Duplicate~name~for~SubMatrix } { #1 } }
+ {
+ \str_set:Nn \l_@@_submatrix_name_str { #1 }
+ \seq_gput_right:Nn \g_@@_submatrix_names_seq { #1 }
+ }
+ }
+ { \@@_error:n { Invalid~name~format } }
+ } ,
+ name .value_required:n = true ,
+ unknown .code:n = \@@_error:n { Unknown~key~for~SubMatrix }
+ }
+% \end{macrocode}
%
% \bigskip
+% In the |code-after|, the following command |\@@_SubMatrix| will be linked to
+% |\SubMatrix|.
+% \begin{itemize}
+% \item |#1| is the left delimiter;
+% \item |#2| is the upper-left cell of the matrix with the format $i$-$j$;
+% \item |#2| is the lower-right cell of the matrix with the format $i$-$j$;
+% \item |#4| is the right delimiter;
+% \item |#5| is the list of options of the command.
+% \end{itemize}
+% \begin{macrocode}
+\NewDocumentCommand \@@_SubMatrix { m m m m ! O { } }
+ {
+ \group_begin:
+% \end{macrocode}
+% The command |\@@_cut_on_hyphen:w| cuts on the hyphen an argument of the form
+% $i$-$j$. The value of $i$ is stored in |\l_tmpa_tl| and the value of $j$ is
+% stored in |\l_tmpb_tl|.
+% \begin{macrocode}
+ \@@_cut_on_hyphen:w #3 \q_stop
+ \tl_clear_new:N \l_tmpc_tl
+ \tl_clear_new:N \l_tmpd_tl
+ \tl_set_eq:NN \l_tmpc_tl \l_tmpa_tl
+ \tl_set_eq:NN \l_tmpd_tl \l_tmpb_tl
+ \@@_cut_on_hyphen:w #2 \q_stop
+ \bool_lazy_or:nnTF
+ { \int_compare_p:nNn \l_tmpc_tl > \g_@@_row_total_int }
+ { \int_compare_p:nNn \l_tmpd_tl > \g_@@_col_total_int }
+ { \@@_error:n { SubMatrix~too~large } }
+ {
+ \dim_zero_new:N \l_@@_submatrix_extra_height_dim
+ \dim_zero_new:N \l_@@_submatrix_left_xshift_dim
+ \dim_zero_new:N \l_@@_submatrix_right_xshift_dim
+ \str_clear_new:N \l_@@_submatrix_name_str
+ \keys_set:nn { NiceMatrix / SubMatrix } { #5 }
+ \pgfpicture
+ \pgfrememberpicturepositiononpagetrue
+ \pgf@relevantforpicturesizefalse
+ \pgfset { inner~sep = \c_zero_dim }
+ \dim_set_eq:NN \l_@@_x_initial_dim \c_max_dim
+ \dim_set:Nn \l_@@_x_final_dim { - \c_max_dim }
+% \end{macrocode}
+% The last value of |\int_step_inline:nnn| is provided by currifycation.
+% \begin{macrocode}
+ \bool_if:NTF \l_@@_submatrix_slim_bool
+ { \int_step_inline:nnn \l_tmpa_tl \l_tmpc_tl }
+ { \int_step_inline:nnn \l_@@_first_row_int \g_@@_row_total_int }
+ {
+ \cs_if_exist:cT
+ { pgf @ sh @ ns @ \@@_env: - ##1 - \l_tmpb_tl }
+ {
+ \pgfpointanchor { \@@_env: - ##1 - \l_tmpb_tl } { west }
+ \dim_set:Nn \l_@@_x_initial_dim
+ { \dim_min:nn \l_@@_x_initial_dim \pgf@x }
+ }
+ \cs_if_exist:cT
+ { pgf @ sh @ ns @ \@@_env: - ##1 - \l_tmpd_tl }
+ {
+ \pgfpointanchor { \@@_env: - ##1 - \l_tmpd_tl } { east }
+ \dim_set:Nn \l_@@_x_final_dim
+ { \dim_max:nn \l_@@_x_final_dim \pgf@x }
+ }
+ }
+ \@@_qpoint:n { row - \l_tmpa_tl - base }
+ \dim_set:Nn \l_@@_y_initial_dim
+ { \pgf@y + ( \box_ht:N \strutbox + \extrarowheight ) * \arraystretch }
+ \@@_qpoint:n { row - \l_tmpc_tl - base }
+ \dim_set:Nn \l_@@_y_final_dim
+ { \pgf@y - ( \box_dp:N \strutbox ) * \arraystretch }
+ \int_step_inline:nnn \l_@@_first_col_int \g_@@_col_total_int
+ {
+ \cs_if_exist:cT
+ { pgf @ sh @ ns @ \@@_env: - \l_tmpa_tl - ##1 }
+ {
+ \pgfpointanchor { \@@_env: - \l_tmpa_tl - ##1 } { north }
+ \dim_set:Nn \l_@@_y_initial_dim
+ { \dim_max:nn \l_@@_y_initial_dim \pgf@y }
+ }
+ \cs_if_exist:cT
+ { pgf @ sh @ ns @ \@@_env: - \l_tmpc_tl - ##1 }
+ {
+ \pgfpointanchor { \@@_env: - \l_tmpc_tl - ##1 } { south }
+ \dim_set:Nn \l_@@_y_final_dim
+ { \dim_min:nn \l_@@_y_final_dim \pgf@y }
+ }
+ }
+ \dim_set:Nn \l_tmpa_dim
+ {
+ \l_@@_y_initial_dim - \l_@@_y_final_dim +
+ \l_@@_submatrix_extra_height_dim - \arrayrulewidth
+ }
+ \dim_set_eq:NN \nulldelimiterspace \c_zero_dim
+% \end{macrocode}
+%
+% \medskip
+% If the key |name| has been used for the command |\SubMatrix|, we create a PGF
+% node with that name for the submatrix (this node does not take into account
+% the delimiters that we will put after).
+% \begin{macrocode}
+ \str_if_empty:NF \l_@@_submatrix_name_str
+ {
+ \@@_pgf_rect_node:nnnnn \l_@@_submatrix_name_str
+ \l_@@_x_initial_dim \l_@@_y_initial_dim
+ \l_@@_x_final_dim \l_@@_y_final_dim
+ }
+% \end{macrocode}
+%
+% \medskip
+% Now, we deal with the left delimiter. Of course, the environment
+% |{pgfscope}| is for the |\pgftransformshift|.
+% \begin{macrocode}
+ \begin { pgfscope }
+ \pgftransformshift
+ {
+ \pgfpoint
+ { \l_@@_x_initial_dim - \l_@@_submatrix_left_xshift_dim }
+ { ( \l_@@_y_initial_dim + \l_@@_y_final_dim ) / 2 }
+ }
+ \str_if_empty:NTF \l_@@_submatrix_name_str
+ { \@@_node_left:nn #1 { } }
+ { \@@_node_left:nn #1 { \@@_env: - \l_@@_submatrix_name_str - left } }
+ \end { pgfscope }
+% \end{macrocode}
+%
+% \medskip
+% Now, we deal with the right delimiter.
+% \begin{macrocode}
+ \pgftransformshift
+ {
+ \pgfpoint
+ { \l_@@_x_final_dim + \l_@@_submatrix_right_xshift_dim }
+ { ( \l_@@_y_initial_dim + \l_@@_y_final_dim ) / 2 }
+ }
+ \str_if_empty:NTF \l_@@_submatrix_name_str
+ { \@@_node_right:nn #4 { } }
+ {
+ \@@_node_right:nn #4 { \@@_env: - \l_@@_submatrix_name_str - right }
+ }
+ \endpgfpicture
+ }
+ \group_end:
+ }
+% \end{macrocode}
+%
+% \medskip
+% The command |\@@_node_left:nn| puts the left delimiter with the correct size.
+% The argument |#1| is the delimiter to put. The argument |#2| is the name we
+% will give to this PGF node (if the key |name| has been used in |\SubMatrix|).
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_node_left:nn #1 #2
+ {
+ \pgfnode
+ { rectangle }
+ { east }
+ {
+ \nullfont
+ \c_math_toggle_token
+ \tl_if_empty:NF \l_@@_delimiters_color_tl
+ { \color { \l_@@_delimiters_color_tl } }
+ \left #1
+ \vcenter
+ {
+ \nullfont
+ \hrule \@height \l_tmpa_dim
+ \@depth \c_zero_dim
+ \@width \c_zero_dim
+ }
+ \right .
+ \c_math_toggle_token
+ }
+ { #2 }
+ { }
+ }
+% \end{macrocode}
+%
+% \medskip
+% The command |\@@_node_right:nn| puts the right delimiter with the correct size.
+% The argument |#1| is the delimiter to put. The argument |#2| is the name we
+% will give to this PGF node (if the key |name| has been used in |\SubMatrix|).
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_node_right:nn #1 #2
+ {
+ \pgfnode
+ { rectangle }
+ { west }
+ {
+ \nullfont
+ \c_math_toggle_token
+ \tl_if_empty:NF \l_@@_delimiters_color_tl
+ { \color { \l_@@_delimiters_color_tl } }
+ \left .
+ \vcenter
+ {
+ \nullfont
+ \hrule \@height \l_tmpa_dim
+ \@depth \c_zero_dim
+ \@width \c_zero_dim
+ }
+ \right #1
+ \c_math_toggle_token
+ }
+ { #2 }
+ { }
+ }
+% \end{macrocode}
+%
+% \bigskip
% \subsection*{We process the options at package loading}
%
%
@@ -13726,12 +14447,19 @@ version 2005/12/01 or later.
define-L-C-R,~
footnote,~
footnotehyper,~
- renew-dots,~
- renew-matrix~and~
- transparent.
+ renew-dots,~and
+ renew-matrix.
}
% \end{macrocode}
%
+% \begin{macrocode}
+\@@_msg_new:nn { Key~transparent }
+ {
+ The~key~'transparent'~is~now~obsolete~(because~it's~name~
+ is~not~clear).~You~should~use~the~conjonction~of~'renew-dots'~
+ and~'renew-matrix'.~However,~you~can~go~on.
+ }
+% \end{macrocode}
%
% \begin{macrocode}
\keys_define:nn { NiceMatrix / Package }
@@ -13742,7 +14470,12 @@ version 2005/12/01 or later.
renew-dots .value_forbidden:n = true ,
renew-matrix .code:n = \@@_renew_matrix: ,
renew-matrix .value_forbidden:n = true ,
- transparent .meta:n = { renew-dots , renew-matrix } ,
+ transparent .code:n =
+ {
+ \@@_renew_matrix:
+ \bool_set_true:N \l_@@_renew_dots_bool
+ \@@_error:n { Key~transparent }
+ } ,
transparent .value_forbidden:n = true,
footnote .bool_set:N = \c_@@_footnote_bool ,
footnotehyper .bool_set:N = \c_@@_footnotehyper_bool ,
@@ -13780,8 +14513,12 @@ version 2005/12/01 or later.
% \begin{macrocode}
\bool_if:NT \c_@@_footnote_bool
{
+% \end{macrocode}
+% The class \cls{beamer} has its own system to extract footnotes and that's why
+% we have nothing to do if \cls{beamer} is used.
+% \begin{macrocode}
\@ifclassloaded { beamer }
- { \msg_info:nn { nicematrix } { Option~incompatible~with~Beamer } }
+ { \bool_set_false:N \c_@@_footnote_bool }
{
\@ifpackageloaded { footnotehyper }
{ \@@_error:n { footnote~with~footnotehyper~package } }
@@ -13793,8 +14530,12 @@ version 2005/12/01 or later.
% \begin{macrocode}
\bool_if:NT \c_@@_footnotehyper_bool
{
+% \end{macrocode}
+% The class \cls{beamer} has its own system to extract footnotes and that's why
+% we have nothing to do if \cls{beamer} is used.
+% \begin{macrocode}
\@ifclassloaded { beamer }
- { \@@_info:n { Option~incompatible~with~Beamer } }
+ { \bool_set_false:N \c_@@_footnote_bool }
{
\@ifpackageloaded { footnote }
{ \@@_error:n { footnotehyper~with~footnote~package } }
@@ -13987,6 +14728,15 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
+\@@_msg_new:nn { SubMatrix~too~large }
+ {
+ Your~command~\token_to_str:N \SubMatrix\
+ can't~be~drawn~because~your~matrix~is~too~small.\\
+ If~you~go~on,~this~command~will~be~ignored.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_msg_new:nn { double-backslash~in~light-syntax }
{
You~can't~use~\token_to_str:N \\~to~separate~rows~because~you~have~used~
@@ -14023,6 +14773,15 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \begin{macrocode}
+\@@_msg_new:nn { Invalid~name~format }
+ {
+ You~can't~give~the~name~'\l_keys_value_tl'~to~a~\token_to_str:N
+ \SubMatrix.\\
+ A~name~must~be~accepted~by~the~regular~expression~[A-Za-z][A-Za-z0-9]*.\\
+ If~you~go~on,~this~key~will~be~ignored.
+ }
+% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { empty~environment }
@@ -14030,6 +14789,15 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
+\@@_msg_new:nn { Delimiter~with~small }
+ {
+ You~can't~put~a~delimiter~in~the~preamble~of~your~\@@_full_name_env:\
+ because~the~key~'small'~is~in~force.\\
+ This~error~is~fatal.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_msg_new:nn { unknown~cell~for~line~in~code-after }
{
Your~command~\token_to_str:N\line\{#1\}\{#2\}~in~the~'code-after'~
@@ -14038,6 +14806,21 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+%
+% \begin{macrocode}
+\@@_msg_new:nnn { Duplicate~name~for~SubMatrix }
+ {
+ The~name~'#1'~is~already~used~for~a~\token_to_str:N \SubMatrix\
+ in~this~\@@_full_name_env:.\\
+ If~you~go~on,~this~key~will~be~ignored.\\
+ For~a~list~of~the~names~already~used,~type~H~<return>.
+ }
+ {
+ The~names~already~defined~in~this~\@@_full_name_env:\ are:~
+ \seq_use:Nnnn \g_@@_submatrix_names_seq { ~and~ } { ,~ } { ~and~ }.
+ }
+% \end{macrocode}
+%
% \begin{macrocode}
\@@_msg_new:nn { Hdotsfor~in~col~0 }
{
@@ -14066,7 +14849,7 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-%
+%
% \begin{macrocode}
\@@_msg_new:nn { last-col~non~empty~for~NiceMatrixOptions }
{
@@ -14120,7 +14903,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn { bottomule~without~booktabs }
+\@@_msg_new:nn { bottomrule~without~booktabs }
{
You~can't~use~the~key~'tabular/bottomrule'~because~you~haven't~
loaded~'booktabs'.\\
@@ -14184,8 +14967,35 @@ version 2005/12/01 or later.
line-width~and~r.
}
% \end{macrocode}
+%
+% \begin{macrocode}
+\@@_msg_new:nnn { Unknown~key~for~CodeAfter }
+ {
+ The~key~'\l_keys_key_str'~is~unknown.\\
+ If~you~go~on,~it~will~be~ignored. \\
+ For~a~list~of~the~available~keys~in~\token_to_str:N
+ \CodeAfter,~type~H~<return>.
+ }
+ {
+ The~available~keys~are~(in~alphabetic~order):~
+ delimiters-color,~
+ sub-matrix~(several~subkeys)~
+ and~xdots~(several~subkeys).~
+ The~latter~is~for~the~command~\token_to_str:N \line.
+ }
+% \end{macrocode}
%
% \begin{macrocode}
+\@@_msg_new:nn { Unknown~key~for~SubMatrix }
+ {
+ The~key~'\l_keys_key_str'~is~unknown.\\
+ The~only~keys~available~here~are~'delimiters-color',~'extra-height',~
+ 'left-xshift',~'name',~'right-xshift',~'slim'~and~'xshift'.\\
+ If~you~go~on,~this~key~will~be~ignored. \\
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~notes }
{
The~key~'\l_keys_key_str'~is~unknown.\\
@@ -14239,17 +15049,15 @@ version 2005/12/01 or later.
left-margin,~
letter-for-dotted-lines,~
light-syntax,~
- notes~(several subkeys),~
+ notes~(several~subkeys),~
nullify-dots,~
renew-dots,~
renew-matrix,~
right-margin,~
small,~
- transparent,~
+ sub-matrix~(several~subkeys),
vlines,~
- xdots/color,~
- xdots/shorten~and~
- xdots/line-style.
+ xdots~(several~subkeys).
}
% \end{macrocode}
%
@@ -14434,7 +15242,7 @@ version 2005/12/01 or later.
}
{
The~names~already~defined~in~this~document~are:~
- \seq_use:Nnnn \g_@@_names_seq { ,~ } { ,~ } { ~and~ }.
+ \seq_use:Nnnn \g_@@_names_seq { ~and~ } { ,~ } { ~and~ }.
}
% \end{macrocode}
%
@@ -14447,6 +15255,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
%
+%
% \vspace{1cm}
% \section{History}
%
@@ -14861,6 +15670,15 @@ version 2005/12/01 or later.
%
% New key |cell-space-limits|.
%
+% \subsection*{Changes between versions 5.9 and 5.10}
+%
+% New command |\SubMatrix| available in the |\CodeAfter|.
+%
+% It's possible to provide options (between brackets) to the command |\CodeAfter|.
+%
+% A (non fatal) error is raised when the key |transparent|, which is
+% deprecated, is used.
+%
% \PrintIndex
%
% \tableofcontents
@@ -14873,3 +15691,4 @@ version 2005/12/01 or later.
% fill-column: 80
% End:
+
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index 750e4fd683..12843620c0 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files differ
diff --git a/macros/latex/contrib/ragged2e/LICENSE b/macros/latex/contrib/ragged2e/LICENSE
deleted file mode 100644
index 2244313901..0000000000
--- a/macros/latex/contrib/ragged2e/LICENSE
+++ /dev/null
@@ -1,416 +0,0 @@
-The LaTeX Project Public License
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-LPPL Version 1.3c 2008-05-04
-
-Copyright 1999 2002-2008 LaTeX3 Project
- Everyone is allowed to distribute verbatim copies of this
- license document, but modification of it is not allowed.
-
-
-PREAMBLE
-========
-
-The LaTeX Project Public License (LPPL) is the primary license under
-which the LaTeX kernel and the base LaTeX packages are distributed.
-
-You may use this license for any work of which you hold the copyright
-and which you wish to distribute. This license may be particularly
-suitable if your work is TeX-related (such as a LaTeX package), but
-it is written in such a way that you can use it even if your work is
-unrelated to TeX.
-
-The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
-below, gives instructions, examples, and recommendations for authors
-who are considering distributing their works under this license.
-
-This license gives conditions under which a work may be distributed
-and modified, as well as conditions under which modified versions of
-that work may be distributed.
-
-We, the LaTeX3 Project, believe that the conditions below give you
-the freedom to make and distribute modified versions of your work
-that conform with whatever technical specifications you wish while
-maintaining the availability, integrity, and reliability of
-that work. If you do not see how to achieve your goal while
-meeting these conditions, then read the document `cfgguide.tex'
-and `modguide.tex' in the base LaTeX distribution for suggestions.
-
-
-DEFINITIONS
-===========
-
-In this license document the following terms are used:
-
- `Work'
- Any work being distributed under this License.
-
- `Derived Work'
- Any work that under any applicable law is derived from the Work.
-
- `Modification'
- Any procedure that produces a Derived Work under any applicable
- law -- for example, the production of a file containing an
- original file associated with the Work or a significant portion of
- such a file, either verbatim or with modifications and/or
- translated into another language.
-
- `Modify'
- To apply any procedure that produces a Derived Work under any
- applicable law.
-
- `Distribution'
- Making copies of the Work available from one person to another, in
- whole or in part. Distribution includes (but is not limited to)
- making any electronic components of the Work accessible by
- file transfer protocols such as FTP or HTTP or by shared file
- systems such as Sun's Network File System (NFS).
-
- `Compiled Work'
- A version of the Work that has been processed into a form where it
- is directly usable on a computer system. This processing may
- include using installation facilities provided by the Work,
- transformations of the Work, copying of components of the Work, or
- other activities. Note that modification of any installation
- facilities provided by the Work constitutes modification of the Work.
-
- `Current Maintainer'
- A person or persons nominated as such within the Work. If there is
- no such explicit nomination then it is the `Copyright Holder' under
- any applicable law.
-
- `Base Interpreter'
- A program or process that is normally needed for running or
- interpreting a part or the whole of the Work.
-
- A Base Interpreter may depend on external components but these
- are not considered part of the Base Interpreter provided that each
- external component clearly identifies itself whenever it is used
- interactively. Unless explicitly specified when applying the
- license to the Work, the only applicable Base Interpreter is a
- `LaTeX-Format' or in the case of files belonging to the
- `LaTeX-format' a program implementing the `TeX language'.
-
-
-
-CONDITIONS ON DISTRIBUTION AND MODIFICATION
-===========================================
-
-1. Activities other than distribution and/or modification of the Work
-are not covered by this license; they are outside its scope. In
-particular, the act of running the Work is not restricted and no
-requirements are made concerning any offers of support for the Work.
-
-2. You may distribute a complete, unmodified copy of the Work as you
-received it. Distribution of only part of the Work is considered
-modification of the Work, and no right to distribute such a Derived
-Work may be assumed under the terms of this clause.
-
-3. You may distribute a Compiled Work that has been generated from a
-complete, unmodified copy of the Work as distributed under Clause 2
-above, as long as that Compiled Work is distributed in such a way that
-the recipients may install the Compiled Work on their system exactly
-as it would have been installed if they generated a Compiled Work
-directly from the Work.
-
-4. If you are the Current Maintainer of the Work, you may, without
-restriction, modify the Work, thus creating a Derived Work. You may
-also distribute the Derived Work without restriction, including
-Compiled Works generated from the Derived Work. Derived Works
-distributed in this manner by the Current Maintainer are considered to
-be updated versions of the Work.
-
-5. If you are not the Current Maintainer of the Work, you may modify
-your copy of the Work, thus creating a Derived Work based on the Work,
-and compile this Derived Work, thus creating a Compiled Work based on
-the Derived Work.
-
-6. If you are not the Current Maintainer of the Work, you may
-distribute a Derived Work provided the following conditions are met
-for every component of the Work unless that component clearly states
-in the copyright notice that it is exempt from that condition. Only
-the Current Maintainer is allowed to add such statements of exemption
-to a component of the Work.
-
- a. If a component of this Derived Work can be a direct replacement
- for a component of the Work when that component is used with the
- Base Interpreter, then, wherever this component of the Work
- identifies itself to the user when used interactively with that
- Base Interpreter, the replacement component of this Derived Work
- clearly and unambiguously identifies itself as a modified version
- of this component to the user when used interactively with that
- Base Interpreter.
-
- b. Every component of the Derived Work contains prominent notices
- detailing the nature of the changes to that component, or a
- prominent reference to another file that is distributed as part
- of the Derived Work and that contains a complete and accurate log
- of the changes.
-
- c. No information in the Derived Work implies that any persons,
- including (but not limited to) the authors of the original version
- of the Work, provide any support, including (but not limited to)
- the reporting and handling of errors, to recipients of the
- Derived Work unless those persons have stated explicitly that
- they do provide such support for the Derived Work.
-
- d. You distribute at least one of the following with the Derived Work:
-
- 1. A complete, unmodified copy of the Work;
- if your distribution of a modified component is made by
- offering access to copy the modified component from a
- designated place, then offering equivalent access to copy
- the Work from the same or some similar place meets this
- condition, even though third parties are not compelled to
- copy the Work along with the modified component;
-
- 2. Information that is sufficient to obtain a complete,
- unmodified copy of the Work.
-
-7. If you are not the Current Maintainer of the Work, you may
-distribute a Compiled Work generated from a Derived Work, as long as
-the Derived Work is distributed to all recipients of the Compiled
-Work, and as long as the conditions of Clause 6, above, are met with
-regard to the Derived Work.
-
-8. The conditions above are not intended to prohibit, and hence do not
-apply to, the modification, by any method, of any component so that it
-becomes identical to an updated version of that component of the Work as
-it is distributed by the Current Maintainer under Clause 4, above.
-
-9. Distribution of the Work or any Derived Work in an alternative
-format, where the Work or that Derived Work (in whole or in part) is
-then produced by applying some process to that format, does not relax or
-nullify any sections of this license as they pertain to the results of
-applying that process.
-
-10. a. A Derived Work may be distributed under a different license
- provided that license itself honors the conditions listed in
- Clause 6 above, in regard to the Work, though it does not have
- to honor the rest of the conditions in this license.
-
- b. If a Derived Work is distributed under a different license, that
- Derived Work must provide sufficient documentation as part of
- itself to allow each recipient of that Derived Work to honor the
- restrictions in Clause 6 above, concerning changes from the Work.
-
-11. This license places no restrictions on works that are unrelated to
-the Work, nor does this license place any restrictions on aggregating
-such works with the Work by any means.
-
-12. Nothing in this license is intended to, or may be used to, prevent
-complete compliance by all parties with all applicable laws.
-
-
-NO WARRANTY
-===========
-
-There is no warranty for the Work. Except when otherwise stated in
-writing, the Copyright Holder provides the Work `as is', without
-warranty of any kind, either expressed or implied, including, but not
-limited to, the implied warranties of merchantability and fitness for a
-particular purpose. The entire risk as to the quality and performance
-of the Work is with you. Should the Work prove defective, you assume
-the cost of all necessary servicing, repair, or correction.
-
-In no event unless required by applicable law or agreed to in writing
-will The Copyright Holder, or any author named in the components of the
-Work, or any other party who may distribute and/or modify the Work as
-permitted above, be liable to you for damages, including any general,
-special, incidental or consequential damages arising out of any use of
-the Work or out of inability to use the Work (including, but not limited
-to, loss of data, data being rendered inaccurate, or losses sustained by
-anyone as a result of any failure of the Work to operate with any other
-programs), even if the Copyright Holder or said author or said other
-party has been advised of the possibility of such damages.
-
-
-MAINTENANCE OF THE WORK
-=======================
-
-The Work has the status `author-maintained' if the Copyright Holder
-explicitly and prominently states near the primary copyright notice in
-the Work that the Work can only be maintained by the Copyright Holder
-or simply that it is `author-maintained'.
-
-The Work has the status `maintained' if there is a Current Maintainer
-who has indicated in the Work that they are willing to receive error
-reports for the Work (for example, by supplying a valid e-mail
-address). It is not required for the Current Maintainer to acknowledge
-or act upon these error reports.
-
-The Work changes from status `maintained' to `unmaintained' if there
-is no Current Maintainer, or the person stated to be Current
-Maintainer of the work cannot be reached through the indicated means
-of communication for a period of six months, and there are no other
-significant signs of active maintenance.
-
-You can become the Current Maintainer of the Work by agreement with
-any existing Current Maintainer to take over this role.
-
-If the Work is unmaintained, you can become the Current Maintainer of
-the Work through the following steps:
-
- 1. Make a reasonable attempt to trace the Current Maintainer (and
- the Copyright Holder, if the two differ) through the means of
- an Internet or similar search.
-
- 2. If this search is successful, then enquire whether the Work
- is still maintained.
-
- a. If it is being maintained, then ask the Current Maintainer
- to update their communication data within one month.
-
- b. If the search is unsuccessful or no action to resume active
- maintenance is taken by the Current Maintainer, then announce
- within the pertinent community your intention to take over
- maintenance. (If the Work is a LaTeX work, this could be
- done, for example, by posting to comp.text.tex.)
-
- 3a. If the Current Maintainer is reachable and agrees to pass
- maintenance of the Work to you, then this takes effect
- immediately upon announcement.
-
- b. If the Current Maintainer is not reachable and the Copyright
- Holder agrees that maintenance of the Work be passed to you,
- then this takes effect immediately upon announcement.
-
- 4. If you make an `intention announcement' as described in 2b. above
- and after three months your intention is challenged neither by
- the Current Maintainer nor by the Copyright Holder nor by other
- people, then you may arrange for the Work to be changed so as
- to name you as the (new) Current Maintainer.
-
- 5. If the previously unreachable Current Maintainer becomes
- reachable once more within three months of a change completed
- under the terms of 3b) or 4), then that Current Maintainer must
- become or remain the Current Maintainer upon request provided
- they then update their communication data within one month.
-
-A change in the Current Maintainer does not, of itself, alter the fact
-that the Work is distributed under the LPPL license.
-
-If you become the Current Maintainer of the Work, you should
-immediately provide, within the Work, a prominent and unambiguous
-statement of your status as Current Maintainer. You should also
-announce your new status to the same pertinent community as
-in 2b) above.
-
-
-WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
-======================================================
-
-This section contains important instructions, examples, and
-recommendations for authors who are considering distributing their
-works under this license. These authors are addressed as `you' in
-this section.
-
-Choosing This License or Another License
-----------------------------------------
-
-If for any part of your work you want or need to use *distribution*
-conditions that differ significantly from those in this license, then
-do not refer to this license anywhere in your work but, instead,
-distribute your work under a different license. You may use the text
-of this license as a model for your own license, but your license
-should not refer to the LPPL or otherwise give the impression that
-your work is distributed under the LPPL.
-
-The document `modguide.tex' in the base LaTeX distribution explains
-the motivation behind the conditions of this license. It explains,
-for example, why distributing LaTeX under the GNU General Public
-License (GPL) was considered inappropriate. Even if your work is
-unrelated to LaTeX, the discussion in `modguide.tex' may still be
-relevant, and authors intending to distribute their works under any
-license are encouraged to read it.
-
-A Recommendation on Modification Without Distribution
------------------------------------------------------
-
-It is wise never to modify a component of the Work, even for your own
-personal use, without also meeting the above conditions for
-distributing the modified component. While you might intend that such
-modifications will never be distributed, often this will happen by
-accident -- you may forget that you have modified that component; or
-it may not occur to you when allowing others to access the modified
-version that you are thus distributing it and violating the conditions
-of this license in ways that could have legal implications and, worse,
-cause problems for the community. It is therefore usually in your
-best interest to keep your copy of the Work identical with the public
-one. Many works provide ways to control the behavior of that work
-without altering any of its licensed components.
-
-How to Use This License
------------------------
-
-To use this license, place in each of the components of your work both
-an explicit copyright notice including your name and the year the work
-was authored and/or last substantially modified. Include also a
-statement that the distribution and/or modification of that
-component is constrained by the conditions in this license.
-
-Here is an example of such a notice and statement:
-
- %% pig.dtx
- %% Copyright 2005 M. Y. Name
- %
- % This work may be distributed and/or modified under the
- % conditions of the LaTeX Project Public License, either version 1.3
- % 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
- % version 2005/12/01 or later.
- %
- % This work has the LPPL maintenance status `maintained'.
- %
- % The Current Maintainer of this work is M. Y. Name.
- %
- % This work consists of the files pig.dtx and pig.ins
- % and the derived file pig.sty.
-
-Given such a notice and statement in a file, the conditions
-given in this license document would apply, with the `Work' referring
-to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
-generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
-referring to any `LaTeX-Format', and both `Copyright Holder' and
-`Current Maintainer' referring to the person `M. Y. Name'.
-
-If you do not want the Maintenance section of LPPL to apply to your
-Work, change `maintained' above into `author-maintained'.
-However, we recommend that you use `maintained', as the Maintenance
-section was added in order to ensure that your Work remains useful to
-the community even when you can no longer maintain and support it
-yourself.
-
-Derived Works That Are Not Replacements
----------------------------------------
-
-Several clauses of the LPPL specify means to provide reliability and
-stability for the user community. They therefore concern themselves
-with the case that a Derived Work is intended to be used as a
-(compatible or incompatible) replacement of the original Work. If
-this is not the case (e.g., if a few lines of code are reused for a
-completely different task), then clauses 6b and 6d shall not apply.
-
-
-Important Recommendations
--------------------------
-
- Defining What Constitutes the Work
-
- The LPPL requires that distributions of the Work contain all the
- files of the Work. It is therefore important that you provide a
- way for the licensee to determine which files constitute the Work.
- This could, for example, be achieved by explicitly listing all the
- files of the Work near the copyright notice of each file or by
- using a line such as:
-
- % This work consists of all files listed in manifest.txt.
-
- in that place. In the absence of an unequivocal list it might be
- impossible for the licensee to determine what is considered by you
- to comprise the Work and, in such a case, the licensee would be
- entitled to make reasonable conjectures as to which files comprise
- the Work.
-
diff --git a/macros/latex/contrib/ragged2e/Makefile b/macros/latex/contrib/ragged2e/Makefile
deleted file mode 100644
index fe07f4f1f6..0000000000
--- a/macros/latex/contrib/ragged2e/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-doc: ragged2e.pdf ragged2e.dvi
-ragged2e.dvi: ragged2e.pdf
- latex ragged2e.drv
-
-ragged2e.pdf: ragged2e.dtx ragged2e.drv ragged2e.sty
- pdflatex -draftmode ragged2e.drv
- pdflatex -draftmode ragged2e.drv
- makeindex -s gind.ist -t ragged2e.ind.ilg ragged2e ragged2e.idx
- makeindex -s gglo.ist -t ragged2e.gls.ilg -o ragged2e.gls ragged2e ragged2e.glo
- pdflatex ragged2e.drv
-
-ragged2e.drv ragged2e.sty: ragged2e.dtx ragged2e.ins
- latex ragged2e.ins
-
-ragged2e.zip: ragged2e.dtx ragged2e.pdf ragged2e.ins
- $(eval RELEASEDIR := $(shell mktemp -d))
- @cp -a ragged2e.dtx ragged2e.pdf ragged2e.ins $(RELEASEDIR)
- @cp .git/gitHeadInfo.gin $(RELEASEDIR)/gitHeadLocal.gin
- @sed -i 's/usepackage{gitinfo2}/usepackage[release]{gitinfo2}/g' $(RELEASEDIR)/ragged2e.dtx
- @zip --junk-paths ragged2e.zip $(RELEASEDIR)/ragged2e.dtx $(RELEASEDIR)/ragged2e.pdf $(RELEASEDIR)/ragged2e.ins $(RELEASEDIR)/gitHeadLocal.gin
- @rm -rf $(RELEASEDIR)
-
-.PHONY: clean clobber
-
-clean:
- rm -f *.aux *.toc *.glo *.gls *.hd *.idx *.ilg *.ind *.log
-
-clobber: clean
- rm -f *.dvi *.pdf *.sty *.drv *.zip
-
-# vim:noexpandtab
diff --git a/macros/latex/contrib/ragged2e/README b/macros/latex/contrib/ragged2e/README
deleted file mode 100644
index 7458a57d73..0000000000
--- a/macros/latex/contrib/ragged2e/README
+++ /dev/null
@@ -1,28 +0,0 @@
-==========================================================================
-
-The `ragged2e' package
-Release 2019-07-28
-Copyright (C) 1996-2019 Martin Schröder (martin@oneiros.de)
-
-License: LPPL = LaTeX Project Public Licence
-Maintenance Status: unmaintained
-
-Home page:
- https://gitlab.com/hagenbuch/ragged2e
-
-If you need help for installation please visit:
- https://texfaq.org/FAQ-inst-miktexstar
- https://texfaq.org/FAQ-installthings
- https://texfaq.org/FAQ-privinst
-
-If you need help using these packages please visit:
- https://latex.org/forum/
- https://tex.stackexchange.com/
- https://golatex.de/ (German)
- https://texwelt.de/ (German)
-
-If you think you may have found a bug in these packages,
-or want to report a suggestion for improvement, please visit
- https://gitlab.com/hagenbuch/ragged2e/issues
-
-Note that this package is *unmaintained*.
diff --git a/macros/latex/contrib/ragged2e/README.md b/macros/latex/contrib/ragged2e/README.md
new file mode 100644
index 0000000000..3a7a51ddf8
--- /dev/null
+++ b/macros/latex/contrib/ragged2e/README.md
@@ -0,0 +1,42 @@
+# The `ragged2e' package
+
+Copyright (C) Martin Schröder, 1996–2019, Marei Peischl (peiTeX) <marei@peitex.de>, 2021
+
+ ragged2e 2021/02/05 v3.0
+
+***************************************************************************
+
+ This material is subject to the LaTeX Project Public License version 1.3c
+ or later. See http://www.latex-project.org/lppl.txt for details.
+
+***************************************************************************
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is
+ Marei Peischl <marei@peitex.de>.
+
+[Link to the GitLab Repository](https://gitlab.com/TeXhackse/ragged2e)
+
+## Abstract
+A LaTeX package which defines new commands `\Centering`, `\RaggedLeft`, and `\RaggedRight` and new environments `Center`, `FlushLeft`, and `FlushRight`, which set ragged text and are easily configurable to allow hyphenation.
+
+## Provided files
+
+* README.md
+* ragged2e.dtx
+* ragged2e.ins
+
+The files
+* ragged2e.sty
+
+## Issue Tracker
+If you think you may have found a bug in these packages,
+or want to report a suggestion for improvement, please visit
+ https://gitlab.com/TeXhackse/ragged2e/issues
+
+
+## Version History
+ * 3.0 Move from everysel package to lthooks
+
+
diff --git a/macros/latex/contrib/ragged2e/ragged2e.dtx b/macros/latex/contrib/ragged2e/ragged2e.dtx
index dd30514ccb..5c3408cf12 100644
--- a/macros/latex/contrib/ragged2e/ragged2e.dtx
+++ b/macros/latex/contrib/ragged2e/ragged2e.dtx
@@ -1,41 +1,51 @@
+%% \iffalse meta-comment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Copyright (C) Martin Schröder, 1996–2019
+% Marei Peischl (peiTeX) <marei@peitex.de>, 2021
+%
+% This work may be distributed and/or modified under the
+% 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.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is
+% Marei Peischl <marei@peitex.de>.
+%
+%
+% This work consists of the files
+% README.md
+% ragged2e.dtx
+% ragged2e.ins
+% and the derived file
+% ragged2e.sty.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \fi
% \iffalse
\NeedsTeXFormat{LaTeX2e}[2017/03/29]
%<package>\ProvidesPackage{ragged2e}
-%<package> [2019/07/28 v2.2 ragged2e Package (MS)]
+%<package> [2021/02/05 v3.0 ragged2e Package]
%
%<*driver>
-\ProvidesFile{ragged2e.drv}
- [2019/03/26 v1.09 Driver for ragged2e Package (MS)]
\documentclass[a4paper]{ltxdoc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{microtype}
-\usepackage{url} % in latex/contrib/other/misc
+\usepackage{url}
\usepackage{array}
\usepackage{tabularx}
\usepackage{gitinfo2}
\usepackage{hypdoc}
\usepackage{geometry}
-% booktabs.sty is in latex/contrib/supported/booktab
-\IfFileExists{booktabs.sty}{%
- \usepackage{booktabs}%
- }{%
- \PackageWarning{ragged2e}%
- {booktabs.sty is missing.\MessageBreak
- I'm emulating the needed commands, but you should\MessageBreak
- install it for better results}%
- \let\toprule\hline
- \let\midrule\hline
- \let\bottomrule\hline
- }
-\IfFileExists{footmisc.sty}{%
- \usepackage[document]{ragged2e}[2003/01/26]
- }{%
- \PackageWarning{ragged2e}%
- {footmisc.sty is missing.\MessageBreak
- You should install it for better results}%
- \usepackage[raggedrightboxes]{ragged2e}[2003/01/26]
- }
+\usepackage{booktabs}
+\usepackage[document]{ragged2e}
\setlength{\RaggedRightRightskip}{0pt plus 4em}%
\GetFileInfo{ragged2e.sty}
\EnableCrossrefs
@@ -65,25 +75,8 @@
\let\PrintIndex\relax
\end{document}
%</driver>
-%
-%% Copyright 1996..2019 by Martin Schr\"oder.
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% 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
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status `unmaintained'.
-%
-% This work consists of the files ragged2e.dtx and ragged2e.ins
-% and the derived file ragged2e.sty.
-%
% \fi
-%
-% \CheckSum{478}
+% \CheckSum{486}
%
%% \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
@@ -101,34 +94,6 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%%
-%% \iffalse meta-comment
-%% ===================================================================
-%% @LaTeX-style-file{
-%% author = {Martin Schr\"oder},
-%% version = "2.2",
-%% date = "26 Mar 2019",
-%% filename = "ragged2e.sty",
-%% address = {Martin Schr\"oder
-%% Unterstra\"se 31
-%% 47051 Duisburg
-%% Germany}
-%% email = "martin@oneiros.de",
-% codetable = "ISO/ASCII",
-% keywords = "raggedright",
-% dependences = "everysel",
-% supported = "yes",
-%% docstring = "LaTeX package which defines new commands
-%% \Centering, \RaggedLeft, \RaggedRight and
-%% \justifying and new environments Center,
-%% FlushLeft, FlushRight and justify, which
-%% set ragged text and are easily configurable
-%% to allow hyphenation.
-%% Uses the everysel package.
-%% "
-%% }
-%% ===================================================================
-%% \fi
-%
% \pagestyle{headings}
%
% \newcommand*{\file}[1] {\texttt{#1}}
@@ -172,12 +137,7 @@
% The version number of this file is \fileversion,
% revision~\#\gitAbbrevHash, last revised \protect\gitAuthorIsoDate.}^^A
% }
-% \author{Martin Schr\"oder\\[0.5ex]
-% \normalsize Unterstra\ss{}e 31\\
-% \normalsize 47051 Duisburg\\
-% \normalsize Germany\\
-% \normalsize \texttt{martin@oneiros.de}\\
-% \normalsize \url{https://gitlab.com/hagenbuch/ragged2e}}
+% \author{Martin Schröder\\\url{https://gitlab.com/TeXhackse/ragged2e}\thanks{maintained by Marei Peischl}}
% \date{\filedate}
% \maketitle
%
@@ -203,19 +163,8 @@
% \setlength{\parskip}{^^A
% .3\baselineskip plus.05\baselineskip minus.05\baselineskip}
%
-% \section{Status of this package}
% \changes{v2.2}{2019/07/28}{Change maintenance status of package}
-% ^^A
-% This package is \emph{unmaintained}.
-%
-% I will not actively work on this package anymore. I \emph{may}
-% merge merge requests to the repository on Gitlab
-% (\url{https://gitlab.com/hagenbuch/ragged2e}). If you want to
-% become the maintainer of this package, contact me and I may hand
-% over the repository to you. Or fork the package on Gitlab.
-%
-% I will \emph{not} upload new versions to CTAN.
-%
+% \changes{v3.0}{2021/02/05}{Change maintenance status}
% \section{The problem}
% ^^A
% \LaTeX{} has three commands (\cs{centering}, \cs{raggedleft}, and
@@ -595,11 +544,13 @@
% ^^A
% \changes{v2.1}{2003/10/08}{document that \option{document} needs
% \package{footmisc}}
+% \changes{v3.0}{2021/02/05}{document everysel is obsolete}
% This package requires the following packages:
% \begin{description}
-% \item[\normalfont\package{everysel}\,\cite{everysel}]
-% It is used to distinguish between monospaced and proportional
-% fonts.
+% \item[\normalfont\package{everysel}\,\cite{everysel}](only if format older than 2021/01/05)
+% It has been used to distinguish between monospaced and proportional
+% fonts as long as the LaTeX kernel did not provide the functionality with lthooks \cite{lthooks-doc}.
+% Formats newer than 2021/01/05 do no longer depend on everysel.
% \item[\normalfont\package{footmisc}\,\cite{footmisc}]
% It is used by the \option{footnotes} and the
% \option{document} options; at least version~5.00 (2002/08/28)
@@ -632,7 +583,7 @@
% \cs{@gnewline}.\newline
% Frank Mittelbach (\url{frank.mittelbach@latex-project.org})
% provided the impetus for version~2.00.\newline
-% Rolf Niepraschk (\url{Rolf.Niepraschk@gmx.de}) and Hubert G\"a\ss{}lein
+% Rolf Niepraschk (\url{Rolf.Niepraschk@gmx.de}) and Hubert Gäßlein
% found many bugs and provided fixes for them and code for new
% features.\newline
% Jordan Firth (\url{jafirth@ncsu.edu}) provided the final push for
@@ -646,7 +597,7 @@
%
% \bibitem{ltmiscen}
% Johannes Braams, David Carlisle, Alan Jeffrey, Leslie Lamport, Frank
-% Mittelbach, Chris Rowley, and Rainer Sch{\"o}pf.
+% Mittelbach, Chris Rowley, and Rainer Schöpf.
% \newblock ltmiscen.dtx.
% \newblock Part of the {\LaTeX}-distribution.
%
@@ -654,11 +605,11 @@
% Robin Fairbairns.
% \newblock \texttt{footmisc} --- a portmanteau package for
% customising footnotes in \LaTeXe.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/footmisc/footmisc.dtx}.
+% \newblock \url{https://mirror.ctan.org/macros/latex/contrib/footmisc/}.
%
% \bibitem{raggedr}
% James Kilfiger.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/other/misc/raggedr.sty}.
+% \newblock \url{https://ctan.org/tex-archive/obsolete/macros/latex/contrib/misc/raggedr.sty}.
% \newblock \LaTeXe{} package.
%
% \bibitem{KnuthTeXa}
@@ -671,21 +622,26 @@
% \newblock \emph{\LaTeX: A Document Preparation System}.
% \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, first edition, 1986.
%
+% \bibitem{lthooks-doc}
+% Frank Mittelbach.
+% \newblock The \package{lthooks} package.
+% \newblock \url{http://mirrors.ctan.org/macros/latex/base/lthooks-doc.pdf}
+%
% \bibitem{cmfonts}
-% Frank Mittelbach and Rainer Sch{\"o}pf.
+% Frank Mittelbach and Rainer Schöpf.
% \newblock The file {\texttt{cmfonts.fdd}} for use with {\LaTeXe}.
% \newblock Part of the {\LaTeX}-distribution.
%
% \bibitem{everysel}
-% Martin Schr{\"o}der.
-% \newblock The \package{everysel}-package.
-% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/everysel.dtx}.
+% Martin Schröder.
+% \newblock The obsolete \package{everysel}-package.
+% \newblock \url{http://mirrors.ctan.org/macros/latex/contrib/everysel/everysel.pdf}.
% \newblock \LaTeXe{} package.
%
% \bibitem{raggedri}
-% Martin Schr{\"o}der.
+% Martin Schröder.
% \newblock The \package{raggedri} document option.
-% \newblock Was in \url{CTAN: tex-archive/macros/latex209/contrib/raggedright}.
+% \newblock Was in \url{http://mirrors.ctan.org/tex-archive/macros/latex209/contrib/raggedright}.
% \newblock \LaTeX2.09 style, outdated.
%
% \bibitem{ragged}
@@ -959,10 +915,12 @@
%
% \subsection{Loading packages}
% ^^A
-% We need the \package{everysel} package.
+% \changes{v3.00}{2021/02/05}{Remove the \package{everysel} package if kernel hooks are available}
+% We need the \package{everysel} package for older kernels.
% \changes{v2.00}{2003/01/18}{Load the \package{footmisc} package}%
% \begin{macrocode}
-\RequirePackage{everysel}
+\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+\IfFormatAtLeastTF{2021/01/05}{}{\RequirePackage{everysel}}
% \end{macrocode}
% If the option \option{footnotes} is selected, we load the
% \package{footmisc} package after we are finished (\package{footmisc}
@@ -1149,7 +1107,13 @@
\spaceskip\z@
\fi
}
-\EverySelectfont{\@raggedtwoe@everyselectfont}
+% \end{macrocode}
+% If our kernel is new enough we use the kernel hook directly instead of the everysel macro.
+% \changes{v3.00}{2021/02/05}{Use kernel hook if available}
+% \begin{macrocode}
+\IfFormatAtLeastTF{2021/01/05}
+ {\AddToHook{selectfont}{\@raggedtwoe@everyselectfont}}
+ {\EverySelectfont{\@raggedtwoe@everyselectfont}}
% \end{macrocode}
% \end{macro}
%
@@ -1394,4 +1358,4 @@
%</package>
% \end{macrocode}
% \Finale
-% ^^A vim:tw=70:ts=2
+% ^^A
diff --git a/macros/latex/contrib/ragged2e/ragged2e.ins b/macros/latex/contrib/ragged2e/ragged2e.ins
index 72cc08ee56..e2134b7620 100644
--- a/macros/latex/contrib/ragged2e/ragged2e.ins
+++ b/macros/latex/contrib/ragged2e/ragged2e.ins
@@ -1,93 +1,34 @@
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{ragged2e.ins}
- [2019/04/14 v1.5 Installation script for Ragged2e Package (MS)]
-%%
-%% Copyright 1996..2019 by Martin Schr\"oder.
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% 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
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Martin Schr\"oder.
-%%
-%% This work consists of the files ragged2e.dtx and ragged2e.ins
-%% and the derived file ragged2e.sty.
-%%
-%% --------------- start of docstrip commands ------------------
\input docstrip.tex
-{\ifx\endbatchfile\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.4d or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old docstrip.tex.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-\Msg{***********************************************************}
-\Msg{*}
-\Msg{* The ragged2e distribution contains these files:}
-\Msg{*}
-\Msg{* \space\space ragged2e.dtx}
-\Msg{* \space\space ragged2e.ins}
-\Msg{*}
-\Msg{* If you receive only some of these files from someone, complain!}
-\Msg{*}
-\Msg{***********************************************************}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{ragged2e.ins}
+ [2020/02/05 v3.0 Installation script for Ragged2e Package]
\preamble
-
-Copyright 1996..2019 Martin Schroeder.
-
-This file is part of the Ragged2e package
------------------------------------------
+Copyright (C) 1996–2019 Martin Schröder, 2021 Marei Peischl (peiTeX) <marei@peitex.de>
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
+http://www.latex-project.org/lppl.txt
+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'.
-The Current Maintainer of this work is Martin Schroeder.
+The Current Maintainer of this work is
+ Marei Peischl <marei@peitex.de>.
This work consists of the files ragged2e.dtx and ragged2e.ins
and the derived file ragged2e.sty.
\endpreamble
-\declarepreamble\driverpreamble
-
-Copyright 1996..2019 Martin Schroeder.
-
-This file is part of the Ragged2e package
------------------------------------------
-
-To produce the documentation in the way you like you are allowed
-to change this driver file.
-
-\endpreamble
-
\keepsilent
\askforoverwritefalse
-\generate{\file{ragged2e.sty}{\from{ragged2e.dtx}{package}}
- \usepreamble\driverpreamble
- \file{ragged2e.drv}{\from{ragged2e.dtx}{driver}}
- }
+\generate{%
+ \file{ragged2e.sty}{\from{ragged2e.dtx}{package}}
+}
\Msg{***********************************************************}
\Msg{*}
@@ -96,7 +37,7 @@ to change this driver file.
\Msg{*}
\Msg{* \space\space ragged2e.sty}
\Msg{*}
-\Msg{* To produce the documentation run the file ragged2e.drv}
+\Msg{* To produce the documentation run the file ragged2e.dtx}
\Msg{* through LaTeX.}
\Msg{*}
\Msg{* Happy TeXing}
@@ -104,4 +45,3 @@ to change this driver file.
\endbatchfile
%%
%% End of file `ragged2e.ins'.
-%% vim:syntax=tex:tw=70:ts=2
diff --git a/macros/latex/contrib/ragged2e/ragged2e.pdf b/macros/latex/contrib/ragged2e/ragged2e.pdf
index 607a7c9ba3..0a593dada1 100644
--- a/macros/latex/contrib/ragged2e/ragged2e.pdf
+++ b/macros/latex/contrib/ragged2e/ragged2e.pdf
Binary files differ
diff --git a/macros/latex/contrib/ragged2e/raggtest.tex b/macros/latex/contrib/ragged2e/raggtest.tex
deleted file mode 100644
index 5b10e30afe..0000000000
--- a/macros/latex/contrib/ragged2e/raggtest.tex
+++ /dev/null
@@ -1,75 +0,0 @@
-\documentclass{article}
-\usepackage{ragged2e}
-\usepackage{multicol}
-
-\pagestyle{empty}
-
-\newcommand{\Test}{%
- ``The purpose of this pronunciation exercise is to remind you that
- \TeX{} is primarily concerned with high-quality technical
- manuscripts: Its emphasis is on art and technology, as in the
- underlying Greek word.
- If you merely want to produce a passably good document ---
- something acceptable and bascially readable but not really
- beautiful --- a simpler system will usually suffice.
- With \TeX{} the goal is to produce the {\sl finest\/} quality:
- this requires more attention to detail, but you will not find it
- much harder to go the extra distance, and you'll be able to take
- special pride in the finished product.''
-}
-
-\setlength{\parindent}{0pt}
-
-\newcommand{\bs}{{\tt\symbol{'134}}}
-
-\begin{document}
-\begin{multicols}{3}
-
-\fussy
-
-\RaggedRight
-
-{\verb|\raggedright|\\
-\raggedright\Test\\[3ex]}
-
-{{\tt\bs{}RaggedRightRight\-skip} = {\tt 0pt plus 1em}\\
-\setlength{\RaggedRightRightskip}{0pt plus 1em}
-\RaggedRight\Test\par\vspace{3ex}}
-
-{{\tt\bs{}RaggedRightRight\-skip} = {\tt 0pt plus 2em}
-\begin{FlushLeft}\Test\end{FlushLeft}}
-
-{{\tt\bs{}RaggedRightRight\-skip} = {\tt 0pt plus 3em}\\
-\setlength{\RaggedRightRightskip}{0pt plus 3em}
-\RaggedRight\Test\par\vspace{3ex}}
-
-{{\tt\bs{}RaggedRightRight\-skip} = {\tt 0pt plus 4em}
-\setlength{\RaggedRightRightskip}{0pt plus 4em}
-\begin{FlushLeft}\Test\end{FlushLeft}}
-
-{{\tt\bs{}RaggedRightRight\-skip} = {\tt 0pt plus 5em}\\
-\setlength{\RaggedRightRightskip}{0pt plus 5em}
-\RaggedRight\Test\par\vspace{3ex}}
-
-{{\tt\bs{}RaggedRightRight\-skip} = {\tt 0pt plus 6em}
-\setlength{\RaggedRightRightskip}{0pt plus 6em}
-\begin{FlushLeft}\Test\end{FlushLeft}}
-
-{{\tt\bs{}RaggedRightRight\-skip} = {\tt 0pt plus 7em}\\
-\setlength{\RaggedRightRightskip}{0pt plus 7em}
-\RaggedRight\Test\par\vspace{3ex}}
-
-{%
- \setlength{\parfillskip}{0pt}
- \setlength{\RaggedRightRightskip}{0pt}
- \setlength{\RaggedRightLeftskip}{0pt plus 2em}
- \RaggedRight
- {%
- {\tt\bs{}RaggedRightRight\-skip} = {\tt 0pt},
- {\tt\bs{}Rag\-ged\-Right\-Left\-skip} = {\tt 0pt plus 2em},
- {\tt\bs{}par\-fill\-skip} = {\tt 0pt}\par}
- \Test\par}
-
-\end{multicols}
-
-\end{document}
diff --git a/macros/latex/contrib/ragged2e/test-koma.tex b/macros/latex/contrib/ragged2e/test-koma.tex
deleted file mode 100644
index 35dfe75b89..0000000000
--- a/macros/latex/contrib/ragged2e/test-koma.tex
+++ /dev/null
@@ -1,37 +0,0 @@
-\nofiles
-\documentclass[a5paper]{scrartcl}
-\usepackage[document,newcommands]{ragged2e}
-\usepackage[T1]{fontenc}
-\usepackage{lmodern}
-\usepackage{microtype}
-\usepackage{geometry}
-
-\newcommand*{\Test}{%
- \rmfamily
- ``The purpose of this pronunciation exercise is to remind you that
- \TeX{} is primarily concerned with high-quality technical
- manuscripts: Its emphasis is on art and technology, as in the
- underlying Greek word.
- If you merely want to produce a passably good document ---
- something acceptable and bascially readable but not really
- beautiful --- a simpler system will usually suffice.
- With \TeX{} the goal is to produce the \textsl{finest} quality:
- this requires more attention to detail, but you will not find it
- much harder to go the extra distance, and you'll be able to take
- special pride in the finished product.''\par
- \ttfamily
- ``The purpose of this pronunciation exercise is to remind you that
- \TeX{} is primarily concerned with high-quality technical
- manuscripts: Its emphasis is on art and technology, as in the
- underlying Greek word.
- If you merely want to produce a passably good document ---
- something acceptable and bascially readable but not really
- beautiful --- a simpler system will usually suffice.
- With \TeX{} the goal is to produce the \textsl{finest} quality:
- this requires more attention to detail, but you will not find it
- much harder to go the extra distance, and you'll be able to take
- special pride in the finished product.''}
-
-\begin{document}
-\Test\footnote{\Test}
-\end{document}
diff --git a/macros/latex/contrib/ragged2e/test1.tex b/macros/latex/contrib/ragged2e/test1.tex
deleted file mode 100644
index 924044522c..0000000000
--- a/macros/latex/contrib/ragged2e/test1.tex
+++ /dev/null
@@ -1,61 +0,0 @@
-\nofiles
-\documentclass{article}
-
-\newcommand*{\Test}[1]{%
- #1\\
- \rmfamily
- ``The purpose of this pronunciation exercise is to remind you that
- \TeX{} is primarily concerned with high-quality technical
- manuscripts: Its emphasis is on art and technology, as in the
- underlying Greek word.
- If you merely want to produce a passably good document ---
- something acceptable and bascially readable but not really
- beautiful --- a simpler system will usually suffice.
- With \TeX{} the goal is to produce the \textsl{finest} quality:
- this requires more attention to detail, but you will not find it
- much harder to go the extra distance, and you'll be able to take
- special pride in the finished product.''\par
- \ttfamily
- ``The purpose of this pronunciation exercise is to remind you that
- \TeX{} is primarily concerned with high-quality technical
- manuscripts: Its emphasis is on art and technology, as in the
- underlying Greek word.
- If you merely want to produce a passably good document ---
- something acceptable and bascially readable but not really
- beautiful --- a simpler system will usually suffice.
- With \TeX{} the goal is to produce the \textsl{finest} quality:
- this requires more attention to detail, but you will not find it
- much harder to go the extra distance, and you'll be able to take
- special pride in the finished product.''\par
- \medskip
- }
-\usepackage{multicol}
-\setcounter{collectmore}{2}
-\setcounter{columnbadness}{5000}
-
-\pagestyle{empty}
-
-\usepackage{ragged2e}
-
-\begin{document}
-\begin{multicols}{3}
-\fussy
-{\centering\Test{centering}}
-{\Centering\Test{Centering}}
-\newpage
-{\raggedleft\Test{raggedleft}}
-{\RaggedLeft\Test{RaggedLeft}}
-\newpage
-{\raggedright\Test{raggedright}}
-{\RaggedRight\Test{RaggedRight}}
-\newpage
-\begin{center}\Test{center}\end{center}
-\begin{Center}\Test{Center}\end{Center}
-\newpage
-\begin{flushleft}\Test{flushleft}\end{flushleft}
-\begin{FlushLeft}\Test{FlushLeft}\end{FlushLeft}
-\newpage
-\begin{flushright}\Test{flushright}\end{flushright}
-\begin{FlushRight}\Test{Flushright}\end{FlushRight}
-\end{multicols}
-\end{document}
diff --git a/macros/latex/contrib/ragged2e/test2.tex b/macros/latex/contrib/ragged2e/test2.tex
deleted file mode 100644
index 82c6c6590c..0000000000
--- a/macros/latex/contrib/ragged2e/test2.tex
+++ /dev/null
@@ -1,61 +0,0 @@
-\nofiles
-\documentclass{article}
-
-\newcommand*{\Test}[1]{%
- #1\\
- \rmfamily
- ``The purpose of this pronunciation exercise is to remind you that
- \TeX{} is primarily concerned with high-quality technical
- manuscripts: Its emphasis is on art and technology, as in the
- underlying Greek word.
- If you merely want to produce a passably good document ---
- something acceptable and bascially readable but not really
- beautiful --- a simpler system will usually suffice.
- With \TeX{} the goal is to produce the \textsl{finest} quality:
- this requires more attention to detail, but you will not find it
- much harder to go the extra distance, and you'll be able to take
- special pride in the finished product.''\par
- \ttfamily
- ``The purpose of this pronunciation exercise is to remind you that
- \TeX{} is primarily concerned with high-quality technical
- manuscripts: Its emphasis is on art and technology, as in the
- underlying Greek word.
- If you merely want to produce a passably good document ---
- something acceptable and bascially readable but not really
- beautiful --- a simpler system will usually suffice.
- With \TeX{} the goal is to produce the \textsl{finest} quality:
- this requires more attention to detail, but you will not find it
- much harder to go the extra distance, and you'll be able to take
- special pride in the finished product.''\par
- \medskip
- }
-\usepackage{multicol}
-\setcounter{collectmore}{2}
-\setcounter{columnbadness}{5000}
-
-\pagestyle{empty}
-
-\usepackage[OriginalParameters]{ragged2e}
-
-\begin{document}
-\begin{multicols}{3}
-\fussy
-{\centering\Test{centering}}
-{\Centering\Test{Centering}}
-\newpage
-{\raggedleft\Test{raggedleft}}
-{\RaggedLeft\Test{RaggedLeft}}
-\newpage
-{\raggedright\Test{raggedright}}
-{\RaggedRight\Test{RaggedRight}}
-\newpage
-\begin{center}\Test{center}\end{center}
-\begin{Center}\Test{Center}\end{Center}
-\newpage
-\begin{flushleft}\Test{flushleft}\end{flushleft}
-\begin{FlushLeft}\Test{FlushLeft}\end{FlushLeft}
-\newpage
-\begin{flushright}\Test{flushright}\end{flushright}
-\begin{FlushRight}\Test{Flushright}\end{FlushRight}
-\end{multicols}
-\end{document}
diff --git a/macros/latex/contrib/suftesi/README b/macros/latex/contrib/suftesi/README
index a4211d840e..a12471ce93 100644
--- a/macros/latex/contrib/suftesi/README
+++ b/macros/latex/contrib/suftesi/README
@@ -1,7 +1,7 @@
-----------------------------------------------------------------------
The 'suftesi' class for LaTeX
Author: Ivan Valbusa
- ivan dot valbusa at univr dot it
+ ivan dot valbusa at gmail dot com
This work has the LPPL maintenance status "author-maintained".
This work may be distributed and/or modified under the
diff --git a/macros/latex/contrib/suftesi/suftesi.dtx b/macros/latex/contrib/suftesi/suftesi.dtx
index 250432db6b..e9c3711111 100644
--- a/macros/latex/contrib/suftesi/suftesi.dtx
+++ b/macros/latex/contrib/suftesi/suftesi.dtx
@@ -56,7 +56,7 @@ This work has the LPPL maintenance status "author-maintained".
%<class>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<class>\ProvidesClass{suftesi}
%<*class>
- [2021/01/27 v3.0.1 A class for typesetting theses, books and articles]
+ [2021/02/06 v3.0.2 A class for typesetting theses, books and articles]
%</class>
%<*driver>
\documentclass[12pt]{ltxdoc}
@@ -102,7 +102,6 @@ This work has the LPPL maintenance status "author-maintained".
\usepackage[cochineal,bigdelims,cmintegrals,vvarbb]{newtxmath}
\usepackage[cal=boondoxo]{mathalpha}
\usepackage{manfnt}
-\usepackage{lettrine}
%--------------------------------------------------------
% LAYOUT
%--------------------------------------------------------
@@ -145,7 +144,14 @@ cochineal,mathpazo,bera,amsthm}
\DeclareRobustCommand*{\arm}[1]{\ar{\meta{\argstyle#1}}}
\DeclareRobustCommand*{\oarm}[1]{\oar{\meta{\argstyle#1}}}
\newcommand*{\OR}{${}\mid{}$}
-\newcommand{\alert}[1][]{\lettrine[#1]{\normalsize\textdbend}{\hskip.4em}}
+\makeatletter
+\newlength\CLett
+\newcommand*\alert{
+ \par\noindent
+ \setbox\z@\hbox{\textdbend}\CLett=\wd\z@%
+ \raisebox{-1.05\baselineskip}[0pt][0pt]{%
+ \llap{\box\z@\kern6pt}}}
+\makeatother
% New environments
\newenvironment{ttquote}{%
\begin{mdframed}\ttfamily\microtypesetup{activate=false}}{\end{mdframed}}
@@ -204,7 +210,7 @@ cochineal,mathpazo,bera,amsthm}
% LAYOUTS THUMBNAILS
% --------------------------------------------------------
\usepackage{xfp}
-\NewExpandableDocumentCommand{\getlength}{O{pt}mm}{%
+\NewExpandableDocumentCommand{\sufgetlength}{O{pt}mm}{%
% #1 (optional, default pt), #2 = length
\fpeval{round((#3)/(1#1),#2)}}
\newlength{\expaperwidth}
@@ -240,7 +246,7 @@ cochineal,mathpazo,bera,amsthm}
\draw[draw=gray!10,thick] (\expaperwidth,0) -- (\expaperwidth,\expaperheight);
\draw[xshift=\exxshift,body] (0,0) rectangle (\extextwidth,\extextheight);
\draw[xshift=\exzshift,body] (0,0) rectangle (\extextwidth,\extextheight);
- \node at (\expaperwidth,-4) (caption) {\parbox{2.5cm}{\centering\footnotesize\texttt{#2}\par (\getlength[cm]{2}{\expaperwidth} $\times$ \getlength[cm]{2}{\expaperheight})\par}};
+ \node at (\expaperwidth,-4) (caption) {\parbox{2.5cm}{\centering\footnotesize\texttt{#2}\par (\sufgetlength[cm]{2}{\expaperwidth} $\times$ \sufgetlength[cm]{2}{\expaperheight})\par}};
\end{tikzpicture}}
% --------------------------------------------------------
% HYPERREF SETUP
@@ -271,7 +277,7 @@ cochineal,mathpazo,bera,amsthm}
%</driver>
% \fi
%
-% \CheckSum{5348}
+% \CheckSum{5380}
%
% \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
@@ -289,6 +295,7 @@ cochineal,mathpazo,bera,amsthm}
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
+% \changes{v3.0.2}{2021/02/06}{Improved \opt{subsecstyle} and \opt{subsubsecstyle} options.}
% \changes{v3.0.1}{2021/01/27}{Maintenance release.}
% \changes{v3.0}{2021/01/24}{Improved \sty{biblatex} support. Updated documentation.}
% \changes{v2.9.9b (2.9.11)}{2020/12/21}{New page layouts: \opt{pocketa}, \opt{pocketb}, \opt{pocketc}. New commands \cmd{breakinbody}, \cmd{breakinbodyleft}, \cmd{breakintoc} (old names: \cmd{headbreak} and \cmd{xheadbreak}). Changed definitions of \cmd{appendixpagename}, \cmd{appendixtocname} and \cmd{appendixname} commands (default: english). The \cmd{part} command has been completely redefined. Updated documentation.}
@@ -991,10 +998,6 @@ cochineal,mathpazo,bera,amsthm}
%\end{verbatim}
% \end{latexcode}
%
-% ^^A\subsection{Title page}
-%
-% ^^A The class provides a very simple title page through the \cmd{maketitle} command. A large collection of stylish title pages is provided by the \sty{titlepages} package by Peter Wilson. This package is part of the \sty{memoir} documentation but you can copy the code examples and adapt them to work with \sty{suftesi} with quite simple changes.
-%
% ^^A ----------------------------------------------------------------
% ^^A
% \subsection{Appendices}
@@ -1928,33 +1931,6 @@ cochineal,mathpazo,bera,amsthm}
%
% ^^A ----------------------------------------------------------------
% ^^A
-% ^^A \section{Known issues}
-% ^^A
-% ^^A ----------------------------------------------------------------
-% ^^A
-% ^^A A problem occurs with the \opt{article} document structure. The \cmd{part} command resets the headers so if it is the first sectioning command of the page you will get no headers in that page. In this case you have to add the header manually with something like this:
-% ^^A \begin{latexcode}
-% ^^A \begin{verbatim}
-% ^^A \markboth{Section title}{Section title}
-% ^^A \part{The title of the part}
-% ^^A
-% ^^A \section{Section title}
-% ^^A \end{verbatim}
-% ^^A \end{latexcode}
-% ^^A If the title of the part is at the beginning of the page you will need the \sty{afterpage} package \parencite{afterpage} and the \cmd{afterpage} command:
-% ^^A \begin{latexcode}
-% ^^A \begin{verbatim}
-% ^^A \afterpage{
-% ^^A \markboth{Section title}{Section title}
-% ^^A \part{The title of the part}
-% ^^A }
-% ^^A
-% ^^A \section{Section title}
-% ^^A \end{verbatim}
-% ^^A \end{latexcode}
-%
-% ^^A ----------------------------------------------------------------
-% ^^A
% \section{Backward compatibility}
% ^^A
% ^^A ----------------------------------------------------------------
@@ -2415,22 +2391,40 @@ cochineal,mathpazo,bera,amsthm}
\suftesi@numparsectrue
\fi}
\define@choicekey{}{subsecstyle}[\val\nr]
- {left,center,right}[left]{%
+ {left,center,right,parleft,parcenter,parright}[left]{%
\ifcase\nr\relax
\def\SUF@lr@SUBSECSwitch{\filright}
\or
\def\SUF@lr@SUBSECSwitch{\filcenter}
\or
\def\SUF@lr@SUBSECSwitch{\filleft}
+\or%numparsubsec
+\def\SUF@lr@SUBSECSwitch{\filright}
+\suftesi@numparsubsectrue
+\or
+\def\SUF@lr@SUBSECSwitch{\filcenter}
+\suftesi@numparsubsectrue
+\or
+\def\SUF@lr@SUBSECSwitch{\filleft}
+\suftesi@numparsubsectrue
\fi}
\define@choicekey{}{subsubsecstyle}[\val\nr]
- {left,center,right}[left]{%
+ {left,center,right,parleft,parcenter,parright}[left]{%
\ifcase\nr\relax
\def\SUF@lr@SUBSUBSECSwitch{\filright}
\or
\def\SUF@lr@SUBSUBSECSwitch{\filcenter}
\or
\def\SUF@lr@SUBSUBSECSwitch{\filleft}
+\or%numparsubsubsec
+\def\SUF@lr@SUBSUBSECSwitch{\filright}
+\suftesi@numparsubsubsectrue
+\or
+\def\SUF@lr@SUBSUBSECSwitch{\filcenter}
+\suftesi@numparsubsubsectrue
+\or
+\def\SUF@lr@SUBSUBSECSwitch{\filleft}
+\suftesi@numparsubsubsectrue
\fi}
% \end{macrocode}
% \subsubsection{Sections font}
@@ -3838,6 +3832,7 @@ cochineal,mathpazo,bera,amsthm}
{\SUF@lr@PARTSwitch\SUF@partsize
\interlinepenalty \@M
\ifnum \c@secnumdepth >-2\relax
+ \addvspace{4ex}
\noindent\partname\hskip.5em{\SUF@PART@font\SUF@thepart}\SUF@dotpart
\ifsuftesi@numparpart
\par
@@ -3851,6 +3846,7 @@ cochineal,mathpazo,bera,amsthm}
\def\@spart#1{%
{\SUF@lr@PARTSwitch\SUF@partsize
\interlinepenalty \@M
+ \addvspace{4ex}
\noindent\SUF@PART@StyleSwitch#1\par}%
\@endpart}
diff --git a/macros/latex/contrib/suftesi/suftesi.pdf b/macros/latex/contrib/suftesi/suftesi.pdf
index 3ed3266a57..d6486c3ec7 100644
--- a/macros/latex/contrib/suftesi/suftesi.pdf
+++ b/macros/latex/contrib/suftesi/suftesi.pdf
Binary files differ