summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-08-11 03:00:54 +0000
committerNorbert Preining <norbert@preining.info>2021-08-11 03:00:54 +0000
commit78510518401cc9b3aced4cf291ecb7730591091d (patch)
treed8545696b8116c9b39e5f9df85ff4e17ca9b6898 /macros/latex
parent5bc44ca57dbc5dac1c9beae2df2712cdb16dc563 (diff)
CTAN sync 202108110300
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx26
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin584706 -> 584709 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex4
-rw-r--r--macros/latex/contrib/elpres/README.md19
-rw-r--r--macros/latex/contrib/elpres/doc/ctan-lion.pdfbin0 -> 124995 bytes
-rw-r--r--macros/latex/contrib/elpres/doc/elpres-example.pdfbin157784 -> 216833 bytes
-rw-r--r--macros/latex/contrib/elpres/doc/elpres-example.tex7
-rw-r--r--macros/latex/contrib/elpres/doc/elpres-manual.pdfbin155411 -> 161486 bytes
-rw-r--r--macros/latex/contrib/elpres/doc/elpres-manual.tex55
-rw-r--r--macros/latex/contrib/elpres/tex/ctan-lion.pngbin81950 -> 0 bytes
-rw-r--r--macros/latex/contrib/elpres/tex/elpres.cls76
-rw-r--r--macros/latex/contrib/elpres/tex/elpresbluelightgrayscheme.sty12
-rw-r--r--macros/latex/contrib/elpres/tex/elpresgrayscheme.sty13
-rw-r--r--macros/latex/contrib/elpres/tex/elpreswhitebluescheme.sty21
-rw-r--r--macros/latex/contrib/elpres/tex/elpreswhiteredscheme.sty11
-rw-r--r--macros/latex/contrib/elpres/tex/elpreswhitetealscheme.sty12
-rw-r--r--macros/latex/contrib/hep-paper/bibliography.bib9
-rw-r--r--macros/latex/contrib/hep-paper/hep-paper-documentation.pdfbin439620 -> 432501 bytes
-rw-r--r--macros/latex/contrib/hep-paper/hep-paper-implementation.dtx1895
-rw-r--r--macros/latex/contrib/hep-paper/hep-paper-implementation.pdfbin1063749 -> 1079808 bytes
-rw-r--r--macros/latex/contrib/hep-paper/hep-paper.ins7
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin466543 -> 470144 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex248
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx1105
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin1355018 -> 1377012 bytes
-rw-r--r--macros/latex/contrib/schule/README9
-rw-r--r--macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-4.xmp25
-rw-r--r--macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-nc-sa-4.xmp25
-rw-r--r--macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-nc-sa-eu-4.xmp25
-rw-r--r--macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-sa-4.xmp25
-rw-r--r--macros/latex/contrib/schule/data/xsim-style/xsim.style.schule-tcolorbox.code.tex5
-rw-r--r--macros/latex/contrib/schule/doc/changelog.tex9
-rw-r--r--macros/latex/contrib/schule/doc/fachPhysik.tex28
-rw-r--r--macros/latex/contrib/schule/doc/lizenzen.tex6
-rw-r--r--macros/latex/contrib/schule/doc/modulAufgaben.tex2
-rw-r--r--macros/latex/contrib/schule/doc/modulBewertung.tex6
-rw-r--r--macros/latex/contrib/schule/doc/modulLizenzen.tex7
-rw-r--r--macros/latex/contrib/schule/doc/modulPapiertypen.tex4
-rw-r--r--macros/latex/contrib/schule/doc/module.tex2
-rw-r--r--macros/latex/contrib/schule/doc/schule.pdfbin1329932 -> 1389569 bytes
-rw-r--r--macros/latex/contrib/schule/doc/schule.tex6
-rw-r--r--macros/latex/contrib/schule/latex/relaycircuit.sty20
-rw-r--r--macros/latex/contrib/schule/latex/schule.fach.Physik.code.tex12
-rw-r--r--macros/latex/contrib/schule/latex/schule.fach.Physik.pakete.tex5
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Aufgaben.pakete.tex2
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex142
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Bewertung.optionen.tex7
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Format.code.tex2
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Lizenzen.code.tex6
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Lizenzen.pakete.tex21
-rw-r--r--macros/latex/contrib/schule/latex/schule.sty6
-rw-r--r--macros/latex/contrib/schule/latex/schulphy.sty20
-rw-r--r--macros/latex/contrib/semantex/semantex.pdfbin385078 -> 384739 bytes
-rw-r--r--macros/latex/contrib/semantex/semantex.sty118
-rw-r--r--macros/latex/contrib/semantex/semantex.tex154
-rw-r--r--macros/latex/contrib/semantex/stripsemantex.sty2
-rw-r--r--macros/latex/contrib/spbmark/spbmark.pdfbin65618 -> 66119 bytes
-rw-r--r--macros/latex/contrib/spbmark/spbmark.sty4
-rw-r--r--macros/latex/contrib/spbmark/spbmark.tex4
-rw-r--r--macros/latex/contrib/ulthese/README.md2
-rw-r--r--macros/latex/contrib/ulthese/ulthese.dtx56
-rw-r--r--macros/latex/contrib/ulthese/ulthese.pdfbin255520 -> 256822 bytes
62 files changed, 2693 insertions, 1594 deletions
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 6a32dd2f6d..9d4005db90 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -8,7 +8,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/08/09}{1.28H}
+\ProvidesExplClass{easybook}{2021/08/10}{1.28K}
{Typeset Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -292,7 +292,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2021/08/09}{1.28H}
+\ProvidesExplPackage{easybase}{2021/08/10}{1.28K}
{Typeset Chinese theses or books}
\cs_generate_variant:Nn \dim_add:Nn { NV,Nv }
@@ -363,7 +363,7 @@
}
{ \IfFileExists{#1.sty}{\RequirePackage{#1}}{} }
}
-\cs_new_protected:Npn \eb_package_reload_check:nn #1#2
+\cs_new_protected:Npn \eb_if_package_reload:nF #1#2
{
\@ifpackageloaded{#1}
{\msg_warning:nnn { easybase } { package-reload } {#1}}
@@ -381,7 +381,7 @@
\PassOptionsToPackage{#1}{#2}
\eb_clist_map_inline:nn {#2}
{
- \eb_package_reload_check:nn {##1}
+ \eb_if_package_reload:nF {##1}
{ \eb@usepackage@save{##1} }
}
}
@@ -619,7 +619,7 @@
\exp_args:Nc \NewDocumentCommand { eb@mark@#1@label@layout }
{O{\use:c { CTEXthe#1 }}m}
{\tl_set:cn { eb@mark@#1@label } {##1##2}}
- \cs_new:cpn { eb_mark_#1_name_bool:n } ##1
+ \cs_new:cpn { eb_mark_#1_if_name:n } ##1
{
\tl_if_in:nnTF {##1} { [ }
{ \use:c { eb@mark@#1@label@layout }##1 }
@@ -664,11 +664,11 @@
subsec-mark .cs_set:Np = \eb_fancyhf_subsection_mark:n #1,
subsec-mark .initial:n =
{ \CTEXifname{\eb@mark@subsection@label}{}#1 },
- chap-label .code:n = \eb_mark_chapter_name_bool:n {#1},
+ chap-label .code:n = \eb_mark_chapter_if_name:n {#1},
chap-label .initial:n = \hspace{1em},
- sec-label .code:n = \eb_mark_section_name_bool:n {#1},
+ sec-label .code:n = \eb_mark_section_if_name:n {#1},
sec-label .initial:n = \hspace{0.5em},
- subsec-label .code:n = \eb_mark_subsection_name_bool:n {#1},
+ subsec-label .code:n = \eb_mark_subsection_if_name:n {#1},
subsec-label .initial:n = \hspace{0.5em},
headrule .tl_gset:N = \headrule,
@@ -682,7 +682,7 @@
\cs_set_eq:NN \eb_mark_uppercase:n \text_uppercase:n
\cs_set_eq:NN \eb_mark_nouppercase:n \text_titlecase_first:n
-\cs_new:Npn \eb_mark_uppercase_bool:nn #1#2
+\cs_new:Npn \eb_mark_if_uppercase:nn #1#2
{
\bool_if:NTF \l__eb_mark_uppercase_bool
{ \eb_mark_uppercase:n }
@@ -692,11 +692,11 @@
\cs_new:Npn \eb@level@markdouble #1#2
{
\markboth
- {\eb_mark_uppercase_bool:nn {#1} {#2}}
- {\ifbool{@twoside}{\eb_mark_uppercase_bool:nn {#1} {#2}}{}}
+ {\eb_mark_if_uppercase:nn {#1} {#2}}
+ {\ifbool{@twoside}{\eb_mark_if_uppercase:nn {#1} {#2}}{}}
}
\cs_new:Npn \eb@level@markright #1#2
- { \markright{\eb_mark_uppercase_bool:nn {#1} {#2}} }
+ { \markright{\eb_mark_if_uppercase:nn {#1} {#2}} }
\cs_new:Npn \eb@level@section@mark #1
{
\bool_if:NTF \l__eb_class_book_bool
@@ -2396,7 +2396,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2021/08/09}{1.28H}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2021/08/10}{1.28K}
{Customization of tcolorbox for easybook}
\tl_gset:Nn \eb@tc@line@skip { 0.5\baselineskip }
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 3d0183b324..a9f86a7487 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 34b22931d2..5266be103c 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -11,8 +11,8 @@
{
name = easybook,
title = EASYBOOK 使用手册,
- version = v1.28H,
- date = 2021/08/09,
+ version = v1.28K,
+ date = 2021/08/10,
authors = 瞿毅,
info = 排版简体中文学位论文和书籍,
email = quee123@foxmail.com,
diff --git a/macros/latex/contrib/elpres/README.md b/macros/latex/contrib/elpres/README.md
index 36346c4764..bc1fe64089 100644
--- a/macros/latex/contrib/elpres/README.md
+++ b/macros/latex/contrib/elpres/README.md
@@ -1,4 +1,4 @@
-Elpres v0.8 2021-08-01
+Elpres v1.0.1 2021-08-10
# Short description
@@ -7,7 +7,7 @@ with a beamer/projector. It is derived from LaTeX’s article class and can
be used with with LaTeX, pdfLaTeX and LuaLaTeX. The default "virtual paper
size" of presentations generated by this class corresponds to a 4:3
(width:height) aspect ratio. Other aspect ratios for widescreen monitors
-(16:9, 16x:10) may be selected.
+(16:9, 16:10) are available.
The elpres class requires: `ifthen`, `fancyhdr`, `hyperref`, `graphicx`,
`xcolor` and `geometry`.
@@ -18,11 +18,12 @@ For enhanced features the packages `ragged2e`, `overlays`, `wallpaper`,
A homepage for the elpres project: http://vkiefel.de/elpres.html with
additional material.
-# Changes in v0.9
+# Changes in v1.0.1
-* A new class option `bulletsymb` was added
-* A `TDS` archive file `elpres.tds.zip` for added for the upolad on `ctan.org`
-* Detailed installation instructions were updated in this file (`README.md`).
+* A new class option `ballsymb` was added,
+* The manual was updated,
+* Detailed installation instructions for manual installation were
+ updated in this file (`README.md`).
# Installation
@@ -36,7 +37,6 @@ following files:
elpreswhitebluescheme.sty,
elpreswhiteredscheme.sty,
elpreswhitetealscheme.sty,
- ctan-lion.png,
ep-ball-01.png,
ep-ball-02.png,
ep-ball-03.png,
@@ -58,8 +58,9 @@ The manual and the example file:
elpres-manual.pdf,
elpres-manual.tex,
elpres-example.pdf,
- elpres-example.tex
-
+ elpres-example.tex,
+ ctan-lion.pdf
+
are to be copied into a directory of the `.../doc/...`-branch of a
`texmf`-tree like `../texmf/doc/latex/elpres`, where `texmf` may be
`texmf-dist` or `texmf-local` or an analogous directory. Finally the file
diff --git a/macros/latex/contrib/elpres/doc/ctan-lion.pdf b/macros/latex/contrib/elpres/doc/ctan-lion.pdf
new file mode 100644
index 0000000000..caa35c7fe5
--- /dev/null
+++ b/macros/latex/contrib/elpres/doc/ctan-lion.pdf
Binary files differ
diff --git a/macros/latex/contrib/elpres/doc/elpres-example.pdf b/macros/latex/contrib/elpres/doc/elpres-example.pdf
index bbd2597b3c..c3c4b30787 100644
--- a/macros/latex/contrib/elpres/doc/elpres-example.pdf
+++ b/macros/latex/contrib/elpres/doc/elpres-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/elpres/doc/elpres-example.tex b/macros/latex/contrib/elpres/doc/elpres-example.tex
index fdfd90d18e..9bd56104a4 100644
--- a/macros/latex/contrib/elpres/doc/elpres-example.tex
+++ b/macros/latex/contrib/elpres/doc/elpres-example.tex
@@ -33,7 +33,6 @@ This is an example of a \LaTeX\ \texttt{itemize} list
\item third line in an itemized list
\end{itemize}
-
\end{psli}
\begin{psli}[Title of second page\footnote{footnotes are often
@@ -54,12 +53,10 @@ The second page with nested, ``vertically compressed'' lists using the
to save space}
\end{citemize}
-
{\small For footnotes, the \texttt{footmisc} package, providing the
- options \texttt{perpage} and \texttt{symbol} is recommended. \par}
+ options \texttt{perpage} and \texttt{symbol}, is recommended. \par}
\end{psli}
-
\begin{psli}[Title of third page]
\begin{cdescription}
@@ -77,7 +74,7 @@ The second page with nested, ``vertically compressed'' lists using the
\end{minipage}
\hspace{0.4em}
\begin{minipage}[b]{0.39\paperwidth} \small
- Figure 1: The ``CTAN \TeX-lion'' drawn by Duane Bibby,
+ The ``CTAN \TeX-lion'' drawn by Duane Bibby,
thanks to \texttt{ctan.org}
\end{minipage}
diff --git a/macros/latex/contrib/elpres/doc/elpres-manual.pdf b/macros/latex/contrib/elpres/doc/elpres-manual.pdf
index 8ff9be4792..9bc920796c 100644
--- a/macros/latex/contrib/elpres/doc/elpres-manual.pdf
+++ b/macros/latex/contrib/elpres/doc/elpres-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/elpres/doc/elpres-manual.tex b/macros/latex/contrib/elpres/doc/elpres-manual.tex
index b4b00a808b..ab5fe4d396 100644
--- a/macros/latex/contrib/elpres/doc/elpres-manual.tex
+++ b/macros/latex/contrib/elpres/doc/elpres-manual.tex
@@ -39,8 +39,8 @@
\title{\textsf{elpres} --- electronic presentations \\ with (pdf/Lua)\LaTeX}
\author{Volker Kiefel\thanks{volker dot kiefel at freenet dot de,
\url{http://vkiefel.de/elpres.html}}}
-\date{v0.9\\[1.8ex]
- Ausgust 01, 2021%
+\date{v1.0.1\\[1.8ex]
+ August 10, 2021%
% --- \textcolor{DarkGreen}{update of this manual:
% September 27, 2020}
}
@@ -179,9 +179,14 @@ Options for different screen aspect ratios: \texttt{4x3}
\index{bulletsymb class option@\texttt{bulletsymb} class option}
The option \texttt{bulletsymb} selects \verb+$\bullet$+ symbols
instead of the default \texttt{itemize}-environment
-\verb+\item+ symbols in all four levels.
+symbols in all four levels,
+\texttt{ballsymb} is effective together with the presentation
+schemes (section \ref{sec:pres-scheme})
+and provides alternative symbols for the \texttt{itemize} environment.
+%
The option \texttt{navisymb}
-adds symbols for navigation to the presentation.
+adds a small field with symbols for navigation to the right
+bottom area of the presentation.
Options of the \texttt{article} class are also available for
\texttt{elpres} presentations,
e.\,g. \texttt{10pt}, \texttt{11pt}, \texttt{12pt} for
@@ -306,7 +311,17 @@ You may copy the code examples from this manual more easily from the
\begin{sloppypar}
With this example you may check, if \texttt{elpres} has been installed
correctly in your \TeX -system: copy the listing of \texttt{minimal.tex} into
-a file and process it with \texttt{pdflatex}. The line
+a file, add the class option \texttt{ballsymb}:
+
+\begin{verbatim}
+ \documentclass[12pt,pdftex,4x3,ballsymp]{elpres}
+ ...
+\end{verbatim}
+
+
+%% hier weiter 2021-08-08
+
+and process it with \texttt{pdflatex}. The line
\verb+\usepackage{elpreswhitetealscheme}+ should not be commented out,
i.\,e. the package \texttt{elpreswhitetealscheme} should be active.
If processing of \texttt{minimal.tex} results in a message like
@@ -316,13 +331,29 @@ If processing of \texttt{minimal.tex} results in a message like
... `ep-ball-04' not found ...
\end{verbatim}
+
the \TeX -system does not find the file \texttt{ep-ball-04.png} in the
-appropriate place. In such a situation it is recommended to install the
-current version of \texttt{elpres} in the correct subdirectories of
-the ``local'' \texttt{texmf}-directory, details are described in section
-\ref{sec:installation}.
+appropriate place. In such a situation it is recommended
+\begin{enumerate}
+ \item either to install the current version of \texttt{elpres} in the
+ correct subdirectories of the ``local'' \texttt{texmf}-directory, details
+ are described in section \ref{sec:installation}
+ \item or to copy the small elpres graphics files \texttt{ep-ball-nn.eps}
+ \texttt{ep-ball-nn.png} into a directory of the \texttt{tex}-branch of the
+ local \texttt{texmf}-directoty tree (followed by an update
+ see of \TeX s files database, for details see section
+ \ref{sec:installation}). The files may be obtained
+ from the \texttt{elpres} project page
+ \url{http://vkiefel.de/elpres.html}%
+ \footnote{\url{http://vkiefel.de/elpres/elpres-ball-image-files.zip}}
+ \item or to copy the required image file into the current project
+ directory.
+\end{enumerate}
+The problem sometimes arises as soon as \TeX-distributions do not install
+\texttt{elpres} correctly. For details see \texttt{README.md} in the archive
+\texttt{elpres.zip}, which may be obtained from \texttt{ctan.org}.
\subsection{Essential elements of an \texttt{elpres} presentation}
@@ -1078,7 +1109,7 @@ by the presentation author start with \texttt{ep...}}
-\begin{description}[noitemsep]
+\begin{description}%[noitemsep]
\item[\texttt{eptextcolor}] ``normal text color'' (default values for
documents without
presentation scheme included in \texttt{elpres.cls}: black)
@@ -1094,7 +1125,7 @@ Presentation schemes available in the current version of \texttt{elpres}:
\begin{sloppypar}
-\begin{description}[noitemsep]
+\begin{description}%[noitemsep]
% \item[\texttt{elpresplainscheme}] ..
@@ -1422,6 +1453,8 @@ bug in the \texttt{elpres...scheme.sty} files was fixed (incorrect value for
\verb+\labelitemiv+).
\textbf{v0.9} (01.08.2021): New class option \texttt{bulletsymb} added, an
archive \texttt{elpres.tds.zip} is added for \texttt{ctan.org} upload.
+\textbf{v1.0}: Class option \texttt{ballsymb} added, manual updated.
+\textbf{v1.0.1}: Corrected upload to \texttt{ctan.org}
\printindex
diff --git a/macros/latex/contrib/elpres/tex/ctan-lion.png b/macros/latex/contrib/elpres/tex/ctan-lion.png
deleted file mode 100644
index c24d9a98f2..0000000000
--- a/macros/latex/contrib/elpres/tex/ctan-lion.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/elpres/tex/elpres.cls b/macros/latex/contrib/elpres/tex/elpres.cls
index 36aa7c7171..adc5312845 100644
--- a/macros/latex/contrib/elpres/tex/elpres.cls
+++ b/macros/latex/contrib/elpres/tex/elpres.cls
@@ -1,40 +1,45 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{elpres}[2021/08/01 class for plain electronic presentations]
+\ProvidesClass{elpres}[2021/08/10 class for plain electronic presentations]
%
-% 2004/06/19 v0.1 - initial version
+% 2004/06/19 v0.1 - initial version
%
-% 2004/08/29 v0.2 - Page number: now `footnotesize' instead of `normalsize',
-% - Left and right margins changed
-% - `cenumerate' and `cdescription' environments
-% added
+% 2004/08/29 v0.2 - Page number: now `footnotesize' instead of `normalsize',
+% - Left and right margins changed
+% - `cenumerate' and `cdescription' environments
+% added
%
-% 2005/08/12 v0.3 - Options for selection of fonts added
+% 2005/08/12 v0.3 - Options for selection of fonts added
%
-% 2018/01/20 v0.4 - Lists environments `citemize', `cenumerate',
-% `cdescription modified
-% - aspect ratio may be selected: 4x3 (default) 16x9,
-% 16x10: i.e. support for widescreen monitors added
-% - documentation updated
+% 2018/01/20 v0.4 - Lists environments `citemize', `cenumerate',
+% `cdescription modified
+% - aspect ratio may be selected: 4x3 (default) 16x9,
+% 16x10: i.e. support for widescreen monitors added
+% - documentation updated
%
-% 2018/01/24 v0.4a - documentation completed
+% 2018/01/24 v0.4a - documentation completed
%
-% 2020/07/12 v0.5 - class option `navisymb' added; elpres now also requires
-% the hyperref and xcolor packages. New commands:
-% `auvimm', `fromlinktext' `totargettext'.
-% new class option `nofonts' for use with lualatex.
-% - documentation updated
+% 2020/07/12 v0.5 - class option `navisymb' added; elpres now also requires
+% the hyperref and xcolor packages. New commands:
+% `auvimm', `fromlinktext' `totargettext'.
+% new class option `nofonts' for use with lualatex.
+% - documentation updated
%
-% 2020/08/15 v0.6 - command `slidetitlecolor' added, color scheme files
-% added, most parts of the documentation rewritten
+% 2020/08/15 v0.6 - command `slidetitlecolor' added, color scheme files
+% added, most parts of the documentation rewritten
%
-% 2021/02/20 v0.7 - command `pagenrconst' added, parts of the documentation
-% (manual) rewritten
+% 2021/02/20 v0.7 - command `pagenrconst' added, parts of the documentation
+% (manual) rewritten
%
-% 2021/02/28 v0.8 - bug in elpres...scheme.sty files fixed, manual updated
+% 2021/02/28 v0.8 - bug in elpres...scheme.sty files fixed, manual updated
%
-% 2021/08/01 v0.9 - new class option `bulletsymb' added, elpres.tds.zip
-% archive added to ctan.org upload
+% 2021/08/01 v0.9 - new class option `bulletsymb' added, elpres.tds.zip
+% archive added to ctan.org upload
%
+% 2021/08/08 v1.0 - graphical itemize symbols (colored balls) are now
+% accessible by the `ballsymb' class option, manual
+% updated
+%
+% 2021/08/10 v1.0.1 - corrected upload
%
@@ -81,14 +86,17 @@
\renewcommand{\navigation}{withnavi}%
}
-% begin neu 1.8.21
-% Option: itemize symbols Option: select $\bullet$ instead of default
% itemize symbols
\newcommand{\itemize@elsymbols}{default@symbols}
+
\DeclareOption{bulletsymb}{%
\renewcommand{\itemize@elsymbols}{bullet@symbols}%
}
-% end neu 1.8.21
+
+\DeclareOption{ballsymb}{%
+ \renewcommand{\itemize@elsymbols}{ball@symbols}%
+}
+
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions\relax
@@ -236,18 +244,14 @@
\newcommand{\pagenrconst}{\addtocounter{page}{-1}}
-%% begin geaendert 1.8.21
\ifthenelse{\equal{\itemize@elsymbols}{bullet@symbols}}{%
-\renewcommand{\labelitemi}{\large\ensuremath{\bullet}}%
-\renewcommand{\labelitemii}{\ensuremath{\bullet}}%
-\renewcommand{\labelitemiii}{\small\ensuremath{\bullet}}%
-\renewcommand{\labelitemiv}{\footnotesize\ensuremath{\bullet}}%
+\renewcommand{\labelitemi}{\ensuremath{\bullet}}%
+\renewcommand{\labelitemii}{\small\ensuremath{\bullet}}%
+\renewcommand{\labelitemiii}{\footnotesize\ensuremath{\bullet}}%
+\renewcommand{\labelitemiv}{\scriptsize\ensuremath{\bullet}}%
}{}
-%% end geaendert 1.8.21
-
-
%% (External): Default colors for defined slide elements, they are modified in
%% style files -- these color names may be used externally by authors of
%% presentations
diff --git a/macros/latex/contrib/elpres/tex/elpresbluelightgrayscheme.sty b/macros/latex/contrib/elpres/tex/elpresbluelightgrayscheme.sty
index daac18a441..5c44a415a7 100644
--- a/macros/latex/contrib/elpres/tex/elpresbluelightgrayscheme.sty
+++ b/macros/latex/contrib/elpres/tex/elpresbluelightgrayscheme.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{elpresbluelightgrayscheme}[2021/08/01 elpres layout scheme blue lightgray]
+\ProvidesPackage{elpresbluelightgrayscheme}[2021/08/10 elpres layout scheme blue lightgray]
\definecolor{epturquoise}{rgb}{0.1,0.83,0.8}
\definecolor{eplistheadcolor}{rgb}{0.75,0.8,1} % color for list heads
@@ -29,8 +29,14 @@
\definecolor{eptextcolor}{rgb}{0.7,0.7,0.75} % Ext: normal text color
\color{eptextcolor} % Ext: normal text color
-%% begin geaendert 1.8.21
\ifthenelse{\equal{\itemize@elsymbols}{default@symbols}}{%
+\renewcommand{\labelitemi}{\textcolor{eplistheadcolor}{\textbullet}}%
+\renewcommand{\labelitemii}{\textcolor{eplistheadcolor}{\normalfont\bfseries\textendash}}%
+\renewcommand{\labelitemiii}{\small\textcolor{eplistheadcolor}{\textasteriskcentered}}%
+\renewcommand{\labelitemiv}{\footnotesize\textcolor{eplistheadcolor}{\textperiodcentered}}%
+}{}
+
+\ifthenelse{\equal{\itemize@elsymbols}{ball@symbols}}{%
\renewcommand{\labelitemi}{\includegraphics[scale=0.06]{ep-ball-01}}%
\renewcommand{\labelitemii}{\includegraphics[scale=0.055]{ep-ball-01}}%
\renewcommand{\labelitemiii}{\includegraphics[scale=0.05]{ep-ball-01}}%
@@ -43,8 +49,6 @@
\renewcommand{\labelitemiii}{\small\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
\renewcommand{\labelitemiv}{\footnotesize\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
}{}
-%% end geaendert 1.8.21
-
\renewcommand{\labelenumi}{\textcolor{eplistheadcolor}{\textbf{\theenumi.}}}
\renewcommand{\labelenumii}{\textcolor{eplistheadcolor}{\textbf{\theenumii.}}}
diff --git a/macros/latex/contrib/elpres/tex/elpresgrayscheme.sty b/macros/latex/contrib/elpres/tex/elpresgrayscheme.sty
index 42cf019183..030491308d 100644
--- a/macros/latex/contrib/elpres/tex/elpresgrayscheme.sty
+++ b/macros/latex/contrib/elpres/tex/elpresgrayscheme.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{elpresgrayscheme}[2021/08/01 elpres layout scheme gray]
+\ProvidesPackage{elpresgrayscheme}[2021/08/10 elpres layout scheme gray]
\definecolor{epgreen}{rgb}{0.11,0.34,0.3}
\definecolor{eplistheadcolor}{named}{epgreen} % color for list heads
@@ -28,8 +28,14 @@
\definecolor{eptextcolor}{rgb}{0.16,0.16,0.16} % Ext: normal text color
\color{eptextcolor} % Ext: normal text color
-%% begin geaendert 1.8.21
\ifthenelse{\equal{\itemize@elsymbols}{default@symbols}}{%
+\renewcommand{\labelitemi}{\textcolor{eplistheadcolor}{\textbullet}}%
+\renewcommand{\labelitemii}{\textcolor{eplistheadcolor}{\normalfont\bfseries\textendash}}%
+\renewcommand{\labelitemiii}{\small\textcolor{eplistheadcolor}{\textasteriskcentered}}%
+\renewcommand{\labelitemiv}{\footnotesize\textcolor{eplistheadcolor}{\textperiodcentered}}%
+}{}
+
+\ifthenelse{\equal{\itemize@elsymbols}{ball@symbols}}{%
\renewcommand{\labelitemi}{\includegraphics[scale=0.06]{ep-ball-03}}%
\renewcommand{\labelitemii}{\includegraphics[scale=0.055]{ep-ball-03}}%
\renewcommand{\labelitemiii}{\includegraphics[scale=0.05]{ep-ball-03}}%
@@ -42,9 +48,6 @@
\renewcommand{\labelitemiii}{\small\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
\renewcommand{\labelitemiv}{\footnotesize\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
}{}
-%% end geaendert 1.8.21
-
-
\renewcommand{\labelenumi}{\textcolor{eplistheadcolor}{\textbf{\theenumi.}}}
\renewcommand{\labelenumii}{\textcolor{eplistheadcolor}{\textbf{\theenumii.}}}
diff --git a/macros/latex/contrib/elpres/tex/elpreswhitebluescheme.sty b/macros/latex/contrib/elpres/tex/elpreswhitebluescheme.sty
index f469c2ebc9..44d027de24 100644
--- a/macros/latex/contrib/elpres/tex/elpreswhitebluescheme.sty
+++ b/macros/latex/contrib/elpres/tex/elpreswhitebluescheme.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{elpreswhitebluescheme}[2021/08/01 elpres layout scheme white blue]
+\ProvidesPackage{elpreswhitebluescheme}[2021/08/10 elpres layout scheme white blue]
\definecolor{epdarkblue}{rgb}{0.12,0.09,0.65}
\definecolor{eplistheadcolor}{named}{epdarkblue} % color for list heads
@@ -29,8 +29,15 @@
\definecolor{eptextcolor}{rgb}{0.2,0.16,0.16} % Ext: normal text color
\color{eptextcolor} % Ext: normal text color
-%% begin geaendert 1.8.21
+
\ifthenelse{\equal{\itemize@elsymbols}{default@symbols}}{%
+\renewcommand{\labelitemi}{\textcolor{eplistheadcolor}{\textbullet}}%
+\renewcommand{\labelitemii}{\textcolor{eplistheadcolor}{\normalfont\bfseries\textendash}}%
+\renewcommand{\labelitemiii}{\small\textcolor{eplistheadcolor}{\textasteriskcentered}}%
+\renewcommand{\labelitemiv}{\footnotesize\textcolor{eplistheadcolor}{\textperiodcentered}}%
+}{}
+
+\ifthenelse{\equal{\itemize@elsymbols}{ball@symbols}}{%
\renewcommand{\labelitemi}{\includegraphics[scale=0.06]{ep-ball-05}}%
\renewcommand{\labelitemii}{\includegraphics[scale=0.055]{ep-ball-05}}%
\renewcommand{\labelitemiii}{\includegraphics[scale=0.05]{ep-ball-05}}%
@@ -38,13 +45,11 @@
}{}
\ifthenelse{\equal{\itemize@elsymbols}{bullet@symbols}}{%
-\renewcommand{\labelitemi}{\large\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
-\renewcommand{\labelitemii}{\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
-\renewcommand{\labelitemiii}{\small\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
-\renewcommand{\labelitemiv}{\footnotesize\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
+\renewcommand{\labelitemi}{\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
+\renewcommand{\labelitemii}{\small\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
+\renewcommand{\labelitemiii}{\footnotesize\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
+\renewcommand{\labelitemiv}{\scriptsize\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
}{}
-%% end geaendert 1.8.21
-
\renewcommand{\labelenumi}{\textcolor{eplistheadcolor}{\textbf{\theenumi.}}}
\renewcommand{\labelenumii}{\textcolor{eplistheadcolor}{\textbf{\theenumii.}}}
diff --git a/macros/latex/contrib/elpres/tex/elpreswhiteredscheme.sty b/macros/latex/contrib/elpres/tex/elpreswhiteredscheme.sty
index 9860cec48b..22058f46da 100644
--- a/macros/latex/contrib/elpres/tex/elpreswhiteredscheme.sty
+++ b/macros/latex/contrib/elpres/tex/elpreswhiteredscheme.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{elpreswhiteredscheme}[2021/08/01 elpres layout white red]
+\ProvidesPackage{elpreswhiteredscheme}[2021/08/10 elpres layout white red]
\definecolor{epdarkred}{rgb}{0.6,0.09,0.1}
\definecolor{eplistheadcolor}{named}{epdarkred} % color for list heads
@@ -29,8 +29,14 @@
\definecolor{eptextcolor}{rgb}{0.2,0.16,0.16} % Ext: normal text color
\color{eptextcolor} % Ext: normal text color
-%% begin geaendert 1.8.21
\ifthenelse{\equal{\itemize@elsymbols}{default@symbols}}{%
+\renewcommand{\labelitemi}{\textcolor{eplistheadcolor}{\textbullet}}%
+\renewcommand{\labelitemii}{\textcolor{eplistheadcolor}{\normalfont\bfseries\textendash}}%
+\renewcommand{\labelitemiii}{\small\textcolor{eplistheadcolor}{\textasteriskcentered}}%
+\renewcommand{\labelitemiv}{\footnotesize\textcolor{eplistheadcolor}{\textperiodcentered}}%
+}{}
+
+\ifthenelse{\equal{\itemize@elsymbols}{ball@symbols}}{%
\renewcommand{\labelitemi}{\includegraphics[scale=0.06]{ep-ball-02}}%
\renewcommand{\labelitemii}{\includegraphics[scale=0.055]{ep-ball-02}}%
\renewcommand{\labelitemiii}{\includegraphics[scale=0.05]{ep-ball-02}}%
@@ -43,7 +49,6 @@
\renewcommand{\labelitemiii}{\small\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
\renewcommand{\labelitemiv}{\footnotesize\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
}{}
-%% end geaendert 1.8.21
\renewcommand{\labelenumi}{\textcolor{eplistheadcolor}{\textbf{\theenumi.}}}
\renewcommand{\labelenumii}{\textcolor{eplistheadcolor}{\textbf{\theenumii.}}}
diff --git a/macros/latex/contrib/elpres/tex/elpreswhitetealscheme.sty b/macros/latex/contrib/elpres/tex/elpreswhitetealscheme.sty
index 9df8c25007..790c442ded 100644
--- a/macros/latex/contrib/elpres/tex/elpreswhitetealscheme.sty
+++ b/macros/latex/contrib/elpres/tex/elpreswhitetealscheme.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{elpreswhitetealscheme}[2021/08/01 elpres layout scheme white teal]
+\ProvidesPackage{elpreswhitetealscheme}[2021/08/10 elpres layout scheme white teal]
\definecolor{epdarkteal}{rgb}{0.02,0.35,0.38}
\definecolor{eplistheadcolor}{named}{epdarkteal} % color for list heads
@@ -29,9 +29,14 @@
\definecolor{eptextcolor}{rgb}{0.2,0.16,0.16} % Ext: normal text color
\color{eptextcolor} % Ext: normal text color
-
-%% begin geaendert 1.8.21
\ifthenelse{\equal{\itemize@elsymbols}{default@symbols}}{%
+\renewcommand{\labelitemi}{\textcolor{eplistheadcolor}{\textbullet}}%
+\renewcommand{\labelitemii}{\textcolor{eplistheadcolor}{\normalfont\bfseries\textendash}}%
+\renewcommand{\labelitemiii}{\small\textcolor{eplistheadcolor}{\textasteriskcentered}}%
+\renewcommand{\labelitemiv}{\footnotesize\textcolor{eplistheadcolor}{\textperiodcentered}}%
+}{}
+
+\ifthenelse{\equal{\itemize@elsymbols}{ball@symbols}}{%
\renewcommand{\labelitemi}{\includegraphics[scale=0.06]{ep-ball-04}}%
\renewcommand{\labelitemii}{\includegraphics[scale=0.055]{ep-ball-04}}%
\renewcommand{\labelitemiii}{\includegraphics[scale=0.05]{ep-ball-04}}%
@@ -44,7 +49,6 @@
\renewcommand{\labelitemiii}{\small\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
\renewcommand{\labelitemiv}{\footnotesize\textcolor{eplistheadcolor}{\ensuremath{\bullet}}}%
}{}
-%% end geaendert 1.8.21
\renewcommand{\labelenumi}{\textcolor{eplistheadcolor}{\textbf{\theenumi.}}}
\renewcommand{\labelenumii}{\textcolor{eplistheadcolor}{\textbf{\theenumii.}}}
diff --git a/macros/latex/contrib/hep-paper/bibliography.bib b/macros/latex/contrib/hep-paper/bibliography.bib
index b3e572a851..74162a5a45 100644
--- a/macros/latex/contrib/hep-paper/bibliography.bib
+++ b/macros/latex/contrib/hep-paper/bibliography.bib
@@ -282,6 +282,15 @@ eprinttype = "ctan",
eprint = "greek-fontenc",
}
+@article{textalpha,
+title = "The |textalpha| package",
+subtitle = "LICR macros and encoding definition files for Greek",
+author = "Günter Milde",
+date = "2010",
+eprinttype = "ctan",
+eprint = "greek-fontenc",
+}
+
@article{arxiv-collector,
title = "|arxiv-collector|",
subtitle = "A little Python script to collect \hologo{LaTeX} sources for upload to the arXiv",
diff --git a/macros/latex/contrib/hep-paper/hep-paper-documentation.pdf b/macros/latex/contrib/hep-paper/hep-paper-documentation.pdf
index 47244cfc40..ea2087add6 100644
--- a/macros/latex/contrib/hep-paper/hep-paper-documentation.pdf
+++ b/macros/latex/contrib/hep-paper/hep-paper-documentation.pdf
Binary files differ
diff --git a/macros/latex/contrib/hep-paper/hep-paper-implementation.dtx b/macros/latex/contrib/hep-paper/hep-paper-implementation.dtx
index f334f869e0..a24310a0b0 100644
--- a/macros/latex/contrib/hep-paper/hep-paper-implementation.dtx
+++ b/macros/latex/contrib/hep-paper/hep-paper-implementation.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2019-2020 by Jan Hajer
+% Copyright (C) 2019 by Jan Hajer
% -----------------------------------
%
% This file may be distributed and/or modified under the
@@ -17,18 +17,24 @@
%
% \iffalse
-%<package|title|bibliography|acronyms>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-%<package>\ProvidesPackage{hep-paper}[2021/06/01 v1.7 Publications in High Energy Physics]
-%<title>\ProvidesPackage{hep-title}[2021/06/01 v1.7 Title macros for publications in High Energy Physics]
-%<bibliography>\ProvidesPackage{hep-bibliography}[2021/06/01 v1.7 Bibliography macros for publications in High Energy Physics]
-%<acronyms>\ProvidesPackage{hep-acronyms}[2021/06/01 v1.7 Acronym macros for publications in High Energy Physics]
-%<datamodel>\ProvidesFile{hep-paper.dbx}[2021/06/01 v1.7 HEP-Paper biblatex data model]
-%<documentation>\ProvidesFile{hep-paper-documentation.tex}[2021/06/01 v1.7 HEP-Paper documentation]
+%<package|title|font|math|bibliography|acronyms>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+%<package>\ProvidesPackage{hep-paper}[2021/08/01 v1.8 Publications in High Energy Physics]
+%<title>\ProvidesPackage{hep-title}[2021/08/01 v1.8 Title macros for publications in High Energy Physics]
+%<font>\ProvidesPackage{hep-font}[2021/08/01 v1.8 Font adjustments for publications in High Energy Physics]
+%<math>\ProvidesPackage{hep-math}[2021/08/01 v1.8 Font adjustments for publications in High Energy Physics]
+%<floats>\ProvidesPackage{hep-floats}[2021/08/01 v1.8 Float adjustments for publications in High Energy Physics]
+%<bibliography>\ProvidesPackage{hep-bibliography}[2021/08/01 v1.8 Bibliography macros for publications in High Energy Physics]
+%<acronyms>\ProvidesPackage{hep-acronyms}[2021/08/01 v1.8 Acronym macros for publications in High Energy Physics]
+%<datamodel>\ProvidesFile{hep-paper.dbx}[2021/08/01 v1.8 HEP-Paper biblatex data model]
+%<documentation>\ProvidesFile{hep-paper-documentation.tex}[2021/08/01 v1.8 HEP-Paper documentation]
%
%<*documentation>
\RequirePackage[l2tabu, orthodox]{nag}
\documentclass{ltxdoc}
+\AtBeginDocument{\DeleteShortVerb{\|}}
+\AtBeginDocument{\MakeShortVerb{\"}}
+\setcounter{tocdepth}{2}
\EnableCrossrefs
\CodelineIndex
@@ -36,7 +42,7 @@
\MacroIndent=1.5em
-\usepackage[parskip]{hep-paper}
+\usepackage[parskip, oldstyle]{hep-paper}
\bibliography{bibliography}
@@ -72,7 +78,7 @@
%
% \fi
%
-% \CheckSum{2095}
+% \CheckSum{0}
%
% \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
@@ -97,7 +103,8 @@
% \changes{v1.4}{2020/09/01}{If possible the compatibility options are selected automatically. Inclusion of PubMed IDs in bibliography.}
% \changes{v1.5}{2020/10/01}{Reduce the numer of math alphabets used in sans serif mode. Add more title options such as a subtitle. Use standard class options.}
% \changes{v1.6}{2020/12/01}{Implementation of the twocolumn mode.}
-% \changes{v1.7}{2021/16/01}{Introduction of dedicated style file for the title, acronyms and bibliography macros. Extension of the title macros.}
+% \changes{v1.7}{2021/06/01}{Introduction of dedicated style file for the title, acronyms and bibliography macros. Extension of the title macros.}
+% \changes{v1.8}{2021/08/01}{Expand thanks to allow for reference label and fine tune the title page. Reimplement the must relevant macros from the physics package. Make mathrm produce upright Greek.}
%
% \ifshort
%<*documentation>
@@ -107,7 +114,7 @@
\title{The \textsmaller[1.5]{HEP\raisebox{.25ex}{--}PAPER} package\thanks{This document corresponds to \software{hep-paper}~\fileversion.}}
\subtitle{Publications in high energy physics}
-\author{Jan Hajer \email{jan.hajer@uclouvain.be}}
+\author{Jan Hajer \email{jan.hajer@unibas.ch}}
\affiliation{Department of Physics, University of Basel, Klingelbergstraße 82, 4056 Basel, Switzerland}
\preprint{Preprint-Number}
\date{\filedate}
@@ -129,7 +136,7 @@ Instead of reinventing the wheel by introducing newly created macros \software{h
\section{Introduction}
-For usual publications it is enough to load additionally to the |article| class without optional arguments only the \software{hep-paper} package \cite{hep-paper}.
+For usual publications it is enough to load additionally to the "article" class without optional arguments only the \software{hep-paper} package \cite{hep-paper}.
\begin{verbatim}
\documentclass{article}
\usepackage{hep-paper}
@@ -147,42 +154,42 @@ If only subset of the functionality is needed one of the smaller style files \so
\subsection{Options}
\DescribeMacro{paper}
-The |paper=|\meta{format} option loads the specified paper format.
+The "paper="\meta{format} option loads the specified paper format.
The possible \meta{formats} are:
-|a0|, |a1|, |a2|, |a3|, |a4|, |a5|, |a6|,
-|b0|, |b1|, |b2|, |b3|, |b4|, |b5|, |b6|,
-|c0|, |c1|, |c2|, |c3|, |c4|, |c5|, |c6|,
-|ansia|, |ansib|, |ansic|, |ansid|, |ansie|,
-|letter|, |executive|, |legal|.
-The default is |a4|.
+"a0", "a1", "a2", "a3", "a4", "a5", "a6",
+"b0", "b1", "b2", "b3", "b4", "b5", "b6",
+"c0", "c1", "c2", "c3", "c4", "c5", "c6",
+"ansia", "ansib", "ansic", "ansid", "ansie",
+"letter", "executive", "legal".
+The default is "a4".
\DescribeMacro{font}
-The |font=|\meta{size} option loads the specified font size.
+The "font="\meta{size} option loads the specified font size.
The possible \meta{sizes} are:
-|8pt|, |9pt|, |10pt|, |11pt|, |12pt|, |14pt|, |17pt|, |20pt|.
+"8pt", "9pt", "10pt", "11pt", "12pt", "14pt", "17pt", "20pt".
The default is \unit[11]{pt}.
\DescribeMacro{lang}
-The |lang|=\meta{name} option switches the document language to one of the values provided by the \software{babel} package \cite{babel}.
-The default is |british|.
+The "lang"=\meta{name} option switches the document language to one of the values provided by the \software{babel} package \cite{babel}.
+The default is "british".
\DescribeMacro{sansserif}
-The |sansserif| option switches the document including math to sans serif font shape.
+The "sansserif" option switches the document including math to sans serif font shape.
\DescribeMacro{oldstyle}
-The |oldstyle| option activates the use of oldstyle text- (\texto{123}) in favour of lining- (\textl{123}) figures in text mode.
+The "oldstyle" option activates the use of oldstyle text- (\texto{123}) in favour of lining- (\textl{123}) figures in text mode.
\DescribeMacro{parskip}
-The |parskip| option changes how paragraphs are separated from each other using the \software{parskip} package \cite{parskip}.
-The \hologo{LaTeX} default is separation via indentation the |parskip| option switches to separation via vertical space.
-\footnote{Although the |parskip| option is used for this document, it is recommended only for very few document types such as technical manuals or answers to referees.}
+The "parskip" option changes how paragraphs are separated from each other using the \software{parskip} package \cite{parskip}.
+The \hologo{LaTeX} default is separation via indentation the "parskip" option switches to separation via vertical space.
+\footnote{Although the "parskip" option is used for this document, it is recommended only for very few document types such as technical manuals or answers to referees.}
\DescribeMacro{symbols}
-The |symbols|=\meta{family} set the family of the symbol fonts.
-|symbols=ams| loads the two \hologo{AmS} fonts \cite{amsfonts} and the \software{bm} bold fonts.
-The default |symbols=true| replaces additionally the blackboard font with the \software{dsfont} \cite{dsfont}.
-|symbols=minion| switches the symbol fonts to the Adobe MinionPro companion font from the \software{MnSymbol} package \cite{MnSymbol}.
-|symbols=false| deactivates loading any additional symbol fonts.
+The "symbols"=\meta{family} set the family of the symbol fonts.
+"symbols=ams" loads the two \hologo{AmS} fonts \cite{amsfonts} and the \software{bm} bold fonts.
+The default "symbols=true" replaces additionally the blackboard font with the \software{dsfont} \cite{dsfont}.
+"symbols=minion" switches the symbol fonts to the Adobe MinionPro companion font from the \software{MnSymbol} package \cite{MnSymbol}.
+"symbols=false" deactivates loading any additional symbol fonts.
\subsubsection{Deactivation}
@@ -190,20 +197,20 @@ The \software{hep-paper} package loads few bigger packages which have a large im
The deactivation options can prevent such and other adjustments.
\DescribeMacro{defaults}
-The |defaults| option prevents the adjustment of the page geometry and the font size set by the document class.
+The "defaults" option prevents the adjustment of the page geometry and the font size set by the document class.
\DescribeMacro{title}
-The |title=false| option deactivates the title page adjustments.
+The "title=false" option deactivates the title page adjustments.
\DescribeMacro{bibliography}
-The |bibliography|=\meta{key} option prevents the automatic loading of the \software{biblatex} package \cite{biblatex} if \meta{key}=|false|.
-Otherwise the \meta{key} is passed as |style| string to the \software{biblatex} package.
+The "bibliography"=\meta{key} option prevents the automatic loading of the \software{biblatex} package \cite{biblatex} if \meta{key}="false".
+Otherwise the \meta{key} is passed as "style" string to the \software{biblatex} package.
\DescribeMacro{glossaries}
-The |glossaries=false| option deactives acronyms and the use of the \software{glossaries} package \cite{glossaries}.
+The "glossaries=false" option deactives acronyms and the use of the \software{glossaries} package \cite{glossaries}.
\DescribeMacro{references}
-The |references=false| option prevents the \software{cleveref} package \cite{cleveref} from being loaded and deactivates further redefinitions of reference macros.
+The "references=false" option prevents the \software{cleveref} package \cite{cleveref} from being loaded and deactivates further redefinitions of reference macros.
\subsubsection{Compatibility}
@@ -212,50 +219,50 @@ They are mostly suitable combinations of options described in the previous secti
If \software{hep-paper} is able to detect the presence of such a class or package, \ie if it is loaded before the \software{hep-paper} package, the compatibility mode is activated automatically.
\DescribeMacro{beamer}
-The |beamer| option activates the \software{beamer} \cite{beamer} compatibility mode.
+The "beamer" option activates the \software{beamer} \cite{beamer} compatibility mode.
\DescribeMacro{jhep}
-The |jhep| option activates the \software{JHEP} \cite{jhep} compatibility mode.
+The "jhep" option activates the \software{JHEP} \cite{jhep} compatibility mode.
\DescribeMacro{jcap}
-The |jcap| option activates the \software{JCAP} \cite{jcap} compatibility mode.
+The "jcap" option activates the \software{JCAP} \cite{jcap} compatibility mode.
\DescribeMacro{revtex}
-The |revtex| option activates the REV\hologo{TeX} \cite{revtex} compatibility mode.
+The "revtex" option activates the REV\hologo{TeX} \cite{revtex} compatibility mode.
\DescribeMacro{pos}
-The |pos| option activates the \software{PoS} compatibility mode.
+The "pos" option activates the \software{PoS} compatibility mode.
\DescribeMacro{springer}
-The |springer| option activates the compatibility mode the |svjour| class \cite{svjour}.
+The "springer" option activates the compatibility mode the "svjour" class \cite{svjour}.
\subsubsection{Reactivation}
The \software{hep-paper} package deactivates unrecommended macros, which can be reactivated manually.
\DescribeMacro{manualplacement}
-The |manualplacement| option reactivates manual float placement.
+The "manualplacement" option reactivates manual float placement.
\DescribeMacro{eqnarray}
-The |eqnarray| option reactivates the depreciated |eqnarray| environment.
+The "eqnarray" option reactivates the depreciated "eqnarray" environment.
\section{Macros and environments}
\DescribeMacro{twocolumn}
\DescribeMacro{abstract*}
-If the global |twocolumn| option is present the page geometry is changed to cover almost the entire page.
-Additionally the |abstract*| environment is defined that generates a one column abstract and takes care of placing the title information.
+If the global "twocolumn" option is present the page geometry is changed to cover almost the entire page.
+Additionally the "abstract*" environment is defined that generates a one column abstract and takes care of placing the title information.
\subsection{Title page} \label{sec:title}
\DescribeMacro{\series}
-The |\series|\marg{series} macro is defined using the \software{titling} package \cite{titling}.
+The "\series"\marg{series} macro is defined using the \software{titling} package \cite{titling}.
\DescribeMacro{\title}
-The \PDF meta information is set according to the |\title|\marg{text} and |\author| \marg{text} information.
+The \PDF meta information is set according to the "\title"\marg{text} and "\author"\marg{text} information.
\DescribeMacro{\subtitle}
-The |\subtitle|\marg{subtitle} macro is defined.
+The "\subtitle"\marg{subtitle} macro is defined.
\DescribeMacro{\editor}
\DescribeMacro{\author}
@@ -271,42 +278,42 @@ The following lines add \eg two authors with different affiliations
\end{verbatim}
\DescribeMacro{\preprint}
-The |\preprint|\marg{numer} macro places a pre-print number in the upper right corner of the title page.
+The "\preprint"\marg{numer} macro places a pre-print number in the upper right corner of the title page.
\DescribeEnv{abstract}
-The |abstract| environment is adjusted to not start with an indentation.
+The "abstract" environment is adjusted to not start with an indentation.
\DescribeMacro{\titlefont}
\DescribeMacro{\subtitlefont}
\DescribeMacro{\authorfont}
\DescribeMacro{\affiliationfont}
\DescribeMacro{\preprintfont}
-Various title font macros are defined, allowing to change the appearance of the |\maketitle| output.
+Various title font macros are defined, allowing to change the appearance of the "\maketitle" output.
\subsection{Text}
Hyphenation is provided by the \software{babel} package \cite{babel} and quotation commands are provided by the \software{csquotes} package \cite{csquotes}.
\DescribeMacro{\enquote}
\DescribeMacro{\MakeOuterQuote}
-The latter package provides the convenient macros |\enquote|\marg{text} and |\MakeOuterQuote{"}| allowing to leave the choice of quotation marks to \hologo{LaTeX} and use |"| instead of the pair |``| and |''|, respectively.
+The latter package provides the convenient macros "\enquote"\marg{text} and "\MakeOuterQuote{}" allowing to leave the choice of quotation marks to \hologo{LaTeX} and use \dots instead of the pair \dots and \dots, respectively.
\DescribeMacro{\eg}
\DescribeMacro{\vs}
-The \software{foreign} package \cite{foreign} defines macros such as |\eg|, |\ie|, |\cf|, and |\vs| which are typeset as \eg, \ie, \cf, and \vs.
+The \software{foreign} package \cite{foreign} defines macros such as "\eg", "\ie", "\cf", and "\vs" which are typeset as \eg, \ie, \cf, and \vs.
\DescribeMacro{\no}
-The |\no|\marg{number} macro is typeset as \no{123}.
+The "\no"\marg{number} macro is typeset as \no{123}.
\DescribeMacro{\software}
-The |\software|\oarg{version}\marg{name} macro is typeset as \software[\fileversion]{HEP-Paper}.
+The "\software"\oarg{version}\marg{name} macro is typeset as \software[\fileversion]{HEP-Paper}.
\DescribeMacro{\online}
-The |\online|\marg{url}\marg{text} macro combines the features of the |\href|\marg{url}\allowbreak\marg{text}\allowbreak \cite{hyperref} and the |\url|\marg{text} \cite{url} macros, resulting in \eg \online{https://ctan.org/pkg/hep-paper}{ctan.org/pkg/hep-paper}.
+The "\online"\marg{url}\marg{text} macro combines the features of the "\href"\marg{url}\allowbreak\marg{text}\allowbreak \cite{hyperref} and the "\url"\marg{text} \cite{url} macros, resulting in \eg \online{https://ctan.org/pkg/hep-paper}{ctan.org/pkg/hep-paper}.
\DescribeMacro{inlinelist}
\DescribeMacro{enumdescript}
-The |inlinelist| and |enumdescript| environments are defined using the \software{enumitem} package \cite{enumitem}.
+The "inlinelist" and "enumdescript" environments are defined using the \software{enumitem} package \cite{enumitem}.
\begin{columns}
\begin{verbatim}
The three main points are
@@ -346,21 +353,21 @@ A bold versions \textbf{\textsc{Small Caps}} and a sans serif version of \textsf
\DescribeMacro{\underline}
\DescribeMacro{\overline}
-The |\underline| macro is redefined to allow line-breaks using the \software{ulem} package \cite{ulem}.
-The |\overline| macro is extended to also \overline{overline} text outside of math environments.
+The "\underline" macro is redefined to allow line-breaks using the \software{ulem} package \cite{ulem}.
+The "\overline" macro is extended to also \overline{overline} text outside of math environments.
\DescribeMacro{\useparskip}
\DescribeMacro{\useparindent}
-If the |parskip| option is activated the |\useparindent| macro switches to the usual parindent mode, while the |\useparskip| macro switches to the parskip mode.
+If the "parskip" option is activated the "\useparindent" macro switches to the usual parindent mode, while the "\useparskip" macro switches to the parskip mode.
\subsubsection{References and footnotes}
\DescribeMacro{\cref}
-References are extended with the \software{cleveref} package \cite{cleveref}, which allows to \eg just type |\cref|\marg{key} in order to write \enquote{figure 1}.
-Furthermore, the \software{cleveref} package allows to reference multiple objects within one |\cref|\marg{key1,key2}.
+References are extended with the \software{cleveref} package \cite{cleveref}, which allows to \eg just type "\cref"\marg{key} in order to write \enquote{figure 1}.
+Furthermore, the \software{cleveref} package allows to reference multiple objects within one "\cref"\marg{key1,key2}.
\DescribeMacro{\cite}
-Citations are adjusted to not start on a new line in order to avoid the repeated use of |~\cite|\marg{key}.
+Citations are adjusted to not start on a new line in order to avoid the repeated use of "~\cite"\marg{key}.
\DescribeMacro{\ref}
\DescribeMacro{\eqref}
@@ -375,65 +382,65 @@ Footnotes are adjusted to swallow white space before the footnote mark and at th
\DescribeMacro{\acronym}
\DescribeMacro{\shortacronym}
\DescribeMacro{\longacronym}
-The |\acronym|\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4]definition} macro generates the singular |\|\meta{abbreviation} and plural |\|\meta{abbreviation}|s| macros.
+The "\acronym"\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4]definition} macro generates the singular "\"\meta{abbreviation} and plural "\"\meta{abbreviation}"s" macros.
The first star prevents the addition of an \enquote{s} to the abbreviation plural.
The second star restores the \hologo{TeX} default of swallowing subsequent white space.
The long form is only shown at the first appearance of these macros, later appearances generate the abbreviation with a hyperlink to the long form.
The long form is never used in math mode.
Capitalization at the beginning of paragraphs and sentences is (mostly) ensured.
-The |\shortacronym| and |\longacronym| macros are drop-in replacements of the |\acronym| macro showing only the short or long form of their acronym.
+The "\shortacronym" and "\longacronym" macros are drop-in replacements of the "\acronym" macro showing only the short or long form of their acronym.
\DescribeMacro{\resetacronym}
\DescribeMacro{\dummyacronym}
-The first use form of the acronym can be enforced by resetting the acronym counter with |\resetacronym|\marg{key}.
+The first use form of the acronym can be enforced by resetting the acronym counter with "\resetacronym"\marg{key}.
If the acronym counter equals one at the end of the document the short form of the acronym is not introduced.
-Placing a |\dummyacronym|\marg{key} at the end of the document ensures that the short form is introduced.
+Placing a "\dummyacronym"\marg{key} at the end of the document ensures that the short form is introduced.
\subsection{Math}
The \software{mathtools} \cite{mathtools} and \software{amssymb} \cite{amsfonts} packages are loaded.
They in turn load the \hologo{AmSLaTeX} \software{amsmath} \cite{amsmath} and \software{amsfonts} \cite{amsfonts} packages.
\DescribeMacro{\mathbf}
-Bold math, via |\mathbf| is improved by the \software{bm} package \cite{bm}, \ie ($ A b \Gamma \delta \mathbf A \mathbf b \mathbf \Gamma \mathbf \delta$).
-Macros switching to |bfseries| such as |\section|\marg{text} are ensured to also typeset math in bold.
+Bold math, via "\mathbf" is improved by the \software{bm} package \cite{bm}, \ie ($ A b \Gamma \delta \mathbf A \mathbf b \mathbf \Gamma \mathbf \delta$).
+Macros switching to "bfseries" such as "\section"\marg{text} are ensured to also typeset math in bold.
\DescribeMacro{\text}
-The |\text|\marg{text} macro makes it possible to write text within math mode, \ie ($ \text A \text b \text \Gamma \text \delta \text{\textbf A} \text{\textbf b} \text{\textbf \Gamma} \text{\textbf \delta}$).
+The "\text"\marg{text} macro makes it possible to write text within math mode, \ie ($ \text A \text b \text \Gamma \text \delta \text{\textbf A} \text{\textbf b} \text{\textbf \Gamma} \text{\textbf \delta}$).
\DescribeMacro{\mathsf}
The math sans serif alphabet is redefined to be italic sans serif if the main text is serif and italic serif if the main text is sans serif, \ie ($\mathsf A \mathsf b \mathsf \Gamma \mathsf \delta \mathbf{\mathsf A} \mathbf{\mathsf b} \mathbf{\mathsf \Gamma} \mathbf{\mathsf \delta}$).
\DescribeMacro{\mathscr}
-The |\mathcal| font \ie ($\mathcal{ABCD}$) is accompanied by the |\mathscr| font \ie ($\mathscr{ABCD}$).
+The "\mathcal" font \ie ($\mathcal{ABCD}$) is accompanied by the "\mathscr" font \ie ($\mathscr{ABCD}$).
\DescribeMacro{\mathbb}
-The |\mathbb| font is improved by the \software{doublestroke} package \cite{dsfont} and adjusted depending on the |sansserif| option \ie ($\mathbb{Ah1}$).
+The "\mathbb" font is improved by the \software{doublestroke} package \cite{dsfont} and adjusted depending on the "sansserif" option \ie ($\mathbb{Ah1}$).
\DescribeMacro{\mathfrak}
-Finally, the |\mathfrak| font is also available \ie ($\mathfrak{AaBb12}$).
+Finally, the "\mathfrak" font is also available \ie ($\mathfrak{AaBb12}$).
Details about the font handling in \hologo{TeX} can be found in \ccite{fntguide}.
\DescribeMacro{\nicefrac}
\DescribeMacro{\flatfrac}
\DescribeMacro{\textfrac}
-The |\frac|\marg{number}\marg{number} macro is accompanied by |\nicefrac|\linebreak[1]\marg{number}\linebreak[1]\marg{number}, |\textfrac|\marg{number}\marg{number}, and |\flatfrac|\marg{number}\marg{number} leading to $\frac12$, $\nicefrac12$, \textfrac12, and $\flatfrac12$.
+The "\frac"\marg{number}\marg{number} macro is accompanied by "\nicefrac"\linebreak[1]\marg{number}\linebreak[1]\marg{number}, "\textfrac"\marg{number}\marg{number}, and "\flatfrac"\marg{number}\marg{number} leading to $\frac12$, $\nicefrac12$, \textfrac12, and $\flatfrac12$.
\DescribeMacro{\diag}
\DescribeMacro{\sgn}
-Diagonal matrix |\diag| and signum |\sgn| operators are defined.
+Diagonal matrix "\diag" and signum "\sgn" operators are defined.
\DescribeMacro{\mathdef}
-The |\mathdef|\marg{name}\oarg{arguments}\marg{code} macro \prefix{re}{defines} macros only within math mode without changing the text mode definition.
+The "\mathdef"\marg{name}\oarg{arguments}\marg{code} macro \prefix{re}{defines} macros only within math mode without changing the text mode definition.
\DescribeMacro{\i}
\DescribeMacro{\d}
The imaginary unit $\i$ and the differential $\d$ are defined using this functionality.
\DescribeMacro{\numberwithin}
-For longer paper it can be useful to re-number the equation in accordance with the section numbering |\numberwithin{equation}{section}|.
+For longer paper it can be useful to re-number the equation in accordance with the section numbering "\numberwithin{equation}{section}".
\DescribeMacro{subequations}
-In order to further reduce the size the of equation counter it can be useful to wrap |align| environments with multiple rows in a |subequations| environment.
+In order to further reduce the size the of equation counter it can be useful to wrap "align" environments with multiple rows in a "subequations" environment.
Both macros are provided by the \software{amsmath} package.
\DescribeMacro{eqnarray}
-The depreciated |eqnarray| environment is undefined as long this behaviour is not prevented by the |eqnarray| package option.
-The |split|, |multline|, |align|, |multlined|, |aligned|, |alignedat|, and |cases| environments of the \software{amsmath} and \software{mathtools} packages should be used instead.
+The depreciated "eqnarray" environment is undefined as long this behaviour is not prevented by the "eqnarray" package option.
+The "split", "multline", "align", "multlined", "aligned", "alignedat", and "cases" environments of the \software{amsmath} and \software{mathtools} packages should be used instead.
\DescribeMacro{equation}
-Use the |equation| environment for short equations.
+Use the "equation" environment for short equations.
\begin{columns}
\begin{verbatim}
\begin{equation}
@@ -447,7 +454,7 @@ Use the |equation| environment for short equations.
\end{columns}
\DescribeMacro{multline}
-Use the |multline| environment for longer equations.
+Use the "multline" environment for longer equations.
\begin{columns}
\begin{verbatim}
\begin{multline}
@@ -463,7 +470,7 @@ Use the |multline| environment for longer equations.
\end{columns}
\DescribeMacro{split}
-Use the |split| sub environment for equations in which multiple equal signs should be aligned.
+Use the "split" sub environment for equations in which multiple equal signs should be aligned.
\begin{columns}
\begin{verbatim}
\begin{equation} \begin{split}
@@ -481,7 +488,7 @@ Use the |split| sub environment for equations in which multiple equal signs shou
\end{columns}
\DescribeMacro{align}
-Use the |align| environment for the vertical alignment and horizontal distribution of multiple equations.
+Use the "align" environment for the vertical alignment and horizontal distribution of multiple equations.
\begin{columns}
\begin{verbatim}
\begin{subequations} \begin{align}
@@ -503,10 +510,10 @@ Use the |align| environment for the vertical alignment and horizontal distributi
\end{columns}
\DescribeMacro{aligned}
-Use the |aligned| environment within a |equation| environment if the aligned equations should be labeled with a single equation number.
+Use the "aligned" environment within a "equation" environment if the aligned equations should be labeled with a single equation number.
\DescribeMacro{multlined}
-Use the |multlined| environment if either |split| or |align| contain very long lines.
+Use the "multlined" environment if either "split" or "align" contain very long lines.
\begin{columns}
\begin{verbatim}
\begin{equation} \begin{split}
@@ -529,7 +536,7 @@ Use the |multlined| environment if either |split| or |align| contain very long l
\end{columns}
\DescribeMacro{alignat}
-Use the |alignat| environment together with the |\mathllap| macro for the alignment of multiple equations with vastly different lengths.
+Use the "alignat" environment together with the "\mathllap" macro for the alignment of multiple equations with vastly different lengths.
\begin{columns}
\begin{verbatim}
\begin{subequations}
@@ -553,22 +560,20 @@ Use the |alignat| environment together with the |\mathllap| macro for the alignm
\end{subequations}
\end{columns}
-As a rule of thumb if you have to use |\notag|, |\nonumber|, or perform manual spacing via |\quad| you are probably using the wrong environment.
+As a rule of thumb if you have to use "\notag", "\nonumber", or perform manual spacing via "\quad" you are probably using the wrong environment.
\subsubsection{Physics}
\DescribeMacro{\unit}
\DescribeMacro{\inv}
-The correct spacing for units, \cf \cref{eq:greek}, is provided by the macro |\unit|\oarg{value} \marg{unit} from the \software{units} package \cite{units} which can also be used in text mode.
-The macro |\inv|\oarg{power}\marg{text} allows to avoid math mode also for inverse units such as \unit[5]{\inv{fb}} typeset via |\unit[5]{\inv{fb}}|.
+The correct spacing for units, \cf \cref{eq:greek}, is provided by the macro "\unit"\oarg{value} \marg{unit} from the \software{units} package \cite{units} which can also be used in text mode.
+The macro "\inv"\oarg{power}\marg{text} allows to avoid math mode also for inverse units such as \unit[5]{\inv{fb}} typeset via "\unit[5]{\inv{fb}}".
Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the \software{fixmath} \cite{fixmath} and \software{alphabeta} \cite{alphabeta} packages.
This allows differentiations like
\begin{align} \label{eq:greek}
-\sigma &= \unit[5]{fb} \ , & &\mbox{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \unit[5]{\text \mu m} \ ,
+\sigma &= \unit[5]{fb} \ , & &\mbox{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \unit[5]{\mu m} \ .
\end{align}
-and \eg to distinguish gauge $\nu$ and mass \nu\ eigenstates in models with massive neutrinos.
-Note that |\mathrm| and therefore |\unit| transform italic Greek character to seemingly random upright characters, this can be avoided by using |\unit{\text\mu m}|.
Additionally, Greek letters can also be directly typed using Unicode.
\DescribeMacro{\ev}
@@ -578,7 +583,7 @@ Additionally, Greek letters can also be directly typed using Unicode.
The \software{physics} package \cite{physics} provides additional macros such as
\begin{align}
&\ev{\phi} \ ,
-&&\pdv[n]{f}{x} \ ,
+&&\pdv[n]{x}[f] \ ,
&&\comm{A}{B} \ ,
&&\order{x^2} \ ,
&&\eval{x}_0^\infty \ ,
@@ -587,7 +592,7 @@ The \software{physics} package \cite{physics} provides additional macros such as
\DescribeMacro{\cancel}
\DescribeMacro{\slashed}
-The |\cancel|\marg{characters} macro from the \software{cancel} package \cite{cancel} and the |\slashed| \marg{character} macro from the \software{slashed} package \cite{slashed} allow to $\cancel{\text{cancel}}$ math and use the Dirac slash notation \ie $\slashed \partial$, respectively.
+The "\cancel"\marg{characters} macro from the \software{cancel} package \cite{cancel} and the "\slashed" \marg{character} macro from the \software{slashed} package \cite{slashed} allow to $\cancel{\text{cancel}}$ math and use the Dirac slash notation \ie $\slashed \partial$, respectively.
\DescribeMacro{\overleftright}
A better looking over left right arrow is defined \ie $\overleftright{\partial}$.
@@ -598,20 +603,20 @@ A better looking over left right arrow is defined \ie $\overleftright{\partial}$
\DescribeEnv{table}
Automatic float placement is adjusted to place a single float at the top of pages and to reduce the number of float pages, using the \hologo{LaTeX} macros.
-|\setcounter{bottomnumber}{0}| \hfill no floats at the bottom of a page (default 1) \\
-|\setcounter{topnumber}{1}| \hfill a single float at the top of a page (default 2) \\
-|\setcounter{dbltopnumber}{1}| \hfill same for full widths floats in two-column mode \\
-|\renewcommand{\textfraction}{.1}| \hfill large floats are allowed (default 0.2)\\
-|\renewcommand{\topfraction}{.9}| \hfill (default 0.7) \\
-|\renewcommand{\dbltopfraction}{.9}| \hfill (default 0.7) \\
-|\renewcommand{\floatpagefraction}{.8}| \hfill float pages must be full (default 0.5)
+"\setcounter{bottomnumber}{0}" \hfill no floats at the bottom of a page (default 1) \\
+"\setcounter{topnumber}{1}" \hfill a single float at the top of a page (default 2) \\
+"\setcounter{dbltopnumber}{1}" \hfill same for full widths floats in two-column mode \\
+"\renewcommand{\textfraction}{.1}" \hfill large floats are allowed (default 0.2)\\
+"\renewcommand{\topfraction}{.9}" \hfill (default 0.7) \\
+"\renewcommand{\dbltopfraction}{.9}" \hfill (default 0.7) \\
+"\renewcommand{\floatpagefraction}{.8}" \hfill float pages must be full (default 0.5)
-Additionally, manual float placement is deactivated but can be reactivated using the |manualplacement| package option.
+Additionally, manual float placement is deactivated but can be reactivated using the "manualplacement" package option.
It is however recommended to archive the desired design by adjusting above macros.
The most useful float placement is usually archived by placing the float \emph{in front} of the paragraph it is referenced in first.
\DescribeMacro{\raggedright}
The float environments have been adjusted to center their content.
-The usual behaviour can be reactivated using |\raggedright|.
+The usual behaviour can be reactivated using "\raggedright".
\begin{table}
\begin{panels}{2}
@@ -632,19 +637,19 @@ The usual behaviour can be reactivated using |\raggedright|.
& b & c & d \\
\bottomrule
\end{tabular}
-\caption{The \protecting{|booktabs|} and \protecting{|multirow|} features.}
+\caption{The \protecting{"booktabs"} and \protecting{"multirow"} features.}
\label{tab:booktabs}
\end{panels}
-\caption{Example use of the \protecting{|panels|} environment in Panel \subref{tab:panels} and the features from the \software{booktabs} and \software{multirow} packages in Panel \subref{tab:booktabs}.
+\caption{Example use of the \protecting{"panels"} environment in Panel \subref{tab:panels} and the features from the \software{booktabs} and \software{multirow} packages in Panel \subref{tab:booktabs}.
} \label{tab:table}
\end{table}
\DescribeEnv{panels}
\DescribeMacro{\panel}
-The |panels| environment makes use of the \software{subcaption} package \cite{subcaption}.
-It provides sub-floats and takes as mandatory argument either the number of sub-floats (default~2) or the width of the first sub-float as fraction of the |\linewidth|.
-Within the |\begin{panels}|\oarg{vertical alignment}\marg{width} environment the |\panel| macro initiates a new sub-float.
-In the case that the width of the first sub-float has been given as an optional argument to the |panels| environment the |\panel|\marg{width} macro takes the width of the next sub-float as mandatory argument.
+The "panels" environment makes use of the \software{subcaption} package \cite{subcaption}.
+It provides sub-floats and takes as mandatory argument either the number of sub-floats (default~2) or the width of the first sub-float as fraction of the "\linewidth".
+Within the "\begin{panels}"\oarg{vertical alignment}\marg{width} environment the "\panel" macro initiates a new sub-float.
+In the case that the width of the first sub-float has been given as an optional argument to the "panels" environment the "\panel"\marg{width} macro takes the width of the next sub-float as mandatory argument.
The example code is presented in \cref{tab:panels}.
\DescribeEnv{tabular}
@@ -652,20 +657,20 @@ The \software{booktabs} \cite{booktabs} and \software{multirow} \cite{multirow}
\DescribeMacro{\graphic}
\DescribeMacro{\graphics}
-The \software{graphicx} package \cite{graphicx} is loaded and the |\graphic|\oarg{width}\marg{figure} macro is defined, which is a wrapper for the |\includegraphics|\marg{figure} macro and takes the figure width as fraction of the |\linewidth| as optional argument (default~1).
-If the graphics are located in a sub-folder its path can be indicated by |\graphics|\marg{subfolder}.
+The \software{graphicx} package \cite{graphicx} is loaded and the "\graphic"\oarg{width}\marg{figure} macro is defined, which is a wrapper for the "\includegraphics"\marg{figure} macro and takes the figure width as fraction of the "\linewidth" as optional argument (default~1).
+If the graphics are located in a sub-folder its path can be indicated by "\graphics"\marg{subfolder}.
\subsection{Bibliography} \label{sec:bibliography}
\DescribeMacro{\bibliography}
\DescribeMacro{\printbibliography}
The \software{biblatex} package \cite{biblatex} is loaded for bibliography management.
-The user has to add the line |\bibliography|\marg{my.bib} to the preamble of the document and |\printbibliography| at the end of the document.
+The user has to add the line "\bibliography"\marg{my.bib} to the preamble of the document and "\printbibliography" at the end of the document.
The bibliography is generated by \software{Biber} \cite{biber}.
-|biblatex| is extended to be able to cope with the |collaboration| and |reportNumber| fields provided by \online{https://inspirehep.net}{inspirehep.net} and a bug in the volume number is fixed.
-Additionally, the PubMed IDs are recognized and \online{https://ctan.org}{ctan.org}, \online{https://github.com}{github.com}, \online{https://gitlab.com}{gitlab.com}, \online{https://bitbucket.org}{bitbucket.org}, \online{https://www.launchpad.net}{launchpad.net}, \online{https://sourceforge.net}{sourceforge.net}, and \online{https://hepforge.org}{hepforge.org} are valid |eprinttype|s.
+"biblatex" is extended to be able to cope with the "collaboration" and "reportNumber" fields provided by \online{https://inspirehep.net}{inspirehep.net} and a bug in the volume number is fixed.
+Additionally, the PubMed IDs are recognized and \online{https://ctan.org}{ctan.org}, \online{https://github.com}{github.com}, \online{https://gitlab.com}{gitlab.com}, \online{https://bitbucket.org}{bitbucket.org}, \online{https://www.launchpad.net}{launchpad.net}, \online{https://sourceforge.net}{sourceforge.net}, and \online{https://hepforge.org}{hepforge.org} are valid "eprinttype"s.
\DescribeMacro{erratum}
-Errata can be included using the |related| feature.
+Errata can be included using the "related" feature.
\begin{verbatim}
\article{key1,
...,
@@ -683,7 +688,7 @@ The \software{hep-paper} package provides a matching selection of preloaded pack
The majority of the loaded packages are fairly lightweight, the others can be deactivated with package options.
\DescribeMacro{arxiv-collector}
-\nolinkurl{arxiv.org} \cite{arxiv} requires the setup dependent |bbl| files instead of the original |bib| files, which causes trouble if the local \hologo{LaTeX} version differs from the one used by arXiv.
+\nolinkurl{arxiv.org} \cite{arxiv} requires the setup dependent "bbl" files instead of the original "bib" files, which causes trouble if the local \hologo{LaTeX} version differs from the one used by arXiv.
The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates this problem by collecting all files necessary for publication on arXiv (including figures).
% \ifshort
@@ -703,11 +708,6 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \clearpage
% \appendix
%
-% \ifshort
-%<*package|title|bibliography|acronyms>
-%<*package>
-% \fi
-%
% \section{Math alphabet allocation}
%
% \bgroup
@@ -799,45 +799,48 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \begin{enumdescript}[start=0,label=\arabic*)]
% \item{OT1} \label{it:math text} Text (latin, upper case greek, numerals, text symbols)
% \item{OML} \label{it:math italic} Math Italic (latin, greek, numerals, text symbols)
-% \item{OMS} \label{it:math symbol} Symbol (|\mathcal|, operators)
+% \item{OMS} \label{it:math symbol} Symbol ("\mathcal", operators)
% \item{OMX} \label{it:math extension} Math Extension (big operators, delimiters)
% \end{enumdescript}
-% The text font \ref{it:math text}\strut\ of \CM is \textbf{cmr10} |\OT1/cmr/m/n/10|, which is replaced by \LM to be \textbf{rm-lmr10} |\OT1/lmr/m/n/10|, the |sansserif| option uses \textbf{rm-lmss10} |\OT1/lmss/m/n/10|.
-% The italic math font \ref{it:math italic} of \CM is \textbf{cmmi10} |\OML/cmm/m/it/|\allowbreak|10|, and is replaced by \LM to be \textbf{lmmi10} |\OML/lmm/m/it/10|, the |sansserif| options uses \textbf{cmbrmi10} |\OML/cmbrm/m/it/10| from the \software{cmbright} package \cite{cmbright}.
-% The symbol font \ref{it:math symbol}\strut\ of \CM is \textbf{cmsy10} |\OMS/cmsy/m/n/10|, and is replaced by \LM to be \textbf{lmsy10} |\OMS/lmsy/m/n/10|, the |sansserif| options uses \textbf{cmsssy10} |\OMS/cmsssy/m/n/10| from the \software{sansmathfonts} package \cite{sansmathfonts}.
-% The extension font \ref{it:math extension}\strut\ of \CM is \textbf{cmex10} |\OMX/cmex/m/n/5|, and is replaced by the \software{exscale} package \cite{exscale} to be \textbf{cmex10} |\OMX/cmex/m/n/10|, the |sansserif| option loads \textbf{cmssex10} |\OMX/cmssex/m/n/10|.
+% The text font \ref{it:math text}\strut\ of \CM is \textbf{cmr10} "\OT1/cmr/m/n/10", which is replaced by \LM to be \textbf{rm-lmr10} "\OT1/lmr/m/n/10", the "sansserif" option uses \textbf{rm-lmss10} "\OT1/lmss/m/n/10".
+% The italic math font \ref{it:math italic} of \CM is \textbf{cmmi10} "\OML/cmm/m/it/"\allowbreak"10", and is replaced by \LM to be \textbf{lmmi10} "\OML/lmm/m/it/10", the "sansserif" options uses \textbf{cmbrmi10} "\OML/cmbrm/m/it/10" from the \software{cmbright} package \cite{cmbright}.
+% The symbol font \ref{it:math symbol}\strut\ of \CM is \textbf{cmsy10} "\OMS/cmsy/m/n/10", and is replaced by \LM to be \textbf{lmsy10} "\OMS/lmsy/m/n/10", the "sansserif" options uses \textbf{cmsssy10} "\OMS/cmsssy/m/n/10" from the \software{sansmathfonts} package \cite{sansmathfonts}.
+% The extension font \ref{it:math extension}\strut\ of \CM is \textbf{cmex10} "\OMX/cmex/m/n/5", and is replaced by the \software{exscale} package \cite{exscale} to be \textbf{cmex10} "\OMX/cmex/m/n/10", the "sansserif" option loads \textbf{cmssex10} "\OMX/cmssex/m/n/10".
% The \software{amssymb} (\software{amsfonts}) packages \cite{amssymb} load two more symbol fonts
% \begin{enumdescript}[start=4,label=\arabic*)]
-% \item{msam10} \label{it:math ams a} |\U/msa/m/n/10| AMS symbol font A (special math operators)
-% \item{msbm10} \label{it:math ams b} |\U/msb/m/n/10| AMS symbol font B (|\mathbb|, negated operators)
+% \item{msam10} \label{it:math ams a} "\U/msa/m/n/10" AMS symbol font A (special math operators)
+% \item{msbm10} \label{it:math ams b} "\U/msb/m/n/10" AMS symbol font B ("\mathbb", negated operators)
% \end{enumdescript}
-% The |sansserif| option replaces them with \textbf{ssmsam10} |\U/ssmsa/m/n/10| and \textbf{ssmsbm10} |\U/ssmsb/m/n/10| from the \software{sansmathfonts} package \cite{sansmathfonts}, respectively.
+% The "sansserif" option replaces them with \textbf{ssmsam10} "\U/ssmsa/m/n/10" and \textbf{ssmsbm10} "\U/ssmsb/m/n/10" from the \software{sansmathfonts} package \cite{sansmathfonts}, respectively.
% The \software{bm} package \cite{bm} loads the bold version for the fonts \labelcref{it:math text,it:math italic,it:math symbol}.
%
-% Other math alphabets are only loaded on demand, \eg |\mathsf| uses a sans serif font and |\mathbf| without the \software{bm} package uses a bold font.
-% The |\mathscr| macro uses the script font from the \software{mathrsfs} package \cite{mathrsfs}
+% Other math alphabets are only loaded on demand, \eg "\mathsf" uses a sans serif font and "\mathbf" without the \software{bm} package uses a bold font.
+% The "\mathscr" macro uses the script font from the \software{mathrsfs} package \cite{mathrsfs}
% \begin{enumdescript}[start=9,label=\arabic*)]
-% \item{rsfs10} |\U/rsfs/m/n/10| Math script font (capital letters)
+% \item{rsfs10} "\U/rsfs/m/n/10" Math script font (capital letters)
% \end{enumdescript}
-% The |\mathbb| macro loads the double stroke font from the \software{dsfont} package \cite{dsfont}, this can be prevented with the |symbols=ams| option.
+% The "\mathbb" macro loads the double stroke font from the \software{dsfont} package \cite{dsfont}, this can be prevented with the "symbols=ams" option.
% \begin{enumdescript}[start=10,label=\arabic*)]
-% \item{dsrom10} |\U/dsrom/m/n/10| Double stroke font
+% \item{dsrom10} "\U/dsrom/m/n/10" Double stroke font
% \end{enumdescript}
-% The |\mathfrak| macro loads the fractur font from the \software{amssymb} package \cite{amssymb}
+% The "\mathfrak" macro loads the fractur font from the \software{amssymb} package \cite{amssymb}
% \begin{enumdescript}[start=11,label=\arabic*)]
-% \item{eufm10} |\U/euf/m/n/10| Math fraktur (Basic Latin)
+% \item{eufm10} "\U/euf/m/n/10" Math fraktur (Basic Latin)
% \end{enumdescript}
%
% The \software{hep-paper} package uses nine of the available 16 math alphabets.
-% This number can be reduced by three using |\newcommand{\bmmax}{0}| from the \software{bm} package \cite{bm} and brought down to the default of four with the option |symbols=false|.
+% This number can be reduced by three using "\newcommand{\bmmax}{0}" from the \software{bm} package \cite{bm} and brought down to the default of four with the option "symbols=false".
%
-% The |symbols=minion| options replaces the fonts \labelcref{it:math symbol,it:math extension,it:math ams a,it:math ams b} with corresponding fonts from the \software{MnSymbol} package \cite{MnSymbol}.
-% Additionally, two more symbol alphabets are allocated, the \software{bm} package \cite{bm} loads one more font and now |\mathcal| triggers the use of one additional alphabet.
+% The "symbols=minion" options replaces the fonts \labelcref{it:math symbol,it:math extension,it:math ams a,it:math ams b} with corresponding fonts from the \software{MnSymbol} package \cite{MnSymbol}.
+% Additionally, two more symbol alphabets are allocated, the \software{bm} package \cite{bm} loads one more font and now "\mathcal" triggers the use of one additional alphabet.
% Hence, the minion option uses three to four more math alphabets than a usual setup.
%
% \section{Options}
%
-% Load the \software{pdftexcmds} \cite{pdftexcmds} and \software{kvoptions} \cite{kvoptions} packages and define a |hep| namespace.
+%<*package|title|font|math|floats|acronyms|bibliography>
+%<*package>
+%
+% Load the \software{pdftexcmds} \cite{pdftexcmds} and \software{kvoptions} \cite{kvoptions} packages and define a "hep" namespace.
% \begin{macrocode}
\RequirePackage{pdftexcmds}
\RequirePackage{kvoptions}
@@ -848,7 +851,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
%
% \begin{macro}{paper}
-% Define a |paper=|\meta{size} option.
+% Define a "paper="\meta{size} option.
% Make A4 paper the default.
% \begin{macrocode}
\DeclareStringOption[a4]{paper}
@@ -856,7 +859,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{font}
-% Define a |figures=|\meta{size} option.
+% Define a "figures="\meta{size} option.
% Make \unit[11]{pt} the default font size.
% \begin{macrocode}
\DeclareStringOption[11pt]{font}
@@ -864,15 +867,15 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{lang}
-% Define the |lang| option, which takes the values provided by the \software{babel} package \cite{babel}.
-% Make |british| the default language.
+% Define the "lang" option, which takes the values provided by the \software{babel} package \cite{babel}.
+% Make "british" the default language.
% \begin{macrocode}
\DeclareStringOption[british]{lang}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{sansserif}
-% Define the option pair |serif| and |sansserif| controling the font shape of the whole document.
+% Define the option pair "serif" and "sansserif" controling the font shape of the whole document.
% \begin{macrocode}
\DeclareBoolOption[true]{serif}
\DeclareComplementaryOption{sansserif}{serif}
@@ -880,7 +883,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{lining}
-% Define the |lining| option deactivating the use of text figures in text mode.
+% Define the "lining" option deactivating the use of text figures in text mode.
% \begin{macrocode}
\DeclareBoolOption[true]{lining}
\DeclareComplementaryOption{oldstyle}{lining}
@@ -888,7 +891,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{parskip}
-% Define the option pair |parindent| and |parskip| controlling the separation of paragraphs.
+% Define the option pair "parindent" and "parskip" controlling the separation of paragraphs.
% \begin{macrocode}
\DeclareBoolOption[true]{parindent}
\DeclareComplementaryOption{parskip}{parindent}
@@ -896,7 +899,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{symbols}
-% Provide the |symbols| option allowing to switch the symbol font.
+% Provide the "symbols" option allowing to switch the symbol font.
% \begin{macrocode}
\DeclareStringOption[true]{symbols}
% \end{macrocode}
@@ -905,42 +908,42 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \subsection{Deactivation}
%
% \begin{macro}{defaults}
-% Define the |defaults| option which deactivates the |paper| and |font| options and prevents the change of the class defaults by this package.
+% Define the "defaults" option which deactivates the "paper" and "font" options and prevents the change of the class defaults by this package.
% \begin{macrocode}
\DeclareBoolOption[false]{defaults}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{title}
-% Provide the |title| option deactivating redefinitions of title macros.
+% Provide the "title" option deactivating redefinitions of title macros.
% \begin{macrocode}
\DeclareBoolOption[true]{title}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{physics}
-% Provide the |physics| option for deactivating redefinition of physics macros.
+% Provide the "physics" option for deactivating redefinition of physics macros.
% \begin{macrocode}
\DeclareBoolOption[true]{physics}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{bibliography}
-% Provide the |bibliography| option for passing a |style| string to the \software{biblatex} package \cite{biblatex} or disabling the automatic loading of |biblatex|.
+% Provide the "bibliography" option for passing a "style" string to the \software{biblatex} package \cite{biblatex} or disabling the automatic loading of "biblatex".
% \begin{macrocode}
\DeclareStringOption[numeric-comp]{bibliography}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{glossaries}
-% Provide the |glossaries| option able to turn of the use of the \software{glossaries} package \cite{glossaries}.
+% Provide the "glossaries" option able to turn of the use of the \software{glossaries} package \cite{glossaries}.
% \begin{macrocode}
\DeclareBoolOption[true]{glossaries}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{references}
-% Provide the |references| option for preventing the \software{cleveref} package from being loaded redefinitions of reference macros.
+% Provide the "references" option for preventing the \software{cleveref} package from being loaded redefinitions of reference macros.
% \begin{macrocode}
\DeclareBoolOption[true]{references}
% \end{macrocode}
@@ -949,58 +952,65 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \subsection{Compatibility}
%
% \begin{macro}{beamer}
-% Provide the |beamer| option for \software{beamer} \cite{beamer} compatibility mode.
+% Provide the "beamer" option for \software{beamer} \cite{beamer} compatibility mode.
% \begin{macrocode}
\DeclareBoolOption[false]{beamer}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{revtex}
-% Provide the |revtex| option for REV\hologo{TeX} \cite{revtex} compatibility mode.
+% Provide the "revtex" option for REV\hologo{TeX} \cite{revtex} compatibility mode.
% \begin{macrocode}
\DeclareBoolOption[false]{revtex}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{jhep}
-% Provide the |jhep| option for JHEP \cite{jhep} compatibility mode.
+% Provide the "jhep" option for JHEP \cite{jhep} compatibility mode.
% \begin{macrocode}
\DeclareBoolOption[false]{jhep}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{jcap}
-% Provide the |jcap| option for JCAP \cite{jcap} compatibility mode.
+% Provide the "jcap" option for JCAP \cite{jcap} compatibility mode.
% \begin{macrocode}
\DeclareBoolOption[false]{jcap}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{pos}
-% Provide the |pos| option for PoS compatibility mode.
+% Provide the "pos" option for PoS compatibility mode.
% \begin{macrocode}
\DeclareBoolOption[false]{pos}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{springer}
-% Provide the |springer| option for Springer compatibility mode.
+% Provide the "springer" option for Springer compatibility mode.
% \begin{macrocode}
\DeclareBoolOption[false]{springer}
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{amsart}
+% Provide the "amsart" option for AMS article compatibility mode.
+% \begin{macrocode}
+\DeclareBoolOption[false]{amsart}
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Reactivation}
%
% \begin{macro}{eqnarray}
-% Provide the |eqnarray| option for reactivating the |eqnarray| environment.
+% Provide the "eqnarray" option for reactivating the "eqnarray" environment.
% \begin{macrocode}
-\DeclareBoolOption[false]{eqnarray}
+\DeclareBoolOption[true]{eqnarray}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{manualplacement}
-% Provide the |manualplacement| option for reactivating the manual placement of floats.
+% Provide the "manualplacement" option for reactivating the manual placement of floats.
% \begin{macrocode}
\DeclareBoolOption[false]{manualplacement}
% \end{macrocode}
@@ -1030,7 +1040,17 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
%
% \subsection{Set compatibility}
%
-% Set the |springer| compatibility options.
+% Set the "amsart" compatibility options.
+% \begin{macrocode}
+\@ifclassloaded{amsart}{\setkeys{hep}{amsart}}{}
+\ifhep@amsart
+ \setkeys{hep}{defaults, title=false}
+ \RequirePackage{xpatch}
+ \xpretocmd{\@adminfootnotes}{\let\@makefntext\BHFN@OldMakefntext}{}{}
+\fi
+% \end{macrocode}
+%
+% Set the "springer" compatibility options.
% \begin{macrocode}
\@ifclassloaded{svjour}{\setkeys{hep}{springer}}{}
\@ifclassloaded{svjour2}{\setkeys{hep}{springer}}{}
@@ -1041,7 +1061,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\fi
% \end{macrocode}
%
-% Set the |pos| compatibility options.
+% Set the "pos" compatibility options.
% \begin{macrocode}
\@ifclassloaded{PoS}{\setkeys{hep}{pos}}{}
\ifhep@pos
@@ -1050,7 +1070,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\fi
% \end{macrocode}
%
-% Set the |beamer| compatibility options.
+% Set the "beamer" compatibility options.
% \begin{macrocode}
\@ifclassloaded{beamer}{\setkeys{hep}{beamer}}{}
\ifhep@beamer
@@ -1060,7 +1080,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\fi
% \end{macrocode}
%
-% Set the |revtex| compatibility options.
+% Set the "revtex" compatibility options.
% \begin{macrocode}
\@ifclassloaded{revtex4}{\setkeys{hep}{revtex}}{}
\@ifclassloaded{revtex4-1}{\setkeys{hep}{revtex}}{}
@@ -1103,11 +1123,16 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\hoffset 0in
\fi
% \end{macrocode}
-
-% \section{Text}
+%
+%</package>
+%
+% \section{Font}
+%
+%<*package|font>
%
% Set the whole text to sans serif if requested.
% \begin{macrocode}
+%<font>\newif\ifhep@serif\hep@seriftrue
\ifhep@serif\else
\renewcommand{\familydefault}{\sfdefault}
\fi
@@ -1115,7 +1140,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
%
% \begin{macro}{\ifxetexorluatex}
% Load the \software{ifluatex} \cite{ifluatex} and \software{ifxetex} \cite{ifxetex} packages.
-% Define the |\ifxetexorluatex| conditional checking if the package is executed by \hologo{LuaLaTeX} or \hologo{XeLaTeX}.
+% Define the "\ifxetexorluatex" conditional checking if the package is executed by \hologo{LuaLaTeX} or \hologo{XeLaTeX}.
% \begin{macrocode}
\RequirePackage{ifluatex}
\RequirePackage{ifxetex}
@@ -1140,14 +1165,14 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\RequirePackage[\hep@encoding]{fontenc}
% \end{macrocode}
% Fix the remaining \CM fonts \cite{fix-cm}, load the \LM font via \software{cfr-lm} \cite{cfr-lm} supported also by \software{lmodern} \cite{lmodern}, the \software{textcomp} extension \cite{textcomp}, and the \software{microtype} font optimization \cite{microtype}.
-% Adjust the figures according to the |lining| option and ensure that tables always use lining, using the \software{etoolbox} package \cite{etoolbox}.
+% Adjust the figures according to the "lining" option and ensure that tables always use lining, using the \software{etoolbox} package \cite{etoolbox}.
% \begin{macrocode}
\RequirePackage{fix-cm}
\RequirePackage{microtype}
+%<font>\newif\ifhep@lining
\ifxetexorluatex
\RequirePackage{nfssext-cfr}
\RequirePackage{lmodern}
-% \RequirePackage{fontsetup} % problmatic
\else
\ifhep@lining
\RequirePackage[rm={lining},sf={lining},tt={lining}]{cfr-lm}
@@ -1197,13 +1222,31 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
}{}
\else
\rmfamily
- \RequirePackage{slantsc}
- \hep@rm@fontshape{b}{sc}{<->ssub*cmr/bx/sc}{}
- \hep@rm@fontshape{bx}{sc}{<->ssub*cmr/bx/sc}{}
- \hep@rm@fontshape{b}{scsl}{<->ssub*cmr/bx/scsl}{}
- \hep@rm@fontshape{bx}{scsl}{<->ssub*cmr/bx/scit}{}
- \hep@rm@fontshape{b}{scit}{<->ssub*cmr/bx/scsl}{}
- \hep@rm@fontshape{bx}{scit}{<->ssub*cmr/bx/scit}{}
+ \ifhep@lining
+ \RequirePackage{slantsc}
+ \hep@rm@fontshape{b}{sc}{<->ssub*cmr/bx/sc}{}
+ \hep@rm@fontshape{bx}{sc}{<->ssub*cmr/bx/sc}{}
+ \hep@rm@fontshape{b}{scsl}{<->ssub*cmr/bx/scsl}{}
+ \hep@rm@fontshape{bx}{scsl}{<->ssub*cmr/bx/scit}{}
+ \hep@rm@fontshape{b}{scit}{<->ssub*cmr/bx/scsl}{}
+ \hep@rm@fontshape{bx}{scit}{<->ssub*cmr/bx/scit}{}
+ \else
+ \DeclareFontFamily{\hep@encoding}{hfor}{}
+ \DeclareFontShape{\hep@encoding}{hfor}{bx}{sc}{
+ <-6>hfoxc0500<6-7>hfoxc0600<7-8>hfoxc0700<8-9>hfoxc0800
+ <9-10>hfoxc0900<10-12>hfoxc1000<12-17>hfoxc1200<17->hfoxc1728
+ }{}
+ \DeclareFontShape{\hep@encoding}{hfor}{bx}{scsl}{
+ <-6>hfooc0500<6-7>hfooc0600<7-8>hfooc0700<8-9>hfooc0800
+ <9-10>hfooc0900<10-12>hfooc1000<12-17>hfooc1200<17->hfooc1728
+ }{}
+ \hep@rm@fontshape{b}{sc}{<->ssub*hfor/bx/sc}{}
+ \hep@rm@fontshape{bx}{sc}{<->ssub*hfor/bx/sc}{}
+ \hep@rm@fontshape{bx}{scsl}{<->ssub*hfor/bx/scsl}{}
+ \hep@rm@fontshape{b}{scit}{<->ssub*hfor/bx/scsl}{}
+ \hep@rm@fontshape{bx}{scit}{<->ssub*hfor/bx/scsl}{}
+ \hep@rm@fontshape{b}{scsl}{<->ssub*hfor/bx/scsl}{}
+ \fi
\sffamily
\hep@sf@fontshape{m}{sc}{<->ssub*xcmss/m/sc}{}
\hep@sf@fontshape{b}{sc}{<->ssub*xcmss/bx/sc}{}
@@ -1225,22 +1268,231 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\fi
% \end{macrocode}
%
-% Load the \software{babel} package \cite{babel} for hyphenation and the recommended \software{csquotes} package \cite{csquotes}.
+%</package|font>
+%
+% \subsection{Math fonts}
+%
+%<*package|font>
+%
% \begin{macrocode}
-\RequirePackage[\hep@lang]{babel}
-\RequirePackage[autostyle]{csquotes}
+%<font>\RequirePackage{pdftexcmds}
+%<font>\def\hep@symbols{true}
+%<font>\RequirePackage{amstext}
% \end{macrocode}
%
-% \begin{macro}{\underline}
-% Load the \software{ulem} package \cite{ulem} for hyphenable underlined text.
+% Define conditionals based on the "symbols" package option.
% \begin{macrocode}
-\RequirePackage[normalem]{ulem}
-\let\underline\uline
+\newif\ifhep@symbols
+\ifnum\pdf@strcmp{\hep@symbols}{false}=0\else\hep@symbolstrue\fi
+\newif\ifhep@ams
+\ifnum\pdf@strcmp{\hep@symbols}{ams}=0 \hep@amstrue\fi
+\newif\ifhep@minion
+\ifnum\pdf@strcmp{\hep@symbols}{minion}=0 \hep@miniontrue\fi
+% \end{macrocode}
+%
+% Load the \software{fixmath} \cite{fixmath} and \software{textalpha} \cite{textalpha} packages ensuring that upper Greek letters in math mode are italic and providing upright Greek letters in text mode, respectively.
+% Ensure that both "\text" and "\mathrm" produce upright Greek letters.
+% \begin{macrocode}
+\ifhep@symbols
+ \RequirePackage{fixmath}
+ \RequirePackage{textalpha}
+ \def\hep@greek#1{%
+ \expandafter\let\csname math%
+ \expandafter\@gobble\string#1\endcsname=#1%
+ \edef#1{%
+ \noexpand\TextOrMath{%
+ \expandafter\noexpand\csname text%
+ \expandafter\@gobble\string#1\endcsname%
+ }{%
+ \noexpand\ifnum\noexpand\fam=0
+ \noexpand\text{%
+ \expandafter\noexpand\csname text%
+ \expandafter\@gobble\string#1\endcsname%
+ }%
+ \noexpand\else
+ \expandafter\noexpand\csname math%
+ \expandafter\@gobble\string#1\endcsname%
+ \noexpand\fi
+ }%
+ }%
+ }
+ \hep@greek\alpha \hep@greek\beta \hep@greek\gamma
+ \hep@greek\delta \hep@greek\epsilon \hep@greek\zeta
+ \hep@greek\eta \hep@greek\theta \hep@greek\iota
+ \hep@greek\kappa \hep@greek\lambda \hep@greek\mu
+ \hep@greek\nu \hep@greek\xi \hep@greek\pi
+ \hep@greek\rho \hep@greek\sigma \hep@greek\tau
+ \hep@greek\upsilon \hep@greek\phi \hep@greek\chi
+ \hep@greek\psi \hep@greek\omega
+ \hep@greek\Gamma \hep@greek\Delta \hep@greek\Theta
+ \hep@greek\Lambda \hep@greek\Xi \hep@greek\Pi
+ \hep@greek\Sigma \hep@greek\Upsilon \hep@greek\Phi
+ \hep@greek\Psi \hep@greek\Omega
+% \end{macrocode}
+% Ensure that this works also after loading other fonts packages such as \software{cfr-lm} using \software{substitutefont} \cite{substitutefont}.
+% \begin{macrocode}
+ \ifxetexorluatex
+ % missing code
+ \else
+ \RequirePackage{substitutefont}
+ \substitutefont{LGR}{\rmdefault}{lmr}
+ \DeclareFontFamily{LGR}{\rmdefault}{}
+ \DeclareFontShape{LGR}{\rmdefault}{b}{n}{<->ssub*lmr/bx/n}{}
+ \DeclareFontShape{LGR}{\rmdefault}{b}{sc}{<->ssub*lmr/bx/sc}{}
+ \substitutefont{LGR}{\ttdefault}{lmtt}
+ \DeclareFontFamily{LGR}{\ttdefault}{}
+ \DeclareFontShape{LGR}{\ttdefault}{b}{n}{<->ssub*lmtt/bx/n}{}
+ \substitutefont{LGR}{\sfdefault}{lmss}
+ \DeclareFontFamily{LGR}{\sfdefault}{}
+ \DeclareFontShape{LGR}{\sfdefault}{b}{n}{<->ssub*lmss/bx/n}{}
+ \DeclareFontShape{LGR}{\sfdefault}{b}{sc}{<->ssub*lmss/bx/sc}{}
+ \fi
+% \end{macrocode}
+%
+% Either load the \software{MnSymbol} package \cite{MnSymbol} or the the \software{exscale} package in order to fix Latin Modern "lmex" fonts.
+% Additionally, load the \software{amssymb} package \cite{amsfonts} which provides further math symbols and also loads the \software{amsfonts} package \cite{amsfonts}.
+% \begin{macrocode}
+ \ifhep@minion
+ \RequirePackage{MnSymbol}
+ \else
+ \RequirePackage{exscale}
+ \RequirePackage{amssymb}
+ \fi
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\mathsf}
+% If the "sansserif" package option is active use the \software{cmbright} font \cite{cmbright} and code adjusted from the \software{sansmathfonts} package \cite{sansmathfonts}.
+% Ensure that "\mathsf" is italic as well as sans serif and sans for sans and sans serif documents, respectively.
+% \begin{macrocode}
+\ifhep@serif
+ \newcommand\hep@font@sf{cmbrm}
+ \DeclareMathAlphabet{\mathsf}{OML}{\hep@font@sf}{m}{it}
+ \SetMathAlphabet{\mathsf}{bold}{OML}{\hep@font@sf}{b}{it}
+\else
+ \newcommand\hep@font@sf{lmr}
+ \newcommand\hep@font@text{lmss}
+ \newcommand\hep@font@math{cmbrm}
+ \newcommand\hep@font@symbol{cmsssy}
+ \newcommand\hep@font@extra{cmssex}
+ \newcommand\hep@font@amsa{ssmsa}
+ \newcommand\hep@font@amsb{ssmsb}
+% \end{macrocode}
+% Declare font substitutions.
+% \begin{macrocode}
+ \DeclareFontSubstitution{OML}{\hep@font@math}{m}{it}
+ \ifhep@symbols\ifhep@minion\else
+ \DeclareFontSubstitution{OMS}{\hep@font@symbol}{m}{n}
+ \DeclareFontSubstitution{OMX}{\hep@font@extra}{m}{n}
+ \fi\fi
+% \end{macrocode}
+% Declare the symbol fonts.
+% \begin{macrocode}
+ \DeclareSymbolFont{operators}{OT1}{\hep@font@text}{m}{n}
+ \DeclareSymbolFont{letters}{OML}{\hep@font@math}{m}{it}
+ \ifhep@symbols\ifhep@minion\else
+ \DeclareSymbolFont{symbols}{OMS}{\hep@font@symbol}{m}{n}
+ \DeclareSymbolFont{largesymbols}{OMX}{\hep@font@extra}{m}{n}
+ \fi\fi
+% \end{macrocode}
+% Set bold symbol fonts.
+% \begin{macrocode}
+ \SetSymbolFont{operators}{bold}{OT1}{\hep@font@text}{b}{n}
+ \SetSymbolFont{letters}{bold}{OML}{\hep@font@math}{b}{it}
+ \ifhep@symbols\ifhep@minion\else
+ \SetSymbolFont{symbols}{bold}{OMS}{\hep@font@symbol}{b}{n}
+ \fi\fi
+% \end{macrocode}
+% Adjust the fonts loaded by the \software{amsfonts} \cite{amsfonts} and \software{esint} \cite{esint} packages.
+% \begin{macrocode}
+ \ifhep@symbols\ifhep@minion\else
+ \DeclareSymbolFont{AMSa}{U}{\hep@font@amsa}{m}{n}
+ \DeclareSymbolFont{AMSb}{U}{\hep@font@amsb}{m}{n}
+ \fi\fi
+ \AtBeginDocument{%
+ \@ifpackageloaded{esint}{%
+ \DeclareSymbolFont{largesymbolsA}{U}{ssesint}{m}{n}
+ }{}
+ }
+% \end{macrocode}
+% Declare the symbol font alphabets.
+% \begin{macrocode}
+ \DeclareSymbolFontAlphabet{\mathrm}{operators}
+ \DeclareSymbolFontAlphabet{\mathnormal}{letters}
+ \ifhep@minion\else
+ \DeclareSymbolFontAlphabet{\mathcal}{symbols}
+ \fi
+% \end{macrocode}
+% Declare "\mathit".
+% \begin{macrocode}
+ \DeclareMathAlphabet{\mathit}{OML}{\hep@font@text}{m}{it}
+ \SetMathAlphabet\mathit{bold}{OML}{\hep@font@text}{bx}{it}
+% \end{macrocode}
+% Declare "\mathtt".
+% \begin{macrocode}
+% \DeclareMathAlphabet{\mathtt}{OT1}{cmtl}{m}{n}
+% \end{macrocode}
+% \begin{macrocode}
+% \end{macrocode}
+% Declare "\mathsf".
+% \begin{macrocode}
+ \DeclareMathAlphabet{\mathsf}{OML}{\hep@font@sf}{m}{it}
+ \SetMathAlphabet{\mathsf}{bold}{OML}{\hep@font@sf}{bx}{it}
+% \end{macrocode}
+% \end{macro}
+% End of "sansserif".
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\mathbf}
+% Load the \software{bm} package \cite{bm} for superior boldmath.
+% Make math symbols bold whenever they appear in bold macros such as "\section"\marg{text}.
+% \begin{macrocode}
+\ifhep@symbols
+ \RequirePackage{bm}
+ \AtBeginDocument{\let\mathbf\bm}
+ \g@addto@macro\bfseries{\boldmath}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mathtt}
+% \begin{macrocode}
+ \DeclareMathAlphabet{\mathtt}{OT1}{lmtt}{m}{n}
+ \SetMathAlphabet{\mathtt}{bold}{OT1}{lmtt}{bx}{n}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mathscr}
+% Provid the "\mathscr" math script font from the \software{mathrsfs} package \cite{mathrsfs}.
+% \begin{macrocode}
+ \DeclareMathAlphabet{\mathscr}{U}{rsfs}{m}{n}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mathbb}
+% Redefine the the "\mathbb" math blackboard style font according to the \prefix{sans}{serif} option with the font from the \software{dsfont} package \cite{dsfont}.
+% \begin{macrocode}
+ \ifhep@minion
+ \DeclareMathAlphabet{\mathbb}{U}{%
+ \ifhep@serif dsrom\else dsss\fi%
+ }{m}{n}
+ \else
+ \ifhep@ams\else
+ \SetMathAlphabet{\mathbb}{normal}{U}{%
+ \ifhep@serif dsrom\else dsss\fi%
+ }{m}{n}
+ \fi
+ \fi
+\fi
% \end{macrocode}
% \end{macro}
%
+%</package|font>
+%
% \subsection{Font size} \label{sec:font size}
%
+%<*package>
+%
% Undefine previously defined font sizes and load the \hologo{LaTeX} font size file corresponding to the font size option.
% \begin{macrocode}
\ifhep@defaults\else
@@ -1258,12 +1510,26 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\input{size\hep@pt@size.clo}
\fi
% \end{macrocode}
-
-% \subsection{Text macros}
+%
+% \section{Text}
+%
+% Load the \software{babel} package \cite{babel} for hyphenation and the recommended \software{csquotes} package \cite{csquotes}.
+% \begin{macrocode}
+\RequirePackage[\hep@lang]{babel}
+\RequirePackage[autostyle]{csquotes}
+% \end{macrocode}
+%
+% \begin{macro}{\underline}
+% Load the \software{ulem} package \cite{ulem} for hyphenable underlined text.
+% \begin{macrocode}
+\RequirePackage[normalem]{ulem}
+\let\underline\uline
+% \end{macrocode}
+% \end{macro}
%
%\begin{macro}{\vs}
% Load the \software{foreign} package \cite{foreign} in order to highlight abbreviations and vocabularies from foreign languages.
-% Add the missing |\vs| command.
+% Add the missing "\vs" command.
% \begin{macrocode}
\ifnum\pdf@strcmp{\hep@lang}{american}=0
\newcommand{\hep@lang@foreign}{USenglish}
@@ -1280,20 +1546,20 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% The \software{foreign} package relies on the \software{xspace} package \cite{xspace}.
-% Ensure that |\xspace| is compatible with the |\enquote| macro from the \software{csquote} package.
+% Ensure that "\xspace" is compatible with the "\enquote" macro from the \software{csquote} package.
% \begin{macrocode}
\xspaceaddexceptions{\csq@qclose@i}
% \end{macrocode}
%
%\begin{macro}{\no}
-% Define the macro |\no|\marg{number} for the use of \textnumero\ with appropriate spacing.
+% Define the macro "\no"\marg{number} for the use of \textnumero\ with appropriate spacing.
% \begin{macrocode}
\newcommand{\no}[1]{\textnumero~#1}
% \end{macrocode}
% \end{macro}
%
%\begin{macro}{\software}
-% Define a macro for software with optional version information |\software|\linebreak[1]\oarg{version}\linebreak[1]\marg{name}, using the \software{relsize} package \cite{relsize}.
+% Define a macro for software with optional version information "\software"\linebreak[1]\oarg{version}\linebreak[1]\marg{name}, using the \software{relsize} package \cite{relsize}.
% \begin{macrocode}
\RequirePackage{relsize}
\newcommand{\software}[2][\hspace{-\fontdimen2\font}]{%
@@ -1302,32 +1568,35 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
% \end{macro}
%
+%</package>
+%<*package|title|bibliography>
+%
% \begin{macro}{\online}
% \begin{macro}{\email}
-% Define the |\online|\marg{text}\marg{url} macro combining the features of the |\href| and the |\url| macros.
+% Define the "\online"\marg{text}\marg{url} macro combining the features of the "\href" and the "\url" macros.
% Define a macro for typesetting emails.
% \begin{macrocode}
-%</package>
-%<*package|title|bibliography>
\providecommand{\online}[2]{\ttfamily{#2}}%
-\providecommand{\email}[1]{\online{mailto:#1}{#1}}
+\newcommand{\hep@email}[1]{\online{mailto:#1}{#1}}
+\providecommand\email{\hep@email}
\AtEndOfPackage{\@ifpackageloaded{hyperref}{%
\renewcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}}%
}{}
}
-%</package|title|bibliography>
-%<*package>
% \end{macrocode}
% \end{macro}
% \end{macro}
%
+%</package|title|bibliography>
+%<*package>
+%
% \begin{macro}{\prefix}
-% Define the |\prefix|\marg{prefix}\marg{word} macro ensuring the correct linebreak in \prefix{prefix}{word}.
+% Define the "\prefix"\marg{prefix}\marg{word} macro ensuring the correct linebreak in \prefix{prefix}{word}.
% \begin{macrocode}
\newcommand{\prefix}[2]{(#1\mbox{-)}\allowbreak #2}
% \end{macrocode}
% \end{macro}
-
+%
% \subsection{Lists}
%
% Load the \software{enumitem} package \cite{enumitem}.
@@ -1361,11 +1630,12 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
% \end{environment}
%
+%</package>
+%<*package|bibliography>
+%
% \begin{environment}{commalist}
% Define a commalist environment.
% \begin{macrocode}
-%</package>
-%<*package|bibliography>
\RequirePackage{xparse}
\ExplSyntaxOn
\NewDocumentEnvironment{commalist}{O{\space}+b}{
@@ -1378,13 +1648,15 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\seq_use:Nnnn \hep@items@sequence{~and~}{,~}{,~and~}
}
\ExplSyntaxOff
-%</package|bibliography>
-%<*package>
% \end{macrocode}
% \end{environment}
-
+%
+%</package|bibliography>
+%
% \section{Geometry}
%
+%<*package>
+%
% Load the \software{geometry} package \cite{geometry} and adjust the text width and height.
% This step must happen after readjusting the font size in \cref{sec:font size}.
% \begin{macrocode}
@@ -1422,53 +1694,54 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
% \end{macro}
% \end{macro}
-
+%
+%</package>
+%
% \section{Math}
%
+%<*package|math>
+%
% Load the \software{mathtools} package \cite{mathtools} which loads the \software{amsmath} package \cite{amsmath}.
% Allow page breaks within equations if necessary.
% Adjust the thick and med mu skips slightly.
% \begin{macrocode}
+%<package>\ifhep@physics
+%<math>\newif\ifhep@lining\hep@liningtrue
+%<math>\newif\ifhep@eqnarray\hep@eqnarraytrue
\RequirePackage{mathtools}
\allowdisplaybreaks[1]
\thickmuskip=5mu plus 3mu minus 1mu
\medmuskip=4mu plus 2mu minus 3mu
% \end{macrocode}
%
-% \begin{macro}{\diag}
-% \begin{macro}{\sgn}
-% Provide the |\diag| and |\sgn| operators
-% \begin{macrocode}
-\DeclareMathOperator{\diag}{diag}
-\DeclareMathOperator{\sgn}{sgn}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
+%</package|math>
+%<*package|math|acronyms>
%
% \begin{macro}{\mathdef}
-% Define the |\mathdef|\marg{name}\oarg{arguments}\marg{macro} macro which \prefix{re}{defines} macros in math mode only.
+% Define the "\mathdef"\marg{name}\oarg{arguments}\marg{macro} macro which \prefix{re}{defines} macros in math mode only.
% This macro is implemented using the \software{xparse} package \cite{xparse}.
% \begin{macrocode}
-%</package>
-%<*package|acronyms>
\RequirePackage{xparse}
\DeclareDocumentCommand{\mathdef}{mO{0}m}{%
- \expandafter\let\csname text\string#1\endcsname=#1
- \expandafter\newcommand\csname math\string#1\endcsname[#2]{#3}
+ \expandafter\let\csname hep@text\string#1\endcsname=#1
+ \expandafter\newcommand\csname hep@math\string#1\endcsname[#2]{#3}
\DeclareRobustCommand#1{%
\ifmmode
- \expandafter\let\expandafter\next\csname math\string#1\endcsname
+ \expandafter\let\expandafter\next\csname%
+ hep@math\string#1\endcsname%
\else
- \expandafter\let\expandafter\next\csname text\string#1\endcsname
+ \expandafter\let\expandafter\next\csname%
+ hep@text\string#1\endcsname%
\fi
\next
}%
}
-%</package|acronyms>
-%<*package>
% \end{macrocode}
% \end{macro}
%
+%</package|math|acronyms>
+%<*package|math>
+%
% \begin{macro}{\i}
% Provide an upright imaginary unit in math mode.
% \begin{macrocode}
@@ -1477,27 +1750,35 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\overline}
-% Redefine |\overline| to be a text macro using the \software{ulem} package \cite{ulem}.
+% Redefine "\overline" to be a text macro using the \software{ulem} package \cite{ulem}.
% Extend it as a math macro with the original definition from the \software{amsmath} package \cite{amsmath}.
% \begin{macrocode}
+\RequirePackage{ulem}
\def\overline#1{{\renewcommand{\ULdepth}{-1.9ex}{}\uline{#1}}}
\DeclareRobustCommand{\over@line}[1]{\@@overline{#1}}
\mathdef{\overline}{\over@line}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\left}
-% \begin{macro}{\right}
-% Load the \software{mleftright} package \cite{mleftright} and adjust the spacing around |\left| and |\right|.
+% \begin{macro}{\oset}
+% Define a new overset macro "\oset"\oarg{offset}\marg{over}\marg{base}
% \begin{macrocode}
-\RequirePackage{mleftright}
-\mleftright
+\newcommand{\oset}[3][-1pt]{%
+ \text{\raisebox{.2ex}{$\mathop{#3}\limits^{%
+ \vbox to#1{\kern-2\ex@\hbox{$\scriptscriptstyle#2$}\vss}%
+ }$}}%
+}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\overleftright}
+% Define a over left right arrow "\overleftright"\marg{base}.
+% \begin{macrocode}
+\newcommand{\overleftright}[1]{\oset{\leftrightarrow}{#1}}
+% \end{macrocode}
% \end{macro}
%
% \begin{macro}{eqnarray}
-% Undefine the |eqnarray| environment if not prevented by package option.
+% Undefine the "eqnarray" environment if not prevented by package option.
% \begin{macrocode}
\ifhep@eqnarray\else
\let\eqnarray\@undefined
@@ -1506,268 +1787,448 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
% \end{macro}
%
-% \subsection{Math fonts}
+% \subsection{Operators}
%
-% Define conditionals based on the |symbols| package option.
+% \begin{macro}{\tr}
+% \begin{macro}{\Tr}
+% \begin{macro}{\rank}
+% \begin{macro}{\erf}
+% \begin{macro}{\Res}
+% \begin{macro}{\sgn}
+% \begin{macro}{\sgn}
+% \begin{macro}{\diag}
+% Provide the "\diag", "\sgn", and other operators.
% \begin{macrocode}
-\newif\ifhep@symbols
-\ifnum\pdf@strcmp{\hep@symbols}{false}=0\else\hep@symbolstrue\fi
-\newif\ifhep@ams
-\ifnum\pdf@strcmp{\hep@symbols}{ams}=0 \hep@amstrue\fi
-\newif\ifhep@minion
-\ifnum\pdf@strcmp{\hep@symbols}{minion}=0 \hep@miniontrue\fi
+\DeclareMathOperator{\tr}{tr}
+\DeclareMathOperator{\Tr}{Tr}
+\DeclareMathOperator{\rank}{rank}
+\DeclareMathOperator{\erf}{erf}
+\DeclareMathOperator{\Res}{Res}
+\DeclareMathOperator{\sgn}{sgn}
+\DeclareMathOperator{\diag}{diag}
% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+
+% \begin{macro}{\Re}
+% \begin{macro}{\Im}
+% Redefine the real and imaginary projectors.
+% \begin{macrocode}
+\let\Re\relax\DeclareMathOperator{\Re}{Re}
+\let\Im\relax\DeclareMathOperator{\Im}{Im}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+% \subsubsection{Trigonometric functions}
%
-% Load the \software{fixmath} \cite{fixmath} and \software{alphabeta} \cite{alphabeta} packages ensuring that upper Greek letters in math mode are italic and providing upright Greek letters in text mode, respectively.
-% Ensure that this works also after loading other fonts packages such as \software{cfr-lm} using \software{substitutefont} \cite{substitutefont}.
% \begin{macrocode}
-\ifhep@symbols
- \RequirePackage{fixmath}
- \RequirePackage{alphabeta}
- \RequirePackage{substitutefont}
- \ifxetexorluatex
- % missing code
- \else
- \substitutefont{LGR}{\rmdefault}{lmr}
- \DeclareFontFamily{LGR}{\rmdefault}{}
- \DeclareFontShape{LGR}{\rmdefault}{b}{n}{<->ssub*lmr/bx/n}{}
- \DeclareFontShape{LGR}{\rmdefault}{b}{sc}{<->ssub*lmr/bx/sc}{}
- \substitutefont{LGR}{\ttdefault}{lmtt}
- \DeclareFontFamily{LGR}{\ttdefault}{}
- \DeclareFontShape{LGR}{\ttdefault}{b}{n}{<->ssub*cmtt/bx/n}{}
- \substitutefont{LGR}{\sfdefault}{lmss}
- \DeclareFontFamily{LGR}{\sfdefault}{}
- \DeclareFontShape{LGR}{\sfdefault}{b}{n}{<->ssub*lmss/bx/n}{}
- \DeclareFontShape{LGR}{\sfdefault}{b}{sc}{<->ssub*lmss/bx/sc}{}
- \fi
+\let\cos\undefined\DeclareMathOperator{\cos}{cos\vphantom{i}}
+\let\tan\undefined\DeclareMathOperator{\tan}{tan\vphantom{i}}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareMathOperator{\arccsc}{arccsc}
+\DeclareMathOperator{\arcsec}{arcsec}
+\DeclareMathOperator{\arccot}{arccot}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareMathOperator{\asin}{asin}
+\DeclareMathOperator{\acos}{acos}
+\DeclareMathOperator{\atan}{atan}
+\DeclareMathOperator{\acsc}{acsc}
+\DeclareMathOperator{\asec}{asec}
+\DeclareMathOperator{\acot}{acot}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareMathOperator{\csch}{csch}
+\DeclareMathOperator{\sech}{sech}
% \end{macrocode}
%
-% Either load the \software{MnSymbol} package \cite{MnSymbol} or the the \software{exscale} package in order to fix Latin Modern |lmex| fonts.
-% Additionally, load the \software{amssymb} package \cite{amsfonts} which provides further math symbols and also loads the \software{amsfonts} package \cite{amsfonts}.
+% \subsection{Units and fractions}
+%
+% \begin{macro}{\unit}
+% Load the \software{units} package \cite{units} which provides the "\units" and "\nicefrac" macros.
+% Patch the "\unit" and "\unitfrac" macros to work with lining numerals using the \software{xpatch} package \cite{xpatch}.
% \begin{macrocode}
- \ifhep@minion
- \RequirePackage{MnSymbol}
- \else
- \RequirePackage{exscale}
- \RequirePackage{amssymb}
- \fi
+\RequirePackage{units}
+\RequirePackage{xpatch}
+\ifhep@lining\else
+ \xpatchcmd{\unit}{\else#1}{%
+ \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}%
+ }{}{}
+ \xpatchcmd{\unitfrac}{\else#1}{%
+ \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}%
+ }{}{}
\fi
% \end{macrocode}
+% \end{macro}
%
-% \begin{macro}{\mathsf}
-% If the |sansserif| package option is active use the \software{cmbright} font \cite{cmbright} and code adjusted from the \software{sansmathfonts} package \cite{sansmathfonts}.
-% Ensure that |\mathsf| is italic as well as sans serif and sans for sans and sans serif documents, respectively.
+% \begin{macro}{\inv}
+% Provide a macro for the inverse, useful in combination with the unit macro in text mode.
% \begin{macrocode}
-\ifhep@serif
- \newcommand\hep@font@sf{cmbrm}
- \DeclareMathAlphabet{\mathsf}{OML}{\hep@font@sf}{m}{it}
- \SetMathAlphabet{\mathsf}{bold}{OML}{\hep@font@sf}{b}{it}
-\else
- \newcommand\hep@font@sf{lmr}
- \newcommand\hep@font@text{lmss}
- \newcommand\hep@font@math{cmbrm}
- \newcommand\hep@font@symbol{cmsssy}
- \newcommand\hep@font@extra{cmssex}
- \newcommand\hep@font@amsa{ssmsa}
- \newcommand\hep@font@amsb{ssmsb}
+\newcommand{\inv}[2][1]{#2\ensuremath{^{-#1}}}
% \end{macrocode}
-% Declare font substitutions.
+% \end{macro}
+%
+% \begin{macro}{\flatfrac}
+% Flat fraction.
% \begin{macrocode}
- \DeclareFontSubstitution{OML}{\hep@font@math}{m}{it}
- \ifhep@symbols\ifhep@minion\else
- \DeclareFontSubstitution{OMS}{\hep@font@symbol}{m}{n}
- \DeclareFontSubstitution{OMX}{\hep@font@extra}{m}{n}
- \fi\fi
+\DeclarePairedDelimiterX{\hep@flatfrac}[2]{.}{.}{%
+ #1\delimsize/\makeleftdelim#2%
+}
+\NewDocumentCommand{\flatfrac}{somm}{%
+ \IfBooleanTF{#1}{%
+ \hep@flatfrac*{#3}{#4}%
+ }{%
+ \IfNoValueTF{#2}{\,\makeleftdelim#3/\makeleftdelim#4\,%
+ }{%
+ \hep@flatfrac[#2]{#3}{#4}%
+ }%
+ }%
+}
% \end{macrocode}
-% Declare the symbol fonts.
+% \end{macro}
+%
+% \begin{macro}{\textfrac}
+% Provide the "\textfrac" macro.
% \begin{macrocode}
- \DeclareSymbolFont{operators}{OT1}{\hep@font@text}{m}{n}
- \DeclareSymbolFont{letters}{OML}{\hep@font@math}{m}{it}
- \ifhep@symbols\ifhep@minion\else
- \DeclareSymbolFont{symbols}{OMS}{\hep@font@symbol}{m}{n}
- \DeclareSymbolFont{largesymbols}{OMX}{\hep@font@extra}{m}{n}
- \fi\fi
+\newcommand{\textfrac}[2]{\ensuremath{\nicefrac{\text{#1}}{\text{#2}}}}
% \end{macrocode}
-% Set bold symbol fonts.
+% \end{macro}
+%
+% \subsubsection{Differentials and derivatives}
+%
+% \begin{macro}{\differential}
+% \begin{macro}{\d}
+% Provide a differential "\d".
% \begin{macrocode}
- \SetSymbolFont{operators}{bold}{OT1}{\hep@font@text}{b}{n}
- \SetSymbolFont{letters}{bold}{OML}{\hep@font@math}{b}{it}
- \ifhep@symbols\ifhep@minion\else
- \SetSymbolFont{symbols}{bold}{OMS}{\hep@font@symbol}{b}{n}
- \fi\fi
+\newcommand{\makedifferential}[1]{\mathop{}\!#1}
+\providecommand{\differentialsymbol}{d}
+\newcommand{\differential}{\makedifferential\differentialsymbol}
+\AtBeginDocument{\mathdef{\d}{\differential}}
% \end{macrocode}
-% Adjust the fonts loaded by the \software{amsfonts} \cite{amsfonts} and \software{esint} \cite{esint} packages.
+% \end{macro}
+% \end{macro}
+
+% \begin{macro}{\makederivative}
% \begin{macrocode}
- \ifhep@symbols\ifhep@minion\else
- \DeclareSymbolFont{AMSa}{U}{\hep@font@amsa}{m}{n}
- \DeclareSymbolFont{AMSb}{U}{\hep@font@amsb}{m}{n}
- \fi\fi
- \AtBeginDocument{%
- \@ifpackageloaded{esint}{%
- \DeclareSymbolFont{largesymbolsA}{U}{ssesint}{m}{n}
- }{}
+\newcommand\makederivative[2]{
+ \NewDocumentCommand{#1}{somso}{%
+ \IfBooleanTF{##4}{%
+ \IfBooleanTF{##1}{\nicefrac}{\frac}%
+ }{%
+ \IfBooleanTF{##1}{\flatfrac}{\dfrac}%
+ }{%
+ \makedifferential#2\IfValueT{##2}{^{##2}}\IfValueT{##5}{##5}%
+ }{%
+ \makedifferential#2{##3}\IfValueT{##2}{^{##2}}%
+ }%
}
+}
% \end{macrocode}
-% Declare the symbol font alphabets.
+% \end{macro}
+%
+% \begin{macro}{\derivative}
% \begin{macrocode}
- \DeclareSymbolFontAlphabet{\mathrm}{operators}
- \DeclareSymbolFontAlphabet{\mathnormal}{letters}
- \ifhep@minion\else
- \DeclareSymbolFontAlphabet{\mathcal}{symbols}
- \fi
+\makederivative{\derivative}{d}
+\newcommand\dv{\derivative}
% \end{macrocode}
-% Declare |\mathit|.
+% \end{macro}
+
+% \begin{macro}{\variation}
% \begin{macrocode}
- \DeclareMathAlphabet{\mathit}{OML}{\hep@font@text}{m}{it}
- \SetMathAlphabet\mathit{bold}{OML}{\hep@font@text}{bx}{it}
+\newcommand\variation{\makedifferential\delta}
+\newcommand\var{\variation}
% \end{macrocode}
-% Declare |\mathtt|.
+% \end{macro}
+
+% \begin{macro}{\functionalderivative}
% \begin{macrocode}
- \DeclareMathAlphabet{\mathtt}{OT1}{cmtl}{m}{n}
+\makederivative{\functionalderivative}{\delta}
+\newcommand\fdv{\functionalderivative}
% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\makepartialderivative}
% \begin{macrocode}
+\RequirePackage{etoolbox}
+\newcommand\makepartialderivative[2]{
+ \NewDocumentCommand{#1}{sO{}O{}msoo}{%
+ \IfBooleanTF{##5}{%
+ \IfBooleanTF{##1}{\nicefrac}{\frac}%
+ }{%
+ \IfBooleanTF{##1}{\flatfrac}{\dfrac}%
+ }{%
+ \makedifferential#2\IfValueTF{##7}{%
+ \ifblank{##2}{
+ \ifblank{##3}{^2}{^{\the\numexpr##3+1\relax}}%
+ }{%
+ \ifblank{##3}{%
+ ^{\the\numexpr##2+1\relax}}{^{{\the\numexpr##2+##3\relax}}%
+ }%
+ }%
+ }{\IfValueT{##2}{^{##2}}}\IfValueT{##6}{##6}%
+ }{%
+ \makedifferential#2{##4}\IfValueT{##2}{^{##2}}%
+ \IfValueT{##7}{#2##7\IfValueT{##3}{^{##3}}}%
+ }%
+ }
+}
% \end{macrocode}
-% Declare |\mathsf|.
+% \end{macro}
+
+% \begin{macro}{\partialderivative}
% \begin{macrocode}
- \DeclareMathAlphabet{\mathsf}{OML}{\hep@font@sf}{m}{it}
- \SetMathAlphabet{\mathsf}{bold}{OML}{\hep@font@sf}{bx}{it}
+\makepartialderivative{\partialderivative}{\partial}
+\newcommand\pdv{\partialderivative}
% \end{macrocode}
% \end{macro}
-% End of |sansserif|.
+%
+% \begin{macro}{\cancel}
+% \begin{macro}{\slashed}
+% Additionally, load the \software{cancel} \cite{cancel} and \software{slashed} \cite{slashed} packages which provide the "\cancel" and "\slashed" macros.
% \begin{macrocode}
-\fi
+\RequirePackage{cancel}
+\RequirePackage{slashed}
% \end{macrocode}
+% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\mathbf}
-% Load the \software{bm} package \cite{bm} for superior boldmath.
-% Make math symbols bold whenever they appear in bold macros such as |\section|\marg{text}.
+% \subsection{Paired delimiters}
+%
+% \begin{macro}{\left}
+% \begin{macro}{\right}
+% Load the \software{mleftright} package \cite{mleftright} and adjust the spacing around "\left" and "\right".
% \begin{macrocode}
-\ifhep@symbols
- \RequirePackage{bm}
- \AtBeginDocument{\let\mathbf\bm}
- \g@addto@macro\bfseries{\boldmath}
+\RequirePackage{mleftright}
+\mleftright
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\mathscr}
-% Provid the |\mathscr| math script font from the \software{mathrsfs} package \cite{mathrsfs}.
+% \begin{macro}{\abs}
+% \begin{macro}{\norm}
+% \begin{macro}{\pnorm}
+% Absolute value and norm.
% \begin{macrocode}
- \DeclareMathAlphabet{\mathscr}{U}{rsfs}{m}{n}
+\newcommand{\noargumentsymbol}{\:\cdot\:}
+\newcommand{\optionalargument}[1]{\ifblank{#1}{\noargumentsymbol}{#1}}
+\DeclarePairedDelimiterX\abs[1]\lvert\rvert{\optionalargument{#1}}
+\DeclarePairedDelimiterX\norm[1]\lVert\rVert{\optionalargument{#1}}
+\DeclarePairedDelimiterXPP\hep@pnorm[2]{}\lVert\rVert{_{#1}}{#2}
+\NewDocumentCommand{\pnorm}{som}{%
+ \IfValueTF{#2}{%
+ \IfBooleanTF{#1}{\hep@pnorm*}{\hep@pnorm}{#2}%
+ }{%
+ \IfBooleanTF{#1}{\norm*}{\norm}%
+ }{\optionalargument{#3}}%
+}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\mathbb}
-% Redefine the the |\mathbb| math blackboard style font according to the \prefix{sans}{serif} option with the font from the \software{dsfont} package \cite{dsfont}.
+% \end{macro}
+% \end{macro}
+
+% \begin{macro}{\order}
+% Order symbol and macro.
% \begin{macrocode}
- \ifhep@minion
- \DeclareMathAlphabet{\mathbb}{U}{%
- \ifhep@serif dsrom\else dsss\fi%
- }{m}{n}
- \else
- \ifhep@ams\else
- \SetMathAlphabet{\mathbb}{normal}{U}{%
- \ifhep@serif dsrom\else dsss\fi%
- }{m}{n}
- \fi
- \fi
-\fi
+\providecommand{\ordersymbol}{\mathcal{O}}
+\DeclarePairedDelimiterXPP\order[1]{\ordersymbol}(){}{#1}
% \end{macrocode}
% \end{macro}
-% \subsection{Physics notation}
-%
-% \begin{macro}{\cancel}
-% \begin{macro}{\slashed}
-% Load the \software{physics} package \cite{physics} which provides macros useful for publications in physics.
-% Fix the |\eval| macro.
-% Additionally, load the \software{cancel} \cite{cancel} and \software{slashed} \cite{slashed} packages which provide the |\cancel| and |\slashed| macros.
+% \begin{macro}{\evaluated}
+% \begin{macro}{\eval}
+% Vertical evaluation bar
% \begin{macrocode}
-\ifhep@physics
-\RequirePackage{physics}
-\RequirePackage{cancel}
-\RequirePackage{slashed}
-\DeclareDocumentCommand\evaluated{sgd[|d(|}{%
- \IfNoValueTF{#2}{%
- \IfNoValueTF{#3}{%
- \IfNoValueTF{#4}{\argopen.\argclose\rvert}{%
- \IfBooleanTF{#1}{\vphantom{#4}}{}%
- \left(\IfBooleanTF{#1}{\smash{#4}}{#4}\right\rvert%
- }%
- }{%
- \IfBooleanTF{#1}{\vphantom{#3}}{}%
- \left[\IfBooleanTF{#1}{\smash{#3}}{#3}\right\rvert%
- \IfNoValueTF{#4}{}{(#4|}%
- }%
+\DeclarePairedDelimiter{\hep@evaluated}{.}{\rvert}
+\NewDocumentCommand{\evaluated}{som}{%
+ \IfBooleanTF{#1}{%
+ \hep@evaluated*{#3}%
}{%
- \IfBooleanTF{#1}{\vphantom{#2}}{}%
- \left.\IfBooleanTF{#1}{\smash{#2}}{#2}\right\rvert%
- \IfNoValueTF{#3}{}{[#3|}\IfNoValueTF{#4}{}{(#4|}%
+ \IfNoValueTF{#2}{#3\rvert}{\hep@evaluated[#2]{#3}}%
}%
}
+\newcommand\eval{\evaluated}
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \begin{macro}{\unit}
-% Load the \software{units} package \cite{units} which provides the |\units| and |\nicefrac| macros.
-% Patch the |\unit| and |\unitfrac| macros to work with lining numerals using the \software{xpatch} package \cite{xpatch}.
+% \subsubsection{Set and Probability}
+%
+% \begin{macro}{\midbar}
% \begin{macrocode}
-\RequirePackage{units}
-\RequirePackage{xpatch}
-\ifhep@lining\else
- \xpatchcmd{\unit}{\else#1}{%
- \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}%
- }{}{}
- \xpatchcmd{\unitfrac}{\else#1}{%
- \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}%
- }{}{}
-\fi
+\newcommand\makeleftdelim{\mathopen{}}
+\providecommand{\midbar}[1][]{%
+ \nonscript\:#1\vert\allowbreak\nonscript\:\makeleftdelim%
+}
% \end{macrocode}
% \end{macro}
-%
-% \begin{macro}{\inv}
-% Provide the |\textfrac| macro.
+
+% \begin{macro}{\suchthat}
+% \begin{macro}{\set}
% \begin{macrocode}
-\newcommand{\textfrac}[2]{\ensuremath{\nicefrac{\text{#1}}{\text{#2}}}}
+\providecommand\suchthat{\midbar}
+\DeclarePairedDelimiterX\set[1]\{\}{%
+ \renewcommand\suchthat{\midbar[\delimsize]}#1%
+}
% \end{macrocode}
% \end{macro}
-%
-% \begin{macro}{\inv}
-% Provide a macro for the inverse, useful in combination with the unit macro in text mode.
+% \end{macro}
+
+% \begin{macro}{\probabilitysymbol}
+% \begin{macro}{\given}
+% \begin{macro}{\Pr}
% \begin{macrocode}
-\newcommand{\inv}[2][1]{#2\ensuremath{^{-#1}}}
+\providecommand{\probabilitysymbol}{\operatorname{Pr}}
+\providecommand\given{\midbar}
+\DeclarePairedDelimiterXPP\hep@Pr[1]{%
+ \probabilitysymbol}(){}{%
+ \renewcommand\given{\midbar[\delimsize]}#1%
+}
+\let\Pr\relax
+\NewDocumentCommand{\Pr}{so}{%
+ \IfValueTF{#2}{%
+ \IfBooleanTF{#1}{\hep@Pr*}{\hep@Pr}{#2}%
+ }{%
+ \probabilitysymbol%
+ }%
+}
% \end{macrocode}
% \end{macro}
+% \end{macro}
+% \end{macro}
+
+% \subsubsection{Commutators}
%
-% \begin{macro}{\d}
-% Provide a differential |\d|.
+% \begin{macro}{\innerproduct}
+% \begin{macro}{\poissonbracket}
+% \begin{macro}{\commutator}
+% \begin{macro}{\anticommutator}
+% Poissonbracket, commutator and anti-commutator.
% \begin{macrocode}
-\AtBeginDocument{\mathdef{\d}{\dd}}
+\DeclarePairedDelimiterX\innerproduct[2]{%
+ \langle}{\rangle}{\optionalargument{#1},\optionalargument{#2}%
+}
+\DeclarePairedDelimiterX\poissonbracket[2]{%
+ \lbrace}{\rbrace}{\optionalargument{#1},\optionalargument{#2}%
+}
+\newcommand\pb{\poissonbracket}
+\DeclarePairedDelimiterX\commutator[2]{%
+ \lbrack}{\rbrack}{\optionalargument{#1},\optionalargument{#2}%
+}
+\newcommand\comm{\commutator}
+\DeclarePairedDelimiterX\anticommutator[2]{%
+ \lbrace}{\rbrace}{\optionalargument{#1},\optionalargument{#2}%
+}
+\newcommand\acomm{\anticommutator}
% \end{macrocode}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Bra-ket notation}
%
-% \begin{macro}{\oset}
-% Define a new overset macro |\oset|\oarg{offset}\marg{over}\marg{base}
% \begin{macrocode}
-\newcommand{\oset}[3][-1pt]{%
- \text{\raisebox{.2ex}{$\mathop{#3}\limits^{%
- \vbox to#1{\kern-2\ex@\hbox{$\scriptscriptstyle#2$}\vss}%
- }$}}%
+\providecommand\braketspace{\mskip1mu}
+\newcommand\hep@midvert{%
+ \braketspace\delimsize\vert\braketspace\makeleftdelim%
}
% \end{macrocode}
+%
+% \begin{macro}{\braket}
+% \begin{macrocode}
+\DeclarePairedDelimiterX\braket[2]{\langle}{\rangle}{\braketspace#1\hep@midvert#2\braketspace}
+% \end{macrocode}
% \end{macro}
-% \begin{macro}{\overleftright}
-% Define a over left right arrow |\overleftright|\marg{base}.
+
+% \begin{macro}{\bra}
% \begin{macrocode}
-\newcommand{\overleftright}[1]{\oset{\leftrightarrow}{#1}}
+\DeclarePairedDelimiterXPP\hep@bra[1]{%
+ }{\langle}{\rvert}{\braketspace}{\braketspace#1\braketspace%
+}
+\NewDocumentCommand{\bra}{smt\ket sgt\ketbra sgg}{%
+ \IfBooleanTF{#6}{%
+ \IfBooleanTF{#1}{\braket*{#2}{#8}}{\braket{#2}{#8}}%
+ \IfBooleanTF{#7}{\bra*{#9}}{\bra{#9}}%
+ }{
+ \IfBooleanTF{#3}{%
+ \IfBooleanTF{#1}{\braket*}{%
+ \IfBooleanTF{#4}{\braket*}{\braket}}{#2}{#5%
+ }%
+ }{%
+ \IfBooleanTF{#1}{\hep@bra*}{\hep@bra}{#2}%
+ }%
+ }%
+}
% \end{macrocode}
-% End of |physics| conditional.
+% \end{macro}
+
+% \begin{macro}{\ket}
% \begin{macrocode}
-\fi
+\DeclarePairedDelimiterXPP\ket[1]{%
+ \braketspace}{\lvert}{\rangle}{}{\braketspace\makeleftdelim#1\braketspace%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\ketbra}
+% \begin{macrocode}
+\NewDocumentCommand{\ketbra}{smm}{%
+ \IfBooleanTF{#1}{%
+ \ket*{#2}\bra*{#3}%
+ }{%
+ \ket{#2}\bra{#3}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\matrixelement}
+% \begin{macrocode}
+\DeclarePairedDelimiterX\matrixelement[3]{%
+ \langle}{\rangle}{\braketspace#1\hep@midvert#2\hep@midvert#3\braketspace%
+}
+\newcommand\matrixel{\matrixelement}
+\newcommand\mel{\matrixelement}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\expectationvalue}
+% \begin{macrocode}
+\DeclarePairedDelimiterX\hep@expvalue[1]{\langle}{\rangle}{\braketspace#1\braketspace}
+\NewDocumentCommand{\expectationvalue}{som}{%
+ \IfNoValueTF{#2}{%
+ \IfBooleanTF{#1}{\hep@expvalue*}{\hep@expvalue}{#3}%
+ }{%
+ \IfBooleanTF{#1}{\matrixelement*}{\matrixelement}{#2}{#3}{#2}%
+ }%
+}
+\newcommand\ev{\expectationvalue}
+\newcommand\vev[1]{\expectationvalue[0]{#1}}
+% \end{macrocode}
+% \end{macro}
+% End of "physics" conditional.
+% \begin{macrocode}
+%<package>\fi
+% \end{macrocode}
+%
+%</package|math>
+%
% \section{Floats}
%
+%<*package|floats>
+%
+% \begin{macrocode}
+%<floats>\newif\ifhep@manualplacement\hep@manualplacementfalse
+% \end{macrocode}
+%
% Adjust the \hologo{LaTeX} float placement defaults
% \begin{macrocode}
\setcounter{bottomnumber}{0} % 1
@@ -1781,34 +2242,38 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
%
% \begin{environment}{figure}
% \begin{environment}{table}
-% Center the content of |figure| and |table| environments.
-% Ignore the manual placement if the |manualplacement| option is set to false.
+% Center the content of "figure" and "table" environments.
+% Ignore the manual placement if the "manualplacement" option is set to false.
% \begin{macrocode}
-\let\@figure@\figure%
-\let\@end@figure@\endfigure%
-\let\@table@\table%
-\let\@end@table@\endtable%
+\let\hep@figure\figure%
+\let\end@hep@figure\endfigure%
+\let\hep@table\table%
+\let\end@hep@table\endtable%
\ifhep@manualplacement%
\renewenvironment{figure}[1][tbp]{%
- \@figure@[#1]\centering%
- }{\@end@figure@}%
+ \hep@figure[#1]\centering%
+ }{\end@hep@figure}%
\renewenvironment{table}[1][tbp]{%
- \@table@[#1]\centering%
- }{\@end@table@}%
+ \hep@table[#1]\centering%
+ }{\end@hep@table}%
\else%
\renewenvironment{figure}[1][]{%
- \@figure@\centering%
- }{\@end@figure@}%
+ \hep@figure\centering%
+ }{\end@hep@figure}%
\renewenvironment{table}[1][]{%
- \@table@\centering%
- }{\@end@table@}
+ \hep@table\centering%
+ }{\end@hep@table}
\fi%
% \end{macrocode}
% \end{environment}
% \end{environment}
-
+%
+%</package|floats>
+%
% \subsection{Sub-floats}
%
+%<*package>
+%
% \begin{macro}{\ifhep@journal}
% Define a new journal conditional.
% \begin{macrocode}
@@ -1847,8 +2312,11 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\fi
% \end{macrocode}
%
+%</package>
+%<*package|floats>
+%
% Load the \software{subcaption} package \cite{subcaption}.
-% Provide the old |\subcaption@minipage| macro.
+% Provide the old "\subcaption@minipage" macro.
% \begin{macrocode}
\RequirePackage[subrefformat=parens]{subcaption}
\captionsetup{font=small}
@@ -1859,7 +2327,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
% \begin{environment}{panels}
% \begin{macro}{\panel}
-% Define the |panels| environment and the |\panel| macro.
+% Define the "panels" environment and the "\panel" macro.
% \begin{macrocode}
\newcommand{\hep@panels@space}{20}
\newenvironment{panels}[2][b]{%
@@ -1871,7 +2339,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\centering\vskip 0pt%
}
% \end{macrocode}
-% Define the |\panel| macro for the case that the number of panels is given.
+% Define the "\panel" macro for the case that the number of panels is given.
% \begin{macrocode}
\ifdim#2pt>1pt%
\newcommand{\hep@panel@space}{%
@@ -1884,7 +2352,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
}%
\begin@subcaption@minipage[#1]{\linewidth/#2*\hep@panel@space}%
% \end{macrocode}
-% Define the |\panel| macro for the case that the width of the panel is given.
+% Define the "\panel" macro for the case that the width of the panel is given.
% \begin{macrocode}
\else%
\newcommand{\panel}[2][b]{%
@@ -1897,6 +2365,9 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
% \end{environment}
%
+%</package|floats>
+%<*package>
+%
% Reajust the captions to the revtex class using the \software{ragged2e} package \cite{ragged2e}.
% \begin{macrocode}
\ifhep@revtex
@@ -1908,9 +2379,13 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\renewcommand{\tablename}{Table}
\fi
% \end{macrocode}
-
+%
+%</package>
+%
% \subsection{Tables}
%
+%<*package|floats>
+%
% \begin{environment}{tabular}
% Enhance tabulars with the \software{booktabs} and \software{multirow} packages \cite{booktabs, multirow}.
% \begin{macrocode}
@@ -1922,7 +2397,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \subsection{Figures}
%
% \begin{macro}{\graphic}
-% Provide the |\graphic| macro for the inclusion of figures using the \software{graphicx} package \cite{graphicx}.
+% Provide the "\graphic" macro for the inclusion of figures using the \software{graphicx} package \cite{graphicx}.
% \begin{macrocode}
\RequirePackage{graphicx}
\providecommand{\tikzsetnextfilename}[1]{}
@@ -1933,89 +2408,163 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\graphics}
-% Provide the |\graphics| macro for the inclusion of figures located in a subfolder.
+% Provide the "\graphics" macro for the inclusion of figures located in a subfolder.
% \begin{macrocode}
\newcommand{\graphics}[1]{\graphicspath{{./#1/}}}
% \end{macrocode}
% \end{macro}
-
+%
+%</package|floats>
+%
% \section{Title page}
%
-% Begin of |title| conditional. Define internal conditionals outside. TODO: replace this hack
+%<*package|title>
+%
+% Redefine previous macros just for the title package.
% \begin{macrocode}
\newif\ifhep@first%
+% \end{macrocode}
+%
+%</package|title>
+%<*package>
+%
+% Define title internal conditionals outside of main conditional.
+% TODO: replace this hack
+% Begin of "title" conditional.
+% \begin{macrocode}
\newif\ifnewaffil%
\ifhep@title
% \end{macrocode}
%
%</package>
-%
-%
-% Redefine previous macros just for the title package.
-% \begin{macrocode}
%<*package|title>
-%<title>\newif\ifhep@first%
-% \end{macrocode}
%
-% \begin{macro}{\date}
-% Allow absent date field.
+% \begin{macro}{\hep@multi@ref}
+% Transform reference list to list of references.
% \begin{macrocode}
-\date{\vspace{-4ex}}
+\newcommand{\hep@multi@ref}[1]{%
+ \hep@firsttrue%
+ \forcsvlist{%
+ \ifhep@first\hep@firstfalse\else\textsuperscript,\fi\ref%
+ }{#1}%
+}
% \end{macrocode}
% \end{macro}
%
-% \subsection{Titles}
-%
-% Extend the title using the \software{titling} package \cite{titling}.
+% Redefine the email macro for the title page.
% \begin{macrocode}
-\RequirePackage{titling}
-\setlength{\thanksmarkwidth}{1.5em}
+\renewcommand{\email}[2][]{\unskip\thanks[#1]{\hep@email{#2}}}%
+\AtBeginDocument{
+ \let\hep@maketitle\maketitle
+ \renewcommand\maketitle{\hep@maketitle\let\email\hep@email}
+}
% \end{macrocode}
%
+% \subsection{Preprint and title}
+%
+% \subsubsection{Preprint}
+%
% \begin{macro}{\preprintfont}
-% \begin{macro}{\seriesfont}
-% \begin{macro}{\titlefont}
-% \begin{macro}{\subtitlefont}
-% \begin{macro}{\editorfont}
-% \begin{macro}{\authorfont}
-% \begin{macro}{\affiliationfont}
-% \begin{macro}{\datefont}
-% Allow to change the fontface of the individual parts of the title.
+% Define the "\preprintfont" macro.
% \begin{macrocode}
\let\hep@preprint@font\relax
\newcommand{\preprintfont}[1]{\def\hep@preprint@font{#1}}
-\let\hep@series@font\relax
-\newcommand{\seriesfont}[1]{\def\hep@series@font{#1}}
-\let\hep@title@font\relax
-\newcommand{\titlefont}[1]{\def\hep@title@font{#1}}
-\let\hep@subtitle@font\relax
-\newcommand{\subtitlefont}[1]{\def\hep@subtitle@font{#1}}
-\let\hep@editor@font\relax
-\newcommand{\editorfont}[1]{\def\hep@editor@font{#1}}
-\let\hep@author@font\relax
-\newcommand{\authorfont}[1]{\def\hep@author@font{#1}}
-\let\hep@affiliation@font\relax
-\newcommand{\affiliationfont}[1]{\def\hep@affiliation@font{#1}}
-\let\hep@date@font\relax
-\newcommand{\datefont}[1]{\def\hep@date@font{#1}}
+\preprintfont{\scshape\small}
% \end{macrocode}
% \end{macro}
+%
+% \begin{macro}{\preprint}
+% Define the "\preprint" macro using the \software{varwidth} package \cite{varwidth}.
+% \begin{macrocode}
+\let\hep@preprint\relax
+\newcommand\preprint[1]{\def\hep@preprint{#1}}
+\RequirePackage{varwidth}
+\newcommand{\hep@preprint@box}{%
+ \begin{varwidth}{\textwidth}%
+ \hep@preprint@font\hep@preprint%
+ \end{varwidth}%
+}
+% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+%
+% \begin{macro}{\placepreprint}
+% Places a preprint number in the top right corner of the title page using the \software{atbegshi} \cite{atbegshi} and \software{picture} \cite{picture} packages.
+% \begin{macrocode}
+%<title>\RequirePackage{calc}
+\RequirePackage{atbegshi}
+\RequirePackage{picture}
+\newcommand{\placepreprint}{%
+ \AtBeginShipoutFirst{%
+ \put(
+ \textwidth+\oddsidemargin-\widthof{\hep@preprint@box},
+ -2pt-\topmargin-\heightof{\hep@preprint@box}
+ ){\normalfont\hep@preprint@box}
+ }
+}
+% \end{macrocode}
% \end{macro}
%
+% \subsubsection{Series}
+%
% \begin{macro}{\series}
-% Define a series.
+% Define a series title.
% \begin{macrocode}
\newcommand{\preseries}[1]{\def\hep@pre@series{#1}}
\newcommand{\series}[1]{\def\hep@series{#1}}
\newcommand{\postseries}[1]{\def\hep@post@series{#1}}
% \end{macrocode}
% \end{macro}
+%
+% \begin{macro}{\seriesfont}
+% Allow to change the fontface of the series title.
+% \begin{macrocode}
+\let\hep@series@font\relax
+\newcommand{\seriesfont}[1]{\def\hep@series@font{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% Set the default series title layout.
+% \begin{macrocode}
+\preseries{\begin{center}\Large\hep@series@font}
+\postseries{\par\end{center}}
+% \end{macrocode}
+%
+% \subsubsection{Title}
+%
+% Extend the title using the \software{titling} package \cite{titling}.
+% Fix the footnote indent.
+% \begin{macrocode}
+\RequirePackage{titling}
+\setlength{\thanksmarkwidth}{1.5em}
+% \end{macrocode}
+%
+% \begin{macro}{\maketitlehooka}
+% Place the preprint and the series title using "\maketitlehooka".
+% \begin{macrocode}
+\renewcommand{\maketitlehooka}{%
+ \placepreprint\vspace{-\bigskipamount}%
+ \@ifundefined{hep@series}{}{%
+ \hep@pre@series\hep@series\hep@post@series%
+ }%
+ \vspace{-\bigskipamount}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\titlefont}
+% Allow to change the fontface of the the title.
+% \begin{macrocode}
+\let\hep@title@font\relax
+\newcommand{\titlefont}[1]{\def\hep@title@font{#1}}
+% \end{macrocode}
% \end{macro}
+% Set default title layout.
+% \begin{macrocode}
+\pretitle{\begin{center}\LARGE\hep@title@font}
+\posttitle{\par\end{center}}
+% \end{macrocode}
+
+% \subsubsection{Subtitle}
%
% \begin{macro}{\subtitle}
% Define a subtitle.
@@ -2025,49 +2574,38 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\newcommand{\postsubtitle}[1]{\def\hep@post@sub@title{#1}}
% \end{macrocode}
% \end{macro}
+
+% \begin{macro}{\subtitlefont}
+% Allow to change the fontface of the subtitle.
+% \begin{macrocode}
+\let\hep@subtitle@font\relax
+\newcommand{\subtitlefont}[1]{\def\hep@subtitle@font{#1}}
+% \end{macrocode}
+% \end{macro}
%
-% Set standard values mostly taken from the \software{titling} package, add the font hook, and reduce the |date| font size.
+% Set default subtitle layout.
% \begin{macrocode}
-\preseries{\begin{center}\Large\hep@series@font}
-\postseries{\par\end{center}}
-\pretitle{\begin{center}\LARGE\hep@title@font}
-\posttitle{\par\end{center}}
\presubtitle{\begin{center}\Large\hep@subtitle@font}
\postsubtitle{\par\end{center}}
-\preauthor{%
- \begin{center}\large\hep@author@font\lineskip.5em\begin{tabular}[t]{c}%
-}
-\postauthor{\end{tabular}\par\end{center}}
-\predate{\begin{center}\hep@date@font}
-\postdate{\par\end{center}}
% \end{macrocode}
%
-% \subsection{Editors}
+% \subsection{Authors and Editors}
+%
+% \subsubsection{Editors}
%
+% Define editors, similar to authors using the \software{authblk} package.
+% Enable the handling of multiple authors with different affiliations using the \software{authblk} package \cite{authblk}.
% \begin{macrocode}
+\RequirePackage{authblk}
\newcounter{editors}
\newcommand\hep@editorlist{}
\newcommand\hep@editors{}
% \end{macrocode}
%
-% \begin{macro}{\hep@multi@ref}
-% Transform reference list to list of references.
-% \begin{macrocode}
-\newcommand{\hep@multi@ref}[1]{%
- \hep@firsttrue%
- \forcsvlist{%
- \ifhep@first\hep@firstfalse\else\textsuperscript,\fi\ref%
- }{#1}%
-}
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\editor}
-% Copy of the |authblk| author code adjusted for editors.
+% Copy of the "authblk" author code adjusted for editors.
% \begin{macrocode}
-\RequirePackage{authblk}
\newcommand\editor[2][]{%
- \renewcommand{\email}[1]{\unskip\thanks{\online{mailto:##1}{##1}}}%
\ifnewaffil%
\addtocounter{affil}{1}%
\edef\AB@thenote{\arabic{affil}}%
@@ -2106,7 +2644,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\protect\@nameuse{@sep\number\c@editors}%
\protect\Authfont#2%
\if\relax#1\relax\else%
- \ \protect\hep@multi@ref{\AB@note}%
+ \protect\hep@multi@ref{\AB@note}%
\fi%
}%
\endgroup%
@@ -2118,62 +2656,129 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\editorfont}
+% Allow to change the fontface of the editors.
+% \begin{macrocode}
+\let\hep@editor@font\relax
+\newcommand{\editorfont}[1]{\def\hep@editor@font{#1}}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\preditor}
% \begin{macro}{\postditor}
-% Set editor style
+% Set editor style.
% \begin{macrocode}
\newcommand{\preeditor}[1]{\def\hep@pre@editor{#1}}
\newcommand{\posteditor}[1]{\def\hep@post@editor{#1}}
-\preeditor{\begin{center}\large\hep@editor@font\lineskip.5em
- \ifnum\value{editors}>1\relax Editors\else Editor\fi:
+\newcommand{\editortitle}[2]{
+ \def\hep@editor@title{#1}
+ \def\hep@editor@title@pl{#2}
+}
+\newcommand{\editortitlefont}[1]{\def\hep@editor@title@font{#1}}
+\newcommand{\preeditortitle}[1]{\def\hep@pre@editor@title{#1}}
+\newcommand{\posteditortitle}[1]{\def\hep@post@editor@title{#1}}
+\editortitle{Editor}{Editors}
+\editortitlefont{\itshape}
+\preeditortitle{\hep@editor@title@font}
+\posteditortitle{: }
+\preeditor{%
+ \begin{center}%
+ \large\hep@editor@font\lineskip.5em%
+ \begin{tabular}[t]{c}{%
+ \hep@pre@editor@title%
+ \ifnum\value{editors}>1\relax%
+ \hep@editor@title@pl%
+ \else%
+ \hep@editor@title%
+ \fi%
+ \hep@post@editor@title%
+ }%
}
-\posteditor{\par\end{center}}
+\posteditor{\end{tabular}\par\end{center}}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\maketitlehookb}
% Show subtitle and editor.
% \begin{macrocode}
\renewcommand{\maketitlehookb}{%
\@ifundefined{hep@sub@title}{}{%
\hep@pre@sub@title\hep@sub@title\hep@post@sub@title%
}%
+ \smallskip%
\ifx\hep@editorlist\AB@empty\else%
\hep@pre@editor\hep@editorlist\hep@post@editor%
\fi
}
% \end{macrocode}
+% \end{macro}
%
-% \subsection{Authors}
+% \subsubsection{Authors}
%
% \begin{macro}{\author}
% Allow absent author field.
-% Enable the handling of multiple authors with different affiliations using the \software{authblk} package \cite{authblk}.
% \begin{macrocode}
% \author{}
-%<title>\newif\ifhep@lining\hep@liningtrue
-\ifhep@lining
- \renewcommand{\Affilfont}{\small\hep@affiliation@font}
-\else
- \renewcommand{\Affilfont}{\small\ostyle\hep@affiliation@font}
-\fi
-\renewcommand\Authfont{\hep@author@font}
% \end{macrocode}
% \end{macro}
%
% Switch authblk to a label ref system for affiliations.
% \begin{macrocode}
-\newcounter{affiliation}
-\renewcommand{\theaffiliation}{%
- \textsuperscript{\normalfont\arabic{affiliation}}%
-}
%<title>\RequirePackage{xpatch}
\xpatchcmd{\author}{%
\protect\Authfont#2\AB@authnote{\AB@note}%
}{%
\protect\Authfont#2%
- \if\relax#1\relax\else\protect\hep@multi@ref{\AB@note}\fi%
+ \if\relax#1\relax\else\unskip\protect\hep@multi@ref{\AB@note}\fi%
}{}{}
+% \end{macrocode}
+%
+% \begin{macro}{\authorfont}
+% Allow to change the fontface of the individual parts of the title.
+% \begin{macrocode}
+\let\hep@author@font\relax
+\newcommand{\authorfont}[1]{\def\hep@author@font{#1}}
+\renewcommand\Authfont{\hep@author@font}
+% \end{macrocode}
+% \end{macro}
+%
+% Set default author fontface.
+% \begin{macrocode}
+\newcommand{\authortitle}[2]{
+ \def\hep@author@title{#1}
+ \def\hep@author@title@pl{#2}
+}
+\newcommand{\authortitlefont}[1]{\def\hep@author@title@font{#1}}
+\newcommand{\preauthortitle}[1]{\def\hep@pre@author@title{#1}}
+\newcommand{\postauthortitle}[1]{\def\hep@post@author@title{#1}}
+\authortitle{Author}{Authors}
+\authortitlefont{\itshape}
+\preauthortitle{\hep@author@title@font}
+\postauthortitle{: }
+\preauthor{%
+ \begin{center}%
+ \large\hep@author@font\lineskip.5em%
+ \begin{tabular}[t]{c}{%
+ \ifnum\value{editors}>0\relax%
+ \hep@pre@author@title%
+ \ifnum\value{authors}>1\relax%
+ \hep@author@title@pl\else\hep@author@title%
+ \fi\hep@post@author@title%
+ \fi%
+ }%
+}
+\postauthor{\end{tabular}\par\end{center}}
+% \end{macrocode}
+%
+% \subsubsection{Affiliation}
+%
+% Patch the "\affiliation" macro to comply with the label ref system.
+% \begin{macrocode}
+\newcounter{affiliation}
+\renewcommand{\theaffiliation}{%
+ \textsuperscript{\normalfont\alph{affiliation}}%
+}
\xpatchcmd{\affil}{%
\AB@affilnote{\AB@note}%
}{%
@@ -2182,19 +2787,22 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
}{}{}
% \end{macrocode}
%
-% \begin{macro}{\email}
-% Redefine the email macro to place the email address in a footnote if called from within the |\author| macro |\author{|$\langle name\rangle$ |\email{|$\langle email\rangle$|}}|.
+% \begin{macro}{\affiliationfont}
+% Allow to change the fontface of affiliation.
% \begin{macrocode}
-\let\hep@author\author
-\def\author{%
- \renewcommand{\email}[1]{\unskip\thanks{\online{mailto:##1}{##1}}}%
- \hep@author
-}
+\let\hep@affiliation@font\relax
+\newcommand{\affiliationfont}[1]{\def\hep@affiliation@font{#1}}
+%<title>\newif\ifhep@lining\hep@liningtrue
+\ifhep@lining
+ \renewcommand{\Affilfont}{\small\hep@affiliation@font}
+\else
+ \renewcommand{\Affilfont}{\small\ostyle\hep@affiliation@font}
+\fi
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\affiliation}
-% Define the |\affiliation| macro, ensure that linebreaks happen after a comma.
+% Define the "\affiliation" macro, ensure that linebreaks happen after a comma.
% \begin{macrocode}
\newcommand\hep@penalty{\if@twocolumn85\else50\fi}
\newcommand\hep@active@comma{,\penalty-\hep@penalty\relax}
@@ -2215,80 +2823,98 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
% \end{macro}
%
-% \subsection{Preprint}
+% \subsection{Date and Abstract}
%
-% \begin{macro}{\preprint}
-% Define the |\preprint| macro using the \software{varwidth} package \cite{varwidth}.
+% \subsubsection{Date}
+%
+% \begin{macro}{\date}
+% Allow absent date field.
% \begin{macrocode}
-\let\hep@preprint\relax
-\newcommand\preprint[1]{\def\hep@preprint{#1}}
-\RequirePackage{varwidth}
-%<title>\RequirePackage{relsize}
-\newcommand{\hep@preprint@box}{%
- \begin{varwidth}{\textwidth}%
- \smaller[.5]\hep@preprint@font\hep@preprint%
- \end{varwidth}%
-}
-\preprintfont{\scshape}
+\date{\vspace{-4ex}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\placepreprint}
-% Places a preprint number in the top right corner of the title page using the \software{atbegshi} \cite{atbegshi} and \software{picture} \cite{picture} packages.
+% \begin{macro}{\datefont}
+% Allow to change the fontface of the individual parts of the title.
% \begin{macrocode}
-%<title>\RequirePackage{calc}
-\RequirePackage{atbegshi}
-\RequirePackage{picture}
-\newcommand{\placepreprint}{%
- \AtBeginShipoutFirst{%
- \put(
- \textwidth+\oddsidemargin-\widthof{\hep@preprint@box},
- -2pt-\topmargin-\heightof{\hep@preprint@box}
- ){\normalfont\hep@preprint@box}
- }
-}
-\renewcommand{\maketitlehooka}{%
- \placepreprint\vspace{-\bigskipamount}%
- \@ifundefined{hep@series}{}{%
- \hep@pre@series\hep@series\hep@post@series%
- }%
-}
+\let\hep@date@font\relax
+\newcommand{\datefont}[1]{\def\hep@date@font{#1}}
% \end{macrocode}
% \end{macro}
-
-% \subsection{Abstract}
+%
+% Set the default "date" fontface.
+% \begin{macrocode}
+\predate{\begin{center}\hep@date@font}
+\postdate{\par\end{center}}
+% \end{macrocode}
+%
+% \subsubsection{Abstract}
%
% \begin{environment}{abstract}
-% Adjust the |abstract| environment to not start with indentation.
+% Adjust the "abstract" environment to not start with indentation.
% \begin{macrocode}
\@ifundefined{abstract}{}{%
\let\hep@abstract\abstract%
\renewcommand\abstract{\hep@abstract\noindent\ignorespaces}%
-}
% \end{macrocode}
% \end{environment}
% \begin{environment}{abstract*}
-% Add a |abstract*| environment for two column mode taking also care of placing the title using the \software{environ} \cite{environ} and \software{abstract} \cite{abstract} packages.
-% \begin{macrocode}
-\if@twocolumn
- \RequirePackage{environ}
- \RequirePackage{abstract}
- \renewcommand{\abstitleskip}{-3ex}
- \NewEnviron{abstract*}{%
- \twocolumn[\maketitle\vspace{-5ex}%
- \begin{onecolabstract}\noindent\BODY\end{onecolabstract}%
- \vspace{.5cm}]\saythanks%
- }
-\else
- \newenvironment{abstract*}{\maketitle\begin{abstract}}{\end{abstract}}
-\fi
-%</package|title>
+% Add a "abstract*" environment for two column mode taking also care of placing the title using the \software{environ} \cite{environ} and \software{abstract} \cite{abstract} packages.
+% \begin{macrocode}
+ \if@twocolumn
+ \RequirePackage{environ}
+ \RequirePackage{abstract}
+ \renewcommand{\abstitleskip}{-3ex}
+ \NewEnviron{abstract*}{%
+ \twocolumn[\maketitle\vspace{-5ex}%
+ \begin{onecolabstract}\noindent\BODY\end{onecolabstract}%
+ \vspace{.5cm}]\saythanks%
+ }%
+ \else
+ \newenvironment{abstract*}{%
+ \maketitle\begin{abstract}%
+ }{%
+ \end{abstract}%
+ }
+ \fi
+}
% \end{macrocode}
% \end{environment}
%
+% \subsection{Thanks}
+%
+% \begin{macro}{\thanks} Redefine thank to have a optional argument for a reference label.
+% \begin{macrocode}
+\let\hep@thanks\thanks
+\AtEndDocument{\let\thanks\hep@thanks}
+% \AddToHook{begindocument/begin}{\let\thanks\hep@thanks}
+\DeclareRobustCommand\thanks[2][]{%
+ \AfterEndPreamble{%
+% \AddToHook{begindocument/end}{%
+ \if\relax#1\relax%
+ \footnotemark%
+ \else%
+ \renewcommand\thefootnote{\textsuperscript{\@fnsymbol\c@footnote}}%
+ \protect\refstepcounter{footnote}\protect\label{#1}%
+ \renewcommand\thefootnote{\@arabic\c@footnote}%
+ \fi%
+ \protected@xdef\@thanks{%
+ \@thanks\protect\footnotetext[\the\c@footnote]{#2}%
+ }
+ \if@twocolumn
+ \protected@xdef\@bs@thanks{%
+ \@bs@thanks\protect\footnotetext[\the\c@footnote]{#2}%
+ }%
+ \fi%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%</package|title>
%<*package>
%
-% End of |title| conditional.
+% End of "title" conditional.
% \begin{macrocode}
\fi
% \end{macrocode}
@@ -2301,9 +2927,9 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
%
%</package>
+%<*package|bibliography>
%
% \begin{macrocode}
-%<*package|bibliography>
%<bibliography>\def\hep@bibliography{numeric-comp}
%<bibliography>\newif\ifhep@journal\hep@journalfalse
% \end{macrocode}
@@ -2316,8 +2942,8 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{hep-paper}
-% Provide the |\DeclareSortingTemplate| macro for older |biblatex| installations.
-% Define a new sorting template that sorts only multi key |\cite| entries according to their date and leaves the rest of the bibliography entries in the order they appear in the text.
+% Provide the "\DeclareSortingTemplate" macro for older "biblatex" installations.
+% Define a new sorting template that sorts only multi key "\cite" entries according to their date and leaves the rest of the bibliography entries in the order they appear in the text.
% \begin{macrocode}
\providecommand{\DeclareSortingTemplate}{\DeclareSortingScheme}
\DeclareSortingTemplate{hep-paper}{
@@ -2352,15 +2978,15 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\fi
% \end{macrocode}
%
-% \begin{macro}{erratum}
-% Redefine the |translationof| string to fit better to documents without a original title.
+% \begin{macro}{translationof}
+% Redefine the "translationof" string to fit better to documents without a original title.
% \begin{macrocode}
\DefineBibliographyStrings{english}{translationof={Original}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{erratum}
-% Add new bibliography string \enquote{Erratum} for the use in the |relatedtype| field.
+% Add new bibliography string \enquote{Erratum} for the use in the "relatedtype" field.
% \begin{macrocode}
\NewBibliographyString{erratum,erratums}
\DefineBibliographyStrings{english}{erratum={Erratum},erratums={Errata}}
@@ -2368,7 +2994,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
% \end{macro}
%
-% Activate the Oxford comma when using |british| and separate title and subtitle with a colon.
+% Activate the Oxford comma when using "british" and separate title and subtitle with a colon.
% \begin{macrocode}
\DefineBibliographyExtras{british}{\def\finalandcomma{\addcomma}}
\renewcommand{\subtitlepunct}{\addcolon\addspace}
@@ -2401,7 +3027,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\DeclareSourcemap}
-% Use the |\DeclareSourcemap| feature.
+% Use the "\DeclareSourcemap" feature.
% \begin{macrocode}
\DeclareSourcemap{%
\maps[datatype=bibtex, overwrite=true]{%
@@ -2461,7 +3087,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\letbibmacro}
-% Provide the |\letbibmacro| macro for old |biblatex| installations.
+% Provide the "\letbibmacro" macro for old "biblatex" installations.
% \begin{macrocode}
\providecommand{\letbibmacro}[2]{\csletcs{abx@macro@#1}{abx@macro@#2}}
% \end{macrocode}
@@ -2499,7 +3125,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{reportnumber}
-% Print the |reportnumber| as commalist
+% Print the "reportnumber" as commalist
% \begin{macrocode}
%<bibliography>\RequirePackage{relsize}
\DeclareFieldFormat{reportnumber}{%
@@ -2521,7 +3147,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\bib@online}
-% Private |\bib@online| macro
+% Private "\bib@online" macro
% \begin{macrocode}
\newcommand{\bib@online}[2]{%
\ifhyperref{\online{#1}{#2}}{\nolinkurl{#2}}%
@@ -2569,7 +3195,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \subsection{Eprints}
%
% \begin{macro}{\new@eprint}
-% Private |\new@eprint| macro
+% Private "\new@eprint" macro
% \begin{macrocode}
\NewDocumentCommand{\new@eprint}{smm}{
\DeclareFieldFormat{eprint:#2}{%
@@ -2635,10 +3261,10 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
HEPForge\addcolon\space\bib@online{https://#1/hepforge.org}{#1}%
}
\DeclareFieldAlias{eprint:HEPForge}{eprint:hepforge}
-%</package|bibliography>
% \end{macrocode}
% \end{macro}
%
+%</package|bibliography>
%<*package>
%
% End check for bibliography option.
@@ -2705,7 +3331,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \subsection{References}
%
-% Begin of |references| conditional
+% Begin of "references" conditional
% \begin{macrocode}
\ifhep@references
% \end{macrocode}
@@ -2737,7 +3363,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\ref}
-% Adjust |\ref|\marg{key} in order to prevent preceding line breaks.
+% Adjust "\ref"\marg{key} in order to prevent preceding line breaks.
% \begin{macrocode}
\let\hep@ref\ref
\AtBeginDocument{\renewcommand\ref{\no@break@before\hep@ref}}
@@ -2745,14 +3371,14 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\eqref}
-% Adjust |\eqref|\marg{key} in order to prevent preceding line breaks.
+% Adjust "\eqref"\marg{key} in order to prevent preceding line breaks.
% \begin{macrocode}
\renewcommand\eqref{\no@break@before\labelcref}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\subref}
-% Adjust |\subref|\marg{key} in order to prevent preceding line breaks.
+% Adjust "\subref"\marg{key} in order to prevent preceding line breaks.
% \begin{macrocode}
\let\hep@subref\subref
\renewcommand\subref{\no@break@before\hep@subref}
@@ -2764,14 +3390,14 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\subcref}
-% Provide the |\subcref| macro.
+% Provide the "\subcref" macro.
% \begin{macrocode}
\newcommand{\subcref}[1]{\cref{sub@#1}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\eqcrefname}
-% Define the |\eqcrefname| macro for named equation types.
+% Define the "\eqcrefname" macro for named equation types.
% \begin{macrocode}
\NewDocumentCommand{\eqcrefname}{mmo}{
\crefname{#1}{#2}{\IfValueTF{#3}{#3}{#2s}}
@@ -2781,7 +3407,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\labelcrefrange}
-% Define the missing |\labelcrefrange|\marg{key1}\marg{key2} macro.
+% Define the missing "\labelcrefrange"\marg{key1}\marg{key2} macro.
% \begin{macrocode}
\DeclareRobustCommand{\labelcrefrange}[2]{%
\@crefrangenostar{labelcref}{#1}{#2}%
@@ -2802,7 +3428,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\fi
% \end{macrocode}
%
-% End of |references| conditional
+% End of "references" conditional
% \begin{macrocode}
\fi
% \end{macrocode}
@@ -2810,7 +3436,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \subsection{Citations}
%
% \begin{macro}{\cite}
-% Adjust |\cite|\marg{key} in order to prevent preceding line breaks.
+% Adjust "\cite"\marg{key} in order to prevent preceding line breaks.
% \begin{macrocode}
\let\hep@cite\cite
\renewcommand\cite{\no@break@before\hep@cite}
@@ -2858,12 +3484,17 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \section{Acronyms}
%
-% Acronyms are implemented with the \software{glossaries-extra} package \cite{glossaries-extra} which is an extension of the \software{glossaries} package \cite{glossaries} and must be loaded after the \software{hyperref} package in \cref{sec:hyperlinks}.
-% Set the abbreviation style.
+% Define acronyms if not deactivated.
% \begin{macrocode}
\ifhep@glossaries
+% \end{macrocode}
+%
%</package>
%<*package|acronyms>
+%
+% Acronyms are implemented with the \software{glossaries-extra} package \cite{glossaries-extra} which is an extension of the \software{glossaries} package \cite{glossaries} and must be loaded after the \software{hyperref} package in \cref{sec:hyperlinks}.
+% Set the abbreviation style.
+% \begin{macrocode}
\RequirePackage[nostyles]{glossaries-extra}
\setabbreviationstyle{long-hyphen-short-hyphen}
% \end{macrocode}
@@ -2872,7 +3503,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\glsenableentrycount
\glssetcategoryattribute{abbreviation}{entrycount}{1}
% \end{macrocode}
-% Provide macros for older |glossaries-extra| installations.
+% Provide macros for older "glossaries-extra" installations.
% \begin{macrocode}
\AtEndOfPackage{
\@ifpackageloaded{hyperref}{
@@ -2910,7 +3541,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\frenchspacing}
-% Adjust the |\frenchspacing| macro to be compatibel with this idea.
+% Adjust the "\frenchspacing" macro to be compatibel with this idea.
% \begin{macrocode}
\def\frenchspacing{%
\sfcode`\.\begin@sentence \sfcode`\?\begin@sentence
@@ -2933,7 +3564,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\acronym}
-% The |\acronym|\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4] definition} macro is defined.
+% The "\acronym"\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4] definition} macro is defined.
% \begin{enumerate}[nosep, label=\#\arabic*]
% \item star for omitting the \enquote{s} in the short plural
% \item optional typeset abbreviation
@@ -2943,7 +3574,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \item optional plural long form
% \end{enumerate}
% \begin{macrocode}
-%<acronyms>\usepackage{xspace}
+%<acronyms>\RequirePackage{xspace}
\NewDocumentCommand{\acronym}{somsmo}{
\newabbreviation[
type=\acronymtype,
@@ -2998,7 +3629,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\shortacronym}
-% The |\shortacronym| never expands into the long form.
+% The "\shortacronym" never expands into the long form.
% \begin{macrocode}
\NewDocumentCommand{\shortacronym}{somsmo}{
% \end{macrocode}
@@ -3043,7 +3674,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{\longacronym}
-% The |\longacronym| never shows the abbreviated form.
+% The "\longacronym" never shows the abbreviated form.
% \begin{macrocode}
\NewDocumentCommand{\longacronym}{somsmo}{
% \end{macrocode}
@@ -3106,7 +3737,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{abstract}
-% Adjust the |abstract| environment to reset all acronym counters.
+% Adjust the "abstract" environment to reset all acronym counters.
% \begin{macrocode}
\@ifundefined{endabstract}{}{%
\let\end@hep@abstract\endabstract%
@@ -3118,7 +3749,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \begin{macro}{\tableofcontents}
% \begin{macro}{\listoffigures}
% \begin{macro}{\listoftables}
-% Adjust the |\tableofcontents| macro to never show the long form of acronyms.
+% Adjust the "\tableofcontents" macro to never show the long form of acronyms.
% \begin{macrocode}
\let\hep@table@of@contents\tableofcontents
\renewcommand\tableofcontents{%
@@ -3152,28 +3783,28 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
% \end{macro}
%
-% End of glossaries if.
-% \begin{macrocode}
%</package|acronyms>
%<*package>
+%
+% End of glossaries if.
+% \begin{macrocode}
\fi
% \end{macrocode}
%
-% \ifshort
%</package>
-%</package|title|bibliography|acronyms>
-%<*datamodel>
-% \fi
+%</package|title|font|math|floats|acronyms|bibliography>
%
% \section{Biblatex datamodel file} \label{sec:data model}
%
+%<*datamodel>
+%
% \begin{macro}{collaboration}
% \begin{macro}{pmid}
% \begin{macro}{pmcid}
% \begin{macro}{pmc}
% \begin{macro}{reportnumber}
% \begin{macro}{protocollessurl}
-% Define the |dbx| file containing the |hep-paper| datamodel.
+% Define the "dbx" file containing the "hep-paper" datamodel.
% \begin{macrocode}
\DeclareDatamodelFields[type=field, datatype=literal]{
collaboration, pmid, pmcid, pmc,
@@ -3193,9 +3824,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
% \end{macro}
%
-% \ifshort
%</datamodel>
-% \fi
%
% \Finale
@@ -3206,7 +3835,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% makeindex -s gglo.ist -o hep-paper-implementation.ind hep-paper-implementation.idx
% \begin{macro}{\refstepcounter@...}
-% Adjust the |cleveref| |\refstepcounter@noarg| and |\refstepcounter@optarg| to use the |\@currentlabel| in order to fix problems with |\subref|.
+% Adjust the "cleveref" "\refstepcounter@noarg" and "\refstepcounter@optarg" to use the "\@currentlabel" in order to fix problems with "\subref".
% \begin{macrocode}
% \def\refstepcounter@noarg#1{%
% \cref@old@refstepcounter{#1}%
@@ -3235,7 +3864,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% % \end{macro}
%
%
-% \usepackage{contour}
+% \RequirePackage{contour}
% \renewcommand{\ULdepth}{1.8pt}
% \contourlength{0.8pt}
% \newcommand{\myuline}[1]{%
@@ -3243,7 +3872,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% }
% \begin{macro}{\mathpzc}
-% Define the |\mathpzc| math script font based on the Zapf Chancery PostScript font.
+% Define the "\mathpzc" math script font based on the Zapf Chancery PostScript font.
% \begin{macrocode}
% \DeclareFontFamily{OT1}{pzc}{}
% \DeclareFontShape{OT1}{pzc}{m}{it}{<-> s * [1.15] pzcmi7t}{}
diff --git a/macros/latex/contrib/hep-paper/hep-paper-implementation.pdf b/macros/latex/contrib/hep-paper/hep-paper-implementation.pdf
index b46a793ae9..78579b5c8d 100644
--- a/macros/latex/contrib/hep-paper/hep-paper-implementation.pdf
+++ b/macros/latex/contrib/hep-paper/hep-paper-implementation.pdf
Binary files differ
diff --git a/macros/latex/contrib/hep-paper/hep-paper.ins b/macros/latex/contrib/hep-paper/hep-paper.ins
index aac97891ee..c5a565faac 100644
--- a/macros/latex/contrib/hep-paper/hep-paper.ins
+++ b/macros/latex/contrib/hep-paper/hep-paper.ins
@@ -28,11 +28,14 @@ LaTeX version 2005/12/01 or later.
\generate{
\file{hep-paper-documentation.tex}{\from{hep-paper-implementation.dtx}{documentation}}
- \file{hep-paper.dbx}{\from{hep-paper-implementation.dtx}{datamodel}}
\file{hep-paper.sty}{\from{hep-paper-implementation.dtx}{package}}
\file{hep-title.sty}{\from{hep-paper-implementation.dtx}{title}}
- \file{hep-bibliography.sty}{\from{hep-paper-implementation.dtx}{bibliography}}
+ \file{hep-font.sty}{\from{hep-paper-implementation.dtx}{font}}
+ \file{hep-math.sty}{\from{hep-paper-implementation.dtx}{math}}
+ \file{hep-floats.sty}{\from{hep-paper-implementation.dtx}{floats}}
\file{hep-acronyms.sty}{\from{hep-paper-implementation.dtx}{acronyms}}
+ \file{hep-bibliography.sty}{\from{hep-paper-implementation.dtx}{bibliography}}
+ \file{hep-paper.dbx}{\from{hep-paper-implementation.dtx}{datamodel}}
}
\Msg{*********************************************************}
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index 6965309fe9..7a1973e08e 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 d941d2f9f8..7d7d915bc3 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -139,7 +139,7 @@ l'instruction habituelle : |\usepackage{nicematrix}|.
\bigskip
L'idée de \pkg{nicematrix} est de créer des nœuds \textsc{pgf} derrière les cases et les positions des filets des
tableaux créés par \pkg{array} et de les utiliser pour développer de nouvelles fonctionnalités. Comme toujours avec
-\textsc{pgf}, les coordonnées de ces nœuds sont écrites dans le fichier |.aux| pour être utilisées à la
+\textsc{pgf}, les coordonnées de ces nœuds sont écrites dans le fichier |aux| pour être utilisées à la
compilation suivante. C'est pourquoi l'utilisation de \pkg{nicematrix} nécessite \textbf{plusieurs compilations
successives}.\footnote{Si vous utilisez Overleaf, Overleaf effectue
automatiquement le nombre de
@@ -200,19 +200,6 @@ crochets, une liste optionnelle de paires de la forme \textsl{clé=valeur}.
{\bfseries Il doit n'y avoir aucun espace devant le crochet ouvrant (|[|) de
cette liste d'options.}
-\bigskip
-\textbf{Important}\par\nobreak
-
-Avant la version 5.0, il fallait, pour des raisons techniques, utiliser les
-lettres |L|, |C| et |R| au lieu de |l|, |c| et |r| dans les préambules des
-environnements de \pkg{nicematrix}. Pour pouvoir continuer à utiliser ces
-lettres |L|, |C| et |R|, \pkg{nicematrix} doit être chargé avec l'option
-|define-L-C-R|.
-\begin{Verbatim}
-\usepackage[define-L-C-R]{nicematrix}
-\end{Verbatim}
-\textbf{Cette clé sera probablement supprimée dans une future version de
- \pkg{nicematrix}.}
\section{L'espace vertical entre les rangées}
@@ -512,7 +499,7 @@ $\begin{bNiceArray}{ccc|c}[margin]
\interitem
La commande |\Block| accepte en fait en premier argument optionnel (entre
-crochets) une liste de couples clé-valeur. Les clés sont les suivantes :
+crochets) une liste de couples \textsl{clé=valeur}. Les clés sont les suivantes :
\begin{itemize}
\item les clés |l|, |c| et |r| réglent le positionnement horizontal comme dit
précédemment ;
@@ -589,6 +576,10 @@ Les blocs mono-colonne ont un comportement spécial.
\item La largeur naturelle du contenu de ces blocs est prise en compte pour la
largeur de la colonne courante.
+\colorbox{yellow!50}{\textbf{Nouveau 6.0}}\enskip Dans les colonnes à largeur
+fixée (colonnes |w{...}{...}|, |p{...}|, |b{...}|, |m{...}| et |X|), le contenu
+du bloc est mis en forme comme un paragraphe de cette largeur.
+
\item La spécification d'alignement horizontal donnée par le type de
colonne (|c|, |r| ou |l|) est prise en compte pour le bloc (mais le bloc peut
avoir sa propre spécification d'alignement horizontal).
@@ -1307,8 +1298,8 @@ l'environnement.
\smallskip
De nouvelles commandes sont disponibles dans ce |\CodeBefore|:
-|\cellcolor|, |\rectanglecolor|, |\rowcolor|, |\columncolor|, |\rowcolors|
-|\chessboardcolors| et |\arraycolor|.\footnote{On pourra remarquer que, dans le
+|\cellcolor|, |\rectanglecolor|, |\rowcolor|, |\columncolor|, |\rowcolors|,
+|\rowlistcolors|, |\chessboardcolors| et |\arraycolor|.\footnote{On pourra remarquer que, dans le
\verb|\CodeBefore|, des nœuds PGF/Tikz de la forme \verb+(i-|j)+ correspondant
à la position des filets éventuels sont également accessibles : cf. p.~\pageref{noeuds-i}.}
\label{code-before}
@@ -1590,6 +1581,46 @@ Henri & 14 \\
+
+
+\bigskip
+\item \colorbox{yellow!50}{\textbf{Nouveau 6.0}}\enskip L'extension
+\pkg{nicematrix} propose aussi une commande |\rowlistcolors|. Cette commande
+généralise la commande |\rowcolors|: au lieu de prendre deux arguments
+successifs pour les couleurs, elle prend un seul argument qui est une liste de
+couleurs séparées par des virgules. Dans cette liste, le symbole |=| représente
+une couleur identique à la précédente.
+
+\smallskip
+\begin{BVerbatim}[boxwidth=10cm,baseline=c]
+\begin{NiceTabular}{c}
+\CodeBefore
+ ~emphase#\rowlistcolors{1}{red!15,blue!15,green!15}@
+\Body
+Mathilde \\
+Pierre \\
+Paul \\
+Amélie \\
+Jacques \\
+Antoine \\
+Stéphanie \\
+\end{NiceTabular}
+\end{BVerbatim}
+\begin{NiceTabular}{c}
+\CodeBefore
+ \rowlistcolors{1}{red!15,blue!15,green!15}
+\Body
+Mathilde \\
+Pierre \\
+Paul \\
+Amélie \\
+Jacques \\
+Antoine \\
+Stéphanie \\
+\end{NiceTabular}
+
+\end{itemize}
+
\bigskip
On rappelle que toutes les commandes de coloriage que l'on vient de décrire ne
colorient pas les cases qui sont dans les «coins». Dans l'exemple suivant, on
@@ -1601,7 +1632,7 @@ utilise la clé |corners| pour demander de considérer le coin \emph{north east}
\begin{BVerbatim}[boxwidth=9cm,baseline=c]
\begin{NiceTabular}{cccccc}[~emphase#corners=NE@,margin,hvlines,first-row,first-col]
\CodeBefore
- ~emphase#\rowcolors{1}{blue!15}{}@
+ ~emphase#\rowlistcolors{1}{blue!15, }@
\Body
& 0 & 1 & 2 & 3 & 4 & 5 & 6 \\
0 & 1 \\
@@ -1615,7 +1646,7 @@ utilise la clé |corners| pour demander de considérer le coin \emph{north east}
\end{BVerbatim}
\begin{NiceTabular}{ccccccc}[corners=NE,margin,hvlines,first-row,first-col]
\CodeBefore
- \rowcolors{1}{blue!15}{}
+ \rowlistcolors{1}{blue!15, }
\Body
& 0 & 1 & 2 & 3 & 4 & 5 & 6 \\
0 & 1 \\
@@ -1628,7 +1659,6 @@ utilise la clé |corners| pour demander de considérer le coin \emph{north east}
\end{NiceTabular}
\end{scope}
-\end{itemize}
\bigskip
@@ -1776,9 +1806,11 @@ La commande |\rotate| est présentée p.~\pageref{rotate}.
\section{La largeur des colonnes}
\label{width}
+\subsection{Techniques de base}
+
Dans les environnements avec un préambule explicite (comme |{NiceTabular}|,
|{NiceArray}|, etc.), il est possible de fixer la largeur d'une colonne avec les
-lettres classiques |w| et |W| de l'extension \pkg{array}.
+lettres classiques |w|, |W|, |p|, |b| et |m| de l'extension \pkg{array}.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=9cm]
@@ -1797,8 +1829,9 @@ Rio & Tokyo & Oslo
\bigskip
Dans les environnements de \pkg{nicematrix}, il est aussi possible de fixer la
-largeur \emph{minimale} de toutes les colonnes de la matrice directement avec
-l'option |columns-width|.
+largeur \emph{minimale} de toutes les colonnes (à l'exception des éventuelles
+colonnes extérieures: cf. p.~\pageref{exterior}) directement avec l'option
+|columns-width|.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -1824,7 +1857,7 @@ supprimé (il est évidemment possible de le supprimer en mettant |\tabcolsep| o
Il est possible de donner la valeur spéciale |auto| à l'option |columns-width|:
toutes les colonnes du tableau auront alors une largeur égale à la largeur de la
case la plus large du tableau.\footnote{Le résultat est atteint dès la première
- compilation (mais PGF/Tikz écrivant des informations dans le fichier |.aux|,
+ compilation (mais PGF/Tikz écrivant des informations dans le fichier |aux|,
un message demandant une deuxième compilation apparaîtra).}\par\nobreak
\medskip
@@ -1843,7 +1876,7 @@ $\begin{pNiceMatrix}[columns-width = auto]
\bigskip
Sans surprise, il est possible de fixer la largeur minimale de toutes les
-colonnes de toutes les matrices dans une certaine portion de document avec la
+colonnes de tous les tableaux dans une certaine portion de document avec la
commande |\NiceMatrixOptions|.\par\nobreak
\medskip
@@ -1907,12 +1940,56 @@ $\begin{array}{c}
\end{NiceMatrixBlock}
+\subsection{Les colonnes X}
+
+\colorbox{yellow!50}{\textbf{Nouveau 6.0}}
+
+L'environnement |{NiceTabular}| propose aussi des colonnes |X| similaires à
+celles proposées par l'environnement |{tabularx}| de l'extension éponyme.
+
+La valeur requise par la largeur du tableau peut être passée en argument de la
+clé |width|. La valeur initiale de ce paramètre est |\linewidth|.
+
+Pour se rapprocher davantage de l'environnement |{tabularx}|, \pkg{nicematrix}
+propose aussi un environnement |{NiceTabularX}| qui prend en premier argument
+(obligatoire) la largeur voulue pour le tableau.
+
+Comme avec les extensions \pkg{tabu} et \pkg{tabularray}, le spécificateur |X|
+accepte entre crochets un argument optionnel qui est une liste de clés.
+\begin{itemize}
+\item On peut spécifier un poids pour la colonne en mettant directement un
+entier comme argument du spécificateur |X|. Par exemple, une colonne |X[2]| aura
+une largeur double de celle d'une colonne |X| (qui a un poids de 1).
+\item On peut spécifier l'alignement horizontal avec une des lettres |l|, |c| et
+|r| (qui insèrent respectivement |\raggedright|, |\centering| et |\raggedleft|
+suivi de |\arraybackslash|).
+\item On peut spécifier l'alignement vertical avec l'une des lettres |t| (alias
+|p|), |m| et |b| (qui construisent respectivement des colonnes de types |p|, |m|
+et |b|). La valeur par défaut est |t|.
+\end{itemize}
+
+\begin{Verbatim}
+\begin{NiceTabular}~emphase#[width=9cm]{X[2,l]X[l]}@[hvlines]
+Un texte relativement long qui tient sur plusieurs lignes. &
+Un texte relativement long qui tient sur plusieurs lignes. \\
+Un texte plus court. & Un texte plus court.
+\end{NiceTabular}
+\end{Verbatim}
+
+
+\begin{center}
+\begin{NiceTabular}[width=9cm]{X[2,l]X[l]}[hvlines]
+Un texte relativement long qui tient sur plusieurs lignes. &
+Un texte relativement long qui tient sur plusieurs lignes. \\
+Un texte plus court. & Un texte plus court.
+\end{NiceTabular}
+\end{center}
\bigskip
\section{Les rangées et colonnes extérieures}
Les environnements de \pkg{nicematrix} permettent de composer des rangées et des
colonnes «extérieures» grâce aux options |first-row|, |last-row|, |first-col| et
-|last-col|.
+|last-col|. C'est particulièrement intéressant pour les matrices (mathématiques).
\label{exterior}
Si elle est présente, la «première rangée» (extérieure) est numérotée par $0$
@@ -1970,7 +2047,7 @@ tableau. L'analyse du contenu de l'environnement donne le nombre de rangées
(mais pas le nombre de colonnes).
\item Dans les autres cas, \pkg{nicematrix} détermine le nombre de rangées et de
-colonnes à la première compilation et l'écrit dans le fichier |.aux| pour
+colonnes à la première compilation et l'écrit dans le fichier |aux| pour
pouvoir l'utiliser à la compilation suivante.
\textsl{Néanmoins, il est possible de donner le numéro de la dernière rangée et
@@ -2466,7 +2543,7 @@ Pour la clarté, dans la suite, on utilisera ces noms-là.
\smallskip
L'option |xdots/color| indique bien entendu la couleur de la ligne tracée. On
remarquera néanmoins que les lignes tracées dans les rangées et colonnes
-extérieures (décrites plus loin) bénificient d'un régime spécial : cf.
+extérieures (décrites plus loin) bénéficient d'un régime spécial : cf.
p.~\pageref{exterior}.
@@ -2545,8 +2622,8 @@ b & a & b & \Ddots & & \Vdots \\
Les lignes pointillées délimitent des blocs virtuels qui ont le même
comportement vis à vis des filets que les blocs créés par |\Block| (les filets
spécifiés par le spécificateur \verb+|+ dans le préambule, la commande |\Hline|
-et par les clés |vlines|, |hlines| et |hvlines| ne sont pas tracés dans les
-blocs).\footnote{En revanche, la commande \verb|\line| dans le \verb|\CodeAfter|
+et par les clés |vlines|, |hlines|, |hvlines| et |hvlines-except-borders| ne
+sont pas tracés dans les blocs).\footnote{En revanche, la commande \verb|\line| dans le \verb|\CodeAfter|
(cf.~p.~\pageref{line-in-code-after}) ne crée pas de bloc.}
\medskip
@@ -2707,7 +2784,7 @@ $\begin{NiceArray}{ccc@{\hspace{1.5em}}c}[cell-space-limits=2pt,margin]
\bigskip
\colorbox{yellow!50}{\bfseries Nouveau 5.18}\enskip La commande |\SubMatrix|
accepte en fait également deux arguments optionnels spécifiés par les symboles
-traditionnels |^| et |_| pour des élements en exposant et en indice.
+traditionnels |^| et |_| pour des éléments en exposant et en indice.
\medskip
\begin{scope}
@@ -3184,14 +3261,14 @@ 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*}|
-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).
+Si vous souhaitez utiliser les environnements |{NiceTabular}|, |{NiceTabular*}|
+ou |{NiceTabularX}| dans un environnement |{threeparttable}| de l'extension
+éponyme, vous devez patcher l'environnement |{threeparttable}| avec le code
+suivant (avec une version de LaTeX postérieure à 2020/10/01).
\begin{Verbatim}[commandchars=\~\#\!]
\makeatletter
\AddToHook{env/threeparttable/begin}
- {\TPT@hookin{NiceTabular}\TPT@hookin{NiceTabular*}}
+ {\TPT@hookin{NiceTabular}\TPT@hookin{NiceTabular*}\TPT@hookin{NiceTabularX}}
\makeatother
\end{Verbatim}
@@ -3369,7 +3446,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 |\CodeAfter|
+Dans le |\CodeBefore| (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).
@@ -3412,8 +3489,8 @@ nommées |\AutoNiceMatrix|, |\pAutoNiceMatrix|, |\bAutoNiceMatrix|,
Chacune de ces commandes prend deux arguments obligatoires : le premier est la
taille de la matrice, sous la forme $n$-$p$, où $n$ est le nombre de rangées et
$p$ est le nombre de colonnes et le deuxième est le motif (c'est-à-dire
-simplement des tokens qui seront insérés dans chaque case de la matrice,
-exceptées celles des éventuelles rangées et colonnes extérieures).
+simplement des tokens qui seront insérés dans chaque case de la matrice).
+
\medskip
\begin{Verbatim}
@@ -4003,78 +4080,99 @@ L'extension \pkg{nicematrix} fournit deux variables internes mais publiques\foot
\end{itemize}
\medskip
-Ces variables constituent le code du «|code-before|» et du «|code-after|». Le
-développeur peut donc les utiliser pour y ajouter du code à partir d'une case
-du tableau (l'affectation devra être globale, ce qui permettra de sortir de la
-case, qui est un groupe au sens de TeX).
+Ces variables constituent le code du «|code-before|» (que l'on rentre souvent
+avec la syntaxte utilisant |\CodeBefore| et |\Body| en début d'environnement et
+du «|code-after|» (que l'on rentre souvent en fin d'environnement après le
+mot-clé |\CodeAfter|). Le développeur peut donc les utiliser pour y ajouter du
+code à partir d'une case du tableau (l'affectation devra être globale, ce qui
+permettra de sortir de la case, qui est un groupe au sens de TeX).
\medskip
On remarquera que l'utilisation de |\g_nicematrix_code_before_tl| nécessite une
compilation supplémentaire (car les instructions sont écrites dans le fichier
|aux| pour être utilisées à la compilation suivante).
-\bigskip
-\emph{Example} : On souhaite écrire une commande |\hatchcell| pour hachurer la
-case courante (avec un argument optionnel entre crochets pour la couleur des
-hachures). Il est possible de programmer une telle commande |\hatchcell| comme
-suit, en utilisant explicitement la variable publique
-|\g_nicematrix_code_before_tl| (ce code nécessite le chargement préalable de la
-bibliothèque Tikz \pkg{patterns} : |\usetikzlibrary{patterns}|).
+
+
+
+\medskip
+\emph{Exemple} : On souhaite écrire une commande |\crossbox| qui barre en croix
+la cellule courante. Cette commande prendra en argument optionnel une liste de
+couples \textsl{clé}-\textsl{valeur} qui sera passée à Tikz avant que la croix
+ne soit tracée.
+
+
+On peut alors programmer cette commande |\crossbox| de la manière suivante, qui
+utilise explicitement la variable publique |\g_nicematrix_code_after_tl|.
\begin{scope}
\fvset{commandchars=\§\¤\μ}
\begin{Verbatim}
\ExplSyntaxOn
-\cs_new_protected:Nn \__pantigny_hatch:nnn
+\cs_new_protected:Nn \__pantigny_crossbox:nnn
{
- \tikz \fill [ pattern = north~west~lines , pattern~color = #3 ]
- ( #1 -| #2) rectangle ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
+ \tikz \draw [ #3 ]
+ ( #1 -| \int_eval:n { #2 + 1 } ) -- ( \int_eval:n { #1 + 1 } -| #2 )
+ ( #1 -| #2 ) -- ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
}
-\NewDocumentCommand \hatchcell { ! O { black } }
+\NewDocumentCommand \crossbox { ! O { } }
{
- \tl_gput_right:Nx §emphase¤\g_nicematrix_code_before_tlμ
- { \__pantigny_hatch:nnn { \arabic { iRow } } { \arabic { jCol } } { #1 } }
+ \tl_gput_right:Nx §emphase¤\g_nicematrix_code_after_tlμ
+ {
+ \__pantigny_crossbox:nnn
+ { \int_use:c { c@iRow } }
+ { \int_use:c { c@jCol } }
+ { \exp_not:n { #1 } }
+ }
}
\ExplSyntaxOff
\end{Verbatim}
\end{scope}
+
\ExplSyntaxOn
-\cs_new_protected:Nn \__pantigny_hatch:nnn
+\cs_new_protected:Nn \__pantigny_crossbox:nnn
{
- \tikz \fill [ pattern = north~west~lines , pattern~color = #3 ]
- ( #1 -| #2 ) rectangle ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
+ \tikz \draw [ #3 ]
+ ( #1 -| \int_eval:n { #2 + 1 } ) -- ( \int_eval:n { #1 + 1 } -| #2 )
+ ( #1 -| #2 ) -- ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
}
-\NewDocumentCommand \hatchcell { ! O { black } }
+
+\NewDocumentCommand \crossbox { ! O { } }
{
- \tl_gput_right:Nx \g_nicematrix_code_before_tl
- { \__pantigny_hatch:nnn { \arabic { iRow } } { \arabic { jCol } } { #1 } }
+ \tl_gput_right:Nx \g_nicematrix_code_after_tl
+ {
+ \__pantigny_crossbox:nnn
+ { \int_use:c { c@iRow } }
+ { \int_use:c { c@jCol } }
+ { \exp_not:n { #1 } }
+ }
}
\ExplSyntaxOff
-
-
\bigskip
-Voici un exemple d'utilisation.
+Voici un exemple d'utilisation :
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=9cm]
\begin{NiceTabular}{ccc}[hvlines]
-Tokyo & Paris & Londres \\
-Lima & ~emphase#\hatchcell[blue!30]@Oslo & Miami \\
-Los Angeles & Madrid & Rome
+merlan & requin & cabillaud \\
+baleine & ~emphase#\crossbox[red]@ & morue \\
+mante & raie & poule
\end{NiceTabular}
\end{BVerbatim}
\begin{NiceTabular}{ccc}[hvlines]
-Tokyo & Paris & Londres \\
-Lima & \hatchcell[blue!30]Oslo & Miami \\
-Los Angeles & Madrid & Rome
+merlan & requin & cabillaud \\
+baleine & \crossbox[red] & morue \\
+mante & raie & poule
\end{NiceTabular}
+
+
\section{Remarques techniques}
Première remarque : l'extension \pkg{nicematrix} doit être chargée après
@@ -4836,13 +4934,13 @@ a_{41} & a_{42} & a_{43} & \Block[draw]{}{a_{44}} \\
On remarquera que les traits que l'on vient de tracer sont dessinés \emph{après}
la matrice sans modifier la position des composantes de celle-ci. En revanche,
-les traits tracés par |\hline|, |\Hline|, le spécificateur «\verb+|+» ou les options
-|hlines|, |vlines| et |hvlines| «écartent» les composantes de la
-matrice.\footnote{Pour la commande |\cline|, voir la remarque
+les traits tracés par |\hline|, |\Hline|, le spécificateur «\verb+|+» ou les
+options |hlines|, |vlines|, |hvlines| et |hvlines-except-borders| «écartent» les
+composantes de la matrice.\footnote{Pour la commande |\cline|, voir la remarque
p.~\pageref{remark-cline}.}
\vspace{1cm}
-Il est possible de colorier une rangée avec |\rowcolor| dans le |code-before|
+Il est possible de colorier une rangée avec |\rowcolor| dans le |\CodeBefore|
(ou avec |\rowcolor| dans une case de la rangée si on utilise la clé
|colortbl-like| − même si \pkg{colortbl} n'est pas chargé).
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index 095a776390..f2ecb695bc 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -15,8 +15,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{5.19}
-\def\myfiledate{2021/07/23}
+\def\myfileversion{6.0}
+\def\myfiledate{2021/08/10}
%
%
%<*batchfile>
@@ -188,7 +188,7 @@ version 2005/12/01 or later.
% The idea of \pkg{nicematrix} is to create \textsc{pgf} nodes under the cells
% and the positions of the rules of the tabular created by \pkg{array} and to
% use these nodes to develop new features. As usual with \textsc{pgf}, the
-% coordinates of these nodes are written in the |.aux| to be used on the next
+% coordinates of these nodes are written in the |aux| to be used on the next
% compilation and that's why \pkg{nicematrix} may need \textbf{several
% compilations}.\footnote{If you use Overleaf, Overleaf will do automatically
% the right number of compilations.}
@@ -250,18 +250,6 @@ version 2005/12/01 or later.
% brackets, an optional list of \textsl{key=value} pairs. \textbf{There must be
% no space before the opening bracket (|[|) of this list of options.}
%
-%\bigskip
-% \textbf{Important}\par\nobreak
-%
-% Before the version 5.0, it was mandatory to use, for technical reasons, the
-% letters |L|, |C| et |R| instead of |l|, |c| et |r| in the preambles of the
-% environments of \pkg{nicematrix}. If we want to be able to go on using these
-% letters, \pkg{nicematrix} must be loaded with the option |define-L-C-R|.
-% \begin{Verbatim}
-% \usepackage[define-L-C-R]{nicematrix}
-% \end{Verbatim}
-% \textbf{This key will probably be deleted in a future version of
-% \pkg{nicematrix}.}
%
% \section{The vertical space between the rows}
%
@@ -633,6 +621,10 @@ version 2005/12/01 or later.
% \item The natural width of the contents of these blocks is taken into account
% for the width of the current column.
%
+% \colorbox{yellow!50}{\textbf{New 6.0}}\enskip In the columns with a fixed
+% width (columns |w{...}{...}|, |p{...}|, |b{...}|, |m{...}| and |X|), the
+% content of the block is formatted as a paragraph of that width.
+%
% \item The specification of the horizontal position provided by the type of
% column (|c|, |r| or |l|) is taken into account for the blocks.
%
@@ -1313,9 +1305,9 @@ version 2005/12/01 or later.
%
% New commands are available in that |\CodeBefore|: |\cellcolor|,
% |\rectanglecolor|, |\rowcolor|, |\columncolor|, |\rowcolors|,
-% |\chessboardcolors| and |arraycolor|.\footnote{Remark that, in the
-% \verb|\CodeBefore|, PGF/Tikz nodes of the form ``\verb+(i-|j)+'' are also
-% available to indicate the position to the potential rules:
+% |\rowlistcolors|, |\chessboardcolors| and |arraycolor|.\footnote{Remark that,
+% in the \verb|\CodeBefore|, PGF/Tikz nodes of the form ``\verb+(i-|j)+'' are
+% also available to indicate the position to the potential rules:
% cf.~p.~\pageref{nodes-i}.}
% \label{code-before}
%
@@ -1582,19 +1574,58 @@ version 2005/12/01 or later.
% \end{scope}
%
%
+%
+%
+% \bigskip
+% \item \colorbox{yellow!50}{\textbf{New 6.0}}\enskip The extension
+% \pkg{nicematrix} provides also a command |\rowlistcolors|. This command
+% generalises the command |\rowcolors|: instead of two successive arguments for
+% the colors, this command takes in an argument which is a (comma-separated)
+% list of colors. In that list, the symbol |=| represent a color identical to
+% the previous one.
+% \end{itemize}
+%
+% \smallskip
+% \begin{BVerbatim}[boxwidth=10cm,baseline=c]
+% \begin{NiceTabular}{c}
+% \CodeBefore
+% ~emphase#\rowlistcolors{1}{red!15,blue!15,green!15}@
+% \Body
+% Peter \\
+% James \\
+% Abigail \\
+% Elisabeth \\
+% Claudius \\
+% Jane \\
+% Alexandra \\
+% \end{NiceTabular}
+% \end{BVerbatim}
+% \begin{NiceTabular}{c}
+% \CodeBefore
+% \rowlistcolors{1}{red!15,blue!15,green!15}
+% \Body
+% Peter \\
+% James \\
+% Abigail \\
+% Elisabeth \\
+% Claudius \\
+% Jane \\
+% Alexandra \\
+% \end{NiceTabular}
+%
+%
% \medskip
% We recall that all the color commands we have described don't color the cells
% which are in the ``corners''. In the following example, we use the key
% |corners| to require the determination of the corner \emph{north east} (NE).
%
-%
%\medskip
% \begin{scope}
% \hfuzz=11cm
% \begin{BVerbatim}[boxwidth=9cm,baseline=c]
% \begin{NiceTabular}{cccccc}[~emphase#corners=NE@,margin,hvlines,first-row,first-col]
% \CodeBefore
-% ~emphase#\rowcolors{1}{blue!15}{}@
+% ~emphase#\rowlistcolors{1}{blue!15, }@
% \Body
% & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\
% 0 & 1 \\
@@ -1608,7 +1639,7 @@ version 2005/12/01 or later.
% \end{BVerbatim}
% \begin{NiceTabular}{ccccccc}[corners=NE,margin,hvlines,first-row,first-col]
% \CodeBefore
-% \rowcolors{1}{blue!15}{}
+% \rowlistcolors{1}{blue!15, }
% \Body
% & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\
% 0 & 1 \\
@@ -1621,8 +1652,6 @@ version 2005/12/01 or later.
% \end{NiceTabular}
% \end{scope}
%
-% \end{itemize}
-%
%
% \bigskip
% One should remark that all the previous commands are compatible with the
@@ -1765,9 +1794,11 @@ version 2005/12/01 or later.
% \section{The width of the columns}
% \label{width}
%
+% \subsection{Basic tools}
+%
% In the environments with an explicit preamble (like |{NiceTabular}|,
% |{NiceArray}|, etc.), it's possible to fix the width of a given column with
-% the standard letters |w| and |W| of the package \pkg{array}.
+% the standard letters |w|, |W|, |p|, |b| and |m| of the package \pkg{array}.
%
% \medskip
% \begin{BVerbatim}[baseline=c,boxwidth=9cm]
@@ -1786,7 +1817,8 @@ version 2005/12/01 or later.
%
% \bigskip
% In the environments of \pkg{nicematrix}, it's also possible to fix the \emph{minimal}
-% width of all the columns of an array directly with the key |columns-width|.
+% width of all the columns (excepted the potential exterior columns: cf. p.~\pageref{exterior}) directly
+% with the key |columns-width|.
%
% \medskip
% \begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -1812,7 +1844,7 @@ version 2005/12/01 or later.
% It's possible to give the special value |auto| to the option |columns-width|:
% all the columns of the array will have a width equal to the widest cell of the
% array.\footnote{The result is achieved with only one compilation (but PGF/Tikz
-% will have written informations in the |.aux| file and a message requiring a
+% will have written informations in the |aux| file and a message requiring a
% second compilation will appear).}\par\nobreak
%
% \medskip
@@ -1831,7 +1863,7 @@ version 2005/12/01 or later.
%
% \bigskip
% Without surprise, it's possible to fix the minimal width of the columns of all
-% the matrices of a current scope with the command
+% the arrays of a current scope with the command
% |\NiceMatrixOptions|.\par\nobreak
%
% \medskip
@@ -1892,13 +1924,57 @@ version 2005/12/01 or later.
% \end{array}$
% \end{NiceMatrixBlock}
%
+% \subsection{The columns X}
+%
+% \colorbox{yellow!50}{\textbf{New 6.0}}
+%
+% The environment |{NiceTabular}| provides |X| columns similar to those provided
+% by the environment |{tabularx}| of the eponymous package.
+%
+% The required width of the tabular may be specified with the key |width|. The
+% initial value of this parameter is |\linewidth|.
+%
+% For sake of similarity with the environment |{tabularx}|, \pkg{nicematrix}
+% also provides an environment |{NiceTabularX}| with a first mandatory argument
+% which is the width of the tabular.
+%
+% As with the packages \pkg{tabu} and \pkg{tabularray}, the specifier |X| takes
+% in an optional argument (between square brackets) which is a list of keys.
+% \begin{itemize}
+% \item It's possible to give a weight for the column by providing an integer
+% directly as argument of the specifier |X|. For example, a column |X[2]| will
+% have a width double of the width of a column |X| (which has a weight equal to $1$).
+% \item It's possible to specify an horizontal alignment with one of the
+% letters |l|, |c| and |r| (which inserts respectively |\raggedright|,
+% |\centering| and |\raggedleft| followed by |\arraybackslash|).
+% \item It's possible to specify a vertical alignement with one of the keys
+% |t| (alias |p|), |m| and |b| (which construct respectively columns of type
+% |p|, |m| and |b|). The default value is |t|.
+% \end{itemize}
+%
+% \begin{Verbatim}
+% \begin{NiceTabular}~emphase#[width=9cm]{X[2,l]X[l]}@[hvlines]
+% a rather long text which fits on several lines
+% & a rather long text which fits on several lines \\
+% a shorter text & a shorter text
+% \end{NiceTabular}
+% \end{Verbatim}
+%
+% \begin{center}
+% \begin{NiceTabular}[width=9cm]{X[2,l]X[l]}[hvlines]
+% a rather long text which fits on several lines
+% & a rather long text which fits on several lines \\
+% a shorter text & a shorter text
+% \end{NiceTabular}
+% \end{center}
%
% \bigskip
% \section{The exterior rows and columns}
%
% The options |first-row|, |last-row|, |first-col| and |last-col| allow the
% composition of exterior rows and columns in the environments of
-% \pkg{nicematrix}.
+% \pkg{nicematrix}. It's particularly interesting for the (methematical)
+% matrices.
% \label{exterior}
%
% A potential ``first row'' (exterior) has the number $0$ (and not $1$). Idem
@@ -2007,7 +2083,7 @@ version 2005/12/01 or later.
% \emph{Remarks}
% \begin{itemize}[beginpenalty=10000]
% \item As shown in the previous example, the horizontal and vertical rules
-% doesn't extend in the exterior rows and columns.
+% don't extend in the exterior rows and columns.
%
% However, if one wishes to define new specifiers for columns in order to draw
% vertical rules (for example thicker than the standard rules), he should
@@ -2015,7 +2091,7 @@ version 2005/12/01 or later.
% page~\pageref{OnlyMainNiceMatrix}.
%
% \item A specification of color present in |code-for-first-row| also applies to
-% a dotted line draw in this exterior ``first row'' (excepted if a value has
+% a dotted line drawn in that exterior ``first row'' (excepted if a value has
% been given to |xdots/color|). Idem for the other exterior rows and columns.
%
% \item Logically, the potential option |columns-width| (described
@@ -2053,7 +2129,7 @@ version 2005/12/01 or later.
% horizontal line; for |\Vdots|, it's a vertical line and for |\Ddots| and
% |\Iddots| diagonal ones. It's possible to change the color of these lines
% with the option |color|.\footnote{It's also possible to change the color of
-% all theses dotted lines with the option |xdots/color| (\textsl{xdots} to
+% all these dotted lines with the option |xdots/color| (\textsl{xdots} to
% remind that it works for |\Cdots|, |\Ldots|, |\Vdots|, etc.): cf. p.
% \pageref{customisation}.}\par\nobreak
%
@@ -2513,10 +2589,11 @@ version 2005/12/01 or later.
%
% The dotted lines determine virtual blocks which have the same behaviour
% regarding the rules (the rules specified by the specifier \verb+|+ in the
-% preamble, by the command |\Hline| and by the keys |hlines|, |vlines| and
-% |hvlines| are not drawn within the blocks).\footnote{On the other side, the
-% command \verb|\line| in the \verb|\CodeAfter|
-% (cf.~p.~\pageref{line-in-code-after}) does \emph{not} create block.}
+% preamble, by the command |\Hline| and by the keys |hlines|, |vlines|,
+% |hvlines| and |hvlines-except-borders| are not drawn within the
+% blocks).\footnote{On the other side, the command \verb|\line| in the
+% \verb|\CodeAfter| (cf.~p.~\pageref{line-in-code-after}) does \emph{not} create
+% block.}
%
% \medskip
% \begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
@@ -3140,14 +3217,14 @@ version 2005/12/01 or later.
% \subsection{Use of \{NiceTabular\} with threeparttable}
%
%
-% If you wish to use the environment |{NiceTabular}| or |{NiceTabular*}| in an
-% environment |{threeparttable}| of the eponymous package, you have to patch the
-% environment |{threeparttable}| with the following code (with a version of
-% LaTeX at least 2020/10/01).
+% If you wish to use the environment |{NiceTabular}|, |{NiceTabular*}|
+% |{NiceTabularX}|in an environment |{threeparttable}| of the eponymous package,
+% you have to patch the environment |{threeparttable}| with the following code
+% (with a version of LaTeX at least 2020/10/01).
% \begin{Verbatim}[commandchars=\~\#\!]
% \makeatletter
% \AddToHook{env/threeparttable/begin}
-% {\TPT@hookin{NiceTabular}\TPT@hookin{NiceTabular*}}
+% {\TPT@hookin{NiceTabular}\TPT@hookin{NiceTabular*}\TPT@hookin{NiceTabularX}}
% \makeatother
% \end{Verbatim}
%
@@ -3373,8 +3450,7 @@ version 2005/12/01 or later.
% These commands take in two mandatory arguments. The first is the format of the
% matrix, with the syntax $n$-$p$ where $n$ is the number of rows and $p$ the
% number of columns. The second argument is the pattern (it's a list of tokens
-% which are inserted in each cell of the constructed matrix, excepted in the
-% cells of the potential exterior rows and columns).
+% which are inserted in each cell of the constructed matrix).
%
% \medskip
% \begin{Verbatim}
@@ -3953,9 +4029,11 @@ version 2005/12/01 or later.
%
% \medskip
% These variables contain the code of what we have called the ``|code-before|''
-% and the ``|code-after|''. The developper can use them to add code from a cell
-% of the array (the affectation must be global, allowing to exit the cell, which
-% is a TeX group).
+% (usually specified at the beginning of the environment with the syntax using
+% the keywords |\CodeBefore| and |\Body|) and the ``|code-after|'' (usually
+% specified at the end of the environment after the keyword |\CodeAfter|). The
+% developper can use them to add code from a cell of the array (the affectation
+% must be global, allowing to exit the cell, which is a TeX group).
%
% \medskip
% One should remark that the use of |\g_nicematrix_code_before_tl| needs one
@@ -3963,27 +4041,34 @@ version 2005/12/01 or later.
% used during the next run).
%
% \bigskip
-% \emph{Example} : We want to write a command |\hatchcell| to hatch the current
-% cell (with an optional argument between brackets for the color). It's possible
-% to program such command |\hatchcell| as follows, explicitely using the public
-% variable |\g_nicematrix_code_before_tl| (this code requires the Tikz library
-% \pkg{patterns}: |\usetikzlibrary{patterns}|).
+% \emph{Example} : We want to write a command |\crossbox| to draw a cross in the
+% current cell. This command will take in an optional argument between square
+% brackets for a list of pairs \textsl{key}-\textsl{value} which will be given to
+% Tikz before the drawing.
%
+% It's possible to program such command |\crossbox| as follows, explicitely
+% using the public variable |\g_nicematrix_code_after_tl|.
%
% \begin{scope}
% \fvset{commandchars=\§\¤\μ}
% \begin{Verbatim}
-%\ExplSyntaxOn
-% \cs_new_protected:Nn \__pantigny_hatch:nnn
+% \ExplSyntaxOn
+% \cs_new_protected:Nn \__pantigny_crossbox:nnn
% {
-% \tikz \fill [ pattern = north~west~lines , pattern~color = #3 ]
-% ( #1 -| #2) rectangle ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
+% \tikz \draw [ #3 ]
+% ( #1 -| \int_eval:n { #2 + 1 } ) -- ( \int_eval:n { #1 + 1 } -| #2 )
+% ( #1 -| #2 ) -- ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
% }
%
-% \NewDocumentCommand \hatchcell { ! O { black } }
+% \NewDocumentCommand \crossbox { ! O { } }
% {
-% \tl_gput_right:Nx §emphase¤\g_nicematrix_code_before_tlμ
-% { \__pantigny_hatch:nnn { \arabic { iRow } } { \arabic { jCol } } { #1 } }
+% \tl_gput_right:Nx §emphase¤\g_nicematrix_code_after_tlμ
+% {
+% \__pantigny_crossbox:nnn
+% { \int_use:c { c@iRow } }
+% { \int_use:c { c@jCol } }
+% { \exp_not:n { #1 } }
+% }
% }
% \ExplSyntaxOff
% \end{Verbatim}
@@ -3991,38 +4076,45 @@ version 2005/12/01 or later.
%
%
% \ExplSyntaxOn
-% \cs_new_protected:Nn \__pantigny_hatch:nnn
+% \cs_new_protected:Nn \__pantigny_crossbox:nnn
% {
-% \tikz \fill [ pattern = north~west~lines , pattern~color = #3 ]
-% ( #1 -| #2 ) rectangle ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
+% \tikz \draw [ #3 ]
+% ( #1 -| \int_eval:n { #2 + 1 } ) -- ( \int_eval:n { #1 + 1 } -| #2 )
+% ( #1 -| #2 ) -- ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
% }
%
-% \NewDocumentCommand \hatchcell { ! O { black } }
+%
+% \NewDocumentCommand \crossbox { ! O { } }
% {
-% \tl_gput_right:Nx \g_nicematrix_code_before_tl
-% { \__pantigny_hatch:nnn { \arabic { iRow } } { \arabic { jCol } } { #1 } }
+% \tl_gput_right:Nx \g_nicematrix_code_after_tl
+% {
+% \__pantigny_crossbox:nnn
+% { \int_use:c { c@iRow } }
+% { \int_use:c { c@jCol } }
+% { \exp_not:n { #1 } }
+% }
% }
% \ExplSyntaxOff
%
-%
% \bigskip
-% Here is an example of use:
+% Here is an example of utilisation:
%
% \medskip
% \begin{BVerbatim}[baseline=c,boxwidth=9cm]
% \begin{NiceTabular}{ccc}[hvlines]
-% Tokyo & Paris & London \\
-% Lima & ~emphase#\hatchcell[blue!30]@Oslo & Miami \\
-% Los Angeles & Madrid & Roma
+% merlan & requin & cabillaud \\
+% baleine & ~emphase#\crossbox[red]@ & morue \\
+% mante & raie & poule
% \end{NiceTabular}
% \end{BVerbatim}
% \begin{NiceTabular}{ccc}[hvlines]
-% Tokyo & Paris & London \\
-% Lima & \hatchcell[blue!30]Oslo & Miami \\
-% Los Angeles & Madrid & Roma
+% merlan & requin & cabillaud \\
+% baleine & \crossbox[red] & morue \\
+% mante & raie & poule
% \end{NiceTabular}
%
%
+%
% \section{Technical remarks}
%
% \subsection{Definition of new column types}
@@ -4076,7 +4168,7 @@ version 2005/12/01 or later.
%
% \label{parallelization}
% By default, all the diagonal lines\footnote{We speak of the lines created by
-% |\Ddots| and not the lines created by a command |\line| in |code-after|.} of a
+% |\Ddots| and not the lines created by a command |\line| in the |\CodeAfter|.} of a
% same array are ``parallelized''. That means that the first diagonal line is
% drawn and, then, the other lines are drawn parallel to the first one (by
% rotation around the left-most extremity of the line). That's why the position
@@ -4233,7 +4325,7 @@ version 2005/12/01 or later.
%
%
% \bigskip
-% the package \pkg{nicematrix} is not compatible with the class \cls{ieeeaccess}
+% The package \pkg{nicematrix} is not compatible with the class \cls{ieeeaccess}
% (because that class is not compatible with PGF/Tikz).
%
% \section{Examples}
@@ -4767,10 +4859,10 @@ version 2005/12/01 or later.
%
% We should remark that the rules we have drawn are drawn \emph{after} the
% construction of the array and thus, they don't spread the cells of the array.
-% We recall that, on the other side, the commands |\hline| and |\Hline|, the specifier ``"|"''
-% and the options |hlines|, |vlines| and |hvlines| spread the
-% cells.\footnote{For the command |\cline|, see the remark
-% p.~\pageref{remark-cline}.}
+% We recall that, on the other side, the commands |\hline| and |\Hline|, the
+% specifier ``"|"'' and the options |hlines|, |vlines|, |hvlines| and
+% |hvlines-except-borders| spread the cells.\footnote{For the command |\cline|,
+% see the remark p.~\pageref{remark-cline}.}
%
%
% \vspace{1cm}
@@ -5255,9 +5347,7 @@ version 2005/12/01 or later.
\AtBeginDocument
{
\@ifpackageloaded { colortbl }
- {
- \bool_set_true:N \c_@@_colortbl_loaded_bool
- }
+ { \bool_set_true:N \c_@@_colortbl_loaded_bool }
{
% \end{macrocode}
% The command |\CT@arc@| is a command of \pkg{colortbl} which sets the color of
@@ -5294,7 +5384,17 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-%
+% \bigskip
+% We will use |\AtBeginEnvironment|. For version of LaTeX posterior to
+% 2020-10-01, the command is available in the LaTeX kernel (\pkg{l3hooks}). For
+% older versions, we load \pkg{etoolbox}.
+% \begin{macrocode}
+\cs_if_exist:NF \AtBeginEnvironment { \RequirePackage { etoolbox } }
+% \end{macrocode}
+% The command |\AtBeginDocument| will be used to patch |{tabular}| in order to
+% come back to the original versions of |\multicolumn| in the |{tabular}| nested
+% in the environments of \pkg{nicematrix}.
+%
% \bigskip
% We have to redefine |\cline| for several reasons. The command |\@@_cline| will
% be linked to |\cline| in the beginning of |{NiceArrayWithDelims}|. The
@@ -5515,26 +5615,6 @@ version 2005/12/01 or later.
% \subsection*{Parameters}
%
% \bigskip
-% For compatibility with versions prior to 5.0, we provide a load-time option
-% |define_L_C_R|. With this option, it's possible to use the letters |L|, |C|
-% and |R| instead of |l|, |c| and |r| in the preamble of the environments of
-% \pkg{nicematrix} as it was mandatory before version~5.0. This key will
-% probably be deleted in a future version.
-% \begin{macrocode}
-\bool_new:N \c_@@_define_L_C_R_bool
-% \end{macrocode}
-%
-%
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_define_L_C_R:
- {
- \newcolumntype L l
- \newcolumntype C c
- \newcolumntype R r
- }
-% \end{macrocode}
-%
-% \bigskip
% The following counter will count the environments |{NiceArray}|. The value of
% this counter will be used to prefix the names of the Tikz nodes created in the
% array.
@@ -5586,6 +5666,19 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
+% The dimension |\l_@@_col_width_dim| will be available in each cell which
+% belongs to a column of fixed width: |w{...}{...}|, |W{...}{...}|, |p{}|,
+% |m{}|, |b{}| but also |X| (when the actual width of that column is known, that
+% is to say after the first compilation). It's the width of that column. It will
+% be used by some commands |\Block|. A non positive value means that the column
+% has no fixed width (it's a column of type |c|, |r|, |l|, etc.).
+% \begin{macrocode}
+\dim_new:N \l_@@_col_width_dim
+\dim_set:Nn \l_@@_col_width_dim { -1 cm }
+% \end{macrocode}
+%
+%
+% \bigskip
% The following counters will be used to count the numbers of rows and columns
% of the array.
% \begin{macrocode}
@@ -5594,11 +5687,13 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% The following token list will contain the type of the current cell (|l|, |c|
-% or |r|). It will be used by the blocks.
+% The following token list will contain the type of horizontal alignment of the
+% current cell as provided by the corresponding column. The possible values are
+% |r|, |l|, |c|. For exemple, a column |p[l]{3cm}| will provide the value |l|
+% for all the cells of the column.
% \begin{macrocode}
-\tl_new:N \l_@@_cell_type_tl
-\tl_set:Nn \l_@@_cell_type_tl { c }
+\str_new:N \l_@@_hpos_cell_str
+\str_set:Nn \l_@@_hpos_cell_str { c }
% \end{macrocode}
%
% \bigskip
@@ -5672,6 +5767,13 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
+% In a cell, it will be possible to know whether we are in a cell of a column of
+% type |X| thanks to that flag.
+% \begin{macrocode}
+\bool_new:N \l_@@_X_column_bool
+% \end{macrocode}
+%
+% \bigskip
% We will write in |\g_@@_aux_tl| all the instructions that we have to write on
% the |aux| file for the current environment. The contain of that token list
% will be written on the |aux| file at the end of the environment (in an
@@ -5786,16 +5888,19 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% The number of letters |X| in the preamble of the array.
+% The sum of the weights of all the |X|-columns in the preamble. The weight of a
+% |X|-column is given as optional argument between square brackets. The default
+% value, of course, is $1$.
% \begin{macrocode}
-\int_new:N \g_@@_nb_of_X_int
+\int_new:N \g_@@_total_X_weight_int
% \end{macrocode}
%
% If there is at least one |X|-column in the preamble of the array, the
% following flag will be raised via the |aux| file. The length
-% |l_@@_x_columns_dim| will be the width of the |X|-columns. That value is
-% computed after the contruction of the array during the first compilation in
-% order to be used in the following run.
+% |l_@@_x_columns_dim| will be the width of |X|-columns of weight $1$ (the width
+% of a column of weigth $n$ will be that dimension multiplied by~$n$). That
+% value is computed after the construction of the array during the first
+% compilation in order to be used in the following run.
% \begin{macrocode}
\bool_new:N \l_@@_X_columns_aux_bool
\dim_new:N \l_@@_X_columns_dim
@@ -5947,7 +6052,14 @@ version 2005/12/01 or later.
% \begin{macrocode}
\seq_new:N \g_@@_submatrix_names_seq
% \end{macrocode}
-%
+%
+% \medskip
+% The following flag will be raised if the key |width| has been raised. You use
+% it to raise an error when this key is used while no column |X| is used.
+% \begin{macrocode}
+\bool_new:N \l_@@_width_used_bool
+% \end{macrocode}
+%
% \medskip
% The sequence |\g_@@_multicolumn_cells_seq| will contain the list of the cells
% of the array where a command |\multicolumn{|$n$|}{...}{...}| with $n>1$ is
@@ -6024,8 +6136,8 @@ version 2005/12/01 or later.
% |\l_@@_hpos_of_block_cap_bool| will be raised (in the second pass of the
% analyze of the keys of the command |\Block|).
% \begin{macrocode}
-\tl_new:N \l_@@_hpos_of_block_tl
-\tl_set:Nn \l_@@_hpos_of_block_tl { c }
+\str_new:N \l_@@_hpos_block_str
+\str_set:Nn \l_@@_hpos_block_str { c }
\bool_new:N \l_@@_hpos_of_block_cap_bool
% \end{macrocode}
%
@@ -6801,9 +6913,9 @@ version 2005/12/01 or later.
% \begin{macrocode}
\keys_define:nn { NiceMatrix / Env }
{
-
% \end{macrocode}
-% The key |hvlines-except-corners| is now deprecated.
+% The key |hvlines-except-corners| is now deprecated (use |hvlines| and
+% |corners| instead).
% \begin{macrocode}
hvlines-except-corners .code:n =
{
@@ -7157,6 +7269,12 @@ version 2005/12/01 or later.
% \begin{macrocode}
\keys_define:nn { NiceMatrix / NiceTabular }
{
+% \end{macrocode}
+% The dimension |width| will be used if at least a column of type |X| is used.
+% \begin{macrocode}
+ width .code:n = \dim_set:Nn \l_@@_width_dim { #1 }
+ \bool_set_true:N \l_@@_width_used_bool ,
+ width .value_required:n = true ,
notes / para .bool_set:N = \l_@@_notes_para_bool ,
notes / para .default:n = true ,
notes / bottomrule .bool_set:N = \l_@@_notes_bottomrule_bool ,
@@ -7184,12 +7302,12 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_Cell:
{
% \end{macrocode}
-% The token list |\g_@@_post_treatment_cell_tl| will be set during the
+% The token list |\g_@@_post_action_cell_tl| will be set during the
% composition of the box |\l_@@_cell_box| and will be used \emph{after} the
% composition in order to modify that box (that's why it's called a
-% \emph{post-treatment}).
+% \emph{post-action}).
% \begin{macrocode}
- \tl_gclear:N \g_@@_post_treatment_cell_tl
+ \tl_gclear:N \g_@@_post_action_cell_tl
% \end{macrocode}
% At the beginning of the cell, we link |\CodeAfter| to a command which do
% \emph{not} begin with |\omit| (whereas the standard version of |\CodeAfter|
@@ -7349,11 +7467,11 @@ version 2005/12/01 or later.
\@@_math_toggle_token:
\hbox_set_end:
% \end{macrocode}
-% The token list |\g_@@_post_treatment_cell_tl| is (potentially) set during the
+% The token list |\g_@@_post_action_cell_tl| is (potentially) set during the
% composition of the box |\l_@@_cell_box| and is used now \emph{after} the
% composition in order to modify that box.
% \begin{macrocode}
- \g_@@_post_treatment_cell_tl
+ \g_@@_post_action_cell_tl
\bool_if:NT \g_@@_rotate_bool \@@_rotate_cell_box:
\@@_adjust_size_box:
% \end{macrocode}
@@ -7856,7 +7974,6 @@ version 2005/12/01 or later.
\cs_set_eq:NN \Hspace \@@_Hspace:
\cs_set_eq:NN \Hdotsfor \@@_Hdotsfor:
\cs_set_eq:NN \Vdotsfor \@@_Vdotsfor:
- \cs_set_eq:NN \multicolumn \@@_multicolumn:nnn
\cs_set_eq:NN \Block \@@_Block:
\cs_set_eq:NN \rotate \@@_rotate:
\cs_set_eq:NN \OnlyMainNiceMatrix \@@_OnlyMainNiceMatrix:n
@@ -7868,6 +7985,18 @@ version 2005/12/01 or later.
\bool_if:NT \l_@@_colortbl_like_bool \@@_colortbl_like:
\bool_if:NT \l_@@_renew_dots_bool \@@_renew_dots:
% \end{macrocode}
+% We redefine |\multicolumn| and, since we want |\multicolumn| to be available
+% in the potential environments |{tabular}| nested in the environments of
+% \pkg{nicematrix}, we patch |{tabular}| to go back to the original definition.
+% The command |\AtBeginEnvironment| is the command of \pkg{l3hooks} and, if this
+% command is not available (versions of LaTeX prior to 2020-10-01),
+% \pkg{etoolbox} is loaded and the command |\AtBeginDocument| of \pkg{etoolbox}
+% is used.
+% \begin{macrocode}
+ \cs_set_eq:NN \multicolumn \@@_multicolumn:nnn
+ \AtBeginEnvironment { tabular }
+ { \cs_set_eq:NN \multicolumn \@@_old_multicolumn }
+% \end{macrocode}
%
%
% The sequence |\g_@@_multicolumn_cells_seq| will contain the list of the cells
@@ -8029,14 +8158,6 @@ version 2005/12/01 or later.
\box_clear_new:N \l_@@_the_array_box
% \end{macrocode}
%
-% \bigskip
-% If the user has loaded |nicematrix| with the option |define-L-C-R|, he will be
-% able to use |L|, |C| and |R| instead of |l|, |c| and |r| in the preambles of
-% the environments of \pkg{nicematrix} (it's a compatibility mode since |L|, |C|
-% and |R| were mandatory before version 5.0).
-% \begin{macrocode}
- \bool_if:NT \c_@@_define_L_C_R_bool \@@_define_L_C_R:
-% \end{macrocode}
%
% \bigskip
% The preamble will be constructed in |\g_@@_preamble_tl|.
@@ -8112,7 +8233,7 @@ version 2005/12/01 or later.
{
\tl_gput_right:Nn \g_@@_row_style_tl
{
- \tl_gput_right:Nn \g_@@_post_treatment_cell_tl
+ \tl_gput_right:Nn \g_@@_post_action_cell_tl
{ \dim_set:Nn \l_@@_cell_space_top_limit_dim { #1 } }
}
} ,
@@ -8121,7 +8242,7 @@ version 2005/12/01 or later.
{
\tl_gput_right:Nn \g_@@_row_style_tl
{
- \tl_gput_right:Nn \g_@@_post_treatment_cell_tl
+ \tl_gput_right:Nn \g_@@_post_action_cell_tl
{ \dim_set:Nn \l_@@_cell_space_bottom_limit_dim { #1 } }
}
} ,
@@ -8223,6 +8344,7 @@ version 2005/12/01 or later.
\cs_set_eq:NN \roundedrectanglecolor \@@_roundedrectanglecolor
\cs_set_eq:NN \rowcolor \@@_rowcolor
\cs_set_eq:NN \rowcolors \@@_rowcolors
+ \cs_set_eq:NN \rowlistcolors \@@_rowlistcolors
\cs_set_eq:NN \arraycolor \@@_arraycolor
\cs_set_eq:NN \columncolor \@@_columncolor
\cs_set_eq:NN \chessboardcolors \@@_chessboardcolors
@@ -8351,6 +8473,9 @@ version 2005/12/01 or later.
\NewDocumentEnvironment { NiceArrayWithDelims }
{ m m O { } m ! O { } t \CodeBefore }
{
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_provide_pgfsyspdfmark:
\bool_if:NT \c_@@_footnote_bool \savenotes
% \end{macrocode}
@@ -8507,18 +8632,31 @@ version 2005/12/01 or later.
% End of the construction of the array (in the box |\l_@@_the_array_box|).
%
% \bigskip
+% If the user has used the key |width| without any column |X|, we raise an error.
+% \begin{macrocode}
+ \bool_if:NT \l_@@_width_used_bool
+ {
+ \int_compare:nNnT \g_@@_total_X_weight_int = 0
+ { \@@_error:n { width~without~X~columns } }
+ }
+% \end{macrocode}
+%
+% \bigskip
% Now, if there is at least one |X|-column in the environment, we compute the
-% width that those columns will have (in the next compilation).
+% width that those columns will have (in the next compilation). In fact,
+% |l_@@_X_columns_dim| will the the width of a column of weight $1$. For a
+% |X|-column of weight~$n$, the width will be |l_@@_X_columns_dim| multiplied
+% by~$n$.
% \begin{macrocode}
- \int_compare:nNnT \g_@@_nb_of_X_int > 0
+ \int_compare:nNnT \g_@@_total_X_weight_int > 0
{
\bool_if:NTF \l_@@_X_columns_aux_bool
{ \dim_set_eq:NN \l_tmpa_dim \l_@@_X_columns_dim }
{
\dim_set:Nn \l_tmpa_dim
{
- ( \textwidth - \box_wd:N \l_@@_the_array_box )
- / \int_use:N \g_@@_nb_of_X_int
+ ( \l_@@_width_dim - \box_wd:N \l_@@_the_array_box )
+ / \int_use:N \g_@@_total_X_weight_int
}
}
\tl_gput_right:Nx \g_@@_aux_tl
@@ -8823,7 +8961,7 @@ version 2005/12/01 or later.
% \end{macrocode}
% The number of letters |X| in the preamble of the array.
% \begin{macrocode}
- \int_gzero:N \g_@@_nb_of_X_int
+ \int_gzero:N \g_@@_total_X_weight_int
% \end{macrocode}
% The sequence |\g_@@_cols_vlsim_seq| will contain the numbers of the columns
% where you will to have to draw vertical lines in the potential sub-matrices
@@ -8932,9 +9070,9 @@ version 2005/12/01 or later.
! { \@@_patch_preamble_ii:nn #1 }
@ { \@@_patch_preamble_ii:nn #1 }
| { \@@_patch_preamble_iii:n #1 }
- p { \@@_patch_preamble_iv:nnn t #1 }
- b { \@@_patch_preamble_iv:nnn b #1 }
- m { \@@_patch_preamble_iv:nnn b #1 }
+ p { \@@_patch_preamble_iv:n #1 }
+ b { \@@_patch_preamble_iv:n #1 }
+ m { \@@_patch_preamble_iv:n #1 }
\@@_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 }
@@ -8944,10 +9082,7 @@ version 2005/12/01 or later.
) { \@@_patch_preamble_viii:nn #1 }
] { \@@_patch_preamble_viii:nn #1 }
\} { \@@_patch_preamble_viii:nn #1 }
- X { \@@_patch_preamble_xii: }
- C { \@@_error:nn { old~column~type } #1 }
- L { \@@_error:nn { old~column~type } #1 }
- R { \@@_error:nn { old~column~type } #1 }
+ X { \@@_patch_preamble_ix:n }
\q_stop { }
}
{
@@ -8984,7 +9119,7 @@ version 2005/12/01 or later.
{
\tl_gput_right:Nn \g_@@_preamble_tl
{
- > { \@@_Cell: \tl_set:Nn \l_@@_cell_type_tl { #1 } }
+ > { \@@_Cell: \str_set:Nn \l_@@_hpos_cell_str { #1 } }
#1
< \@@_end_Cell:
}
@@ -9055,16 +9190,143 @@ version 2005/12/01 or later.
\bool_new:N \l_@@_bar_at_end_of_pream_bool
% \end{macrocode}
%
+% \bigskip
+% The specifier |p| (and also the specifiers |m| and |b|) have an optional
+% argument between square brackets for a list of \emph{key}-\emph{value} pairs.
+% Here are the corresponding keys. This set of keys will also be used by the |X|
+% columns.
+% \begin{macrocode}
+\keys_define:nn { WithArrows / p-column }
+ {
+ r .code:n = \str_set:Nn \l_@@_hpos_col_str { r } ,
+ r .value_forbidden:n = true ,
+ c .code:n = \str_set:Nn \l_@@_hpos_col_str { c } ,
+ c .value_forbidden:n = true ,
+ l .code:n = \str_set:Nn \l_@@_hpos_col_str { l } ,
+ l .value_forbidden:n = true ,
+ p .code:n = \str_set:Nn \l_@@_vpos_col_str { p } ,
+ p .value_forbidden:n = true ,
+ t .meta:n = p ,
+ m .code:n = \str_set:Nn \l_@@_vpos_col_str { m } ,
+ m .value_forbidden:n = true ,
+ b .code:n = \str_set:Nn \l_@@_vpos_col_str { b } ,
+ b .value_forbidden:n = true
+ }
+% \end{macrocode}
+%
+%
+% \medskip
+% For |p|, |b| and |m|. The argument |#1| is that value : |p|, |b| or |m|.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_iv:n #1
+ {
+ \str_set:Nn \l_@@_vpos_col_str { #1 }
+% \end{macrocode}
+% Now, you look for a potential character |[| after the letter of the specifier
+% (for the options).
+% \begin{macrocode}
+ \@@_patch_preamble_iv_i:n
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_iv_i:n #1
+ {
+ \str_if_eq:nnTF { #1 } { [ }
+ { \@@_patch_preamble_iv_ii:w [ }
+ { \@@_patch_preamble_iv_ii:w [ ] { #1 } }
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_iv_ii:w [ #1 ]
+ { \@@_patch_preamble_iv_iii:nn { #1 } }
+% \end{macrocode}
+%
% \medskip
-% For |p| and |b|
+% |#1| is the optional argument of the specifier (a list of
+% \emph{key}-\emph{value} pairs).
+%
+% |#2| is the mandatory argument of the specifier: the width of the column.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_patch_preamble_iv:nnn #1 #2 #3
+\cs_new_protected:Npn \@@_patch_preamble_iv_iii:nn #1 #2
{
+% \end{macrocode}
+% The possible values of |\l_@@_hpos_col_str| are |j| (for \emph{justified} which is
+% the initial value), |l|, |c| and |r| (when the user has used the corresponding
+% key in the optional argument of the specifier).
+% \begin{macrocode}
+ \str_set:Nn \l_@@_hpos_col_str { j }
+ \keys_set:nn { WithArrows / p-column } { #1 }
+ \@@_patch_preamble_iv_iv:n { #2 }
+ }
+% \end{macrocode}
+%
+% \medskip
+% The argument is the width of the column.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_iv_iv:n #1
+ {
+ \use:x
+ {
+ \@@_patch_preamble_iv_v:nnnn
+ { \str_if_eq:VnTF \l_@@_vpos_col_str { p } { t } { b } }
+ { \dim_eval:n { #1 } }
+ {
+% \end{macrocode}
+% The parameter |\l_@@_hpos_col_str| (as |\l_@@_vpos_col_str|) exists only
+% during the contruction of the preamble. During the composition of the array
+% itself, you will have, in each cell, the parameter |\l_@@_hpos_cell_str| which
+% will provide
+% \begin{macrocode}
+ \str_if_eq:VnTF \l_@@_hpos_col_str j
+ { \str_set:Nn \exp_not:N \l_@@_hpos_cell_str { c } }
+ { \str_set:Nn \exp_not:N \l_@@_hpos_cell_str \l_@@_hpos_col_str }
+ \str_case:Vn \l_@@_hpos_col_str
+ {
+ c { \exp_not:N \centering }
+ l { \exp_not:N \raggedright }
+ r { \exp_not:N \raggedleft }
+ }
+ }
+ { \str_if_eq:VnT \l_@@_vpos_col_str { m } \@@_center_cell_box: }
+ }
+% \end{macrocode}
+%
+% We increment the counter of columns, and then we test for the presence of a |<|.
+% \begin{macrocode}
+ \int_gincr:N \c@jCol
+ \@@_patch_preamble_x:n
+ }
+% \end{macrocode}
+%
+% \medskip
+% |#1| is the optional argument of |{minipage}|: |t| of |b|. Indeed, for the
+% columns of type |m|, we use the value |b| here because there is a special
+% post-action in order to center vertically the box (see |#4|).
+%
+% |#2| is the width of the |{minipage}|, that is to say also the width of the
+% column.
+%
+% |#3| is the coding for the horizontal position of the content of the cell
+% (|\centering|, |\raggedright|, |\raggedleft| or nothing).
+%
+% |#4| is an extra-code which contains |\l_@@_center_cell_box| (when the column
+% is a |m| column) or nothing (in the other cases).
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_iv_v:nnnn #1 #2 #3 #4
+ {
\tl_gput_right:Nn \g_@@_preamble_tl
{
> {
+% \end{macrocode}
+% The parameter |\l_@@_col_width_dim|, which is the width of the current column,
+% will be available in each cell of the column. It will be used by the
+% mono-column blocks.
+% \begin{macrocode}
+ \dim_set:Nn \l_@@_col_width_dim { #2 }
\@@_Cell:
- \begin { minipage } [ #1 ] { \dim_eval:n { #3 } }
+ \begin { minipage } [ #1 ] { #2 }
% \end{macrocode}
% The following lines have been taken from |array.sty|.
% \begin{macrocode}
@@ -9073,7 +9335,17 @@ version 2005/12/01 or later.
\vrule height \box_ht:N \@arstrutbox width \c_zero_dim
\everypar { }
}
- \g_@@_row_style_tl % added the 2021-07-17
+% \end{macrocode}
+% Now, the potential code for the horizontal position of the content of the cell
+% (|\centering|, |\raggedright|, |\raggedleft| or nothing).
+% \begin{macrocode}
+ #3
+% \end{macrocode}
+% The following code is to allow something like |\centering| in |\RowStyle|.
+% However, there is extra vertical space if |\color{...}| is used in
+% |\RowStyle| (we should try to add a key |color| to the command |\RowStyle|.
+% \begin{macrocode}
+ \g_@@_row_style_tl
\arraybackslash
}
c
@@ -9084,18 +9356,13 @@ version 2005/12/01 or later.
\@finalstrut \@arstrutbox
\end { minipage }
% \end{macrocode}
-% If the letter in the preamble is |m|, you require a post-treatment for the box
-% |\l_@@_cell_box|.
+% If the letter in the preamble is |m|, |#3| will be equal to
+% |\@@_center_cell_box:| (see just below).
% \begin{macrocode}
- \str_if_eq:nnT { #2 } m \@@_center_cell_box:
+ #4
\@@_end_Cell:
}
}
-% \end{macrocode}
-% We increment the counter of columns, and then we test for the presence of a |<|.
-% \begin{macrocode}
- \int_gincr:N \c@jCol
- \@@_patch_preamble_x:n
}
% \end{macrocode}
%
@@ -9104,16 +9371,16 @@ version 2005/12/01 or later.
% vertically the box. In fact, despite its name, the command does not always
% center the cell. Indeed, if there is only one row in the cell, it should not
% be centered vertically. It's not possible to know the number of rows of the
-% cell. However, you consider (as in \pkg{array}) that if the height of the cell
+% cell. However, we consider (as in \pkg{array}) that if the height of the cell
% is no more that the height of |\@arstrutbox|, there is only one row.
% \begin{macrocode}
\cs_new_protected:Npn \@@_center_cell_box:
{
% \end{macrocode}
-% By putting instructions in |\g_@@_post_treatment_cell_tl|, we require a
-% post-treatment of the box |\l_@@_cell_box|.
+% By putting instructions in |\g_@@_post_action_cell_tl|, we require a
+% post-action of the box |\l_@@_cell_box|.
% \begin{macrocode}
- \tl_gput_right:Nn \g_@@_post_treatment_cell_tl
+ \tl_gput_right:Nn \g_@@_post_action_cell_tl
{
\int_compare:nNnT
{ \box_ht:N \l_@@_cell_box }
@@ -9143,9 +9410,15 @@ version 2005/12/01 or later.
\tl_gput_right:Nn \g_@@_preamble_tl
{
> {
+% \end{macrocode}
+% The parameter |\l_@@_col_width_dim|, which is the width of the current column,
+% will be available in each cell of the column. It will be used by the
+% mono-column blocks.
+% \begin{macrocode}
+ \dim_set:Nn \l_@@_col_width_dim { #4 }
\hbox_set:Nw \l_@@_cell_box
\@@_Cell:
- \tl_set:Nn \l_@@_cell_type_tl { #3 }
+ \str_set:Nn \l_@@_hpos_cell_str { #3 }
}
c
< {
@@ -9290,6 +9563,105 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \bigskip
+% For the case of a letter |X|. This specifier may take in an optional argument
+% (between square brackets). That's why we test whether there is a |[| after the
+% letter |X|.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_ix:n #1
+ {
+ \str_if_eq:nnTF { #1 } { [ }
+ { \@@_patch_preamble_ix_i:w [ }
+ { \@@_patch_preamble_ix_i:w [ ] #1 }
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_ix_i:w [ #1 ]
+ { \@@_patch_preamble_ix_ii:n { #1 } }
+% \end{macrocode}
+% |#1| is the optional argument of the |X| specifier (a list of
+% \emph{key}-\emph{value} pairs).
+%
+% \medskip
+% The following set of keys is for the specifier |X| in the preamble of the
+% array. Such specifier may have as key all the keys of
+% |{ WithArrows / p-column }| but also a key as 1, 2, 3, etc. The following set
+% of keys will be used to retrieve that value (in the counter |\l_@@_weight_int|).
+% \begin{macrocode}
+\keys_define:nn { WithArrows / X-column }
+ { unknown .code:n = \int_set:Nn \l_@@_weight_int { \l_keys_key_str } }
+% \end{macrocode}
+%
+%
+% \medskip
+% In the following command, |#1| is the list of the options of the specifier |X|.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_ix_ii:n #1
+ {
+% \end{macrocode}
+% The possible values of |\l_@@_hpos_col_str| are |j| (for \emph{justified} which is
+% the initial value), |l|, |c| and |r| (when the user has used the corresponding
+% key in the optional argument of the specifier |X|).
+% \begin{macrocode}
+ \str_set:Nn \l_@@_hpos_col_str { j }
+% \end{macrocode}
+% The possible values of |\l_@@_vpos_col_str| are |p| (the initial value), |m| and |b|
+% (when the user has used the corresponding key in the optional argument of the
+% specifier |X|).
+% \begin{macrocode}
+ \tl_set:Nn \l_@@_vpos_col_str { p }
+% \end{macrocode}
+%
+% The integer |\l_@@_weight_int| will be the weight of the |X| column (the
+% initial value is $1$). The user may specify a different value (such as $2$,
+% $3$, etc.) by putting that value in the optional argument of the specifier.
+% The weights of the |X| columns are used in the computation of the actual width
+% of those columns.
+% \begin{macrocode}
+ \int_zero_new:N \l_@@_weight_int
+ \int_set:Nn \l_@@_weight_int { 1 }
+ \keys_set_known:nnN { WithArrows / p-column } { #1 } \l_tmpa_tl
+ \keys_set:nV { WithArrows / X-column } \l_tmpa_tl
+ \int_gadd:Nn \g_@@_total_X_weight_int \l_@@_weight_int
+% \end{macrocode}
+%
+% We test whether we know the width of the |X|-columns by reading the |aux| file.
+% (after the first compilation, the width of the |X|-columns is computed and
+% written on the |aux| file).
+% \begin{macrocode}
+ \bool_if:NTF \l_@@_X_columns_aux_bool
+ { \@@_patch_preamble_iv_iv:n { \l_@@_weight_int \l_@@_X_columns_dim } }
+ {
+ \tl_gput_right:Nn \g_@@_preamble_tl
+ {
+ > {
+ \@@_Cell:
+ \bool_set_true:N \l_@@_X_column_bool
+% \end{macrocode}
+% The following code will nullify the box of the cell.
+% \begin{macrocode}
+ \tl_gput_right:Nn \g_@@_post_action_cell_tl
+ { \hbox_set:Nn \l_@@_cell_box { } }
+% \end{macrocode}
+% We put a |{minipage}| to give to the user the ability to put a command such as
+% |\centering| in the |\RowStyle|.
+% \begin{macrocode}
+ \begin { minipage } { 5 cm } \arraybackslash
+ }
+ c
+ < {
+ \end { minipage }
+ \@@_end_Cell:
+ }
+ }
+ \int_gincr:N \c@jCol
+ \@@_patch_preamble_x:n
+ }
+ }
+% \end{macrocode}
+%
+% \bigskip
% \begin{macrocode}
\cs_new_protected:Npn \@@_patch_preamble_xi:n #1
{
@@ -9305,6 +9677,7 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \bigskip
% After a specifier of column, we have to test whether there is one or several
% |<{..}| because, after those potential |<{...}|, we have to insert
% |!{\skip_horizontal:N ...}| when the key |vlines| is used.
@@ -9312,7 +9685,7 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_patch_preamble_x:n #1
{
\str_if_eq:nnTF { #1 } { < }
- \@@_patch_preamble_ix:n
+ \@@_patch_preamble_xii:n
{
\tl_if_eq:NnTF \l_@@_vlines_clist { all }
{
@@ -9333,48 +9706,13 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_patch_preamble_ix:n #1
+\cs_new_protected:Npn \@@_patch_preamble_xii:n #1
{
\tl_gput_right:Nn \g_@@_preamble_tl { < { #1 } }
\@@_patch_preamble_x:n
}
% \end{macrocode}
%
-% \bigskip
-% For the case of a letter |X|
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_patch_preamble_xii:
- {
- \int_gincr:N \g_@@_nb_of_X_int
-% \end{macrocode}
-% We test whether you know the width of the |X|-columns by reading the value in
-% the |aux| file (of course, this is not possible at the first compilation).
-% \begin{macrocode}
- \bool_if:NTF \l_@@_X_columns_aux_bool
- { \exp_args:NNNV \@@_patch_preamble_iv:nnn t p \l_@@_X_columns_dim }
- {
- \tl_gput_right:Nn \g_@@_preamble_tl
- {
- > {
- \@@_Cell:
- \tl_set:Nn \l_@@_cell_type_tl { c }
-% \end{macrocode}
-% The following code will nullify the box of the cell.
-% \begin{macrocode}
- \tl_gput_right:Nn \g_@@_post_treatment_cell_tl
- { \hbox_set:Nn \l_@@_cell_box { } }
-% \end{macrocode}
-% The content of the cell is composed in |\l_tmpa_box| which will be discarded.
-% \begin{macrocode}
- }
- c
- < { \@@_end_Cell: }
- }
- \int_gincr:N \c@jCol
- \@@_patch_preamble_x:n
- }
- }
-% \end{macrocode}
%
% \bigskip
% \subsection*{The redefinition of \textbackslash multicolumn}
@@ -9481,9 +9819,6 @@ version 2005/12/01 or later.
\@@_w: { \@@_patch_m_preamble_v:nnnn { } #1 }
\@@_W: { \@@_patch_m_preamble_v:nnnn { \cs_set_eq:NN \hss \hfil } #1 }
\@@_true_c: { \@@_patch_m_preamble_vi: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 { }
}
{ \@@_fatal:nn { unknown~column~type } { #1 } }
@@ -9497,7 +9832,7 @@ version 2005/12/01 or later.
{
\tl_gput_right:Nn \g_@@_preamble_tl
{
- > { \@@_Cell: \tl_set:Nn \l_@@_cell_type_tl { #1 } }
+ > { \@@_Cell: \str_set:Nn \l_@@_hpos_cell_str { #1 } }
#1
< \@@_end_Cell:
}
@@ -9568,7 +9903,7 @@ version 2005/12/01 or later.
> {
\hbox_set:Nw \l_@@_cell_box
\@@_Cell:
- \tl_set:Nn \l_@@_cell_type_tl { #3 }
+ \str_set:Nn \l_@@_hpos_cell_str { #3 }
}
c
< {
@@ -10588,11 +10923,18 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% \subsection*{The environments \{NiceTabular\} and \{NiceTabular*\}}
+% \subsection*{\{NiceTabular\}, \{NiceTabularX\} and \{NiceTabular*\}}
%
% \begin{macrocode}
\NewDocumentEnvironment { NiceTabular } { O { } m ! O { } }
{
+% \end{macrocode}
+% The dimension |\l_@@_width_dim| will be used if at least one column of type
+% |X| is used.
+%
+% \begin{macrocode}
+ \dim_zero_new:N \l_@@_width_dim
+ \dim_set_eq:NN \l_@@_width_dim \linewidth
\str_gset:Nn \g_@@_name_env_str { NiceTabular }
\keys_set:nn { NiceMatrix / NiceTabular } { #1 , #3 }
\bool_set_true:N \l_@@_NiceTabular_bool
@@ -10601,6 +10943,20 @@ version 2005/12/01 or later.
{ \endNiceArray }
% \end{macrocode}
%
+% \bigskip
+% \begin{macrocode}
+\NewDocumentEnvironment { NiceTabularX } { m O { } m ! O { } }
+ {
+ \str_gset:Nn \g_@@_name_env_str { NiceTabularX }
+ \dim_zero_new:N \l_@@_width_dim
+ \dim_set:Nn \l_@@_width_dim { #1 }
+ \keys_set:nn { NiceMatrix / NiceTabular } { #2 , #4 }
+ \bool_set_true:N \l_@@_NiceTabular_bool
+ \NiceArray { #3 }
+ }
+ { \endNiceArray }
+% \end{macrocode}
+%
% \bigskip
% \begin{macrocode}
\NewDocumentEnvironment { NiceTabular* } { m O { } m ! O { } }
@@ -12414,6 +12770,10 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \bigskip
+% In the environments of |nicematrix|, the command |\multicolumn| is redefined.
+% We will patch the environment |{tabular}| to go back to the previous value of
+% |\multicolumn|.
% \begin{macrocode}
\cs_set_eq:NN \@@_old_multicolumn \multicolumn
% \end{macrocode}
@@ -12776,28 +13136,26 @@ version 2005/12/01 or later.
% We want to avoid the thin white lines that are shown in some \textsc{pdf}
% viewers (eg: with the engine MuPDF used by SumatraPDF). That's why we try to
% draw rectangles of the same color in the same instruction |\pgfusepath { fill }|
-% (and they will be in the same instruction |fill|---coded |f|--- in the
+% (and they will be in the same instruction |fill|---coded |f|---in the
% resulting \textsc{pdf}).
%
-% The commands |\@@_rowcolor|, |\@@_columncolor| and |\@@_rectanglecolor|
-% (which are linked to |\rowcolor|, |\columncolor| and |\rectanglecolor| before
-% the execution of the |code-before|) don't directly draw the corresponding
-% rectangles. Instead, they store their instructions color by color:
+% The commands |\@@_rowcolor|, |\@@_columncolor|, |\@@_rectanglecolor| and
+% |\@@_rowlistcolors| don't directly draw the corresponding rectangles. Instead,
+% they store their instructions color by color:
% \begin{itemize}
% \item A sequence |\g_@@_colors_seq| will be built containing all the colors
% used by at least one of these instructions. Each \emph{color} may be prefixed
-% by it color model (eg: |[gray]{0.5}|).
+% by its color model (eg: |[gray]{0.5}|).
% \item For the color whose index in |\g_@@_colors_seq| is equal to~$i$, a list of
% instructions which use that color will be constructed in the token list
% |\g_@@_color_|$i$|_tl|. In that token list, the instructions will be written
-% using |\@@_rowcolor:n|, |\@@_columncolor:n| and |\@@_rectanglecolor:nn|
-% (corresponding of |\@@_rowcolor|, |\@@_columncolor| and |\@@_rectanglecolor|).
+% using |\@@_cartesian_color:nn| and |\@@_rectanglecolor:nn|.
% \end{itemize}
%
%
-% bigskip
+% \bigskip
% |#1| is the color and |#2| is an instruction using that color. Despite its
-% name, the command |\@@_add_to_color_seq| doesn't only add a color to
+% name, the command |\@@_add_to_colors_seq:nn| doesn't only add a color to
% |\g_@@_colors_seq|: it also updates the corresponding token list
% |\g_@@_color_|$i$|_tl|. We add in a global way because the final user may use
% the instructions such as |\cellcolor| in a loop of \pkg{pgffor} in the
@@ -12832,6 +13190,7 @@ version 2005/12/01 or later.
%
% \begin{macrocode}
\cs_generate_variant:Nn \@@_add_to_colors_seq:nn { x n }
+\cs_generate_variant:Nn \@@_add_to_colors_seq:nn { x x }
% \end{macrocode}
%
% \bigskip
@@ -12862,6 +13221,14 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_cartesian_color:nn #1 #2
+ {
+ \tl_set:Nn \l_@@_rows_tl { #1 }
+ \tl_set:Nn \l_@@_cols_tl { #2 }
+ \@@_cartesian_path:
+ }
+% \end{macrocode}
%
% \bigskip
% Here is an example : |\@@_rowcolor {red!15} {1,3,5-7,10-}|
@@ -12872,25 +13239,11 @@ version 2005/12/01 or later.
{
\@@_add_to_colors_seq:xn
{ \tl_if_blank:nF { #1 } { [ #1 ] } { #2 } }
- { \@@_rowcolor:n { #3 } }
+ { \@@_cartesian_color:nn { #3 } { - } }
}
}
% \end{macrocode}
%
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_rowcolor:n #1
- {
- \tl_set:Nn \l_@@_rows_tl { #1 }
- \tl_set:Nn \l_@@_cols_tl { - }
-% \end{macrocode}
-% The command |\@@_cartesian_path:| takes in two implicit arguments:
-% |\l_@@_cols_tl| and |\l_@@_rows_tl|.
-% \begin{macrocode}
- \@@_cartesian_path:
- }
-% \end{macrocode}
-%
-%
% \bigskip
% Here an example : |\@@_columncolor:nn {red!15} {1,3,5-7,10-}|
% \begin{macrocode}
@@ -12900,23 +13253,10 @@ version 2005/12/01 or later.
{
\@@_add_to_colors_seq:xn
{ \tl_if_blank:nF { #1 } { [ #1 ] } { #2 } }
- { \@@_columncolor:n { #3 } }
+ { \@@_cartesian_color:nn { - } { #3 } }
}
}
% \end{macrocode}
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_columncolor:n #1
- {
- \tl_set:Nn \l_@@_rows_tl { - }
- \tl_set:Nn \l_@@_cols_tl { #1 }
-% \end{macrocode}
-% The command |\@@_cartesian_path:| takes in two implicit arguments:
-% |\l_@@_cols_tl| and |\l_@@_rows_tl|.
-% \begin{macrocode}
- \@@_cartesian_path:
- }
-% \end{macrocode}
-%
%
% \bigskip
% Here is an example : |\@@_rectanglecolor{red!15}{2-3}{5-6}|
@@ -13038,24 +13378,26 @@ version 2005/12/01 or later.
%
% |#1| (optional) is the color space ;
% |#2| is a list of intervals of rows ;
-% |#3| is the first color ;
-% |#4| is the second color ;
-% |#5| is for the optional list of pairs key-value.
+% |#3| is the list of colors ;
+% |#4| is for the optional list of pairs key-value.
% \begin{macrocode}
-\NewDocumentCommand \@@_rowcolors { O { } m m m O { } }
+\NewDocumentCommand \@@_rowlistcolors { O { } m m O { } }
{
% \end{macrocode}
-% The group is for the options.
+% The group is for the options. |\l_@@_colors_seq| will be the list of colors.
% \begin{macrocode}
\group_begin:
+ \seq_clear_new:N \l_@@_colors_seq
+ \seq_set_split:Nnn \l_@@_colors_seq { , } { #3 }
\tl_clear_new:N \l_@@_cols_tl
\tl_set:Nn \l_@@_cols_tl { - }
- \keys_set:nn { NiceMatrix / rowcolors } { #5 }
+ \keys_set:nn { NiceMatrix / rowcolors } { #4 }
% \end{macrocode}
-% The boolean |\l_tmpa_bool| will indicate whereas we are in a row of the first
-% color or of the second color.
+% The counter |\l_@@_color_int| will be the rank of the current color in the list of
+% colors (modulo the length of the list).
% \begin{macrocode}
- \bool_set_true:N \l_tmpa_bool
+ \int_zero_new:N \l_@@_color_int
+ \int_set:Nn \l_@@_color_int 1
\bool_if:NT \l_@@_respect_blocks_bool
{
% \end{macrocode}
@@ -13069,6 +13411,9 @@ version 2005/12/01 or later.
}
\pgfpicture
\pgf@relevantforpicturesizefalse
+% \end{macrocode}
+% |#2| is the list of intervals of rows.
+% \begin{macrocode}
\clist_map_inline:nn { #2 }
{
\tl_set:Nn \l_tmpa_tl { ##1 }
@@ -13076,12 +13421,14 @@ version 2005/12/01 or later.
{ \@@_cut_on_hyphen:w ##1 \q_stop }
{ \tl_set:Nx \l_tmpb_tl { \int_use:N \c@iRow } }
% \end{macrocode}
-% The counter |\l_tmpa_int| will be the index of the loop.
+% Now, |l_tmpa_tl| and |l_tmpb_tl| are the first row and the last row of the
+% interval of rows that we have to treat. The counter |\l_tmpa_int| will be the
+% index of the loop over the rows.
% \begin{macrocode}
\int_set:Nn \l_tmpa_int \l_tmpa_tl
\bool_if:NTF \l_@@_rowcolors_restart_bool
- { \bool_set_true:N \l_tmpa_bool }
- { \bool_set:Nn \l_tmpa_bool { \int_if_odd_p:n { \l_tmpa_tl } } }
+ { \int_set:Nn \l_@@_color_int 1 }
+ { \int_set:Nn \l_@@_color_int \l_tmpa_tl }
\int_zero_new:N \l_tmpc_int
\int_set:Nn \l_tmpc_int \l_tmpb_tl
\int_do_until:nNnn \l_tmpa_int > \l_tmpc_int
@@ -13105,39 +13452,27 @@ version 2005/12/01 or later.
}
\tl_set:Nx \l_@@_rows_tl
{ \int_use:N \l_tmpa_int - \int_use:N \l_tmpb_int }
- \bool_if:NTF \l_tmpa_bool
- {
- \tl_if_blank:nF { #3 }
- {
- \tl_if_empty:nTF { #1 }
- \color
- { \color [ #1 ] }
- { #3 }
% \end{macrocode}
-% The command |\@@_cartesian_path:| takes in two implicit arguments:
-% |\l_@@_cols_tl| and |\l_@@_rows_tl|.
+% |\l_tmpc_tl| will be the color that we will use.
% \begin{macrocode}
- \@@_cartesian_path:
- \pgfusepath { fill }
- }
- \bool_set_false:N \l_tmpa_bool
- }
+ \tl_clear_new:N \l_@@_color_tl
+ \tl_set:Nx \l_@@_color_tl
{
- \tl_if_blank:nF { #4 }
- {
- \tl_if_empty:nTF { #1 }
- \color
- { \color [ #1 ] }
- { #4 }
-% \end{macrocode}
-% The command |\@@_cartesian_path:| takes in two implicit arguments:
-% |\l_@@_cols_tl| and |\l_@@_row_tl|.
-% \begin{macrocode}
- \@@_cartesian_path:
- \pgfusepath { fill }
+ \@@_color_index:n
+ {
+ \int_mod:nn
+ { \l_@@_color_int - 1 }
+ { \seq_count:N \l_@@_colors_seq }
+ + 1
}
- \bool_set_true:N \l_tmpa_bool
}
+ \tl_if_empty:NF \l_@@_color_tl
+ {
+ \@@_add_to_colors_seq:xx
+ { \tl_if_blank:nF { #1 } { [ #1 ] } { \l_@@_color_tl } }
+ { \@@_cartesian_color:nn { \l_@@_rows_tl } { \l_@@_cols_tl } }
+ }
+ \int_incr:N \l_@@_color_int
\int_set:Nn \l_tmpa_int { \l_tmpb_int + 1 }
}
}
@@ -13146,6 +13481,27 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \medskip
+% The command |\@@_color_index:n| peeks in |\l_@@_colors_seq| the color at the
+% index |#1|. However, if that color is the symbol |=|, the previous one is
+% poken. This macro is recursive.
+% \begin{macrocode}
+\cs_new:Npn \@@_color_index:n #1
+ {
+ \str_if_eq:eeTF { \seq_item:Nn \l_@@_colors_seq { #1 } } { = }
+ { \@@_color_index:n { #1 - 1 } }
+ { \seq_item:Nn \l_@@_colors_seq { #1 } }
+ }
+% \end{macrocode}
+%
+% \bigskip
+% The command |\rowcolors| (available in the |\CodeBefore|) is a specialisation
+% of the most general command |\rowlistcolors|.
+% \begin{macrocode}
+\NewDocumentCommand \@@_rowcolors { O { } m m m O { } }
+ { \@@_rowlistcolors [ #1 ] { #2 } { { #3 } , { #4 } } [ #5 ] }
+% \end{macrocode}
+%
% \bigskip
% \begin{macrocode}
\cs_new_protected:Npn \@@_rowcolors_i:nnnn #1 #2 #3 #4
@@ -13757,9 +14113,12 @@ version 2005/12/01 or later.
\dim_set_eq:NN \l_tmpb_dim \pgf@y
\@@_qpoint:n { col - \@@_succ:n { #4 } }
\dim_set_eq:NN \l_tmpc_dim \pgf@x
- \bool_lazy_and:nnT
- { \int_compare_p:nNn { #2 } > 1 }
- { ! \tl_if_blank_p:V \CT@drsc@ }
+ \bool_lazy_all:nT
+ {
+ { \int_compare_p:nNn { #2 } > 1 }
+ { \cs_if_exist_p:N \CT@drsc@ } % condition added in version 6.0
+ { ! \tl_if_blank_p:V \CT@drsc@ }
+ }
{
\group_begin:
\CT@drsc@
@@ -14385,7 +14744,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \medskip
-% At the end of the environment |{NiceMatrixBlock}|, we write in the main |.aux|
+% At the end of the environment |{NiceMatrixBlock}|, we write in the main |aux|
% file instructions for the column width of all the environments of the block
% (that's why we have stored the number of the first environment of the block in
% the counter |\l_@@_first_env_block_int|).
@@ -14774,21 +15133,21 @@ version 2005/12/01 or later.
% \begin{macrocode}
\keys_define:nn { NiceMatrix / Block / FirstPass }
{
- l .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl l ,
+ l .code:n = \str_set:Nn \l_@@_hpos_block_str l ,
l .value_forbidden:n = true ,
- r .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl r ,
+ r .code:n = \str_set:Nn \l_@@_hpos_block_str r ,
r .value_forbidden:n = true ,
- c .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl c ,
+ c .code:n = \str_set:Nn \l_@@_hpos_block_str c ,
c .value_forbidden:n = true ,
- L .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl l ,
+ L .code:n = \str_set:Nn \l_@@_hpos_block_str l ,
L .value_forbidden:n = true ,
- R .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl r ,
+ R .code:n = \str_set:Nn \l_@@_hpos_block_str r ,
R .value_forbidden:n = true ,
- C .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl c ,
+ C .code:n = \str_set:Nn \l_@@_hpos_block_str c ,
C .value_forbidden:n = true ,
- t .code:n = \tl_set:Nn \l_@@_vpos_of_block_tl t ,
+ t .code:n = \str_set:Nn \l_@@_vpos_of_block_tl t ,
t .value_forbidden:n = true ,
- b .code:n = \tl_set:Nn \l_@@_vpos_of_block_tl b ,
+ b .code:n = \str_set:Nn \l_@@_vpos_of_block_tl b ,
b .value_forbidden:n = true ,
color .tl_set:N = \l_@@_color_tl ,
color .value_required:n = true ,
@@ -14799,9 +15158,7 @@ version 2005/12/01 or later.
% The following command |\@@_Block:| will be linked to |\Block| in the
% environments of \pkg{nicematrix}. We define it with
% |\NewExpandableDocumentCommand| because it has an optional argument between
-% |<| and |>| (for TeX instructions put before the math mode of the label and
-% before the beginning of the small array of the block). It's mandatory to use
-% an expandable command.
+% |<| and |>|. It's mandatory to use an expandable command.
%
% \begin{macrocode}
\NewExpandableDocumentCommand \@@_Block: { O { } m D < > { } m }
@@ -14863,13 +15220,13 @@ version 2005/12/01 or later.
% \begin{macrocode}
\int_compare:nNnTF \l_tmpb_int = 1
{
- \tl_if_empty:NTF \l_@@_cell_type_tl
- { \tl_set:Nn \l_@@_hpos_of_block_tl c }
- { \tl_set_eq:NN \l_@@_hpos_of_block_tl \l_@@_cell_type_tl }
+ \str_if_empty:NTF \l_@@_hpos_cell_str
+ { \str_set:Nn \l_@@_hpos_block_str c }
+ { \str_set_eq:NN \l_@@_hpos_block_str \l_@@_hpos_cell_str }
}
- { \tl_set:Nn \l_@@_hpos_of_block_tl c }
+ { \str_set:Nn \l_@@_hpos_block_str c }
% \end{macrocode}
-% The value of |\l_@@_hpos_of_block_tl| may be modified by the keys of the
+% The value of |\l_@@_hpos_block_str| may be modified by the keys of the
% command |\Block| that we will analyze now.
%
% \medskip
@@ -14905,6 +15262,16 @@ version 2005/12/01 or later.
\int_compare_p:nNn { \l_tmpb_int } = 1
)
&& ! \tl_if_empty_p:n { #5 }
+% \end{macrocode}
+% For the blocks mono-column, we will compose right now in a box in order to
+% compute its width and take that width into account for the width of the
+% column. However, if the column is a |X| column, we should not do that since
+% the width is determined by another way. This should be the same for the |p|,
+% |m| and |b| columns and we should modify that point. However, for the |X|
+% column, it's imperative. Otherwise, the process for the determination of the
+% widths of the columns will be wrong.
+% \begin{macrocode}
+ && ! \l_@@_X_column_bool
}
{ \exp_args:Nxx \@@_Block_iv:nnnnn }
{ \exp_args:Nxx \@@_Block_v:nnnnn }
@@ -14952,8 +15319,8 @@ version 2005/12/01 or later.
{ \int_compare:nNnT { #2 } = 1 \set@color }
{ \color { \l_@@_color_tl } }
% \end{macrocode}
-% If the block is mono-row, we use |\g_@@_row_style_tl| even it has yet been used
-% in the beginning of the cell where the command |\Block| has been issued
+% If the block is mono-row, we use |\g_@@_row_style_tl| even if it has yet been
+% used in the beginning of the cell where the command |\Block| has been issued
% because we want to be able to take into account a potential instruction of
% color of the font in |\g_@@_row_style_tl|.
% \begin{macrocode}
@@ -14970,23 +15337,43 @@ version 2005/12/01 or later.
% the tabular is the same as the external alignment of the tabular (that is to
% say the position of the block in its zone of merged cells).
% \begin{macrocode}
- \bool_if:NT \g_@@_rotate_bool { \tl_set:Nn \l_@@_hpos_of_block_tl c }
+ \bool_if:NT \g_@@_rotate_bool { \str_set:Nn \l_@@_hpos_block_str c }
\bool_if:NTF \l_@@_NiceTabular_bool
{
- \use:x
- {
- \exp_not:N \begin { tabular } [ \l_@@_vpos_of_block_tl ]
- { @ { } \l_@@_hpos_of_block_tl @ { } }
- }
- #5
- \end { tabular }
+ \bool_lazy_and:nnTF
+ { \int_compare_p:nNn { #2 } = 1 }
+ { \dim_compare_p:n { \l_@@_col_width_dim >= \c_zero_dim } }
+% \end{macrocode}
+% When the block is mono-column in a column with a fixed width (eg |p{3cm}|).
+% \begin{macrocode}
+ {
+ \begin { minipage } [ l_@@_vpos_of_block_tl ]
+ { \l_@@_col_width_dim }
+ \str_case:Vn \l_@@_hpos_block_str
+ {
+ c \centering
+ r \raggedleft
+ l \raggedright
+ }
+ #5
+ \end { minipage }
+ }
+ {
+ \use:x
+ {
+ \exp_not:N \begin { tabular } [ \l_@@_vpos_of_block_tl ]
+ { @ { } \l_@@_hpos_block_str @ { } }
+ }
+ #5
+ \end { tabular }
+ }
}
{
\c_math_toggle_token
\use:x
{
\exp_not:N \begin { array } [ \l_@@_vpos_of_block_tl ]
- { @ { } \l_@@_hpos_of_block_tl @ { } }
+ { @ { } \l_@@_hpos_block_str @ { } }
}
#5
\end { array }
@@ -15048,11 +15435,11 @@ version 2005/12/01 or later.
% \end{macrocode}
% In the list of options |#3|, maybe there is a key for the horizontal alignment
% (|l|, |r| or |c|). In that case, that key has been read and stored in
-% |\l_@@_hpos_of_block_tl|. However, maybe there were no key of the horizontal
+% |\l_@@_hpos_block_str|. However, maybe there were no key of the horizontal
% alignement and that's why we put a key corresponding to the value of
-% |\l_@@_hpos_of_block_tl|, which is fixed by the type of current column.
+% |\l_@@_hpos_block_str|, which is fixed by the type of current column.
% \begin{macrocode}
- { \exp_not:n { #3 } , \l_@@_hpos_of_block_tl }
+ { \exp_not:n { #3 } , \l_@@_hpos_block_str }
{
\box_use_drop:c
{ g_@@_ block _ box _ \int_use:N \g_@@_block_box_int _ box }
@@ -15091,11 +15478,11 @@ version 2005/12/01 or later.
% say the position of the block in its zone of merged cells).
% \begin{macrocode}
\bool_if:NT \g_@@_rotate_bool
- { \tl_set:Nn \l_@@_hpos_of_block_tl c }
+ { \str_set:Nn \l_@@_hpos_block_str c }
\use:x
{
\exp_not:N \begin { tabular } [ \l_@@_vpos_of_block_tl ]
- { @ { } \l_@@_hpos_of_block_tl @ { } }
+ { @ { } \l_@@_hpos_block_str @ { } }
}
#5
\end { tabular }
@@ -15107,12 +15494,12 @@ version 2005/12/01 or later.
\dim_set_eq:NN \extrarowheight \c_zero_dim
#4
\bool_if:NT \g_@@_rotate_bool
- { \tl_set:Nn \l_@@_hpos_of_block_tl c }
+ { \str_set:Nn \l_@@_hpos_block_str c }
\c_math_toggle_token
\use:x
{
\exp_not:N \begin { array } [ \l_@@_vpos_of_block_tl ]
- { @ { } \l_@@_hpos_of_block_tl @ { } }
+ { @ { } \l_@@_hpos_block_str @ { } }
}
#5
\end { array }
@@ -15153,24 +15540,24 @@ version 2005/12/01 or later.
hvlines .default:n = true ,
line-width .dim_set:N = \l_@@_line_width_dim ,
line-width .value_required:n = true ,
- l .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl l ,
+ l .code:n = \str_set:Nn \l_@@_hpos_block_str l ,
l .value_forbidden:n = true ,
- r .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl r ,
+ r .code:n = \str_set:Nn \l_@@_hpos_block_str r ,
r .value_forbidden:n = true ,
- c .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl c ,
+ c .code:n = \str_set:Nn \l_@@_hpos_block_str c ,
c .value_forbidden:n = true ,
- L .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl l
+ L .code:n = \str_set:Nn \l_@@_hpos_block_str l
\bool_set_true:N \l_@@_hpos_of_block_cap_bool ,
L .value_forbidden:n = true ,
- R .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl r
+ R .code:n = \str_set:Nn \l_@@_hpos_block_str r
\bool_set_true:N \l_@@_hpos_of_block_cap_bool ,
R .value_forbidden:n = true ,
- C .code:n = \tl_set:Nn \l_@@_hpos_of_block_tl c
+ C .code:n = \str_set:Nn \l_@@_hpos_block_str c
\bool_set_true:N \l_@@_hpos_of_block_cap_bool ,
C .value_forbidden:n = true ,
- t .code:n = \tl_set:Nn \l_@@_vpos_of_block_tl t ,
+ t .code:n = \str_set:Nn \l_@@_vpos_of_block_tl t ,
t .value_forbidden:n = true ,
- b .code:n = \tl_set:Nn \l_@@_vpos_of_block_tl b ,
+ b .code:n = \str_set:Nn \l_@@_vpos_of_block_tl b ,
b .value_forbidden:n = true ,
unknown .code:n = \@@_error:n { Unknown~key~for~Block }
}
@@ -15546,7 +15933,7 @@ version 2005/12/01 or later.
\bool_if:NF \l_@@_hpos_of_block_cap_bool { - short }
}
{
- \str_case:Vn \l_@@_hpos_of_block_tl
+ \str_case:Vn \l_@@_hpos_block_str
{
c { center }
l { west }
@@ -15561,7 +15948,7 @@ version 2005/12/01 or later.
\pgfnode
{ rectangle }
{
- \str_case:Vn \l_@@_hpos_of_block_tl
+ \str_case:Vn \l_@@_hpos_block_str
{
c { base }
l { base~west }
@@ -15582,11 +15969,11 @@ version 2005/12/01 or later.
% If we are in the first column, we must put the block as if it was with the key~|r|.
% \begin{macrocode}
\int_compare:nNnT { #2 } = 0
- { \tl_set:Nn \l_@@_hpos_of_block_tl r }
+ { \str_set:Nn \l_@@_hpos_block_str r }
\bool_if:nT \g_@@_last_col_found_bool
{
\int_compare:nNnT { #2 } = \g_@@_col_total_int
- { \tl_set:Nn \l_@@_hpos_of_block_tl l }
+ { \str_set:Nn \l_@@_hpos_block_str l }
}
\pgftransformshift
{
@@ -15596,7 +15983,7 @@ version 2005/12/01 or later.
\bool_if:NF \l_@@_hpos_of_block_cap_bool { - short }
}
{
- \str_case:Vn \l_@@_hpos_of_block_tl
+ \str_case:Vn \l_@@_hpos_block_str
{
c { center }
l { west }
@@ -15608,7 +15995,7 @@ version 2005/12/01 or later.
\pgfnode
{ rectangle }
{
- \str_case:Vn \l_@@_hpos_of_block_tl
+ \str_case:Vn \l_@@_hpos_block_str
{
c { center }
l { west }
@@ -15997,6 +16384,7 @@ version 2005/12/01 or later.
\group_end:
}
% \end{macrocode}
+%
%
% \bigskip
% \subsection*{The redefinition of the command \textbackslash dotfill }
@@ -16030,7 +16418,8 @@ version 2005/12/01 or later.
% \subsection*{The command \textbackslash diagbox}
%
% The command |\diagbox| will be linked to |\diagbox:nn| in the environments of
-% \pkg{nicematrix}.
+% \pkg{nicematrix}. However, there are also redefinitions of |\diagbox| in other
+% circonstancies.
%
% \begin{macrocode}
\cs_new_protected:Npn \@@_diagbox:nn #1 #2
@@ -16886,7 +17275,6 @@ version 2005/12/01 or later.
}
{
The~available~keys~are~(in~alphabetic~order):~
- define-L-C-R,~
footnote,~
footnotehyper,~
renew-dots,~and
@@ -16906,20 +17294,8 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn { define-L-C-R }
- {
- You~have~used~the~key~'define-L-C-R'.~Please~note~that~this~key~
- will~probably~be~deleted~in~a~future~version~of~'nicematrix'.\\
- However,~you~can~go~on.
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
\keys_define:nn { NiceMatrix / Package }
{
- define-L-C-R .code:n =
- \@@_error:n { define-L-C-R }
- \bool_set_true:N \c_@@_define_L_C_R_bool ,
renew-dots .bool_set:N = \l_@@_renew_dots_bool ,
renew-dots .value_forbidden:n = true ,
renew-matrix .code:n = \@@_renew_matrix: ,
@@ -17236,15 +17612,6 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-% \begin{macrocode}
-\@@_msg_new:nn { old~column~type }
- {
- The~column~type~'#1'~is~no~longer~defined~in~'nicematrix'.~
- Since~version~5.0,~you~have~to~use~'l',~'c'~and~'r'~instead~of~'L',~
- 'C'~and~'R'.~You~can~also~use~the~key~'define-L-C-R'.\\
- This~error~is~fatal.
- }
-% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { bad~value~for~baseline }
@@ -17288,6 +17655,14 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
+\@@_msg_new:nn { width~without~X~columns }
+ {
+ You~have~used~the~key~'width'~but~you~have~put~no~'X'~column. \\
+ If~you~go~on,~that~key~will~be~ignored.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_msg_new:nn { empty~environment }
{ Your~\@@_full_name_env:\ is~empty.~This~error~is~fatal. }
% \end{macrocode}
@@ -18301,7 +18676,7 @@ version 2005/12/01 or later.
% \subsection*{Changes between versions 5.16 and 5.17}
%
% The key |define-L-C-R| (only available at load-time) now raises a (non fatal)
-% error (that key will probably be deleted in a future version of \pkg{nicematrix}).
+% error.
%
% Keys |L|, |C| and |R| for the command |\Block|.
%
@@ -18318,6 +18693,18 @@ version 2005/12/01 or later.
%
% New key |tikz| for the command |\Block|.
%
+%
+% \subsection*{Changes between versions 5.19 and 6.0}
+%
+% Columns |X| and environment |{NiceTabularX}|.
+%
+% Command |\rowlistcolors| available in the |\CodeBefore|.
+%
+% In columns with fixed width, the blocks are composed as paragraphs (wrapping
+% of the lines).
+%
+% The key |define-L-C-R| has been deleted.
+%
% \PrintIndex
%
% \tableofcontents
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index db334606da..12158c8954 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/README b/macros/latex/contrib/schule/README
index f62a962efd..7b6b27ceb5 100644
--- a/macros/latex/contrib/schule/README
+++ b/macros/latex/contrib/schule/README
@@ -12,8 +12,8 @@ sequence diagrams, object diagrams and class diagrams) as well as into
classes for written exams (tests, quizzes, teaching observations,
information sheets, worksheets, and answer keys).
------------------------------------------------------------------------
-Version: 0.8.2
-Last change: 2020/10/16
+Version: 0.8.3
+Last change: 2021/08/09
The package is still a work in progress. Open development steps are
shown in the documentation.
@@ -22,11 +22,12 @@ shown in the documentation.
LICENCE
========================================================================
Copyright (C)
-2010, 2011, 2012, 2013, 2014, 2018, 2020
+2010, 2011, 2012, 2013, 2014, 2018, 2020, 2021
Johannes Pieper, André Hilbig, Johannes Kuhaupt, André Hilbig,
Daniel Spittank, Ludger Humbert, Adrian Salamon
(schulepaket@johpie.de)
+(https://gitlab.com/gi-fg-ibnw/schule)
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -86,5 +87,5 @@ The schule package consists of the example files:
minimal-kl-teilpunkte.tex, minimal-kl-teilpunkte.pdf
--------------------------------------------------------------------------
If you have any ideas, questions, suggestions or bugs to report, please
-feel free to contact me.
+feel free to contact us.
--------------------------------------------------------------------------
diff --git a/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-4.xmp b/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-4.xmp
deleted file mode 100644
index 6a39d22c3e..0000000000
--- a/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-4.xmp
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xpacket begin='' id=''?>
-<x:xmpmeta xmlns:x='adobe:ns:meta/'>
- <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
- <rdf:Description rdf:about=''
- xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'>
- <xapRights:Marked>True</xapRights:Marked>
- </rdf:Description>
- <rdf:Description rdf:about=''
- xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'
- >
- <xapRights:UsageTerms>
- <rdf:Alt>
- <rdf:li xml:lang='x-default' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by/4.0/&#34;&gt;Creative Commons Attribution 4.0 International License&lt;/a&gt;.</rdf:li>
- <rdf:li xml:lang='en' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by/4.0/&#34;&gt;Creative Commons Attribution 4.0 International License&lt;/a&gt;.</rdf:li>
- </rdf:Alt>
- </xapRights:UsageTerms>
- </rdf:Description>
- <rdf:Description rdf:about=''
- xmlns:cc='http://creativecommons.org/ns#'>
- <cc:license rdf:resource='http://creativecommons.org/licenses/by/4.0/'/>
- </rdf:Description>
-
- </rdf:RDF>
-</x:xmpmeta>
-<?xpacket end='r'?> \ No newline at end of file
diff --git a/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-nc-sa-4.xmp b/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-nc-sa-4.xmp
deleted file mode 100644
index 6d6924cc5f..0000000000
--- a/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-nc-sa-4.xmp
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xpacket begin='' id=''?>
-<x:xmpmeta xmlns:x='adobe:ns:meta/'>
- <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
- <rdf:Description rdf:about=''
- xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'>
- <xapRights:Marked>True</xapRights:Marked>
- </rdf:Description>
- <rdf:Description rdf:about=''
- xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'
- >
- <xapRights:UsageTerms>
- <rdf:Alt>
- <rdf:li xml:lang='x-default' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-nc-sa/4.0/&#34;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License&lt;/a&gt;.</rdf:li>
- <rdf:li xml:lang='en' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-nc-sa/4.0/&#34;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License&lt;/a&gt;.</rdf:li>
- </rdf:Alt>
- </xapRights:UsageTerms>
- </rdf:Description>
- <rdf:Description rdf:about=''
- xmlns:cc='http://creativecommons.org/ns#'>
- <cc:license rdf:resource='http://creativecommons.org/licenses/by-nc-sa/4.0/'/>
- </rdf:Description>
-
- </rdf:RDF>
-</x:xmpmeta>
-<?xpacket end='r'?> \ No newline at end of file
diff --git a/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-nc-sa-eu-4.xmp b/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-nc-sa-eu-4.xmp
deleted file mode 100644
index 063216c240..0000000000
--- a/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-nc-sa-eu-4.xmp
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xpacket begin='' id=''?>
-<x:xmpmeta xmlns:x='adobe:ns:meta/'>
- <rdf:RDF xmlns:rdf='https://www.w3.org/1999/02/22-rdf-syntax-ns#'>
- <rdf:Description rdf:about=''
- xmlns:xapRights='https://ns.adobe.com/xap/1.0/rights/'>
- <xapRights:Marked>True</xapRights:Marked>
- </rdf:Description>
- <rdf:Description rdf:about=''
- xmlns:xapRights='https://ns.adobe.com/xap/1.0/rights/'
- >
- <xapRights:UsageTerms>
- <rdf:Alt>
- <rdf:li xml:lang='x-default' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;https://creativecommons.org/licenses/by-nc-sa/4.0/&#34;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License&lt;/a&gt;.</rdf:li>
- <rdf:li xml:lang='en' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;https://creativecommons.org/licenses/by-nc-sa/4.0/&#34;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License&lt;/a&gt;.</rdf:li>
- </rdf:Alt>
- </xapRights:UsageTerms>
- </rdf:Description>
- <rdf:Description rdf:about=''
- xmlns:cc='https://creativecommons.org/ns#'>
- <cc:license rdf:resource='https://creativecommons.org/licenses/by-nc-sa/4.0/'/>
- </rdf:Description>
-
- </rdf:RDF>
-</x:xmpmeta>
-<?xpacket end='r'?>
diff --git a/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-sa-4.xmp b/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-sa-4.xmp
deleted file mode 100644
index 6f5724a466..0000000000
--- a/macros/latex/contrib/schule/data/Lizenzen/lizenz-cc-by-sa-4.xmp
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xpacket begin='' id=''?>
-<x:xmpmeta xmlns:x='adobe:ns:meta/'>
- <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
- <rdf:Description rdf:about=''
- xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'>
- <xapRights:Marked>True</xapRights:Marked>
- </rdf:Description>
- <rdf:Description rdf:about=''
- xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'
- >
- <xapRights:UsageTerms>
- <rdf:Alt>
- <rdf:li xml:lang='x-default' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-sa/4.0/&#34;&gt;Creative Commons Attribution-ShareAlike 4.0 International License&lt;/a&gt;.</rdf:li>
- <rdf:li xml:lang='en' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-sa/4.0/&#34;&gt;Creative Commons Attribution-ShareAlike 4.0 International License&lt;/a&gt;.</rdf:li>
- </rdf:Alt>
- </xapRights:UsageTerms>
- </rdf:Description>
- <rdf:Description rdf:about=''
- xmlns:cc='http://creativecommons.org/ns#'>
- <cc:license rdf:resource='http://creativecommons.org/licenses/by-sa/4.0/'/>
- </rdf:Description>
-
- </rdf:RDF>
-</x:xmpmeta>
-<?xpacket end='r'?> \ No newline at end of file
diff --git a/macros/latex/contrib/schule/data/xsim-style/xsim.style.schule-tcolorbox.code.tex b/macros/latex/contrib/schule/data/xsim-style/xsim.style.schule-tcolorbox.code.tex
index 899754470c..0b10de64f7 100644
--- a/macros/latex/contrib/schule/data/xsim-style/xsim.style.schule-tcolorbox.code.tex
+++ b/macros/latex/contrib/schule/data/xsim-style/xsim.style.schule-tcolorbox.code.tex
@@ -7,7 +7,8 @@
\lstset{basicstyle=\ttfamily, numbersep=0.5em,numbers=left,numberstyle=\color{black!55}} % Quellcode passend formatieren
\tcolorbox[
colback = white,
- title =
+ halign title=flush left,
+ title =
\sffamily
\textbf{\ifthenelse{\equal{\ExerciseType}{zusatzaufgabe}}{\llap{\GetExerciseProperty{symbol}$\bigstar$}}{\llap{\GetExerciseProperty{symbol}}}
\GetExerciseName~\GetExerciseProperty{counter}}\xspace%
@@ -23,7 +24,7 @@
\IfExerciseGoalSingularTF{points}
{\XSIMtranslate{point}}
{\XSIMtranslate{points}}%
-% \nobreakspace\XSIMtranslate{point-abbr}
+% \nobreakspace\XSIMtranslate{point-abbr}
% ohne )
}%
}%
diff --git a/macros/latex/contrib/schule/doc/changelog.tex b/macros/latex/contrib/schule/doc/changelog.tex
index 1ee48008b5..c41d494d0d 100644
--- a/macros/latex/contrib/schule/doc/changelog.tex
+++ b/macros/latex/contrib/schule/doc/changelog.tex
@@ -2,7 +2,14 @@
Im Laufe der Jahre wurde das Paket immer wieder erweitert. Nicht nur die Anpassung an veränderte Anforderungen, etwa bei den Unterrichtsbesuchen, sondern auch neue Funktionalitäten fließen in das Paket ein.
Die folgende Liste bietet eine Übersicht über die letzten Änderungen.
\begin{itemize}
- \item \textbf{0.8.2} -- 2020-10-16
+ \item \textbf{0.8.3} -- 2021-08-09
+ \begin{itemize}
+ \item Konstanten für das Fach Physik eingebaut
+ \item Einbindung von \pkg{ziffer} im Modul Physik
+ \item Notenübersicht ohne Tendenz
+ \item Umstellung der Linzenzen auf \pkg{doclicense}
+ \end{itemize}
+ \item \textbf{0.8.2} -- 2020-10-16
\begin{itemize}
\item Anpassungen an neue Version von \pkg{xsim}
\item Modul Formulare begonnen
diff --git a/macros/latex/contrib/schule/doc/fachPhysik.tex b/macros/latex/contrib/schule/doc/fachPhysik.tex
index 1dec7fc5be..af7ca9480c 100644
--- a/macros/latex/contrib/schule/doc/fachPhysik.tex
+++ b/macros/latex/contrib/schule/doc/fachPhysik.tex
@@ -1,11 +1,27 @@
\section{Physik}
- \label{fach:physik}
- Zur Zeit ist das Paket \module{Physik} noch leer, bis auf das Einbinden der
- Pakete \pkg{units}, \pkg{circuittikz} und \pkg{mhchem}.
+ \label{fach:physik}
+ Das Paket \module{Physik} bindet die Pakete \pkg{units}, \pkg{circuitikz} und \pkg{mhchem}. ein, so dass Formeln und Schaltpläne gesetzt werden können. Außerdem werden in diesem Modul Standardkonstanten für Formeln definiert.
- Ein kurzes Beispiel zur Dartstellung von Schaltplänen mit dem
- Paket \pkg{circuittikz} soll an dieser Stelle genügen. Ausführlichere Hinweise können den entsprechenden Dokumentationen der einzelnen Pakete entnommen werden.
+ Durch das Einbinden des Pakets \pkg{ziffer} wird dafür gesorgt, dass das im deutschen gebräuchliche Komma bei Zahlen richtig gesetzt wird. \sinceversion{0.8.3}
+ \subsection{Konstanten}
+ Sehr regelmäßig müssen in Formeln physikalische Konstanten eingesetzt werden. Einige werden im Paket definiert, um die Eingabe zu erleichtern. \sinceversion{0.8.3}
+ \begin{commands}
+ \command{elementarladung} Die Elementarladung mit \(\elementarladung\).
+ \command{plankscheEV} Das planksche Wirkungsquantum mit \(\plankscheEV\).
+ \command{plankscheJ} Das planksche Wirkungsquantum mit \(\plankscheJ\).
+ \command{elektronenmasse} Die Masse eines Elektrons mit \(\elektronenmasse\).
+ \command{protonenmasse} Die Masse eines Protons mit \(\protonenmasse\).
+
+ \begin{example}[gobble=12]
+ \[ v = \sqrt{\frac{2 \cdot U\cdot Q}{m}} \]
+ \[ v = \sqrt{\frac{2 \cdot \unit[15000]{V} \cdot \elementarladung}{\protonenmasse}} = \unitfrac[1,70 \cdot 10^{6}]{m}{s} \]
+ \end{example}
+
+ \end{commands}
+
+ \subsection{Schaltpläne}
+ An dieser Stelle ein Beispiel für einen Schaltplan mit \pkg{circuitikz}:
\begin{example}[gobble=0]
\begin{circuitikz}
\draw
@@ -23,5 +39,5 @@
(Ums.in) -- (8,0)
(Ums.out 1) |- (0,2) to[short, -*] (0,2)
;
-\end{circuitikz}
+\end{circuitikz}
\end{example} \ No newline at end of file
diff --git a/macros/latex/contrib/schule/doc/lizenzen.tex b/macros/latex/contrib/schule/doc/lizenzen.tex
index 9b98f12735..5b636504d4 100644
--- a/macros/latex/contrib/schule/doc/lizenzen.tex
+++ b/macros/latex/contrib/schule/doc/lizenzen.tex
@@ -1,6 +1,4 @@
\section{Lizenzen}
\license
-
- Einzelne Code-Beispiele in dieser Dokumentation stammen aus der Materialsammlung Informatik\footnote{\materialsammlung} und unterliegen damit der CC-BY-NC-SA (Creative Commons Attribution-NonCommercial-ShareAlike License).
-
- Das beiliegende Zusatzpaket \pkg{utfsym} von \person{Daniel Spittank} fällt unter die Public Domain im Sinne der CC0 (Creative Commons Zero). \ No newline at end of file
+
+ Einzelne Code-Beispiele in dieser Dokumentation stammen aus der Materialsammlung Informatik\footnote{\materialsammlung} und unterliegen damit der CC-BY-NC-SA (Creative Commons Attribution-NonCommercial-ShareAlike License). \ No newline at end of file
diff --git a/macros/latex/contrib/schule/doc/modulAufgaben.tex b/macros/latex/contrib/schule/doc/modulAufgaben.tex
index ecc9281e98..9c1623ebfd 100644
--- a/macros/latex/contrib/schule/doc/modulAufgaben.tex
+++ b/macros/latex/contrib/schule/doc/modulAufgaben.tex
@@ -159,7 +159,7 @@ Zwar ist es über das \module{Format}-Modul möglich, einzelne Kästchen zum Ank
\command{mcrichtig} markiert innerhalb einer \env{mcumgebung} eine Wahlmöglichkeit als richtig.
- \command{mcloesung} kann in einer Lösung angegeben werden, damit in dieser die Multiple-Choice-Aufgabe mit den korrekten Lösungen aufgeführt wird.
+ \command{mcloesung}\sinceversion{0.8.2} kann in einer Lösung angegeben werden, damit in dieser die Multiple-Choice-Aufgabe mit den korrekten Lösungen aufgeführt wird.
\end{commands}
\subsection{Umgebungen}
diff --git a/macros/latex/contrib/schule/doc/modulBewertung.tex b/macros/latex/contrib/schule/doc/modulBewertung.tex
index 6df64b19b8..b73d348842 100644
--- a/macros/latex/contrib/schule/doc/modulBewertung.tex
+++ b/macros/latex/contrib/schule/doc/modulBewertung.tex
@@ -18,7 +18,7 @@ Das Modul \module{Bewertung} ergänzt das Modul \module{Aufgaben} um die Möglic
\Default{standard} legt den Stil des Erwartungshorizonts fest.
Bisher gibt es drei verschiedene Stile:
\begin{description}
- \item[\keyis-{erwartungshorizontStil}{einzel}\space] setzt für jede Aufgabe eine eigene Überschrift und darunter eine Tabelle mit den einzelnen Erwartungen. Unter die Erwartungen aller Aufgaben wird mit \cs{punktuebersicht} eine Übersicht über die erreichten Punkte gesetzt.
+ \item[\keyis-{erwartungshorizontStil}{einzeltabellen}\space] setzt für jede Aufgabe eine eigene Überschrift und darunter eine Tabelle mit den einzelnen Erwartungen. Unter die Erwartungen aller Aufgaben wird mit \cs{punktuebersicht} eine Übersicht über die erreichten Punkte gesetzt.
\includepdfpage[page=3, scale=0.3, trim={3cm, 12.5cm, 3cm, 1.5cm}, clip] {minimal-kl-et}
@@ -33,6 +33,8 @@ Das Modul \module{Bewertung} ergänzt das Modul \module{Aufgaben} um die Möglic
\opt{kmkPunkte} schaltet alle benotungsrelevanten Funktionen vom normalen Notensystem (\textit{ungenügend} bis \textit{sehr gut}) auf KMK-Notenpunkte ($0$ bis $15$) um.
+ \opt{notenOhneTendenz} Gibt in der Notenübersicht nur die sechs Notenstufen ohne Tendenzen an. Diese Option ist nicht mit der Option \code{kmkPunkte} vereinbar. \sinceversion{0.8.3}
+
\keyval{notenschema}{15=.95,\dots} gibt ein Notenschema für die Berechnung der Notenverteilung an. Es muss eine Liste mit der Zuordnung von Notenpunkten zu Prozentwerten übergeben werden. Die Prozentwerte geben dabei jeweils die untere Grenze für die jeweilige Note an.
Das Standardnotenschema ist \texttt{15 = .95, 14 = .9, 13 = .85, 12 = .8, 11 = .75, 10 = .7, 9 = .65, 8 = .6, 7 = .55, 6 = .5, 5 = .45, 4 = .39, 3 = .33, 2 = .27, 1 = .2}
@@ -40,7 +42,7 @@ Das Modul \module{Bewertung} ergänzt das Modul \module{Aufgaben} um die Möglic
\subsubsection{Umgebungen}
\begin{environments}
- \environment{erwartungen} erlaubt es, zu einzelnen Aufgaben Erwartungen anzugeben. Die einzelnen Erwartungen werden dabei mit dem Makro \cs{erwartung} angegeben.
+ \environment{erwartungen} erlaubt es, zu einzelnen Aufgaben Erwartungen anzugeben. Die einzelnen Erwartungen werden dabei mit dem Makro \cs{erwartung} angegeben. Diese Umgebung kann nur direkt innerhalb der Umgebung einer Aufgabe genutzt werden.
\end{environments}
\subsubsection{Befehle}
diff --git a/macros/latex/contrib/schule/doc/modulLizenzen.tex b/macros/latex/contrib/schule/doc/modulLizenzen.tex
index 6d1ccb1adf..4b69e11b6d 100644
--- a/macros/latex/contrib/schule/doc/modulLizenzen.tex
+++ b/macros/latex/contrib/schule/doc/modulLizenzen.tex
@@ -2,10 +2,7 @@
\label{modul:lizenzen}
Dieses Modul definiert die Paketoptionen zum Festlegen der Lizenz des
Dokuments und bietet Makros zum Setzen des Lizenznamens und der
-Lizenzsymbole an.
-
-Außerdem werden automatisch passende XMP-Dateien in die PDF-Datei
-eingebunden.
+Lizenzsymbole an. Es setzt dabei nun auf das Paket \pkg{doclicense}, dass auch entsprechende Werte in die PDF-Datei einbindet.\changedversion{0.8.3} Aus Kompatibilitätsgründen wird das alte Verhalten beibehalten.
\subsection{Paketoptionen}
\begin{options}
@@ -27,4 +24,4 @@ eingebunden.
\command{lizenzSymbol}
setzt das Symbol der Lizenz des Dokuments.
-\end{commands} \ No newline at end of file
+\end{commands}
diff --git a/macros/latex/contrib/schule/doc/modulPapiertypen.tex b/macros/latex/contrib/schule/doc/modulPapiertypen.tex
index c6e8344058..33a8e9301d 100644
--- a/macros/latex/contrib/schule/doc/modulPapiertypen.tex
+++ b/macros/latex/contrib/schule/doc/modulPapiertypen.tex
@@ -26,8 +26,8 @@ stehende Breite wird also optimal genutzt.
\command{feldMil}[\marg{Anzahl}]
setzt die angegebene Anzahl von Kästchen im
Millimeterpapiermuster untereinander. Die Farbe wird von der
- Paketoption \option{farbig} beeinflusst.
+ Paketoption \option{farbig} beeinflusst. Ohne das Setzen dieser Option wird das Millimeterpapiermuster nur in schwarz/weiß dargestellt.
\begin{example}
\feldMil{2}
\end{example}
-\end{commands} \ No newline at end of file
+\end{commands}
diff --git a/macros/latex/contrib/schule/doc/module.tex b/macros/latex/contrib/schule/doc/module.tex
index 77e24e8dc1..073b39838c 100644
--- a/macros/latex/contrib/schule/doc/module.tex
+++ b/macros/latex/contrib/schule/doc/module.tex
@@ -10,7 +10,7 @@
\subsection{Laden weiterer Module}
\begin{options}
- \keyval{module}{Modul1,Modul2,\dots}\Default Weitere Module können geladen werden, indem Sie der Paketoption \option{module} als kommaseparierte Liste übergeben werden.
+ \keyval{module}{Modul1,Modul2,\dots}\Default Weitere Module können geladen werden, indem sie der Paketoption \option{module} als kommaseparierte Liste übergeben werden.
\end{options}
\input{modulAufgaben}
diff --git a/macros/latex/contrib/schule/doc/schule.pdf b/macros/latex/contrib/schule/doc/schule.pdf
index 123ff86964..44034e233b 100644
--- a/macros/latex/contrib/schule/doc/schule.pdf
+++ b/macros/latex/contrib/schule/doc/schule.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/schule.tex b/macros/latex/contrib/schule/doc/schule.tex
index fb469fc572..9f3738ea38 100644
--- a/macros/latex/contrib/schule/doc/schule.tex
+++ b/macros/latex/contrib/schule/doc/schule.tex
@@ -52,13 +52,13 @@
\setcnltx{
name = schule ,
title = schule ,
- version = 0.8.2 ,
- date = 2020-05-24 ,
+ version = 0.8.3 ,
+ date = 2021-08-09 ,
subtitle = {\LaTeX-Klassen und Pakete für den Einsatz im Bereich der Schule},
info = Paketdokumentation ,
authors = {Johannes Pieper, Johannes Kuhaupt, Ludger Humbert, Andr\'e Hilbig, Adrian Salamon, Daniel Spittank} ,
email = schulepaket@johpie.de ,
- url = http://ddi.uni-wuppertal.de/material/schulepaket.html ,
+ url = https://gitlab.com/gi-fg-ibnw/schule ,
abstract = {%
Diese Zusammenstellung wird entwickelt, um Pakete und damit Befehle bereit zu stellen, die für den Textsatz von Dokumenten zur Unterrichtsvorbereitung für den (Informatik)Unterricht nützlich sind. Zur Zeit liegt der Schwerpunkt auf dem Informatikunterricht, eine Ergänzung für den Physikunterricht wird nach und nach eingearbeitet. Weitere Ergänzungen für andere Fächer werden gerne entgegen genommen.
diff --git a/macros/latex/contrib/schule/latex/relaycircuit.sty b/macros/latex/contrib/schule/latex/relaycircuit.sty
index 991e80800d..7976d64fd9 100644
--- a/macros/latex/contrib/schule/latex/relaycircuit.sty
+++ b/macros/latex/contrib/schule/latex/relaycircuit.sty
@@ -12,7 +12,7 @@
% Einbinden der geforderten Pakete
% \begin{macrocode}
\RequirePackage{tikz}
-\RequirePackage[siunitx,european]{circuitikz}
+\RequirePackage[siunitx,european,nooldvoltagedirection]{circuitikz}
\usetikzlibrary{arrows,shadows,shapes.misc,scopes}
% \end{macrocode}
%
@@ -46,11 +46,11 @@
\anchor{center}{
\northwest
\pgf@y=0pt
- \pgf@x=-.8\pgf@x
+ \pgf@x=-.8\pgf@x
}
\anchor{east}{
\left
- \pgf@x=-.8\pgf@x
+ \pgf@x=-.8\pgf@x
}
\anchor{west}{
\left
@@ -100,12 +100,12 @@
\pgfusepath{stroke}
- \pgfsetdash{{2pt}{2pt}}{1pt}
+ \pgfsetdash{{2pt}{2pt}}{1pt}
\pgfpathmoveto{\pgfpoint{-0.7cm}{0cm}}
\pgfpathlineto{\pgfpoint{0.65cm}{0cm}}
\pgfusepath{stroke}
- \pgfsetdash{}{0pt}
+ \pgfsetdash{}{0pt}
\pgfusepath{draw}
@@ -113,7 +113,7 @@
\pgfsetlinewidth{2\pgflinewidth}
\pgfpathrectanglecorners{\pgfpoint{1cm}{0.5cm}%
}{\pgfpoint{-1cm}{-0.5cm}}
-
+
\pgfusepath{draw}
\pgftext[base,y=-0.4cm]{RK}
@@ -121,7 +121,7 @@
}
\pgfdeclareshape{arbeits relais}{
- \inheritsavedanchors[from=ruhe relais]
+ \inheritsavedanchors[from=ruhe relais]
\inheritanchor[from=ruhe relais]{center}
\inheritanchor[from=ruhe relais]{north}
\inheritanchor[from=ruhe relais]{south}
@@ -154,12 +154,12 @@
\pgfusepath{stroke}
- \pgfsetdash{{2pt}{2pt}}{1pt}
+ \pgfsetdash{{2pt}{2pt}}{1pt}
\pgfpathmoveto{\pgfpoint{-0.7cm}{0cm}}
\pgfpathlineto{\pgfpoint{0.825cm}{0cm}}
\pgfusepath{stroke}
- \pgfsetdash{}{0pt}
+ \pgfsetdash{}{0pt}
\pgfusepath{draw}
@@ -167,7 +167,7 @@
\pgfsetlinewidth{2\pgflinewidth}
\pgfpathrectanglecorners{\pgfpoint{1cm}{0.5cm}}%
{\pgfpoint{-1cm}{-0.5cm}}
-
+
\pgfusepath{draw}
\pgftext[base,y=-0.4cm]{AK}
diff --git a/macros/latex/contrib/schule/latex/schule.fach.Physik.code.tex b/macros/latex/contrib/schule/latex/schule.fach.Physik.code.tex
new file mode 100644
index 0000000000..ce7e487a62
--- /dev/null
+++ b/macros/latex/contrib/schule/latex/schule.fach.Physik.code.tex
@@ -0,0 +1,12 @@
+% ********************************************************************
+% Physik *
+% ********************************************************************
+
+% Konstanten
+% ********************************************************************
+
+\newcommand{\elementarladung}{\unit[1,602 \cdot 10^{-19}]{C}}
+\newcommand{\plankscheEV}{\unit[4,1357 \cdot 10^{-15}]{eVs}}
+\newcommand{\plankscheJ}{\unit[6,626 \cdot 10^{-34}]{Js}}
+\newcommand{\elektronenmasse}{\unit[9,109 \cdot 10^{-31}]{kg}}
+\newcommand{\protonenmasse}{\unit[1,673 \cdot 10^{-27}]{kg}} \ No newline at end of file
diff --git a/macros/latex/contrib/schule/latex/schule.fach.Physik.pakete.tex b/macros/latex/contrib/schule/latex/schule.fach.Physik.pakete.tex
index b7dd4ce4d4..bfd8b93c50 100644
--- a/macros/latex/contrib/schule/latex/schule.fach.Physik.pakete.tex
+++ b/macros/latex/contrib/schule/latex/schule.fach.Physik.pakete.tex
@@ -1,6 +1,7 @@
% ********************************************************************
% Physik *
% ********************************************************************
+\RequirePackage[siunitx,european,nooldvoltagedirection]{circuitikz}
\RequirePackage{units}
-\RequirePackage{circuitikz}
-\RequirePackage[version=3]{mhchem} \ No newline at end of file
+\RequirePackage[version=3]{mhchem}
+\RequirePackage{ziffer} \ No newline at end of file
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.pakete.tex b/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.pakete.tex
index 23601ca2af..ffcbf5678a 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.pakete.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.pakete.tex
@@ -1,5 +1,5 @@
% Aufgaben
-\RequirePackage[verbose,clear-aux]{xsim}%verbose für entwicklung, %final,clear-aux
+\RequirePackage[verbose,clear-aux,use-files]{xsim}%verbose für entwicklung, %final,clear-aux
\RequirePackage{tcolorbox}
% Symbole
\RequirePackage{utfsym} \ No newline at end of file
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex
index 8952476786..ef906573a3 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex
@@ -138,8 +138,8 @@
\begin{longtable}{|p{.65\linewidth}|r|r|}\hline
% Kopfzeile
\rowcolor{black!20}
- \textbf{Die Schülerin/der Schüler\dots} &
- \textbf{max. Punkte} &
+ \textbf{Die~Schülerin/der~Schüler\dots} &
+ \textbf{max.~Punkte} &
\textbf{erreicht}% %%
\tabularnewline\specialrule{.1em}{0em}{0em} %
% Erwartungen
@@ -409,63 +409,87 @@
\end{tabular}
}
}{
- % Ohne Notenpunkte
- % ----------------------------------------------------------------
- \parbox{.24\linewidth}{
- \tiny
- \begin{tabular}{|p{0.6\linewidth}|r|r|}\hline
- \rowcolor{black!20}\textbf{Note} &
- \textbf{$\ge$ P.}
- \\\hline
- sehr gut plus & $\schule@punkteZuNote{15}$\\\hline
- \rowcolor{black!10}
- sehr gut & $\schule@punkteZuNote{14}$\\\hline
- sehr gut minus & $\schule@punkteZuNote{13}$\\\hline
- \rowcolor{black!10}
- gut plus & $\schule@punkteZuNote{12}$\\\hline
- \end{tabular}
- }
- \parbox{.24\linewidth}{
- \tiny
- \begin{tabular}{|p{0.6\linewidth}|r|r|}\hline
- \rowcolor{black!20}\textbf{Note} &
- \textbf{$\ge$ P.}
- \\\hline
- gut & $\schule@punkteZuNote{11}$\\\hline
- \rowcolor{black!10}
- gut minus & $\schule@punkteZuNote{10}$ \\\hline
- befriedigend plus & $\schule@punkteZuNote{9}$\\\hline
- \rowcolor{black!10}
- befriedigend & $\schule@punkteZuNote{8}$\\\hline
- \end{tabular}
- }
- \parbox{.24\linewidth}{
- \tiny
- \begin{tabular}{|p{0.6\linewidth}|r|r|}\hline
- \rowcolor{black!20}\textbf{Note} &
- \textbf{$\ge$ P.}
- \\\hline
- befriedigend minus & $\schule@punkteZuNote{7}$\\\hline
- \rowcolor{black!10}
- ausreichend plus & $\schule@punkteZuNote{6}$\\\hline
- ausreichend & $\schule@punkteZuNote{5}$\\\hline
- \rowcolor{black!10}
- ausreichend minus & $\schule@punkteZuNote{4}$\\\hline
- \end{tabular}
- }
- \parbox{.24\linewidth}{
- \tiny
- \begin{tabular}{|p{0.6\linewidth}|r|r|}\hline
- \rowcolor{black!20}\textbf{Note} &
- \textbf{$\ge$ P.}
- \\\hline
- mangelhaft plus & $\schule@punkteZuNote{3}$\\\hline
- \rowcolor{black!10}
- mangelhaft & $\schule@punkteZuNote{2}$\\\hline
- mangelhaft minus & $\schule@punkteZuNote{1}$\\\hline
- \rowcolor{black!10}
- ungenügend & $0$ \\\hline
- \end{tabular}
+ % Ohne Notenpunkte
+ % ----------------------------------------------------------------
+ \ifthenelse{\boolean{schule@notenOhneTendenz}}{
+ % Ohne Tendenz
+ % ----------------------------------------------------------------
+ \parbox{.40\linewidth}{
+ \tiny
+ \begin{tabular}{|p{0.6\linewidth}|r|r|}\hline
+ \rowcolor{black!20}\textbf{Note} &
+ \textbf{$\ge$ P.}
+ \\\hline
+ sehr gut & $\schule@punkteZuNote{13}$\\\hline
+ \rowcolor{black!10}
+ gut & $\schule@punkteZuNote{10}$\\\hline
+ befriedigend & $\schule@punkteZuNote{7}$\\\hline
+ \rowcolor{black!10}
+ ausreichend & $\schule@punkteZuNote{4}$\\\hline
+ mangelhaft & $\schule@punkteZuNote{1}$ \\\hline
+ \rowcolor{black!10}
+ ungenügend & $0$ \\\hline
+ \end{tabular}
+ }
+ }{
+ % Mit Tendenz
+ % ----------------------------------------------------------------
+ \parbox{.24\linewidth}{
+ \tiny
+ \begin{tabular}{|p{0.6\linewidth}|r|r|}\hline
+ \rowcolor{black!20}\textbf{Note} &
+ \textbf{$\ge$ P.}
+ \\\hline
+ sehr gut plus & $\schule@punkteZuNote{15}$\\\hline
+ \rowcolor{black!10}
+ sehr gut & $\schule@punkteZuNote{14}$\\\hline
+ sehr gut minus & $\schule@punkteZuNote{13}$\\\hline
+ \rowcolor{black!10}
+ gut plus & $\schule@punkteZuNote{12}$\\\hline
+ \end{tabular}
+ }
+ \parbox{.24\linewidth}{
+ \tiny
+ \begin{tabular}{|p{0.6\linewidth}|r|r|}\hline
+ \rowcolor{black!20}\textbf{Note} &
+ \textbf{$\ge$ P.}
+ \\\hline
+ gut & $\schule@punkteZuNote{11}$\\\hline
+ \rowcolor{black!10}
+ gut minus & $\schule@punkteZuNote{10}$ \\\hline
+ befriedigend plus & $\schule@punkteZuNote{9}$\\\hline
+ \rowcolor{black!10}
+ befriedigend & $\schule@punkteZuNote{8}$\\\hline
+ \end{tabular}
+ }
+ \parbox{.24\linewidth}{
+ \tiny
+ \begin{tabular}{|p{0.6\linewidth}|r|r|}\hline
+ \rowcolor{black!20}\textbf{Note} &
+ \textbf{$\ge$ P.}
+ \\\hline
+ befriedigend minus & $\schule@punkteZuNote{7}$\\\hline
+ \rowcolor{black!10}
+ ausreichend plus & $\schule@punkteZuNote{6}$\\\hline
+ ausreichend & $\schule@punkteZuNote{5}$\\\hline
+ \rowcolor{black!10}
+ ausreichend minus & $\schule@punkteZuNote{4}$\\\hline
+ \end{tabular}
+ }
+ \parbox{.24\linewidth}{
+ \tiny
+ \begin{tabular}{|p{0.6\linewidth}|r|r|}\hline
+ \rowcolor{black!20}\textbf{Note} &
+ \textbf{$\ge$ P.}
+ \\\hline
+ mangelhaft plus & $\schule@punkteZuNote{3}$\\\hline
+ \rowcolor{black!10}
+ mangelhaft & $\schule@punkteZuNote{2}$\\\hline
+ mangelhaft minus & $\schule@punkteZuNote{1}$\\\hline
+ \rowcolor{black!10}
+ ungenügend & $0$ \\\hline
+ \end{tabular}
+ }
}
}
}
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Bewertung.optionen.tex b/macros/latex/contrib/schule/latex/schule.mod.Bewertung.optionen.tex
index 7f677862a0..d658947fc2 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Bewertung.optionen.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Bewertung.optionen.tex
@@ -7,6 +7,8 @@
\newboolean{schule@erwartungshorizontAnzeigen}
\newboolean{schule@erwartungshorizontKeineSeiten}
\newboolean{schule@kmkPunkte}
+\newboolean{schule@notenOhneTendenz}
+
% Standardwerte
% ********************************************************************
@@ -44,4 +46,7 @@
erwartungshorizontStil/.store in=\schule@erwartungshorizontStil,
kmkPunkte/.value forbidden,
kmkPunkte/.code=\setboolean{schule@kmkPunkte}{true},
- notenschema/.store in=\schule@notenschema,}
+ notenschema/.store in=\schule@notenschema,
+ notenOhneTendenz/.value forbidden,
+ notenOhneTendenz/.code=\setboolean{schule@notenOhneTendenz}{true}
+}
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Format.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Format.code.tex
index 6d6f50191e..9ecffef8aa 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Format.code.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Format.code.tex
@@ -172,7 +172,7 @@
% Datumsfeld anzeigen?
\ifthenelse{\boolean{schule@datumAnzeigen}}{%
% Mit Datumsfeld
- \linebreak\Datum%
+ \linebreak\@date%
}{%
% Ohne Datumsfeld
\schule@kopfUmbruch%
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.code.tex
index c059b10630..56d4e61952 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.code.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.code.tex
@@ -2,10 +2,6 @@
% Lizenz des Dokuments *
% ********************************************************************
-% Metadaten inkludieren
-% ********************************************************************
-\includexmp{lizenz-\schule@lizenz}
-
% Lizenzname
% ********************************************************************
% Kurz
@@ -82,4 +78,4 @@
% Sonstiges
]
-} \ No newline at end of file
+}
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.pakete.tex b/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.pakete.tex
index 8a59005283..d69284161a 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.pakete.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.pakete.tex
@@ -3,6 +3,23 @@
% ********************************************************************
% Lizenz
-\RequirePackage{xmpincl}
+\IfEqCase{\schule@lizenz}{ %
+ % Lizenz: CC-BY-NC-SA-EU 4.0
+ {cc-by-nc-sa-eu-4}{ %
+ \RequirePackage[type={CC},modifier={by-nc-sa},version={4.0}]{doclicense}
+ }%
+ % Lizenz: CC-BY-NC-SA 4.0
+ {cc-by-nc-sa-4}{ %
+ \RequirePackage[type={CC},modifier={by-nc-sa},version={4.0}]{doclicense}
+ }%
+ % Lizenz: CC-BY-SA 4.0
+ {cc-by-sa-4}{ %
+ \RequirePackage[type={CC},modifier={by-sa},version={4.0}]{doclicense}
+ }%
+ {cc-by-4}{ %
+ \RequirePackage[type={CC},modifier={by},version={4.0}]{doclicense}
+ }%
+}[%
+ % Sonstiges
+]
\RequirePackage{ccicons}
-
diff --git a/macros/latex/contrib/schule/latex/schule.sty b/macros/latex/contrib/schule/latex/schule.sty
index 6addd288f7..68c1bdf4be 100644
--- a/macros/latex/contrib/schule/latex/schule.sty
+++ b/macros/latex/contrib/schule/latex/schule.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}[2011/11/11]
-\ProvidesPackage{schule}[2018/08/22 v0.8.1 %
+\ProvidesPackage{schule}[2021/08/09 v0.8.3 %
Kommandos fuer die Schule]
% ********************************************************************
@@ -10,6 +10,7 @@
% ********************************************************************
\RequirePackage{pgfopts}
\RequirePackage{xifthen}
+\RequirePackage{xstring}
% Boolesche Optionen
% ********************************************************************
@@ -74,10 +75,12 @@
% unschädliche Warnungen im Normalbetrieb unterdrücken
\ifthenelse{\boolean{schule@debug}}{}{
+ \IfSubStr{\schule@module}{Lizenzen}{}{
\usepackage{silence}
% Kompatiblität von ctable zu TikZ
\WarningFilter{ctable}{Transp}
+ }
}
% Laden von Dokumenttypen
@@ -245,7 +248,6 @@
% Makros
\RequirePackage{xparse}
-\RequirePackage{xstring}
\RequirePackage{environ}
% Referenzen
diff --git a/macros/latex/contrib/schule/latex/schulphy.sty b/macros/latex/contrib/schule/latex/schulphy.sty
index 691fa4110c..ff47836883 100644
--- a/macros/latex/contrib/schule/latex/schulphy.sty
+++ b/macros/latex/contrib/schule/latex/schulphy.sty
@@ -12,8 +12,8 @@
%% Daniel Spittank (kontakt@daniel.spittank.net)
%% André Hilbig (mail@andrehilbig.de)
%% Adrian Salamon (adriansalamon@gmail.com)
-%%
-%%
+%%
+%%
%% 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.
@@ -21,23 +21,23 @@
%% 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 Johannes Pieper.
-%%
+%%
%% This work consists of the files schule.dtx and schule.ins, readme
%% and the derived files schule.sty, schulinf.sty, syntaxdi.sty,
%% relaycircuit.sty, schulphy.sty, schulekl.cls, schuleub.cls,
%% schullzk.cls, schuleab.cls, schulein.cls, schuleue.cls,
%% schullsg.cls, schulit.cls, schulekl.sty, schulelzk.sty.
-%%
+%%
%% Dies ist der dokumentierte Makrocode zur Erzeugung und Dokumentation
%% des LaTeX-Paket `schule'.
-%%
+%%
%% This is the documented Macrocode to build the LaTeX-Package `schule'
%% and its documentation.
-%%
+%%
%% Some of the examples in the documentation have different copyright
%% notes.
%% \CharacterTable
@@ -120,10 +120,10 @@
\usepackage{warning}
\addglobalwarning{%
\PackageWarningNoLine{schulphy}{Dieses Subpaket stammt aus dem Paket 'schule' in der Version 0.6, die nicht weiterentwickelt wird. Bitte aktualisieren Sie Ihr Dokument.}}
-
+
\RequirePackage{schulealt}
-\RequirePackage{units}
\RequirePackage{circuitikz}
+\RequirePackage{units}
\RequirePackage[version=3]{mhchem}
\def\@fach{Physik}
\endinput
diff --git a/macros/latex/contrib/semantex/semantex.pdf b/macros/latex/contrib/semantex/semantex.pdf
index 9724b2643c..b397d48445 100644
--- a/macros/latex/contrib/semantex/semantex.pdf
+++ b/macros/latex/contrib/semantex/semantex.pdf
Binary files differ
diff --git a/macros/latex/contrib/semantex/semantex.sty b/macros/latex/contrib/semantex/semantex.sty
index d9f313cc56..5d7e6070a1 100644
--- a/macros/latex/contrib/semantex/semantex.sty
+++ b/macros/latex/contrib/semantex/semantex.sty
@@ -1,5 +1,5 @@
\RequirePackage{xparse,l3keys2e,leftindex,semtex}
-\ProvidesExplPackage{semantex}{2021/07/25}{0.511}{}
+\ProvidesExplPackage{semantex}{2021/08/10}{0.512}{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -10,6 +10,7 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\tl_set:Nn\SemantexVersion{0.512}
\cs_set_eq:NN \semantex_keyval_parse:NNn \keyval_parse:NNn
\cs_set:Npn \semantex_singlekey_parse:Nn#1#2 { \clist_map_function:nN { #2 } #1 }
@@ -7710,7 +7711,6 @@
{dots}{sep~i~dots},
{...}{dots},
{slot}{sep~i~slot},
- {-}{slot},
{*}{sep~d~*},
{**}{sep~d~**},
},
@@ -7745,9 +7745,7 @@
{comma~arg~dots}{set~arg~keys={comma~dots}},
{comma~arg~...}{set~arg~keys={comma~...}},
{arg~slot}{set~arg~keys={slot}},
- {arg-}{set~arg~keys={-}},
{comma~arg~slot}{set~arg~keys={comma~slot}},
- {comma~arg~-}{set~arg~keys={comma~-}},
{clear~arg}{ execute={
\semantex_data_tl_clear:nn { ##1 } { arg }
\semantex_data_int_clear:nn { ##1 } { number~of~arguments }
@@ -7920,7 +7918,6 @@
{arg~dots~with~other~sep}{set~arg~keys={dots~with~other~sep={#1}}},
{arg~...~with~other~sep}{set~arg~keys={dots~with~other~sep={#1}}},
{arg~slot~with~other~sep}{set~arg~keys={slot~with~other~sep={#1}}},
- {arg~-~with~other~sep}{set~arg~keys={slot~with~other~sep={#1}}},
},
define~keys[2]={
{arg~with~other~sep}{set~arg~keys={other~sep={#1}{#2}}},
@@ -7996,11 +7993,8 @@
data~provide=post~upper,
define~keys={
{upper~slot}{ set~keys~x={ upper=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~slot } } },
- {upper~-}{upper~slot},
{sep~upper~slot}{ set~keys~x={ sep~upper=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~slot } } },
- {sep~upper~-}{sep~upper~slot},
{comma~upper~slot}{ set~keys~x={ comma~upper=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~slot } } },
- {comma~upper~-}{comma~upper~slot},
{upper~dots}{ set~keys~x={ upper=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~dots } } },
{upper~...}{upper~dots},
{sep~upper~dots}{ set~keys~x={ sep~upper=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~dots } } },
@@ -8108,15 +8102,6 @@
}
},
},
- {upper~-~with~other~sep}{
- execute={
- \semantex_valuekey:nnx { ##1 } { upper~with~other~sep }
- {
- { \exp_not:n { #1 } }
- { \semantex_data_tl_get_exp_not:nn { ##1 } { upper~slot } }
- }
- },
- },
{set~upper~dots}{
execute={ \semantex_data_tl_set:nnn { ##1 } { upper~dots } { #1 } },
},
@@ -8181,11 +8166,8 @@
data~provide=post~lower,
define~keys={
{lower~slot}{ set~keys~x={ lower=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~slot } } },
- {lower~-}{lower~slot},
{sep~lower~slot}{ set~keys~x={ sep~lower=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~slot } } },
- {sep~lower~-}{sep~lower~slot},
{comma~lower~slot}{ set~keys~x={ comma~lower=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~slot } } },
- {comma~lower~-}{comma~lower~slot},
{lower~dots}{ set~keys~x={ lower=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~dots } } },
{lower~...}{lower~dots},
{sep~lower~dots}{ set~keys~x={ sep~lower=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~dots } } },
@@ -8205,12 +8187,12 @@
{clear~post~lower}{
execute={ \semantex_data_tl_clear:nn { ##1 } { post~lower } },
},
- {lower~**}{lower=\SemantexBullet},
- {lower~***}{lower=\SemantexDoubleBullet},
- {sep~lower~**}{sep~lower=\SemantexBullet},
- {sep~lower~***}{sep~lower=\SemantexDoubleBullet},
- {comma~lower~**}{comma~lower=\SemantexBullet},
- {comma~lower~***}{comma~lower=\SemantexDoubleBullet},
+ {lower~*}{lower=\SemantexBullet},
+ {lower~**}{lower=\SemantexDoubleBullet},
+ {sep~lower~*}{sep~lower=\SemantexBullet},
+ {sep~lower~**}{sep~lower=\SemantexDoubleBullet},
+ {comma~lower~*}{comma~lower=\SemantexBullet},
+ {comma~lower~**}{comma~lower=\SemantexDoubleBullet},
},
define~keys[1]={
{lower}{
@@ -8292,15 +8274,6 @@
}
},
},
- {lower~-~with~other~sep}{
- execute={
- \semantex_valuekey:nnx { ##1 } { lower~with~other~sep }
- {
- { \exp_not:n { #1 } }
- { \semantex_data_tl_get_exp_not:nn { ##1 } { lower~slot } }
- }
- },
- },
{set~lower~dots}{
execute={ \semantex_data_tl_set:nnn { ##1 } { lower~dots } { #1 } },
},
@@ -8322,8 +8295,8 @@
}
},
},
- {lower~**~with~other~sep}{lower~with~other~sep={#1}{\SemantexBullet}},
- {lower~***~with~other~sep}{lower~with~other~sep={#1}{\SemantexDoubleBullet}},
+ {lower~*~with~other~sep}{lower~with~other~sep={#1}{\SemantexBullet}},
+ {lower~**~with~other~sep}{lower~with~other~sep={#1}{\SemantexDoubleBullet}},
{set~lower~sep}{
execute={ \semantex_data_tl_set:nnn { ##1 } { lower~sep } { #1 } },
},
@@ -8365,11 +8338,8 @@
data~provide=post~upper~left,
define~keys={
{upper~left~slot}{ set~keys~x={ upper~left=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~slot } } },
- {upper~left~-}{upper~left~slot},
{sep~upper~left~slot}{ set~keys~x={ sep~upper~left=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~slot } } },
- {sep~upper~left~-}{sep~upper~left~slot},
{comma~upper~left~slot}{ set~keys~x={ comma~upper~left=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~slot } } },
- {comma~upper~left~-}{comma~upper~left~slot},
{upper~left~dots}{ set~keys~x={ upper~left=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~dots } } },
{upper~left~...}{upper~left~dots},
{sep~upper~left~dots}{ set~keys~x={ sep~upper~left=\semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~dots } } },
@@ -8476,15 +8446,6 @@
}
},
},
- {upper~left~-~with~other~sep}{
- execute={
- \semantex_valuekey:nnx { ##1 } { upper~left~with~other~sep }
- {
- { \exp_not:n { #1 } }
- { \semantex_data_tl_get_exp_not:nn { ##1 } { upper~left~slot } }
- }
- },
- },
{set~upper~left~dots}{
execute={ \semantex_data_tl_set:nnn { ##1 } { upper~left~dots } { #1 } },
},
@@ -8549,11 +8510,8 @@
data~provide=post~lower~left,
define~keys={
{lower~left~slot}{ set~keys~x={ lower~left=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~slot } } },
- {lower~left~-}{lower~left~slot},
{sep~lower~left~slot}{ set~keys~x={ sep~lower~left=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~slot } } },
- {sep~lower~left~-}{sep~lower~left~slot},
{comma~lower~left~slot}{ set~keys~x={ comma~lower~left=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~slot } } },
- {comma~lower~left~-}{comma~lower~left~slot},
{lower~left~dots}{ set~keys~x={ lower~left=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~dots } } },
{lower~left~...}{lower~left~dots},
{sep~lower~left~dots}{ set~keys~x={ sep~lower~left=\semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~dots } } },
@@ -8660,15 +8618,6 @@
}
},
},
- {lower~left~-~with~other~sep}{
- execute={
- \semantex_valuekey:nnx { ##1 } { lower~left~with~other~sep }
- {
- { \exp_not:n { #1 } }
- { \semantex_data_tl_get_exp_not:nn { ##1 } { lower~left~slot } },
- }
- },
- },
{set~lower~left~dots}{
execute={ \semantex_data_tl_set:nnn { ##1 } { lower~left~dots } { #1 } },
},
@@ -8732,19 +8681,16 @@
{ upper~slot }
{ lower~slot },
},
- {d~-}{d~slot},
{sep~d~slot}{
bool~if~TF={upper~grading}
{ sep~upper~slot }
{ sep~lower~slot },
},
- {sep~d~-}{sep~d~slot},
{comma~d~slot}{
bool~if~TF={upper~grading}
{ comma~upper~slot }
{ comma~lower~slot },
},
- {comma~d~-}{comma~d~slot},
{d~dots}{
bool~if~TF={upper~grading}
{ upper~dots }
@@ -8781,32 +8727,32 @@
{d~*}{
bool~if~TF={upper~grading}
{ upper~* }
- { lower~** },
+ { lower~* },
},
{d~**}{
bool~if~TF={upper~grading}
{ upper~** }
- { lower~*** },
+ { lower~** },
},
{sep~d~*}{
bool~if~TF={upper~grading}
{ sep~upper~* }
- { sep~lower~** },
+ { sep~lower~* },
},
{sep~d~**}{
bool~if~TF={upper~grading}
{ sep~upper~** }
- { sep~lower~*** },
+ { sep~lower~** },
},
{comma~d~*}{
bool~if~TF={upper~grading}
{ comma~upper~* }
- { comma~lower~** },
+ { comma~lower~* },
},
{comma~d~**}{
bool~if~TF={upper~grading}
{ comma~upper~** }
- { comma~lower~*** },
+ { comma~lower~** },
},
},
define~keys[1]={
@@ -8876,9 +8822,6 @@
lower~slot~with~other~sep={#1},
},
},
- {d~-~with~other~sep}{
- d~slot~with~other~sep={#1},
- },
{set~d~dots}{
bool~if~TF={upper~grading}
{
@@ -8903,12 +8846,12 @@
{d~*~with~other~sep}{
bool~if~TF={upper~grading}
{ upper~*~with~other~sep={#1} }
- { lower~**~with~other~sep={#1} },
+ { lower~*~with~other~sep={#1} },
},
{d~**~with~other~sep}{
bool~if~TF={upper~grading}
{ upper~**~with~other~sep={#1} }
- { lower~***~with~other~sep={#1} },
+ { lower~**~with~other~sep={#1} },
},
{set~d~sep}{
bool~if~TF={upper~grading}
@@ -8965,19 +8908,16 @@
{ lower~slot }
{ upper~slot },
},
- {i~-}{i~slot},
{sep~i~slot}{
bool~if~TF={upper~grading}
{ sep~lower~slot }
{ sep~upper~slot },
},
- {sep~i~-}{sep~i~slot},
{comma~i~slot}{
bool~if~TF={upper~grading}
{ comma~lower~slot }
{ comma~upper~slot },
},
- {comma~i~-}{comma~i~slot},
{i~dots}{
bool~if~TF={upper~grading}
{ lower~dots }
@@ -9013,32 +8953,32 @@
},
{i~*}{
bool~if~TF={upper~grading}
- { lower~** }
+ { lower~* }
{ upper~* },
},
{i~**}{
bool~if~TF={upper~grading}
- { lower~*** }
+ { lower~** }
{ upper~** },
},
{sep~i~*}{
bool~if~TF={upper~grading}
- { sep~lower~** }
+ { sep~lower~* }
{ sep~upper~* },
},
{sep~i~**}{
bool~if~TF={upper~grading}
- { sep~lower~*** }
+ { sep~lower~** }
{ sep~upper~** },
},
{comma~i~*}{
bool~if~TF={upper~grading}
- { comma~lower~** }
+ { comma~lower~* }
{ comma~upper~* },
},
{comma~i~**}{
bool~if~TF={upper~grading}
- { comma~lower~*** }
+ { comma~lower~** }
{ comma~upper~** },
},
},
@@ -9108,9 +9048,6 @@
upper~slot~with~other~sep={#1},
},
},
- {i~-~with~other~sep}{
- i~slot~with~other~sep={#1},
- },
{set~i~dots}{
bool~if~TF={upper~grading}
{
@@ -9134,12 +9071,12 @@
},
{i~*~with~other~sep}{
bool~if~TF={upper~grading}
- { lower~**~with~other~sep={#1} }
+ { lower~*~with~other~sep={#1} }
{ upper~*~with~other~sep={#1} },
},
{i~**~with~other~sep}{
bool~if~TF={upper~grading}
- { lower~***~with~other~sep={#1} }
+ { lower~**~with~other~sep={#1} }
{ upper~**~with~other~sep={#1} },
},
{set~i~sep}{
@@ -9296,7 +9233,6 @@
{set~arg~without~keyval~x}{ execute={ \semantex_arg_without_keyval:nx { ##1 } { #1 } } },
{arg~without~keyval~set~x}{ execute={ \semantex_arg_without_keyval:nx { ##1 } { #1 } } },
{default}{sep={#1}},
- {-~with~other~sep}{slot~with~other~sep={#1}},
{...~with~other~sep}{dots~with~other~sep={#1}},
{sep}{
execute={
@@ -9374,7 +9310,6 @@
}
},
},
- {-}{slot},
{comma~slot}{
execute={
\semantex_arg_valuekey:nnx { ##1 } { comma }
@@ -9383,7 +9318,6 @@
}
},
},
- {comma~-}{comma~slot},
},
define~arg~keys[2]={
{other~sep}{
diff --git a/macros/latex/contrib/semantex/semantex.tex b/macros/latex/contrib/semantex/semantex.tex
index 681a51b1b8..563be874be 100644
--- a/macros/latex/contrib/semantex/semantex.tex
+++ b/macros/latex/contrib/semantex/semantex.tex
@@ -9,7 +9,7 @@
\frenchspacing
-\usepackage{mathtools,etoolbox, microtype,xspace,color}
+\usepackage{mathtools,etoolbox, microtype,color}
\usepackage[shortlabels]{enumitem}%control lists
@@ -42,7 +42,7 @@
\usepackage[nameinlink]{cleveref}
-\title{Seman\!\TeX: semantic, keyval-based mathematics (v0.511)}
+\title{Seman\!\TeX: semantic, keyval-based mathematics (v0.512)}
\date{\today}
\author{Sebastian Ørsted (\href{mailto:sorsted@gmail.com}{sorsted@gmail.com})}
@@ -93,9 +93,9 @@
\let\pack=\texttt
-\newcommand\semantex{Seman\!\TeX\xspace}
+\newcommand\semantex{Seman\!\TeX}
-\newcommand\stripsemantex{\texttt{stripsemantex}\xspace}
+\newcommand\stripsemantex{\texttt{stripsemantex}}
\usepackage{hologo}
@@ -221,12 +221,12 @@
\maketitle
\noindent
-The \semantex package for \LaTeX\ delivers a more semantic, systematized way of writing mathematics, compared to the classical math syntax in~\LaTeX.
+The \semantex{} package for \LaTeX\ delivers a more semantic, systematized way of writing mathematics, compared to the classical math syntax in~\LaTeX.
The system uses keyval syntax, and the user can define their own keys and customize the system down to the last detail. At the same time, care has been taken to make the syntax as simple, natural, practical, and lightweight as possible.
Furthermore, the package has a companion package,
called \stripsemantex, which allows you to completely strip
-your documents of \semantex markup to prepare them e.g.~for publication.
+your documents of \semantex{} markup to prepare them e.g.~for publication.
The package is still in beta, but is considered feature-complete
and more or less stable, so using it at this point should be safe.
@@ -264,7 +264,7 @@ Still, suggestions, ideas, and bug reports are more than welcome!
to demonstrate the idea of the package:
Suppose we want to take the complex conjugate of a function~\( \vf \)
and then derive it \( \vn \)~times, i.e.~take~\( \smash{ \vf[conj,der=\vn] } \).
- \semantex allows you to typeset this something like this:
+ \semantex{} allows you to typeset this something like this:
\begin{LTXexample}
$ \vf[conj,der=\vn] $
\end{LTXexample}
@@ -368,7 +368,7 @@ with
\begin{lstlisting}
\usepackage{semantex}
\end{lstlisting}
-The \semantex system is object-oriented; all entities are objects of some class. When you load the package, there
+The \semantex{} system is object-oriented; all entities are objects of some class. When you load the package, there
is only one class by default, which is simply called \lstinline!\SemantexBaseObject!.
You should think of this as a low-level class, the parent of all other classes. Therefore, I highly advice against using it directly or modifying it.
Instead, we create a new, more high-level variable class.
@@ -380,7 +380,7 @@ pass some options to it in~\lstinline![...]!:
\NewVariableClass\MyVar[output=\MyVar]
\end{lstlisting}
This \lstinline!output=\MyVar! option will be explained better below.
-Roughly speaking, it tells \semantex that everything
+Roughly speaking, it tells \semantex{} that everything
a variable \emph{outputs} will also be a variable.
For instance, if the function~\lstinline!\vf! (i.e.~\( \vf \)) is of class~\lstinline!\MyVar!,
then \lstinline!\vf{\vx}!~(i.e.~\( \vf{\vx} \))~will also be of class~\lstinline!\MyVar!.
@@ -413,7 +413,7 @@ Both \<options\> and \<argument\> are optional
arguments (they can be left out if you do not need them).
The \<options\> should consist of a list of options separated by commas, using keyval syntax. Naturally, \<argument\> is the actual argument of the function.
-By a design choice, \semantex does not distinguish between variables and functions, so all variables can take arguments.
+By a design choice, \semantex{} does not distinguish between variables and functions, so all variables can take arguments.
This makes the system easier to use; after all, it is fairly common in mathematics that something is first a variable and then a moment later takes an argument.
So we may write:
\begin{LTXexample}
@@ -767,7 +767,7 @@ $\vg[1,res=\vY]{\vy}$,
$\vh[inv,res=\vT]{\vz}$
\end{LTXexample}
-If the reader starts playing around with the \semantex functions, they will discover that whenever you apply a function to something, the result becomes a new function that can take an argument itself (this is why we wrote~\lstinline!output=\MyVar! in the definition of the class~\lstinline!\MyVar!). This behaviour is both useful and extremely necessary in order for the package to be useful in practice. For instance, you may write
+If the reader starts playing around with the \semantex{} functions, they will discover that whenever you apply a function to something, the result becomes a new function that can take an argument itself (this is why we wrote~\lstinline!output=\MyVar! in the definition of the class~\lstinline!\MyVar!). This behaviour is both useful and extremely necessary in order for the package to be useful in practice. For instance, you may write
\begin{LTXexample}
$\vf[der=\vn]{\vx}{\vy}{\vz}
=\vg{\vu,\vv,\vw}[3]{
@@ -830,7 +830,7 @@ Let me add that it is possible to create subclasses of existing classes. You jus
},
}
-Let us try to use \semantex to build some commands
+Let us try to use \semantex{} to build some commands
for doing algebra.
As an algebraist, one of the first things you might want to do is to create polynomial rings~\( \vk[poly]{\vx,\vy,\vz} \). Since all variables can already be used as functions (this is a design choice we discussed earlier), all we need to do is find a way to change from using parentheses to square brackets. This can be done the following way:
\begin{lstlisting}
@@ -1054,7 +1054,7 @@ $ \vX[proj quotient={\vchi}{\vG}] $
\section{The \texttt{spar} key}\label{sec:spar}
-The \lstinline!spar! key is one of the most important commands in \semantex at all. To understand why we need it, imagine you want to derive a function \( \vn \)~times and then invert it. Writing something like
+The \lstinline!spar! key is one of the most important commands in \semantex{} at all. To understand why we need it, imagine you want to derive a function \( \vn \)~times and then invert it. Writing something like
\begin{LTXexample}
$\vf[der=\vn,inv]$
\end{LTXexample}
@@ -1331,7 +1331,7 @@ Unfortunately, it only works in~\hologo{LuaTeX}.
If you don't know what \hologo{LuaTeX} is, that means that you are not
using \hologo{LuaTeX}, and you should note that switching is a rather drastic affair
since your existing font settings might very well not work
-with \hologo{LuaTeX}. Also, \semantex does not exactly make your document faster,
+with \hologo{LuaTeX}. Also, \semantex{} does not exactly make your document faster,
and \hologo{LuaTeX} makes it even slower, so think carefully before you make the switch just for this.
In any case, with \pack{stricttex}, you will be able to make brackets \enquote{strict}, which means that any \lstinline![! will be replaced
@@ -1397,7 +1397,7 @@ we need to be able to typeset comorphisms as well as the one hundred thousand di
% sheaf !-pushforward
},
}
-We have added the command \lstinline!no par! to all pullback and pushforward commands since it is custom to write, say,~\( \vf[sheaf pull]{\sheafF} \) rather than~\( \vf[sheaf pull,par]{\sheafF} \). Of course, you can decide that for yourself, and in any case, you can write~\lstinline!\vf[sheaf pull,par]{\sheafF}! if you want to force it to use parentheses in a particular case. Of course, since all \semantex variables can be used as functions, so can whatever these pullback and pushforward operations output. So we may write:
+We have added the command \lstinline!no par! to all pullback and pushforward commands since it is custom to write, say,~\( \vf[sheaf pull]{\sheafF} \) rather than~\( \vf[sheaf pull,par]{\sheafF} \). Of course, you can decide that for yourself, and in any case, you can write~\lstinline!\vf[sheaf pull,par]{\sheafF}! if you want to force it to use parentheses in a particular case. Of course, since all \semantex{} variables can be used as functions, so can whatever these pullback and pushforward operations output. So we may write:
\begin{LTXexample}
For a morphism~$ \vf \colon
\vX \to \vY $ with
@@ -1510,7 +1510,7 @@ $\dif{\vx} = 0$
In branches of mathematics such as homological algebra,
people have very different opinions about the positions of the gradings.
-As an algebraist, I am used to \emph{upper} gradings (\enquote{cohomological} grading), whereas many topologists prefer \emph{lower} gradings (\enquote{homological} grading). The \semantex system
+As an algebraist, I am used to \emph{upper} gradings (\enquote{cohomological} grading), whereas many topologists prefer \emph{lower} gradings (\enquote{homological} grading). The \semantex{} system
supports both, but the default is upper gradings.
You can adjust this by writing
\lstinline!grading position=upper! or~\lstinline!grading position=lower!.
@@ -1593,7 +1593,7 @@ $\vf[d]$, $\vf[d=]$
\end{LTXexample}
As we see, it is only when a \lstinline!d! or~\lstinline!i! key is followed by an equality sign~\lstinline!=!
that the actions of these keys are invoked.
-In fact, \semantex carefully separates keys taking
+In fact, \semantex{} carefully separates keys taking
a value from keys taking no values.
We can similarly define a command for cohomology:
@@ -1814,7 +1814,7 @@ see
\url{https://ctan.org/pkg/leftindex}
\end{center}
-Our solution for left indices in \semantex is based directly on the one
+Our solution for left indices in \semantex{} is based directly on the one
from \pack{leftindex}. However, it works much better if you use \semantex
than if you just used \pack{leftindex} alone, due to the ability to centrally control all your notation. This allows you to choose height and slanting phantoms once and for all in the preamble and never have to worry about it in your document body.
@@ -1855,7 +1855,7 @@ Let us see it in action:
}
$ \vA[upper left=*] $
\end{LTXexample}
-Note that \semantex at least does its best to try to guess
+Note that \semantex{} at least does its best to try to guess
new height and slanting phantoms when you use operations on objects:
\begin{LTXexample}
$ \vA[spar=\Bigg,upper left=*] $,
@@ -1885,8 +1885,8 @@ $ \vP[command=\overline,return,
},
]
-\semantex has facilities for printing tensor products~\( \tensor \) as well as derived tensor products~\( \tensor[der] \).
-This is probably the right time to reveal that \semantex supports multiple class \emph{types}.
+\semantex{} has facilities for printing tensor products~\( \tensor \) as well as derived tensor products~\( \tensor[der] \).
+This is probably the right time to reveal that \semantex{} supports multiple class \emph{types}.
So far, we have been exclusively using the \lstinline!Variable!
class type, which is what you create when you apply the command~\lstinline!\NewVariableClass!.
The first other class type we shall need is the \lstinline!Symbol! class type.
@@ -2146,7 +2146,7 @@ do that would be something like
Indeed, this will work fine for most people.
In fact, the only case where this might cause issues
is if you want to use the \pack{stripsemantex} algorithm to strip
-your document of \semantex markup. But in order to prepare yourself for this possibility, I recommend getting used from the start to doing it
+your document of \semantex{} markup. But in order to prepare yourself for this possibility, I recommend getting used from the start to doing it
in a slightly more cumbersome way:
\begin{lstlisting}
\SemantexRecordObject{\Frac}
@@ -2183,19 +2183,19 @@ in the \lstinline!\Frac!~command.
Therefore, we do three things:
\begin{itemize}
\item We register the command~\lstinline!\Frac!
- as a \semantex command using the
+ as a \semantex{} command using the
line
\begin{lstlisting}
\SemantexRecordObject{\Frac}
\end{lstlisting}
- After this, \semantex \enquote{knows}
+ After this, \semantex{} \enquote{knows}
that \lstinline!\Frac!~is part of the
- family of \semantex markup.
+ family of \semantex{} markup.
\item We use the command~\lstinline!\SemantexRecordSource!
to \enquote{record} the source of the command internally.
This way, \pack{stripsemantex} will know what to look for
when it moves through the document, trying to strip
- it of \semantex markup.
+ it of \semantex{} markup.
It is therefore important that you record
the source exactly like it will be written in
the source.
@@ -2206,7 +2206,7 @@ Therefore, we do three things:
\item We write~\lstinline!\UseClassInCommand\MyVar!
instead of just~\lstinline!\MyVar!
in order to correctly record the output code internally. Roughly speaking, when you use the command~\lstinline!\UseClassInCommand!,
- \semantex \enquote{knows} that the class~\lstinline!\MyVar!
+ \semantex{} \enquote{knows} that the class~\lstinline!\MyVar!
is now used as part of some greater construction.
\end{itemize}
@@ -2410,7 +2410,7 @@ of other situations, like
},
}
-As you can see above, \semantex has a \enquote{waterfall-like} behaviour. It runs keys in the order it receives them. This works fine most of the time, but for some more complicated constructions, it is useful to be able to provide a collection of data in any order,
+As you can see above, \semantex{} has a \enquote{waterfall-like} behaviour. It runs keys in the order it receives them. This works fine most of the time, but for some more complicated constructions, it is useful to be able to provide a collection of data in any order,
and have the system take care of printing them in the right places,
according to how you program the object in the preamble.
For this purpose, we have the \lstinline!parse!~routine.
@@ -2846,12 +2846,12 @@ As you see, we use the \lstinline!d!~key to tell the command what superscript it
\chapter{\texorpdfstring{\texttt{stripsemantex}}{stripsemantex} -- stripping your document of \texorpdfstring{\semantex}{SemanTeX} markup}
-\semantex is a big, heavy package, and it might raise eyebrows if you try using it in submissions to journals. On top of that, \url{arXiv.org}
+\semantex{} is a big, heavy package, and it might raise eyebrows if you try using it in submissions to journals. On top of that, \url{arXiv.org}
is using \TeX~Live~2016 at the time of writing this, and it has
an old version of \LaTeX3 that seems unable to run \semantex.
-To address this issue, \semantex has a companion package,
+To address this issue, \semantex{} has a companion package,
called \pack{stripsemantex}, which allows you to strip the
-\semantex markup from your document and replace it with raw \LaTeX~code.
+\semantex{} markup from your document and replace it with raw \LaTeX~code.
While no such algorithm will ever be perfect, it generally works
very well, even for quite complicated constructions,
as long as you use the package in the \enquote{normal}
@@ -2863,7 +2863,7 @@ the algorithm: \url{https://arxiv.org/abs/2008.04794}.)
The system has the following limitations:
\begin{itemize}
- \item It is currently only able to strip the \semantex markup from your main document (so it will ignore anything in \lstinline!\input{...}! and~\lstinline!\include{...}!). So prior to running \pack{stripsemantex},
+ \item It is currently only able to strip the \semantex{} markup from your main document (so it will ignore anything in \lstinline!\input{...}! and~\lstinline!\include{...}!). So prior to running \pack{stripsemantex},
you should include your entire document body in your
main \texttt{.tex}~file.
\item Partly because of the previous point, no attempt is made to remove
@@ -2871,7 +2871,7 @@ The system has the following limitations:
so commands like \lstinline!\NewObject!, \lstinline!\SetupObject!, and~\lstinline!\SetupClass!
will remain in the document body.
You will then have to remove these yourself afterwards.
- But the \semantex markup itself should be stripped completely from your document.
+ But the \semantex{} markup itself should be stripped completely from your document.
\item As mentioned, as long as you do normal, supported things,
everything should work fine. Non-normal, non-supported
things are tings like
@@ -2880,7 +2880,7 @@ The system has the following limitations:
\end{lstlisting}
\item Things might go wrong if you define new keys
between \lstinline!\begin{document}! and~\lstinline!\end{document}!
- whose definitions make use of other \semantex objects or classes,
+ whose definitions make use of other \semantex{} objects or classes,
since the algorithm will try to strip these from the definitions.
For instance, don't do stuff like this
after~\lstinline!\begin{document}!:
@@ -2902,7 +2902,7 @@ The system has the following limitations:
in order to run. You will be able to replace all of these commands
by other commands and then render the package \pack{semtex}
unnecessary. More on this in \cref{sec:semtex_package}.
- \item When \semantex runs, the content of any argument is being wrapped
+ \item When \semantex{} runs, the content of any argument is being wrapped
between \lstinline!\begingroup! and~\lstinline!\endgroup!. This is part of what
makes it possible to use the command~\lstinline!\SemantexDelimiterSize!.
However, these \lstinline!\begingroup! and~\lstinline!\endgroup! will not appear
@@ -2916,7 +2916,7 @@ $ \def\foo{bar} \va{ \def\foo{barbar} \vx } \foo $
\end{itemize}
As a small proof of concept, this is what the example in the introduction
-would look like when stripped of \semantex markup:
+would look like when stripped of \semantex{} markup:
\begin{lstlisting}
% Same preamble as before.
@@ -2944,8 +2944,8 @@ you can have a look at my latest paper, which was stripped with
\section{The \texttt{semtex} package}\label{sec:semtex_package}
-When you have stripped your document and removed all \semantex package setup, it should be safe to remove
-the loading of \semantex from your preamble.
+When you have stripped your document and removed all \semantex{} package setup, it should be safe to remove
+the loading of \semantex{} from your preamble.
However, the stripping algorithm will automatically
add the following lines to your document right before~\lstinline!\begin{document}!:
\begin{lstlisting}
@@ -2975,7 +2975,7 @@ The package \pack{leftindex} is loaded to take care of any
possible left indices. The package~\pack{graphicx}
is loaded to provide the command~\lstinline!\scalebox!.
This package~\pack{semtex} is a small package whose sole purpose
-is to be loaded by stripped \semantex documents.
+is to be loaded by stripped \semantex{} documents.
All it does is define the four commands
\lstinline!\SemantexLeft!, \lstinline!\SemantexRight!,
\lstinline!\SemantexBullet!, and~\lstinline!\SemantexDoubleBullet!
@@ -3014,7 +3014,7 @@ separate document and compile it with \hologo{LuaTeX}.
Suppose in the following that you \TeX\ document is called~\texttt{mydoc.tex}.
\begin{enumerate}[(1)]
- \item Make sure to collect all of the \semantex markup you want
+ \item Make sure to collect all of the \semantex{} markup you want
stripped in the main document,~\texttt{mydoc.tex}.
Also make sure to follow the recommendations
in \cref{sec:UseClassInCommand}, in case you have created commands
@@ -3028,7 +3028,7 @@ Suppose in the following that you \TeX\ document is called~\texttt{mydoc.tex}.
Because of the previous step, there
will now be a new file, \texttt{mydoc.semtex},
in your folder, where the raw output
- of each \semantex command is stored. In a moment,
+ of each \semantex{} command is stored. In a moment,
\pack{stripsemantex} will use this information to replace
each command by the raw code it outputs.
\item Create another \TeX\ document in the same folder
@@ -3049,7 +3049,7 @@ Suppose in the following that you \TeX\ document is called~\texttt{mydoc.tex}.
After this step, another document will have been created in the same
folder, called~\lstinline!mydoc_prestripped.tex!. It will look just like \texttt{mydoc.tex},
- but in the document body, each \semantex markup command will now
+ but in the document body, each \semantex{} markup command will now
have a command \mylst!\SemantexIDcommand{$\<a unique ID\>$}!
preceding it.
@@ -3059,7 +3059,7 @@ Suppose in the following that you \TeX\ document is called~\texttt{mydoc.tex}.
\item\label{pt:strip_point}
Compile the document~\lstinline!stripdoc.tex! again, this time also \textbf{using \hologo{LuaTeX}}.
- \item After the previous step, some (but usually not all) \semantex markup will have been
+ \item After the previous step, some (but usually not all) \semantex{} markup will have been
removed from the file~\lstinline!mydoc_prestripped.tex!.
If the stripping algorithm has terminated (which it almost never does after a single run), there will now be a new document in your folder,
called~\lstinline!mydoc_stripped.tex!.
@@ -3068,16 +3068,16 @@ Suppose in the following that you \TeX\ document is called~\texttt{mydoc.tex}.
Continue this way until the file \lstinline!mydoc_stripped.tex! appears. It can easily require three or more iterations, but each iteration will usually be faster than the previous one, and eventually, the file~\lstinline!mydoc_stripped.tex! will appear.
(Note that at the point~\ref{pt:strip_point}, \pack{stripsemantex} will also issue a warning if the algorithm has not yet terminated, asking you to repeat the steps \ref{pt:pre_strip_point} and~\ref{pt:strip_point}).
- Note again that your \semantex \textbf{setup}
+ Note again that your \semantex{} \textbf{setup}
will not be removed, so there
will still be commands like \lstinline!\NewObject!,
\lstinline!\SetupObject!, \lstinline!\SetupClass!,~etc.
left. You will then have to remove these few commands from your document manually.
\end{enumerate}
-Apart from the machinery for stripping \semantex markup from documents,
+Apart from the machinery for stripping \semantex{} markup from documents,
the package \pack{stripsemantex} also provides the command~\lstinline!\StripSemantexStripComments!,
-which is in principle completely unrelated to \semantex itself.
+which is in principle completely unrelated to \semantex{} itself.
This command allows you to strip all comments between \lstinline!\begin{document}! and~\lstinline!\end{document}!.
If your document is again called~\lstinline!mydoc.tex!,
you can create the following document and compile it \textbf{with \hologo{LuaTeX}}:
@@ -3137,7 +3137,7 @@ the keys that can be used inside the command~\lstinline!\SemantexSetup! are:
This is mainly relevant when using \lstinline!stripsemantex!.
\end{itemize}
-Apart from this, \semantex has a large collection of keys that are predefined for the class \lstinline!\SemantexBaseObject!.
+Apart from this, \semantex{} has a large collection of keys that are predefined for the class \lstinline!\SemantexBaseObject!.
In the following sections, we include the full list.
\section{Keys for defining and removing keys}
@@ -3599,7 +3599,7 @@ In the following sections, we include the full list.
Adds a double bullet to the \lstinline!d!-index.
\item
- \mylst!slot!, \mylst!-!
+ \mylst!slot!
Adds a slot to the \lstinline!i!-index.
@@ -3917,7 +3917,6 @@ In the following sections, we include the full list.
argument by the \<separator\>.
\item
- \mylst!arg - with other sep={$\<separator\>$}!,
\mylst!arg slot with other sep={$\<separator\>$}!
Adds a slot to the argument, separated from any previous
@@ -3938,14 +3937,14 @@ In the following sections, we include the full list.
by a comma.
\item
- \mylst!arg slot!, \mylst!arg -!
+ \mylst!arg slot!
Adds a slot to the argument,
separated from any previous arguments
by the standard separator.
\item
- \mylst!comma arg slot!, \mylst!comma arg -!
+ \mylst!comma arg slot!
Adds a slot to the argument,
separated from any previous arguments
@@ -4030,20 +4029,20 @@ In the following sections, we include the full list.
any prevous upper index by~\<separator\>.
\item
- \mylst!upper -!, \mylst!upper slot!
+ \mylst!upper slot!
Adds a slot to the upper index,
with no separator from any previous upper index.
\item
- \mylst!sep upper -!, \mylst!sep upper slot!
+ \mylst!sep upper slot!
Adds a slot to the upper index,
separated from any previous upper
index by the default separator.
\item
- \mylst!comma upper -!, \mylst!comma upper slot!
+ \mylst!comma upper slot!
Adds a slot to the upper index,
separated from any previous upper
@@ -4056,7 +4055,6 @@ In the following sections, we include the full list.
By default, this is~\lstinline!{-}!.
\item
- \mylst!upper - with other sep={$\<separator\>$}!,\\
\mylst!upper slot with other sep={$\<separator\>$}!
@@ -4229,20 +4227,20 @@ In the following sections, we include the full list.
any prevous lower index by~\<separator\>.
\item
- \mylst!lower -!, \mylst!lower slot!
+ \mylst!lower slot!
Adds a slot to the lower index,
with no separator from any previous lower index.
\item
- \mylst!sep lower -!, \mylst!sep lower slot!
+ \mylst!sep lower slot!
Adds a slot to the lower index,
separated from any previous lower
index by the default separator.
\item
- \mylst!comma lower -!, \mylst!comma lower slot!
+ \mylst!comma lower slot!
Adds a slot to the lower index,
separated from any previous lower
@@ -4255,7 +4253,6 @@ In the following sections, we include the full list.
By default, this is~\lstinline!{-}!.
\item
- \mylst!lower - with other sep={$\<separator\>$}!,\\
\mylst!lower slot with other sep={$\<separator\>$}!
@@ -4428,20 +4425,20 @@ In the following sections, we include the full list.
any prevous upper left index by~\<separator\>.
\item
- \mylst!upper left -!, \mylst!upper left slot!
+ \mylst!upper left slot!
Adds a slot to the upper left index,
with no separator from any previous upper left index.
\item
- \mylst!sep upper left -!, \mylst!sep upper left slot!
+ \mylst!sep upper left slot!
Adds a slot to the upper left index,
separated from any previous upper left
index by the default separator.
\item
- \mylst!comma upper left -!, \mylst!comma upper left slot!
+ \mylst!comma upper left slot!
Adds a slot to the upper left index,
separated from any previous upper left
@@ -4454,7 +4451,6 @@ In the following sections, we include the full list.
By default, this is~\lstinline!{-}!.
\item
- \mylst!upper left - with other sep={$\<separator\>$}!,\\
\mylst!upper left slot with other sep={$\<separator\>$}!
@@ -4627,20 +4623,20 @@ In the following sections, we include the full list.
any prevous lower left index by~\<separator\>.
\item
- \mylst!lower left -!, \mylst!lower left slot!
+ \mylst!lower left slot!
Adds a slot to the lower left index,
with no separator from any previous lower left index.
\item
- \mylst!sep lower left -!, \mylst!sep lower left slot!
+ \mylst!sep lower left slot!
Adds a slot to the lower left index,
separated from any previous lower left
index by the default separator.
\item
- \mylst!comma lower left -!, \mylst!comma lower left slot!
+ \mylst!comma lower left slot!
Adds a slot to the lower left index,
separated from any previous lower left
@@ -4653,7 +4649,6 @@ In the following sections, we include the full list.
By default, this is~\lstinline!{-}!.
\item
- \mylst!lower left - with other sep={$\<separator\>$}!,\\
\mylst!lower left slot with other sep={$\<separator\>$}!
@@ -4826,20 +4821,20 @@ In the following sections, we include the full list.
any prevous \lstinline!d!-index by~\<separator\>.
\item
- \mylst!d -!, \mylst!d slot!
+ \mylst!d slot!
Adds a slot to the \lstinline!d!-index,
with no separator from any previous \lstinline!d!-index.
\item
- \mylst!sep d -!, \mylst!sep d slot!
+ \mylst!sep d slot!
Adds a slot to the \lstinline!d!-index,
separated from any previous \lstinline!d!-index
by the default separator.
\item
- \mylst!comma d -!, \mylst!comma d slot!
+ \mylst!comma d slot!
Adds a slot to the \lstinline!d!-index,
separated from any previous \lstinline!d!-index
@@ -4852,7 +4847,6 @@ In the following sections, we include the full list.
By default, this is~\lstinline!{-}!.
\item
- \mylst!d - with other sep={$\<separator\>$}!,
\mylst!d slot with other sep={$\<separator\>$}!
Adds a slot to the \lstinline!d!-index, separated
@@ -5024,20 +5018,20 @@ In the following sections, we include the full list.
any prevous \lstinline!i!-index by~\<separator\>.
\item
- \mylst!i -!, \mylst!i slot!
+ \mylst!i slot!
Adds a slot to the \lstinline!i!-index,
with no separator from any previous \lstinline!i!-index.
\item
- \mylst!sep i -!, \mylst!sep i slot!
+ \mylst!sep i slot!
Adds a slot to the \lstinline!i!-index,
separated from any previous \lstinline!i!-index
by the default separator.
\item
- \mylst!comma i -!, \mylst!comma i slot!
+ \mylst!comma i slot!
Adds a slot to the \lstinline!i!-index,
separated from any previous \lstinline!i!-index
@@ -5050,7 +5044,6 @@ In the following sections, we include the full list.
By default, this is~\lstinline!{-}!.
\item
- \mylst!i - with other sep={$\<separator\>$}!,
\mylst!i slot with other sep={$\<separator\>$}!
@@ -5275,14 +5268,14 @@ These are the predefined keys that work inside the argument.
by a comma.
\item
- \mylst!-!, \mylst!slot!
+ \mylst!slot!
Adds a slot to the argument,
separated from any previous argument
by the default separator.
\item
- \mylst!comma -!, \mylst!comma slot!
+ \mylst!comma slot!
Adds a slot to the argument,
separated from any previous argument
@@ -5310,7 +5303,6 @@ These are the predefined keys that work inside the argument.
by~\<separator\>.
\item
- \mylst!- with other sep={$\<separator\>$}! ,
\mylst!slot with other sep={$\<separator\>$}!
Adds a slot to the argument, separated
@@ -5575,8 +5567,8 @@ The following commands are available for programming inside keys, including \lst
\section{The class types}
-The \semantex system uses several different \emph{class types}.
-In fact, all class types are identical internally; the low-level machinery of \semantex does not \enquote{know} what type a class has.
+The \semantex{} system uses several different \emph{class types}.
+In fact, all class types are identical internally; the low-level machinery of \semantex{} does not \enquote{know} what type a class has.
The only difference between the class types is the \emph{input syntax}.
In other words, it determines which arguments an object of that class
can take. The syntax for creating new objects
@@ -5630,7 +5622,7 @@ class types:
\end{lstlisting}
\end{itemize}
-Let me add that \semantex uses a very clear separation between the input syntax and the underlying machinery. Because of this, if the user needs a different kind of class type, it is not very hard to create one. You must simply open the source code of \semantex, find the class you want to modify, and then copy the definition of the command~\mylst!\New$\<Class type\>$Class! and modify it in whatever way you want.
+Let me add that \semantex{} uses a very clear separation between the input syntax and the underlying machinery. Because of this, if the user needs a different kind of class type, it is not very hard to create one. You must simply open the source code of \semantex, find the class you want to modify, and then copy the definition of the command~\mylst!\New$\<Class type\>$Class! and modify it in whatever way you want.
The last class type, called \lstinline!Simple!,
is the class type of the class~\lstinline!\SemantexBaseObject!. This class is pretty useless as all it does is print its symbol, without allowing any keyval syntax. So you simply should not use it.
diff --git a/macros/latex/contrib/semantex/stripsemantex.sty b/macros/latex/contrib/semantex/stripsemantex.sty
index eaa7ea9a82..c674680d6c 100644
--- a/macros/latex/contrib/semantex/stripsemantex.sty
+++ b/macros/latex/contrib/semantex/stripsemantex.sty
@@ -1,5 +1,5 @@
\RequirePackage{xparse}
-\ProvidesExplPackage{stripsemantex}{2021/07/25}{0.511}{}
+\ProvidesExplPackage{stripsemantex}{2021/08/10}{0.512}{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
diff --git a/macros/latex/contrib/spbmark/spbmark.pdf b/macros/latex/contrib/spbmark/spbmark.pdf
index 4f2ab194f9..b230768d68 100644
--- a/macros/latex/contrib/spbmark/spbmark.pdf
+++ b/macros/latex/contrib/spbmark/spbmark.pdf
Binary files differ
diff --git a/macros/latex/contrib/spbmark/spbmark.sty b/macros/latex/contrib/spbmark/spbmark.sty
index d7261565ce..cf81b1c8ef 100644
--- a/macros/latex/contrib/spbmark/spbmark.sty
+++ b/macros/latex/contrib/spbmark/spbmark.sty
@@ -9,7 +9,7 @@
% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}[2018/12/31]
\RequirePackage{xparse,l3keys2e}
-\ProvidesExplPackage{spbmark}{2021/08/09}{1.1b}
+\ProvidesExplPackage{spbmark}{2021/08/10}{1.1c}
{Customize superscripts and subscripts}
\cs_new_protected:Npn \spb_define:n { \keys_define:nn { spbmark } }
@@ -43,7 +43,7 @@
supersub-hshift .dim_set:N = \l__spb_supersub_script_hshift_dim,
supersub-hshift .initial:n = 0pt,
nohshift .meta:n = {super-hshift = 0pt,sub-hshift = 0pt},
- nohvhift .meta:n = {super-vshift = 0pt,sub-vshift = 0pt},
+ novshift .meta:n = {super-vshift = 0pt,sub-vshift = 0pt},
super-format .tl_set:N = \l__spb_super_script_formati_tl,
sub-format .tl_set:N = \l__spb_sub_script_formati_tl,
supersub-format .code:n = \spb_both_format_assign:n {#1},
diff --git a/macros/latex/contrib/spbmark/spbmark.tex b/macros/latex/contrib/spbmark/spbmark.tex
index 835e4ca217..297274d83c 100644
--- a/macros/latex/contrib/spbmark/spbmark.tex
+++ b/macros/latex/contrib/spbmark/spbmark.tex
@@ -6,8 +6,8 @@
{
package = spbmark,
title = the spbmark package,
- version = v1.1b,
- date = 2021/08/09,
+ version = v1.1c,
+ date = 2021/08/10,
authors = Qu Yi,
info = Customize superscript and subscript,
email = quee123@foxmail.com,
diff --git a/macros/latex/contrib/ulthese/README.md b/macros/latex/contrib/ulthese/README.md
index 8b6a6c96d3..436842396a 100644
--- a/macros/latex/contrib/ulthese/README.md
+++ b/macros/latex/contrib/ulthese/README.md
@@ -18,7 +18,7 @@ later version.
## Version
-5.3 (2019-11-29)
+5.3a (2021-08-09)
## Author
diff --git a/macros/latex/contrib/ulthese/ulthese.dtx b/macros/latex/contrib/ulthese/ulthese.dtx
index 7f0567c2a6..0d79080881 100644
--- a/macros/latex/contrib/ulthese/ulthese.dtx
+++ b/macros/latex/contrib/ulthese/ulthese.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2019 Universite Laval
+% Copyright (C) 2021 Universite Laval
%
% This file may be distributed and/or modified under the conditions
% of the LaTeX Project Public License, either version 1.3c of this
@@ -29,7 +29,7 @@
%<class>\NeedsTeXFormat{LaTeX2e}[2009/09/24]
%<class>\ProvidesClass{ulthese}%
%<*class>
- [2019/11/29 v5.3 Universite Laval thesis and memoir class]
+ [2021/08/09 v5.3a Universite Laval thesis and memoir class]
%</class>
%<*driver>
\documentclass[11pt,english,french]{ltxdoc}
@@ -111,7 +111,7 @@
\end{document}
%</driver>
% \fi
-% \CheckSum{0}
+% \CheckSum{914}
% \DoNotIndex{\',\^,\`,\ ,\ae}
% \DoNotIndex{\RequirePackage,\ExecuteOptions,\ProcessOptions}
% \DoNotIndex{\newcommand,\newcommand*}
@@ -277,6 +277,19 @@
% de texte favori et lancer depuis celui-ci la compilation avec
% {\LaTeX}, pdf{\LaTeX}, {\XeLaTeX} ou un autre moteur {\TeX}.
%
+% \changes{5.3a}{2021-08-09}{Ajout à la documentation de la
+% disponibilité d'une archive pour les personnes qui ne disposent
+% pas d'une installation de {\TeX} locale.}
+% \begin{rem}
+% Si vous ne disposez pas d'une version de {\TeX} sur votre poste de
+% travail --- vraisemblablement parce que vous utilisez une
+% plateforme de rédaction en ligne --- téléchargez
+% l'archive |ulthese-sans-tex-local.zip| depuis le
+% \link{https://gitlab.com/vigou3/ulthese/-/releases}{dépôt du
+% projet}. Celle-ci contient tous les fichiers
+% normalement créés lors de l'installation de la classe.
+% \end{rem}
+%
% \section{Utilisation}
%
% La classe est compatible avec les moteurs {\LaTeX} traditionnels
@@ -1263,10 +1276,9 @@
% francais-bst»},
% URL~\url{https://www.ctan.org/pkg/francais-bst/}.
%
-% \bibitem[{Goulet(2016)}]{formation-latex-ul}
-% Goulet, V. 2016, {\selectlanguage{french}\emph{Rédaction avec
+% \bibitem[{Goulet(2020)}]{formation-latex-ul}
+% Goulet, V. 2020, {\selectlanguage{french}\emph{Rédaction avec
% {\LaTeX}}}, document libre sous contrat Creative Commons.
-% ISBN~978-2-9811416-7-5.
% URL~\url{httpss://ctan.org/pkg/formation-latex-ul}.
%
% \bibitem[{Harders(2012)}]{numprint}
@@ -1533,8 +1545,8 @@
% \begin{macro}{nohyperref}
% L'option |nohyperref| permet d'empêcher la classe de charger le
% paquetage \pkg{hyperref}. Cette option peut s'avérer utile pour
-% charger d'autres paquetages comme \pkg{cleverref} ou
-% \pkg{glossaries} avant \pkg{hyperref}.
+% charger d'autres paquetages comme \pkg{cleveref} ou
+% \pkg{glossaries} après \pkg{hyperref}.
% \begin{macrocode}
\DeclareOption{nohyperref}{\UL@hyperreffalse}
% \end{macrocode}
@@ -2594,8 +2606,8 @@
% ^^A Gabarits des parties du document
%<*resume>
\chapter*{Résumé} % ne pas numéroter
-\label{chap:resume} % étiquette pour renvois
-\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap:resume}} % inclure dans TdM
+\label{chap-resume} % étiquette pour renvois
+\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-resume}} % inclure dans TdM
\begin{otherlanguage*}{french}
<Texte du résumé en français. Obligatoire.>
@@ -2604,8 +2616,8 @@
%
%<*abstract>
\chapter*{Abstract} % ne pas numéroter
-\label{chap:abstract} % étiquette pour renvois
-\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap:abstract}} % inclure dans TdM
+\label{chap-abstract} % étiquette pour renvois
+\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-abstract}} % inclure dans TdM
\begin{otherlanguage*}{english}
<Text of English abstract. Optional, but recommended.>
@@ -2614,16 +2626,16 @@
%
%<*remerciements>
\chapter*{Remerciements} % ne pas numéroter
-\label{chap:remerciements} % étiquette pour renvois
-\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap:remerciements}} % inclure dans TdM
+\label{chap-remerciements} % étiquette pour renvois
+\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-remerciements}} % inclure dans TdM
<Texte des remerciements en prose.>
%</remerciements>
%
%<*avantpropos>
\chapter*{Avant-propos} % ne pas numéroter
-\label{chap:avantpropos} % étiquette pour renvois
-\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap:avantpropos}} % inclure dans TdM
+\label{chap-avantpropos} % étiquette pour renvois
+\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-avantpropos}} % inclure dans TdM
<Texte de l'avant-propos. Obligatoire dans une thèse ou un mémoire par
articles.>
@@ -2631,8 +2643,8 @@ articles.>
%
%<*introduction>
\chapter*{Introduction} % ne pas numéroter
-\label{chap:introduction} % étiquette pour renvois
-\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap:introduction}} % inclure dans TdM
+\label{chap-introduction} % étiquette pour renvois
+\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-introduction}} % inclure dans TdM
<Texte de l'introduction. La thèse ou le mémoire devrait normalement
débuter par une introduction. Celle-ci est traitée comme un chapitre
@@ -2641,7 +2653,7 @@ normal, sauf qu'elle n'est pas numérotée.>
%
%<*chapitre>
\chapter{<Titre du chapitre ou de l'article>} % numéroté
-\label{chap:} % étiquette pour renvois (à compléter!)
+\label{chap-} % étiquette pour renvois (à compléter!)
%<articles>\section{Résumé}
%<articles>
@@ -2663,8 +2675,8 @@ normal, sauf qu'elle n'est pas numérotée.>
%
%<*conclusion>
\chapter*{Conclusion} % ne pas numéroter
-\label{chap:conclusion} % étiquette pour renvois
-\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap:conclusion}} % inclure dans TdM
+\label{chap-conclusion} % étiquette pour renvois
+\phantomsection\addcontentsline{toc}{chapter}{\nameref{chap-conclusion}} % inclure dans TdM
<Texte de la conclusion. Une thèse ou un mémoire devrait normalement
se terminer par une conclusion placée avant les annexes, le cas
@@ -2674,7 +2686,7 @@ qu'elle n'est pas numérotée.>
%
%<*annexe>
\chapter{<Titre de l'annexe>} % numérotée
-\label{chap:} % étiquette pour renvois (à compléter!)
+\label{chap-} % étiquette pour renvois (à compléter!)
<Texte de l'annexe.>
%</annexe>
diff --git a/macros/latex/contrib/ulthese/ulthese.pdf b/macros/latex/contrib/ulthese/ulthese.pdf
index 2b2cf1d294..6cc5a94957 100644
--- a/macros/latex/contrib/ulthese/ulthese.pdf
+++ b/macros/latex/contrib/ulthese/ulthese.pdf
Binary files differ