summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-01-11 03:01:35 +0000
committerNorbert Preining <norbert@preining.info>2023-01-11 03:01:35 +0000
commitc1c19023b4b1d43cb874f84df5102b485853e672 (patch)
tree33fc2ba7b333a542ce25eeeb9167ee078dc12ac3 /macros
parentdecba0e4470fd7bfe288f98ee709553fc13014b8 (diff)
CTAN sync 202301110301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/maze/README.md2
-rw-r--r--macros/latex/contrib/maze/maze.pdfbin79265 -> 138099 bytes
-rw-r--r--macros/latex/contrib/maze/maze.sty99
-rw-r--r--macros/latex/contrib/maze/maze.tex149
-rw-r--r--macros/latex/contrib/maze/mazes-picture.pngbin0 -> 44908 bytes
-rw-r--r--macros/latex/contrib/ntgclass/CATALOG8
-rw-r--r--macros/latex/contrib/ntgclass/ChangeLog353
-rw-r--r--macros/latex/contrib/ntgclass/README4
-rw-r--r--macros/latex/contrib/ntgclass/a4.dtx8
-rw-r--r--macros/latex/contrib/ntgclass/a4.ins4
-rw-r--r--macros/latex/contrib/ntgclass/a4.pdfbin256462 -> 274477 bytes
-rw-r--r--macros/latex/contrib/ntgclass/artdoc.pdfbin223019 -> 236128 bytes
-rw-r--r--macros/latex/contrib/ntgclass/brief-sample.pdfbin63097 -> 67243 bytes
-rw-r--r--macros/latex/contrib/ntgclass/brief.dtx4
-rw-r--r--macros/latex/contrib/ntgclass/brief.pdfbin348927 -> 342207 bytes
-rw-r--r--macros/latex/contrib/ntgclass/briefdoc.pdfbin129699 -> 137251 bytes
-rw-r--r--macros/latex/contrib/ntgclass/classdoc.pdfbin131160 -> 141698 bytes
-rw-r--r--macros/latex/contrib/ntgclass/ntgclass.dtx19
-rw-r--r--macros/latex/contrib/ntgclass/ntgclass.ins4
-rw-r--r--macros/latex/contrib/ntgclass/ntgclass.pdfbin486068 -> 470701 bytes
-rw-r--r--macros/latex/contrib/ntgclass/rapdoc.pdfbin202501 -> 213741 bytes
-rw-r--r--macros/latex/contrib/oberdiek/README.md5
-rw-r--r--macros/latex/contrib/oberdiek/aliascnt.pdfbin321657 -> 321661 bytes
-rw-r--r--macros/latex/contrib/oberdiek/bmpsize.pdfbin525985 -> 525983 bytes
-rw-r--r--macros/latex/contrib/oberdiek/centernot.pdfbin304534 -> 304550 bytes
-rw-r--r--macros/latex/contrib/oberdiek/chemarr.pdfbin318493 -> 318488 bytes
-rw-r--r--macros/latex/contrib/oberdiek/classlist.pdfbin298078 -> 298082 bytes
-rw-r--r--macros/latex/contrib/oberdiek/colonequals.pdfbin311534 -> 311531 bytes
-rw-r--r--macros/latex/contrib/oberdiek/dvipscol.pdfbin297228 -> 297238 bytes
-rw-r--r--macros/latex/contrib/oberdiek/engord.pdfbin347366 -> 347356 bytes
-rw-r--r--macros/latex/contrib/oberdiek/enparen.pdfbin332202 -> 332198 bytes
-rw-r--r--macros/latex/contrib/oberdiek/eolgrab.pdfbin346537 -> 346519 bytes
-rw-r--r--macros/latex/contrib/oberdiek/fibnum.pdfbin387260 -> 387245 bytes
-rw-r--r--macros/latex/contrib/oberdiek/flags.pdfbin311396 -> 311387 bytes
-rw-r--r--macros/latex/contrib/oberdiek/holtxdoc.pdfbin333755 -> 333750 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hypbmsec.pdfbin317468 -> 317464 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hypcap.pdfbin310807 -> 310816 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hypgotoe.pdfbin313704 -> 313696 bytes
-rw-r--r--macros/latex/contrib/oberdiek/hyphsubst.pdfbin328769 -> 328767 bytes
-rw-r--r--macros/latex/contrib/oberdiek/ifdraft.pdfbin292649 -> 292634 bytes
-rw-r--r--macros/latex/contrib/oberdiek/iflang.pdfbin344764 -> 344769 bytes
-rw-r--r--macros/latex/contrib/oberdiek/oberdiek.ins1
-rw-r--r--macros/latex/contrib/oberdiek/oberdiek.pdfbin283212 -> 280526 bytes
-rw-r--r--macros/latex/contrib/oberdiek/oberdiek.tex17
-rw-r--r--macros/latex/contrib/oberdiek/pdfcolparallel.pdfbin348845 -> 348841 bytes
-rw-r--r--macros/latex/contrib/oberdiek/pdfcolparcolumns.pdfbin336519 -> 336518 bytes
-rw-r--r--macros/latex/contrib/oberdiek/pdfcrypt.pdfbin337856 -> 337853 bytes
-rw-r--r--macros/latex/contrib/oberdiek/pdfrender.pdfbin413780 -> 413784 bytes
-rw-r--r--macros/latex/contrib/oberdiek/protecteddef.pdfbin336484 -> 336473 bytes
-rw-r--r--macros/latex/contrib/oberdiek/resizegather.pdfbin543577 -> 543573 bytes
-rw-r--r--macros/latex/contrib/oberdiek/rotchiffre.pdfbin345334 -> 345318 bytes
-rw-r--r--macros/latex/contrib/oberdiek/scrindex.pdfbin309280 -> 309275 bytes
-rw-r--r--macros/latex/contrib/oberdiek/setouterhbox.pdfbin358526 -> 358510 bytes
-rw-r--r--macros/latex/contrib/oberdiek/settobox.pdfbin321364 -> 321372 bytes
-rw-r--r--macros/latex/contrib/oberdiek/stackrel.pdfbin310389 -> 310389 bytes
-rw-r--r--macros/latex/contrib/oberdiek/stampinclude.pdfbin304747 -> 304752 bytes
-rw-r--r--macros/latex/contrib/oberdiek/tabularht.pdfbin359286 -> 359279 bytes
-rw-r--r--macros/latex/contrib/oberdiek/tabularkv.pdfbin280511 -> 280510 bytes
-rw-r--r--macros/latex/contrib/oberdiek/telprint.pdfbin331191 -> 331175 bytes
-rw-r--r--macros/latex/contrib/oberdiek/thepdfnumber.pdfbin377480 -> 377482 bytes
-rw-r--r--macros/latex/contrib/oberdiek/twoopt.pdfbin301492 -> 301490 bytes
-rw-r--r--macros/latex/contrib/pdfcolfoot/README.md20
-rw-r--r--macros/latex/contrib/pdfcolfoot/pdfcolfoot.dtx (renamed from macros/latex/contrib/oberdiek/pdfcolfoot.dtx)84
-rw-r--r--macros/latex/contrib/pdfcolfoot/pdfcolfoot.pdf (renamed from macros/latex/contrib/oberdiek/pdfcolfoot.pdf)bin322160 -> 319610 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin852346 -> 858132 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex58
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty24
-rw-r--r--macros/latex/contrib/se2thesis/CHANGELOG.md27
-rw-r--r--macros/latex/contrib/se2thesis/se2colors.dtx373
-rw-r--r--macros/latex/contrib/se2thesis/se2fonts.dtx324
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdfbin1138744 -> 1097568 bytes
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex9
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.dtx891
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.ins17
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.pdfbin381335 -> 339853 bytes
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.tex245
-rw-r--r--macros/luatex/latex/luasseq/README7
-rw-r--r--macros/luatex/latex/luasseq/luasseq.dtx36
-rw-r--r--macros/luatex/latex/luasseq/luasseq.lua26
-rw-r--r--macros/luatex/latex/luasseq/luasseq.pdfbin224059 -> 149438 bytes
80 files changed, 1446 insertions, 1372 deletions
diff --git a/macros/latex/contrib/maze/README.md b/macros/latex/contrib/maze/README.md
index c20c91c791..3e3e0c18f1 100644
--- a/macros/latex/contrib/maze/README.md
+++ b/macros/latex/contrib/maze/README.md
@@ -14,7 +14,7 @@ You can read the package manual for some explanations.
Copyright and License
---------------------
- Copyright (C) 2022 by Sicheng Du <siddsc@foxmail.com>
+ Copyright (C) 2023 by Sicheng Du <siddsc@foxmail.com>
-----------------------------------------------------------------
This work may be distributed and/or modified under the
diff --git a/macros/latex/contrib/maze/maze.pdf b/macros/latex/contrib/maze/maze.pdf
index 3f75e2a64d..4317bfee45 100644
--- a/macros/latex/contrib/maze/maze.pdf
+++ b/macros/latex/contrib/maze/maze.pdf
Binary files differ
diff --git a/macros/latex/contrib/maze/maze.sty b/macros/latex/contrib/maze/maze.sty
index 4401fa6099..aa33dd3068 100644
--- a/macros/latex/contrib/maze/maze.sty
+++ b/macros/latex/contrib/maze/maze.sty
@@ -1,62 +1,73 @@
-% Copyright (C) 2022 by Sicheng Du <siddsc@foxmail.com>
+% Copyright (C) 2023 by Sicheng Du <siddsc@foxmail.com>
% This project is distributed under the LaTeX Project Public License, version 1.3c.
%-------------------------%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{maze}[1.1]
+\ProvidesPackage{maze}[1.2]
\ExplSyntaxOn
-\int_new:N\l_rand
-\int_new:N\l_old \int_new:N\l_new
-\dim_const:Nn\g_size{\linewidth}
+\int_new:N\l_maze_rand_int
+\int_new:N\l_maze_old_int \int_new:N\l_maze_new_int
+\dim_const:Nn\g_maze_size_dim{\linewidth}
+\intarray_new:Nn\g_maze_map_intarray{10000}
+\intarray_new:Nn\g_walls_v_intarray{9900}
+\intarray_new:Nn\g_walls_h_intarray{9900}
\newcommand{\m@ze}[2]{
\sys_gset_rand_seed:n{#2}
- \let\g_map\undefined
- \let\g_walls_v\undefined\let\g_walls_h\undefined
- \intarray_new:Nn\g_map{#1*#1}
- \intarray_new:Nn\g_walls_v{#1*(#1-1)}
- \intarray_new:Nn\g_walls_h{#1*(#1-1)}
+ \intarray_gzero:N\g_maze_map_intarray
+ \intarray_gzero:N\g_walls_v_intarray
+ \intarray_gzero:N\g_walls_h_intarray
\int_step_inline:nn{#1*#1}{
- \intarray_gset:Nnn\g_map{##1}{##1}
+ \intarray_gset:Nnn\g_maze_map_intarray{##1}{##1}
}
\int_step_inline:nn{#1*(#1-1)}{
- \intarray_gset:Nnn\g_walls_v{##1}{1}
- \intarray_gset:Nnn\g_walls_h{##1}{1}
+ \intarray_gset:Nnn\g_walls_v_intarray{##1}{1}
+ \intarray_gset:Nnn\g_walls_h_intarray{##1}{1}
}
\bool_do_until:nn{
- \int_compare_p:nNn{\intarray_item:Nn\g_map{1}}
- ={\intarray_item:Nn\g_map{#1*#1}}
+ \int_compare_p:nNn{\intarray_item:Nn\g_maze_map_intarray{1}}
+ ={\intarray_item:Nn\g_maze_map_intarray{#1*#1}}
}{
- \int_set:Nn\l_rand{\int_rand:n{#1*(#1-1)}}
- \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_v{\l_rand}}{}{
+ \int_set:Nn\l_maze_rand_int{\int_rand:n{#1*(#1-1)}}
+ \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_v_intarray{\l_maze_rand_int}}{}{
\int_compare:nNnTF{
- \intarray_item:Nn\g_map{\l_rand+\int_div_truncate:nn{\l_rand-1}{#1-1}}
+ \intarray_item:Nn\g_maze_map_intarray{
+ \l_maze_rand_int+\int_div_truncate:nn{\l_maze_rand_int-1}{#1-1}
+ }
}={
- \intarray_item:Nn\g_map{
- 1+\l_rand+\int_div_truncate:nn{\l_rand-1}{#1-1}
+ \intarray_item:Nn\g_maze_map_intarray{
+ 1+\l_maze_rand_int+\int_div_truncate:nn{\l_maze_rand_int-1}{#1-1}
}
}{}{
- \int_set:Nn\l_new{
- \intarray_item:Nn\g_map{1+\l_rand+\int_div_truncate:nn{\l_rand-1}{#1-1}}
+ \int_set:Nn\l_maze_new_int{
+ \intarray_item:Nn\g_maze_map_intarray{
+ 1+\l_maze_rand_int+\int_div_truncate:nn{\l_maze_rand_int-1}{#1-1}
+ }
}
- \int_set:Nn\l_old{
- \intarray_item:Nn\g_map{\l_rand+\int_div_truncate:nn{\l_rand-1}{#1-1}}
+ \int_set:Nn\l_maze_old_int{
+ \intarray_item:Nn\g_maze_map_intarray{
+ \l_maze_rand_int+\int_div_truncate:nn{\l_maze_rand_int-1}{#1-1}
+ }
}
- \intarray_gset:Nnn\g_walls_v{\l_rand}{0}
+ \intarray_gset:Nnn\g_walls_v_intarray{\l_maze_rand_int}{0}
\int_step_inline:nn{#1*#1}{
- \int_compare:nNnTF{\l_old}={\intarray_item:Nn\g_map{##1}}
- {\intarray_gset:Nnn\g_map{##1}{\l_new}}{}
+ \int_compare:nNnTF{\l_maze_old_int}={\intarray_item:Nn\g_maze_map_intarray{##1}}
+ {\intarray_gset:Nnn\g_maze_map_intarray{##1}{\l_maze_new_int}}{}
}
}
}
- \int_set:Nn\l_rand{\int_rand:n{#1*(#1-1)}}
- \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_h{\l_rand}}{}{
- \int_compare:nNnTF{\intarray_item:Nn\g_map{\l_rand}}
- ={\intarray_item:Nn\g_map{#1+\l_rand}}{}{
- \int_set:Nn\l_new{\intarray_item:Nn\g_map{#1+\l_rand}}
- \int_set:Nn\l_old{\intarray_item:Nn\g_map{\l_rand}}
- \intarray_gset:Nnn\g_walls_h{\l_rand}{0}
+ \int_set:Nn\l_maze_rand_int{\int_rand:n{#1*(#1-1)}}
+ \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_h_intarray{\l_maze_rand_int}}{}{
+ \int_compare:nNnTF{\intarray_item:Nn\g_maze_map_intarray{\l_maze_rand_int}}
+ ={\intarray_item:Nn\g_maze_map_intarray{#1+\l_maze_rand_int}}{}{
+ \int_set:Nn\l_maze_new_int{
+ \intarray_item:Nn\g_maze_map_intarray{#1+\l_maze_rand_int}
+ }
+ \int_set:Nn\l_maze_old_int{
+ \intarray_item:Nn\g_maze_map_intarray{\l_maze_rand_int}
+ }
+ \intarray_gset:Nnn\g_walls_h_intarray{\l_maze_rand_int}{0}
\int_step_inline:nn{#1*#1}{
- \int_compare:nNnTF{\l_old}={\intarray_item:Nn\g_map{##1}}
- {\intarray_gset:Nnn\g_map{##1}{\l_new}}{}
+ \int_compare:nNnTF{\l_maze_old_int}={\intarray_item:Nn\g_maze_map_intarray{##1}}
+ {\intarray_gset:Nnn\g_maze_map_intarray{##1}{\l_maze_new_int}}{}
}
}
}
@@ -64,18 +75,19 @@
}
\NewDocumentCommand\maze{mO{\c_sys_minute_int}}{
\m@ze{#1}{#2}
- \setlength{\unitlength}{\fp_eval:n{.4/#1}\g_size}
- \begin{picture}(\int_eval:n{#1+2},\int_eval:n{#1+2})(-1,-1)
- \put(0,0){\line(0,1){#1}}\put(0,0){\line(1,0){#1}}
- \put(#1,#1){\line(0,-1){#1}}\put(#1,#1){\line(-1,0){#1}}
+ \setlength{\unitlength}{\fp_eval:n{.4/#1}\g_maze_size_dim}
+ \begin{picture}(#1,#1)(0,0)
+ \put(0,0){\line(0,1){#1}} \put(#1,#1){\line(0,-1){#1}}
+ \put(\int_eval:n{#1-1},#1){\line(-1,0){\int_eval:n{#1-1}}}
+ \put(1,0){\line(1,0){\int_eval:n{#1-1}}}
\int_step_inline:nn{#1*(#1-1)}{
- \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_h{##1}}{}{
+ \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_h_intarray{##1}}{}{
\put(
\int_mod:nn{##1-1}{#1},
\int_eval:n{1+\int_div_truncate:nn{##1-1}{#1}}
){\line(1,0){1}}
}
- \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_v{##1}}{}{
+ \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_v_intarray{##1}}{}{
\put(
\int_mod:nn{##1}{#1-1},
\int_div_truncate:nn{##1-1}{#1-1}
@@ -84,4 +96,5 @@
}
\end{picture}
}
-\ExplSyntaxOff \ No newline at end of file
+\ExplSyntaxOff
+% End of package code \ No newline at end of file
diff --git a/macros/latex/contrib/maze/maze.tex b/macros/latex/contrib/maze/maze.tex
index 0783535bfc..28c6e70a81 100644
--- a/macros/latex/contrib/maze/maze.tex
+++ b/macros/latex/contrib/maze/maze.tex
@@ -1,33 +1,160 @@
\documentclass{ltxdoc}
\title{The \textsf{maze} package\footnote{~~This project is distributed under the \LaTeX~Project Public License, version 1.3c.}}
+\usepackage[margin=2cm]{geometry}
\usepackage{graphicx}
+\usepackage{listings}
+\lstset{
+ basicstyle=\fontspec{Consolas},numbers=left,
+ numberstyle=\small,stepnumber=1,numbersep=5pt
+}
+\usepackage{xcolor}
\usepackage{fontspec}
\setmainfont{Times New Roman}
+\usepackage{indentfirst}
\usepackage[misc]{ifsym}
\author{Sicheng Du\thanks{~~\Letter~~\href{mailto:siddsc@foxmail.com}{siddsc@foxmail.com}}}
-\date{\today~~~~v1.1}
+\date{\today~~~~v1.2}
\usepackage[colorlinks,linkcolor=purple]{hyperref}
\usepackage{maze}
\begin{document}
\maketitle
+\section{Changes in this version}
+Thanks to the \TeX nicians who kindly gave valuable and earnest suggestions to this package, the version 1.2 is now released. The main changes include
+\begin{enumerate}
+\item Corrected some mistakes in this manual;
+\item Modified the format in the source code to improve compatibility;
+\item Improved the output map of the maze to make it clearer.
+\end{enumerate}
+\section{User instructions}
The \textsf{maze} package can generate random square mazes of a specified size. You need to start from the bottom-left corner and reach the top-right corner to play it.
\begin{macro}{\maze}
\marg{size}\oarg{seed} is the syntax of the command that generates a maze. Thereinto
\begin{description}
-\item[\marg{size}] controls the density of the walls inside the maze and directly influences its complexity. It must be a positive integer greater or equal to 2.
+\item[\marg{size}] controls the density of the walls inside the maze and directly influences its complexity. It must be a positive integer in the range \textbf{[2,100]}.
-To have the package produce a satisfactory outcome, it is recommended to input a number between 20 and 30 into \marg{text}. Over large numbers may cause \TeX~to exhaust its capacity and fail to produce anything.
+To have the package produce a satisfactory output, it is recommended to input a number between 20 and 50 into \marg{text}. Over large numbers may cause \TeX~to exhaust its capacity and fail to produce anything.
\item[\oarg{seed}] is an optional parameter that specifies the seed for random numbers. If it is omitted, the current time (minute) will be used as the seed instead.
\end{description}\end{macro}
-As an example, the following can be created by \cs{maze{30}[4]} and \cs{maze{20}[6]} respectively.
+As an example, the mazes in Figure \ref{fig:mazes} can be created by \cs{maze\{30\}[4]}, \cs{maze\{20\}[7]} and \cs{maze\{25\}}\footnote{This maze is likely to look different because of the difference of compiling time.} respectively.
\begin{figure}[h]
-\begin{minipage}{.5\textwidth}
-\maze{30}[4]
-\end{minipage}\hfill
-\begin{minipage}{.5\textwidth}
-\maze{20}[6]
-\end{minipage}
+\centering
+\maze{30}[4]\hfill\maze{20}[7]\hfill\maze{25}
+\caption{Examples of mazes}\label{fig:mazes}
\end{figure}
-\eject
+\clearpage
+\section{Code implementation}
+This package uses the \textsf{expl3} programming layer. Under the scope of \cs{ExplSyntaxOn} we first define some variables
+\begin{lstlisting}[firstnumber=7]
+\int_new:N\l_maze_rand_int % the random variable
+\int_new:N\l_maze_old_int \int_new:N\l_maze_new_int
+\dim_const:Nn\g_maze_size_dim{\linewidth} % store the line width
+\intarray_new:Nn\g_maze_map_intarray{10000} % map of the maze
+\intarray_new:Nn\g_walls_v_intarray{9900} % existence of vertical
+\intarray_new:Nn\g_walls_h_intarray{9900} % /horizontal walls
+\end{lstlisting}
+
+The internal command is defined as \cs{m@ze}. Starting with variable initialization,
+\begin{lstlisting}[firstnumber=last]
+\newcommand{\m@ze}[2]{
+ \sys_gset_rand_seed:n{#2}
+ \intarray_gzero:N\g_maze_map_intarray
+ \intarray_gzero:N\g_walls_v_intarray
+ \intarray_gzero:N\g_walls_h_intarray
+ \int_step_inline:nn{#1*#1}{
+ \intarray_gset:Nnn\g_maze_map_intarray{##1}{##1}
+ }
+ \int_step_inline:nn{#1*(#1-1)}{
+ \intarray_gset:Nnn\g_walls_v_intarray{##1}{1}
+ \intarray_gset:Nnn\g_walls_h_intarray{##1}{1}
+ }
+\end{lstlisting}
+
+Then we apply the \textit{Kruskal} algorithm to the intarray-based variant of the \textit{Union-find set}. Our loop should end when the beginning and finishing cells are connected. (so that a path exists)
+\begin{lstlisting}[firstnumber=last]
+ \bool_do_until:nn{
+ \int_compare_p:nNn{\intarray_item:Nn\g_maze_map_intarray{1}}
+ ={\intarray_item:Nn\g_maze_map_intarray{#1*#1}}
+ }{
+ \int_set:Nn\l_maze_rand_int{\int_rand:n{#1*(#1-1)}}
+ \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_v_intarray{\l_maze_rand_int}}{}{
+ \int_compare:nNnTF{
+ \intarray_item:Nn\g_maze_map_intarray{
+ \l_maze_rand_int+\int_div_truncate:nn{\l_maze_rand_int-1}{#1-1}
+ }
+ }={
+ \intarray_item:Nn\g_maze_map_intarray{
+ 1+\l_maze_rand_int+\int_div_truncate:nn{\l_maze_rand_int-1}{#1-1}
+ }
+ }{}{
+ \int_set:Nn\l_maze_new_int{
+ \intarray_item:Nn\g_maze_map_intarray{
+ 1+\l_maze_rand_int+\int_div_truncate:nn{\l_maze_rand_int-1}{#1-1}
+ }
+ }
+ \int_set:Nn\l_maze_old_int{
+ \intarray_item:Nn\g_maze_map_intarray{
+ \l_maze_rand_int+\int_div_truncate:nn{\l_maze_rand_int-1}{#1-1}
+ }
+ }
+ \intarray_gset:Nnn\g_walls_v_intarray{\l_maze_rand_int}{0}
+ \int_step_inline:nn{#1*#1}{
+ \int_compare:nNnTF{\l_maze_old_int}={\intarray_item:Nn\g_maze_map_intarray{##1}}
+ {\intarray_gset:Nnn\g_maze_map_intarray{##1}{\l_maze_new_int}}{}
+ }
+ }
+ }
+ \int_set:Nn\l_maze_rand_int{\int_rand:n{#1*(#1-1)}}
+ \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_h_intarray{\l_maze_rand_int}}{}{
+ \int_compare:nNnTF{\intarray_item:Nn\g_maze_map_intarray{\l_maze_rand_int}}
+ ={\intarray_item:Nn\g_maze_map_intarray{#1+\l_maze_rand_int}}{}{
+ \int_set:Nn\l_maze_new_int{
+ \intarray_item:Nn\g_maze_map_intarray{#1+\l_maze_rand_int}
+ }
+ \int_set:Nn\l_maze_old_int{
+ \intarray_item:Nn\g_maze_map_intarray{\l_maze_rand_int}
+ }
+ \intarray_gset:Nnn\g_walls_h_intarray{\l_maze_rand_int}{0}
+ \int_step_inline:nn{#1*#1}{
+ \int_compare:nNnTF{\l_maze_old_int}={\intarray_item:Nn\g_maze_map_intarray{##1}}
+ {\intarray_gset:Nnn\g_maze_map_intarray{##1}{\l_maze_new_int}}{}
+ }
+ }
+ }
+ }
+}
+\end{lstlisting}
+
+Lastly, we finish off by defining the user command, which outputs a map of the maze. To set the size and draw the boundaries,
+\begin{lstlisting}[firstnumber=last]
+\NewDocumentCommand\maze{mO{\c_sys_minute_int}}{
+ \m@ze{#1}{#2}
+ \setlength{\unitlength}{\fp_eval:n{.4/#1}\g_maze_size_dim}
+ \begin{picture}(#1,#1)(0,0)
+ \put(0,0){\line(0,1){#1}} \put(#1,#1){\line(0,-1){#1}}
+ \put(\int_eval:n{#1-1},#1){\line(-1,0){\int_eval:n{#1-1}}}
+ \put(1,0){\line(1,0){\int_eval:n{#1-1}}}
+\end{lstlisting}
+
+We extract from \cs{g\_walls\_h\_intarray} and \cs{g\_walls\_v\_intarray} and draw a line wherever a wall exists.
+\begin{lstlisting}[firstnumber=last]
+ \int_step_inline:nn{#1*(#1-1)}{
+ \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_h_intarray{##1}}{}{
+ \put(
+ \int_mod:nn{##1-1}{#1},
+ \int_eval:n{1+\int_div_truncate:nn{##1-1}{#1}}
+ ){\line(1,0){1}}
+ }
+ \int_compare:nNnTF{0}={\intarray_item:Nn\g_walls_v_intarray{##1}}{}{
+ \put(
+ \int_mod:nn{##1}{#1-1},
+ \int_div_truncate:nn{##1-1}{#1-1}
+ ){\line(0,1){1}}
+ }
+ }
+ \end{picture}
+}
+\ExplSyntaxOff
+% End of package code
+\end{lstlisting}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/maze/mazes-picture.png b/macros/latex/contrib/maze/mazes-picture.png
new file mode 100644
index 0000000000..d742860de5
--- /dev/null
+++ b/macros/latex/contrib/maze/mazes-picture.png
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/CATALOG b/macros/latex/contrib/ntgclass/CATALOG
index 93091087a6..bde215d214 100644
--- a/macros/latex/contrib/ntgclass/CATALOG
+++ b/macros/latex/contrib/ntgclass/CATALOG
@@ -1,7 +1,7 @@
Name: ntgclass
-Problems-To: texniek@braams.texniek.nl
+Problems-To: texniek@texniek.nl
Author: J.L. Braams and V. Eijkhout
-Version: 2.2-patch level 5
+Version: 2.2-patch level 6
Description:
@@ -20,6 +20,6 @@ See-Also:
Address:
TeXniek
-Kersengaarde 33
-2723 BP Zoetermeer
+Vfroomshoopseweg 12a
+7683 RL Den Ham
The Netherlands
diff --git a/macros/latex/contrib/ntgclass/ChangeLog b/macros/latex/contrib/ntgclass/ChangeLog
deleted file mode 100644
index adf4f7b4d7..0000000000
--- a/macros/latex/contrib/ntgclass/ChangeLog
+++ /dev/null
@@ -1,353 +0,0 @@
-2020-11-17 Johannes Braams <texniek at braams.xs4all.nl>
-
- * ntgclass.dtx: Removed a superfluous closing brace that broke
- the oldtoc option.
-
-2020-02-22 Johannes Braams <texniek at braams.xs4all.nl>
-
- * ntgclass.dtx: The mechanism to work around the hyperref code
- being injected int the tabel of contents lines needed to be
- changed. There's a fourth token to jump over and the use of
- \MakeUppercase instead of \uppercase in the toc-lines for parts
- (rapport and boek classes) needed a different approach, made the
- hyperref copmmand robust and protected it with \lowercase.
-
-2020-02-18 Johannes Braams <texniek at braams.xs4all.nl>
-
- * brief.dtx: Update to change copyright notice and address
- information; synchronised with the standard document classes.
-
- * a4.dtx: Update to change copyright notice and address
- information.
-
-2020-02-18 Johannes Braams <texniek at braams.xs4all.nl>
-
- * ntgclass.dtx: Update to synchronize with classes.dtx
-
-2004-08-17 Johannes Braams <texniek at braams.xs4all.nl>
-
- * ntgclass.dtx: Various changes involving no longer passing
- \toc@font and \toc@case settings through the .aux file because
- they break when the hyperref package is used.
- Fixed a bug in the toc-entry for \part: the spacing was wrong and
- the pagenumber was put on a line by itself.
-
-2004-06-07 Johannes Braams <texniek at braams.xs4all.nl>
-
- * ntgclass.dtx : updated version to 2.1a as 2.0z should be the
- last, but no major changes, added a missing fix related to pr3285
-
-2004-02-20 Johannes Braams <texniek at braams.xs4all.nl>
-
- * ntgclass.dtx: various changes to sychronise with classes.dtx,
- mostly fixes for Problem reports in the bugs database
-
-Tue Sep 9 00:43:15 1997 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx: Repaired a few documentation buglets.
-
- * brief.dtx : Added a few extra command synonimes, suggested by
- Wybo Dekker (wybo at servaly.hobby.nl)
- (subsubsection{The address window}): Put the \textbullet in a
- group to keep the font change local
- (subsubsection{The little rules}): Make the rules slightly thinner
- and modify their position a little
- (subsubsection{Page breaking control}): Added a \leavevmode in
- \@afsluiting to make \afsluiting work as documented.
- (subsection{Footnotes}): The footnotemarker should appear
- different in the text from in the footnotes themselves, changed
- definition of \@makefntext and use default \@makefnmark
-
-Tue Apr 1 00:15:34 1997 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx (subsection{Footnotes}): Mixed the syntac for \def
- and \newcommand (had #1 instead of [1]).
- Found by Thorsten Schwander (schwander at ooo.lanl.gov)
-
-Sun Mar 2 00:17:17 1997 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx (subsection{The title}): Use \textendash instead of
- -- in label in footnotes on the titlepage.
- (subsubsection{Itemize}): Now also \textasteriskcentered instead
- of using math
- (subsubsection{Equation and eqnarray}): Added test for chapter 0
- in the definition of \theequation inb rapport and boek classes
- (following classes.dtx)
- (subsubsection{Figure}): Added test for chapter 0
- (subsubsection{tabel}): Added test for chapter 0
-
-Mon Sep 23 23:12:21 1996 Johannes Braams (texniek at braams.xs4all.nl)
-
- * brief.dtx (subsubsection{Itemize}): Replaced --, $\bullet$
- and $\cdot$ with \text... commands, following a change in the
- LaTeX classes.
-
- * ntgclass.dtx (subsubsection{Itemize}): Replaced --, $\bullet$
- and $\cdot$ with \text... commands, following a change in the
- LaTeX classes.
- (chapter*{...}): Changed \@xsect and \@ssect to follow a change in
- the june 1996 release fo LaTeX which allows commands with an
- argument in the last argument of \@sartsection.
-
-Mon Apr 1 19:26:32 1996 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx : use \renewcommand rather than \newcommand to
- define \newblock
- (subsection{Font changing}): Removed suerfluous
- closing braces
- (subsection{Footnotes}): Repaired definition of \@xmakefntext (it
- had #1 in a \newcommand
-
- * brief.dtx (subsubsection{The address window}): Repaired a typo
- (\parksip instead of \parskip
-
-Sun Mar 31 23:25:10 1996 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx : Added \CodelineIndex to the driver in order
- to really produce a .idx file for the index.
-
-Wed Mar 27 22:57:57 1996 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dst: Update to make use of the new docstrip
- possibillity to produce multiple files in one go.
-
-Wed Nov 29 00:19:36 1995 Johannes Braams (texniek at braams.xs4all.nl)
-
- * brief.dtx (subsubsection{The reference line}): Also set
- \parindent to zero in \@refveld
- (subsubsection{The address window}): Set both \parksip and
- \parindent to zero inside the \adresveld
-
-Thu Oct 5 22:29:06 1995 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx (subsection{The title}): Disable some more of the
- commands that are only needed for \maketitle; empty internal
- storage macros.
- (subsection{Open bibliography}): openbib option reimplemented
- Brought in sinc again with classes.dtx
-
-Tue Aug 22 23:57:27 1995 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx : Added missing braces around negative arguments to
- \addpenalty; make l@part only do something when \c@tocdepthd>-2.
-
-Thu Aug 10 01:04:30 1995 Johannes Braams (texniek at braams.xs4all.nl)
-
- * brief.dtx : Brought up-to-date with LaTeX's letter.dtx in order
- to make the classes run with LaTeX <1995/06/01>
-
- * ntgclass.dtx : Brought up-to-date with LaTeX's classes.dtx in
- order to make the classes run with LaTeX <1995/06/01>
-
-Sun May 7 23:45:33 1995 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx (subsection{Chapters and Sections}): Added \erlax
- to the definition of \@svsec as a result of LaTeX pr/1596
-
-Fri Jan 6 14:09:51 1995 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx (subsection{Chapters and Sections}): Changed
- {\baselineskip\@plus... to
- {1\baselineskip\@plus... in the defintion of \subsection and
- \subsubsection in artikel2.
- Found by Dick Snippe (D.M.Snippe at el.utwente.nl)
- (subsubsection{Building blocks}): Use \protected@edef instead of
- the juggling with redefining \protect.
-
-Sat Dec 31 16:31:12 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * brief.dtx (subsubsection{Page breaking control}): The printing
- of the closing text generated an overfull hbox message. Removed
- the extra \hbox (width \textwidth) inside the \parbox of width
- .5\textwidth.
-
-Fri Dec 30 14:25:00 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * brief.dtx (subsection{Words}): Repaired a small typo (a bracket
- was used instead of a brace)
-
- * ntgclass.dtx: Repaired a number of typos that prevented
- artikel2.cls from functioning properly.
-
- * brief.dtx (section{Executing Options}): Added a \relax after
- \ProcessOptions to prevent the \ifcase to be `eaten' in the search
- for a *.
-
-Fri Dec 23 21:48:47 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * brief.dtx: Use \newcommand* instead of \newcommand in most
- places.
- (subsection{Customizing the labels}): Redefined \mlabel to use the
- new \parbox syntax instead of using the \setbox primitive.
- (subsection{Font changing}): Define \cal and \mit using
- \DeclareRobustCommand
- (subsection{The generic letter commands}): Use
- \let\protect\@unexpandable@protect instead of redefining it.
-
- * ntgclass.dtx: More updates to go with the december 1994 release
- of LaTeX.
- - Made the oneside option work for the boek class (LaTeX PR
- #1195)
- (section{Initial Code}): Moved the allocation of
- \if@mainmatter to this section in order to let it be known when
- the pagestyles are defined. The switch is used there and needs to
- be known then; otherwise TeX finds the wrong \fi in an
- \if@twoside...\else...\fi construct.
-
-Tue Dec 20 01:52:12 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx: Updates to go with the december 1994 release of
- LaTeX.
- - Use \newcommand* cs.
- - Set the \@minipage flag in the caption
- (subsubsection{Margins}): Moved the rounding of \topmargin into
- native mode only (LaTeX PR #93)
- (section{Cross Referencing}): Fixed a typo in the documentation of
- \@tocrmarg. (LaTeX PR #904)
- (subsection{Single or double sided printing}): removed typo (LaTeX
- PR #881)
- (subsubsection{Chapters}): Made chapter titles more robust against
- pagebreaks in the middle of them. Added an extra \nobreak but not
- the extra \interlinepenalty\@M lines as that is taken care of by
- \head@style (LaTeX PR #1016, #1135)
- (subsection{Font changing}): Define \cal and \mit using
- \DeclareRobustCommand
- (the driver): use \newcommand* for shorthands with argument
- (whole file): Use \newcommand* for commands with arguments
-
-Tue Oct 4 00:12:26 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * brief.dtx (section{The documentation driver file}): Added a
- missing comma in the \DoNotIndex list
-
-Tue Jul 12 22:45:13 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * brief.dtx (subsubsection{Defining the page styles}): Removed the
- typo in \@othertheadheight
-
-Mon Jul 11 23:25:48 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * brief.dtx (subsubsection{Itemize}): \labelitemiii was
- mistakenly called \labelitemiiii (LaTeX bug report # 711)
-
- * ntgclass.dtx (subsection{Paragraphing}): The definition of the
- dimension \othermargin was erroneously left out of type2 document
- classes.
- (subsection{Footnotes}): Moved the `.' that appeared in the
- definition of \@xmakefntext to the definition of \@makefntext.
- This should prevent it from appearing in a footnote produced by
- \thanks.
-
-Wed Jun 15 22:19:45 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * brief.dtx (section{The documentation driver file}): Reorder the
- DoNotIndex list. Removed remnant from letter.dtx, now get the
- file info from bief.dtx and also typeset brief.dtx instead of
- trying to typeset letter.dtx.
-
-
-Wed Jun 8 13:16:41 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx (section{The documentation driver file}): The
- documentation didn't run; had to shuffle some entries in
- \DoNotIndex lines.
-
- * artdoc.tex (subsection{Fonts in sectiekoppen}): Added a missing
- brace
-
- * ntgclass.dtx (subsubsection{Chapters}): Removed yet another
- carriage return that caused \if@mainmatter to end up in the
- rapport classes.
-
-Mon Jun 6 00:03:19 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * brief.dtx (subsection{Global Declarations}): Using \newcommand
- for internal storage macros causes the test against \@empty to
- fail; a nempty long macro is not the same as an empytt macro. This
- happened to \fromsig and \@subject.
-
-Fri Jun 3 14:25:27 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx (subsubsection{Chapters}): Removed a carriage
- return behind %<+boek> which caused \f@mainmatter to end up in the
- rapport classes.
-
- * brief.dtx: Finished upgrading for LaTeX2e
-
- * briefdoc.tex: Updated for latex2e and the use of the babel
- package. Contents may not be correct with the new version of the
- code.
-
- * rapdoc.tex: Updated for latex2e and the use of the babel
- package. Contents may not be correct with the new version of the
- code.
-
- * artdoc.tex: Updated for latex2e and the use of the babel
- package. Contents may not be correct with the new version of the
- code.
-
-Fri Jun 3 00:27:27 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx (section{Identification}): The size files claimed
- to have a name that starts with `size'; changed to `ntg'.
-
- * ntgclass.dst: Added the stripping of brief.
-
-Thu Jun 2 00:30:21 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx (subsection{The title}): Added check on number of
- columns in use locally
- (section{Identification}): Fixed bug that prevented LaTeX from
- seeing the \ProvideFile command in the driver
-
-Wed Jun 1 14:15:21 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx: Added \Charactertable
- Moved the identification and driver sections to the start of the
- file; they no longer print.
- Added 'v' to changes entries; wrapped some long lines.
- (subsubsection{Captions}): Use \sbox\@tempboxa instead of
- \setbox\@tempboxa\hbox to make @makecaption color safe.
- (subsection{The title}): The boek classes always havve a
- titlepage, forgot to remove the code for the \else part of
- \if@titlepage.
- (section*{\contentsname): Added a missing backslash
-
-Mon Apr 18 12:45:43 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx (subsection{Fonts}): The size changing commands are
- no longer defined in the kernel. Use \newcommand instead of
- \renewcommand.
- (subsection{Font changing}): \@renewfontswitch has gone;
- \@newfontswitch has become \DeclareOldFontCommand
- Synchronized with the changes to classes.dtx
-
-Sun Mar 20 00:53:17 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dst: Removed production of the documentation driver.
-
- * ntgclass.dtx (section{Identification}): Removed the use of
- \typeout statements as \Provides... does that now.
- (section{The {\sc docstrip} modules}): This section added.
- (section{The documentation driver file}): Moved this section to
- the front in order not to need a searate driver.
-
-Sat Mar 19 17:40:24 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * ntgclass.dtx (subsubsection{Captions}): The \CaptionLabelFont
- shouldn't influence the font in which the caption text comes out.
- PUt a group around the label.
-
- * ntgclass.dst: Removed \TopLevel, a remnant from classes.dst
-
- * ntgclass.dtx (subsubsection{Abstract}): Treat the abstract like
- a section and use \SectFont for the title.
-
-Tue Mar 15 11:54:32 1994 Johannes Braams (texniek at braams.xs4all.nl)
-
- * a4.dtx (subsection{The code}): The name of a package and the
- name of the file should be the same.
-
- (subsection{The code}): Added \ProcessOptions and moved it to the
- end of the package.
-
diff --git a/macros/latex/contrib/ntgclass/README b/macros/latex/contrib/ntgclass/README
index 59c915dc6b..5d25d0c913 100644
--- a/macros/latex/contrib/ntgclass/README
+++ b/macros/latex/contrib/ntgclass/README
@@ -1,6 +1,6 @@
NTG document classes distribution
- 17 November 2020
+ 10 January 2023
This file contains the distribution guide for the new version
of the NTG document classes and the A4 package.
@@ -25,4 +25,4 @@ Please do not request updates from us. Distribution is done only
through mail servers and TeX organisations.
---- Copyright 1994-2020 NTG. All rights reserved ---
+--- Copyright 1994-2023 NTG. All rights reserved ---
diff --git a/macros/latex/contrib/ntgclass/a4.dtx b/macros/latex/contrib/ntgclass/a4.dtx
index e480bfbde9..d2a87d26b6 100644
--- a/macros/latex/contrib/ntgclass/a4.dtx
+++ b/macros/latex/contrib/ntgclass/a4.dtx
@@ -1,6 +1,6 @@
% \iffalse
%
-% Copyright (C) 1994 -- 2020 by Nederlandstalige TeX Gebruikersgroep.
+% Copyright (C) 1994 -- 2023 by Nederlandstalige TeX Gebruikersgroep.
%
% This file is part of the NTG document classes distribution
% ----------------------------------------------------------
@@ -41,7 +41,7 @@
\ProvidesFile{a4.dtx}
%</dtx>
%<package>\ProvidesPackage{a4}
- [2020/02/18 v1.2g A4 based page layout]
+ [2023/01/10 v1.2g A4 based page layout]
%
% Copying of this file is authorized only if either
% (1) you make absolutely no changes to your copy, including name, or
@@ -52,7 +52,7 @@
%
% Error reports for UNCHANGED versions please to:
% J.L. Braams
-% texniek at braams.xs4all.nl
+% texniek at texniek.nl
% or: N.A.F.M. Poppelier
% N.Poppelier@elsevier.nl
%
@@ -90,7 +90,7 @@
% Johannes Braams\\
% \TeX niek\\
% Zoetermeer\\
-% \texttt{JLBraams@texniek@braams.xs4all.nl}}
+% \texttt{texniek@texniek.nl}}
%
% \date{Printed \today}
%
diff --git a/macros/latex/contrib/ntgclass/a4.ins b/macros/latex/contrib/ntgclass/a4.ins
index 09300056a7..32e717b676 100644
--- a/macros/latex/contrib/ntgclass/a4.ins
+++ b/macros/latex/contrib/ntgclass/a4.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2020
+%% Copyright (C) 1993-2023
%% The Nederlandstalige TeX Gebruikersgroep and any individual
%% authors listed elsewhere in this file.
%%
@@ -42,7 +42,7 @@
\preamble
This is a generated file.
-Copyright (C) 1990-2020 Nederlandstalige TeX Gebruikersgroep.
+Copyright (C) 1990-2023 Nederlandstalige TeX Gebruikersgroep.
All rights reserved.
This file was generated from file(s) of the NTG document classes distribution.
diff --git a/macros/latex/contrib/ntgclass/a4.pdf b/macros/latex/contrib/ntgclass/a4.pdf
index 91bdbe4bcc..6fee1a4e82 100644
--- a/macros/latex/contrib/ntgclass/a4.pdf
+++ b/macros/latex/contrib/ntgclass/a4.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/artdoc.pdf b/macros/latex/contrib/ntgclass/artdoc.pdf
index 8eb6e01ad3..b75e1be554 100644
--- a/macros/latex/contrib/ntgclass/artdoc.pdf
+++ b/macros/latex/contrib/ntgclass/artdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/brief-sample.pdf b/macros/latex/contrib/ntgclass/brief-sample.pdf
index 480f0947b8..e20cb4abca 100644
--- a/macros/latex/contrib/ntgclass/brief-sample.pdf
+++ b/macros/latex/contrib/ntgclass/brief-sample.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/brief.dtx b/macros/latex/contrib/ntgclass/brief.dtx
index fcc32e4e84..fa7f6e9223 100644
--- a/macros/latex/contrib/ntgclass/brief.dtx
+++ b/macros/latex/contrib/ntgclass/brief.dtx
@@ -1,6 +1,6 @@
% \iffalse
%
-% Copyright (C) 1994 -- 2020 by Nederlandstalige TeX Gebruikersgroep.
+% Copyright (C) 1994 -- 2023 by Nederlandstalige TeX Gebruikersgroep.
% Based on letter.dtx version 1.3a
%
% Copyright (C) 1994 LaTeX3 project, Frank Mittelbach
@@ -47,7 +47,7 @@
%<*driver>
\ProvidesFile{brief.drv}
%</driver>
- [2020/02/18 v2.0s
+ [2023/01/10 v2.0s
%<+brief> NTG LaTeX document class]
% \end{macrocode}
%
diff --git a/macros/latex/contrib/ntgclass/brief.pdf b/macros/latex/contrib/ntgclass/brief.pdf
index 80590ff0f9..0fe405eb5c 100644
--- a/macros/latex/contrib/ntgclass/brief.pdf
+++ b/macros/latex/contrib/ntgclass/brief.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/briefdoc.pdf b/macros/latex/contrib/ntgclass/briefdoc.pdf
index 3cf449999d..171f783b5e 100644
--- a/macros/latex/contrib/ntgclass/briefdoc.pdf
+++ b/macros/latex/contrib/ntgclass/briefdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/classdoc.pdf b/macros/latex/contrib/ntgclass/classdoc.pdf
index d799c88e66..859038f7f7 100644
--- a/macros/latex/contrib/ntgclass/classdoc.pdf
+++ b/macros/latex/contrib/ntgclass/classdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/ntgclass.dtx b/macros/latex/contrib/ntgclass/ntgclass.dtx
index 233a01d19f..e4abdf8cd9 100644
--- a/macros/latex/contrib/ntgclass/ntgclass.dtx
+++ b/macros/latex/contrib/ntgclass/ntgclass.dtx
@@ -1,6 +1,6 @@
% \iffalse
%
-% Copyright (C) 1994 -- 2020 by Nederlandstalige TeX Gebruikersgroep.
+% Copyright (C) 1994 -- 2023 by Nederlandstalige TeX Gebruikersgroep.
% Based on classes.dtx
% Copyright (C) 1999 LaTeX3 project, all rights reserved.
%
@@ -27,7 +27,7 @@
% extension .ins) which are part of the distribution.
%
% \fi
-% \CheckSum{3782}
+% \CheckSum{3793}
%\iffalse
% \section{Identification}
%
@@ -59,7 +59,7 @@
%<*driver>
\ProvidesFile{ntgclass.drv}
%</driver>
- [2020-11-17 v2.1e
+ [2023-01-10 v2.1f
%<artikel|rapport|boek> NTG LaTeX document class]
%<10pt|11pt|12pt> NTG LaTeX file (size option)]
% \end{macrocode}
@@ -182,7 +182,7 @@
%
% \author{%
% Copyright (C) 1992 by Leslie Lamport \and
-% Copyright (C) 1994-2020 by Victor Eijkhout \and Johannes Braams
+% Copyright (C) 1994-2023 by Victor Eijkhout \and Johannes Braams
% }
% \date{\filedate}
%
@@ -4558,11 +4558,18 @@
% around the second argument.
% \changes{v2.1b}{2004/08/16}{Introduce a separarte macro
% \cs{toc@fontsel}}
-% \changes{v2.1c}{2020/02/22}{We need to jump another tolken, so we
+% \changes{v2.1c}{2020/02/22}{We need to jump another token, so we
% need 4 arguments to accomplish that}
+% \changes{v2.1f}{2023-01-10}{The fix in 2.1c was buggy without
+% hyperref; aply proposal by Piet van Oostrum to explicitly test
+% for hyperref}
% \begin{macrocode}
\newcommand*\toc@font[4]{%
- #2{#3}#4\toc@fontsel#1}
+ \ifx\Hy@toclinkstart#2%
+ \def\@next{#2\toc@font#1#3#4}%
+ \else
+ \def\@next{#2{#3}\toc@fontsel#1#4}%
+ \expandafter\fi\@next}
\newcommand*\toc@fontsel[1]{%
%<*artikel>
\ifcase#1\relax
diff --git a/macros/latex/contrib/ntgclass/ntgclass.ins b/macros/latex/contrib/ntgclass/ntgclass.ins
index d14cbbaf64..3f39291b85 100644
--- a/macros/latex/contrib/ntgclass/ntgclass.ins
+++ b/macros/latex/contrib/ntgclass/ntgclass.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2020
+%% Copyright (C) 1993-2023
%% The Nederlandstalige TeX Gebruikersgroep and any individual
%% authors listed elsewhere in this file.
%%
@@ -45,7 +45,7 @@ This is a generated file.
The source is maintained by Johannes Braams and bug
reports for it can be sent to texniek at braams.xs4all.nl
-Copyright (C) 1990-2020 Nederlandstalige TeX Gebruikersgroep.
+Copyright (C) 1990-2023 Nederlandstalige TeX Gebruikersgroep.
All rights reserved.
This file was generated from file(s) of the NTG document classes distribution.
diff --git a/macros/latex/contrib/ntgclass/ntgclass.pdf b/macros/latex/contrib/ntgclass/ntgclass.pdf
index d273db1dda..130cb7f330 100644
--- a/macros/latex/contrib/ntgclass/ntgclass.pdf
+++ b/macros/latex/contrib/ntgclass/ntgclass.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/rapdoc.pdf b/macros/latex/contrib/ntgclass/rapdoc.pdf
index cda701838a..2d1db4a6da 100644
--- a/macros/latex/contrib/ntgclass/rapdoc.pdf
+++ b/macros/latex/contrib/ntgclass/rapdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/README.md b/macros/latex/contrib/oberdiek/README.md
index b38e432684..5dc2341ee3 100644
--- a/macros/latex/contrib/oberdiek/README.md
+++ b/macros/latex/contrib/oberdiek/README.md
@@ -1,6 +1,6 @@
# Oberdiek bundle
-Version: 2022-09-21
+Version: 2023-01-10
This file describes the directory
CTAN:macros/latex/contrib/oberdiek/
@@ -11,7 +11,7 @@ It contains several packages:
## Copyright (C)
* 2007, 2009-2011 Heiko Oberdiek
-* 2016-2022 Oberdiek Package Support Group
+* 2016-2023 Oberdiek Package Support Group
## License
LATEX Project Public License, version 1.3c or later.
@@ -53,7 +53,6 @@ Other files in the CTAN directory:
* hyphsubst: substitute hyphenation patterns;
* ifdraft: switch for option draft;
* iflang: provides expandable checks for the current language;
-* pdfcolfoot: using pdfTeX’s color stack for footnotes;
* pdfcolparallel: fixes colour problems in package parallel;
* pdfcolparcolumns: fixes colour problems in package parcolumns;
* pdfcrypt: setting PDF encryption;
diff --git a/macros/latex/contrib/oberdiek/aliascnt.pdf b/macros/latex/contrib/oberdiek/aliascnt.pdf
index 8b606cc806..c07aff9681 100644
--- a/macros/latex/contrib/oberdiek/aliascnt.pdf
+++ b/macros/latex/contrib/oberdiek/aliascnt.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/bmpsize.pdf b/macros/latex/contrib/oberdiek/bmpsize.pdf
index 12c25efac6..ce8c1577bf 100644
--- a/macros/latex/contrib/oberdiek/bmpsize.pdf
+++ b/macros/latex/contrib/oberdiek/bmpsize.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/centernot.pdf b/macros/latex/contrib/oberdiek/centernot.pdf
index 62f2d9da69..4ca41461b0 100644
--- a/macros/latex/contrib/oberdiek/centernot.pdf
+++ b/macros/latex/contrib/oberdiek/centernot.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/chemarr.pdf b/macros/latex/contrib/oberdiek/chemarr.pdf
index a0491c8dcc..73757752af 100644
--- a/macros/latex/contrib/oberdiek/chemarr.pdf
+++ b/macros/latex/contrib/oberdiek/chemarr.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/classlist.pdf b/macros/latex/contrib/oberdiek/classlist.pdf
index f7489d1bd4..0c7c08eac2 100644
--- a/macros/latex/contrib/oberdiek/classlist.pdf
+++ b/macros/latex/contrib/oberdiek/classlist.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/colonequals.pdf b/macros/latex/contrib/oberdiek/colonequals.pdf
index 5c3cb08f41..ee38d5e1ec 100644
--- a/macros/latex/contrib/oberdiek/colonequals.pdf
+++ b/macros/latex/contrib/oberdiek/colonequals.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/dvipscol.pdf b/macros/latex/contrib/oberdiek/dvipscol.pdf
index 8cb994eacc..63fc735cc6 100644
--- a/macros/latex/contrib/oberdiek/dvipscol.pdf
+++ b/macros/latex/contrib/oberdiek/dvipscol.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/engord.pdf b/macros/latex/contrib/oberdiek/engord.pdf
index 3e45bede84..8d158d56b1 100644
--- a/macros/latex/contrib/oberdiek/engord.pdf
+++ b/macros/latex/contrib/oberdiek/engord.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/enparen.pdf b/macros/latex/contrib/oberdiek/enparen.pdf
index c84e418b5f..1873fe0a26 100644
--- a/macros/latex/contrib/oberdiek/enparen.pdf
+++ b/macros/latex/contrib/oberdiek/enparen.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/eolgrab.pdf b/macros/latex/contrib/oberdiek/eolgrab.pdf
index 23422c71bd..577c2afe2a 100644
--- a/macros/latex/contrib/oberdiek/eolgrab.pdf
+++ b/macros/latex/contrib/oberdiek/eolgrab.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/fibnum.pdf b/macros/latex/contrib/oberdiek/fibnum.pdf
index 838c7866a1..1ff983c5ed 100644
--- a/macros/latex/contrib/oberdiek/fibnum.pdf
+++ b/macros/latex/contrib/oberdiek/fibnum.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/flags.pdf b/macros/latex/contrib/oberdiek/flags.pdf
index 38cfdfce4e..4df19863e3 100644
--- a/macros/latex/contrib/oberdiek/flags.pdf
+++ b/macros/latex/contrib/oberdiek/flags.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/holtxdoc.pdf b/macros/latex/contrib/oberdiek/holtxdoc.pdf
index 4defa8d604..730a024ef8 100644
--- a/macros/latex/contrib/oberdiek/holtxdoc.pdf
+++ b/macros/latex/contrib/oberdiek/holtxdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hypbmsec.pdf b/macros/latex/contrib/oberdiek/hypbmsec.pdf
index 29f5c45d4a..63aab2339d 100644
--- a/macros/latex/contrib/oberdiek/hypbmsec.pdf
+++ b/macros/latex/contrib/oberdiek/hypbmsec.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hypcap.pdf b/macros/latex/contrib/oberdiek/hypcap.pdf
index 302590434b..1282a9a96c 100644
--- a/macros/latex/contrib/oberdiek/hypcap.pdf
+++ b/macros/latex/contrib/oberdiek/hypcap.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hypgotoe.pdf b/macros/latex/contrib/oberdiek/hypgotoe.pdf
index 4237695b37..26886e3c63 100644
--- a/macros/latex/contrib/oberdiek/hypgotoe.pdf
+++ b/macros/latex/contrib/oberdiek/hypgotoe.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/hyphsubst.pdf b/macros/latex/contrib/oberdiek/hyphsubst.pdf
index bebccb7585..b5c110d070 100644
--- a/macros/latex/contrib/oberdiek/hyphsubst.pdf
+++ b/macros/latex/contrib/oberdiek/hyphsubst.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/ifdraft.pdf b/macros/latex/contrib/oberdiek/ifdraft.pdf
index 4745dadca8..fe11a750ff 100644
--- a/macros/latex/contrib/oberdiek/ifdraft.pdf
+++ b/macros/latex/contrib/oberdiek/ifdraft.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/iflang.pdf b/macros/latex/contrib/oberdiek/iflang.pdf
index de5fa254fe..8620a980c1 100644
--- a/macros/latex/contrib/oberdiek/iflang.pdf
+++ b/macros/latex/contrib/oberdiek/iflang.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/oberdiek.ins b/macros/latex/contrib/oberdiek/oberdiek.ins
index ecf6df13a6..ae14edd100 100644
--- a/macros/latex/contrib/oberdiek/oberdiek.ins
+++ b/macros/latex/contrib/oberdiek/oberdiek.ins
@@ -45,7 +45,6 @@
\batchinput{hyphsubst.dtx}
\batchinput{ifdraft.dtx}
\batchinput{iflang.dtx}
-\batchinput{pdfcolfoot.dtx}
\batchinput{pdfcolparallel.dtx}
\batchinput{pdfcolparcolumns.dtx}
\batchinput{pdfcrypt.dtx}
diff --git a/macros/latex/contrib/oberdiek/oberdiek.pdf b/macros/latex/contrib/oberdiek/oberdiek.pdf
index 1ee28ae509..590a1eb26f 100644
--- a/macros/latex/contrib/oberdiek/oberdiek.pdf
+++ b/macros/latex/contrib/oberdiek/oberdiek.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/oberdiek.tex b/macros/latex/contrib/oberdiek/oberdiek.tex
index c8a2ae588b..6c50661d97 100644
--- a/macros/latex/contrib/oberdiek/oberdiek.tex
+++ b/macros/latex/contrib/oberdiek/oberdiek.tex
@@ -1,3 +1,4 @@
+
\NeedsTeXFormat{LaTeX2e}
\newcommand*{\Title}{Overview}
@@ -10,11 +11,11 @@
\newcommand*{\Author}{Heiko Oberdiek}
\newcommand*{\Email}{ho-tex at tug.org}
-\newcommand*{\Date}{2022/09/21}
+\newcommand*{\Date}{2023/01/10}
% Copyright (C) 2006-2016 by
% Heiko Oberdiek
-% Copyright (C) 2016-2020 by
+% Copyright (C) 2016-2023 by
% Oberdiek Package Support Group
%
% This work may be distributed and/or modified under the
@@ -212,8 +213,6 @@
[\entrysep]
\entry{iflang}{Checks for the current language}%
[\entrysep]
-\entry{pdfcolfoot}{Color stack for footnotes with \hologo{pdfTeX}}%
-[\entrysep]
\entry{pdfcolparallel}{Color stacks support for parallel}%
[\entrysep]
\entry{pdfcolparcolumns}{Color stacks for parcolumns}%
@@ -446,16 +445,6 @@ based on macro \cs{languagename} or hyphenation patterns.
\tocinclude{iflang}
\newpage
-\subsection{\pkgsectformat{pdfcolfoot}}
-\label{pdfcolfoot}
-\begin{abstract}
-Since version 1.40 \pdfTeX\ supports several color stacks. This
-package uses a separate color stack for footnotes that can break
-across pages.
-\end{abstract}
-\tocinclude{pdfcolfoot}
-
-\newpage
\subsection{\pkgsectformat{pdfcolparallel}}
\label{pdfcolparallel}
\begin{abstract}
diff --git a/macros/latex/contrib/oberdiek/pdfcolparallel.pdf b/macros/latex/contrib/oberdiek/pdfcolparallel.pdf
index 5bf37a6dea..57dfb4a216 100644
--- a/macros/latex/contrib/oberdiek/pdfcolparallel.pdf
+++ b/macros/latex/contrib/oberdiek/pdfcolparallel.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf b/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf
index 9ef22b141b..7daa3cce58 100644
--- a/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf
+++ b/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/pdfcrypt.pdf b/macros/latex/contrib/oberdiek/pdfcrypt.pdf
index ebcfef66c0..f7188935a0 100644
--- a/macros/latex/contrib/oberdiek/pdfcrypt.pdf
+++ b/macros/latex/contrib/oberdiek/pdfcrypt.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/pdfrender.pdf b/macros/latex/contrib/oberdiek/pdfrender.pdf
index f5d7da9a0f..7934b263a9 100644
--- a/macros/latex/contrib/oberdiek/pdfrender.pdf
+++ b/macros/latex/contrib/oberdiek/pdfrender.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/protecteddef.pdf b/macros/latex/contrib/oberdiek/protecteddef.pdf
index 351db60331..14eb375730 100644
--- a/macros/latex/contrib/oberdiek/protecteddef.pdf
+++ b/macros/latex/contrib/oberdiek/protecteddef.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/resizegather.pdf b/macros/latex/contrib/oberdiek/resizegather.pdf
index 7cbdc874d6..9296927ce8 100644
--- a/macros/latex/contrib/oberdiek/resizegather.pdf
+++ b/macros/latex/contrib/oberdiek/resizegather.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/rotchiffre.pdf b/macros/latex/contrib/oberdiek/rotchiffre.pdf
index db416d802d..f069af2a46 100644
--- a/macros/latex/contrib/oberdiek/rotchiffre.pdf
+++ b/macros/latex/contrib/oberdiek/rotchiffre.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/scrindex.pdf b/macros/latex/contrib/oberdiek/scrindex.pdf
index 0d5b4f9ff6..6f805bf906 100644
--- a/macros/latex/contrib/oberdiek/scrindex.pdf
+++ b/macros/latex/contrib/oberdiek/scrindex.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/setouterhbox.pdf b/macros/latex/contrib/oberdiek/setouterhbox.pdf
index 4c6388b5fb..17ec8a3e56 100644
--- a/macros/latex/contrib/oberdiek/setouterhbox.pdf
+++ b/macros/latex/contrib/oberdiek/setouterhbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/settobox.pdf b/macros/latex/contrib/oberdiek/settobox.pdf
index 7c534622e3..86eaf6a5b1 100644
--- a/macros/latex/contrib/oberdiek/settobox.pdf
+++ b/macros/latex/contrib/oberdiek/settobox.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/stackrel.pdf b/macros/latex/contrib/oberdiek/stackrel.pdf
index 8cfb4f6e67..fd5ee058b9 100644
--- a/macros/latex/contrib/oberdiek/stackrel.pdf
+++ b/macros/latex/contrib/oberdiek/stackrel.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/stampinclude.pdf b/macros/latex/contrib/oberdiek/stampinclude.pdf
index 853e3478c0..f3998d3365 100644
--- a/macros/latex/contrib/oberdiek/stampinclude.pdf
+++ b/macros/latex/contrib/oberdiek/stampinclude.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/tabularht.pdf b/macros/latex/contrib/oberdiek/tabularht.pdf
index af03656d55..656a807aa5 100644
--- a/macros/latex/contrib/oberdiek/tabularht.pdf
+++ b/macros/latex/contrib/oberdiek/tabularht.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/tabularkv.pdf b/macros/latex/contrib/oberdiek/tabularkv.pdf
index dd9bc6df3f..3b87e220e6 100644
--- a/macros/latex/contrib/oberdiek/tabularkv.pdf
+++ b/macros/latex/contrib/oberdiek/tabularkv.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/telprint.pdf b/macros/latex/contrib/oberdiek/telprint.pdf
index a01f02b13b..612dca0253 100644
--- a/macros/latex/contrib/oberdiek/telprint.pdf
+++ b/macros/latex/contrib/oberdiek/telprint.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/thepdfnumber.pdf b/macros/latex/contrib/oberdiek/thepdfnumber.pdf
index a2a14e0cfc..bd8521f4cc 100644
--- a/macros/latex/contrib/oberdiek/thepdfnumber.pdf
+++ b/macros/latex/contrib/oberdiek/thepdfnumber.pdf
Binary files differ
diff --git a/macros/latex/contrib/oberdiek/twoopt.pdf b/macros/latex/contrib/oberdiek/twoopt.pdf
index 415203aef1..9f6a6ce364 100644
--- a/macros/latex/contrib/oberdiek/twoopt.pdf
+++ b/macros/latex/contrib/oberdiek/twoopt.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfcolfoot/README.md b/macros/latex/contrib/pdfcolfoot/README.md
new file mode 100644
index 0000000000..30973ae3e7
--- /dev/null
+++ b/macros/latex/contrib/pdfcolfoot/README.md
@@ -0,0 +1,20 @@
+# pdfcolfoot: using pdfTeX’s color stack for footnotes
+
+## Version: 2023-01-10 v1.6
+
+Since version 1.40 pdfTeX supports several color stacks. This
+package uses a separate color stack for footnotes that can break
+across pages.
+
+## Copyright (C)
+
+* 2007, 2012 Heiko Oberdiek
+* 2016-2023 Oberdiek Package Support Group
+
+## Github/Issues
+
+* https://github.com/ho-tex/pdfcolfoot/issues
+
+
+## License
+LATEX Project Public License, version 1.3c or later.
diff --git a/macros/latex/contrib/oberdiek/pdfcolfoot.dtx b/macros/latex/contrib/pdfcolfoot/pdfcolfoot.dtx
index 04aaf31a3a..cbdd576120 100644
--- a/macros/latex/contrib/oberdiek/pdfcolfoot.dtx
+++ b/macros/latex/contrib/pdfcolfoot/pdfcolfoot.dtx
@@ -1,13 +1,13 @@
% \iffalse meta-comment
%
% File: pdfcolfoot.dtx
-% Version: 2016/05/16 v1.3
+% Version: 2023-01-10 v1.4
% Info: Color stack for footnotes with pdfTeX
%
% Copyright (C)
% 2007, 2012 Heiko Oberdiek
-% 2016-2019 Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% 2016-2023 Oberdiek Package Support Group
+% https://github.com/ho-tex/pdfcolfoot/issues
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -23,16 +23,15 @@
%
% The Current Maintainers of this work are
% Heiko Oberdiek and the Oberdiek Package Support Group
-% https://github.com/ho-tex/oberdiek/issues
+% https://github.com/ho-tex/pdfcolfoot/issues
%
% This work consists of the main source file pdfcolfoot.dtx
% and the derived files
-% pdfcolfoot.sty, pdfcolfoot.pdf, pdfcolfoot.ins, pdfcolfoot.drv,
-% pdfcolfoot-test1.tex.
+% pdfcolfoot.sty, pdfcolfoot.pdf, pdfcolfoot.ins, pdfcolfoot.drv
%
% Distribution:
-% CTAN:macros/latex/contrib/oberdiek/pdfcolfoot.dtx
-% CTAN:macros/latex/contrib/oberdiek/pdfcolfoot.pdf
+% CTAN:macros/latex/contrib/pdfcolfoot/pdfcolfoot.dtx
+% CTAN:macros/latex/contrib/pdfcolfoot/pdfcolfoot.pdf
%
% Unpacking:
% (a) If pdfcolfoot.ins is present:
@@ -61,9 +60,9 @@
% pdflatex pdfcolfoot.dtx
%
% Installation:
-% TDS:tex/latex/oberdiek/pdfcolfoot.sty
-% TDS:doc/latex/oberdiek/pdfcolfoot.pdf
-% TDS:source/latex/oberdiek/pdfcolfoot.dtx
+% TDS:tex/latex/pdfcolfoot/pdfcolfoot.sty
+% TDS:doc/latex/pdfcolfoot/pdfcolfoot.pdf
+% TDS:source/latex/pdfcolfoot/pdfcolfoot.dtx
%
%<*ignore>
\begingroup
@@ -80,7 +79,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: pdfcolfoot 2016/05/16 v1.3 Color stack for footnotes with pdfTeX (HO)}
+\Msg{* Package: pdfcolfoot 2023-01-10 v1.4 Color stack for footnotes with pdfTeX (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -92,11 +91,11 @@
This is a generated file.
Project: pdfcolfoot
-Version: 2016/05/16 v1.3
+Version: 2023-01-10 v1.4
Copyright (C)
2007, 2012 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
+ 2016-2023 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -112,13 +111,12 @@ This work has the LPPL maintenance status "maintained".
The Current Maintainers of this work are
Heiko Oberdiek and the Oberdiek Package Support Group
-https://github.com/ho-tex/oberdiek/issues
+https://github.com/ho-tex/pdfcolfoot/issues
This work consists of the main source file pdfcolfoot.dtx
and the derived files
- pdfcolfoot.sty, pdfcolfoot.pdf, pdfcolfoot.ins, pdfcolfoot.drv,
- pdfcolfoot-test1.tex.
+ pdfcolfoot.sty, pdfcolfoot.pdf, pdfcolfoot.ins, pdfcolfoot.drv
\endpreamble
\let\MetaPrefix\DoubleperCent
@@ -128,8 +126,6 @@ and the derived files
\file{pdfcolfoot.drv}{\from{pdfcolfoot.dtx}{driver}}%
\usedir{tex/latex/oberdiek}%
\file{pdfcolfoot.sty}{\from{pdfcolfoot.dtx}{package}}%
-% \usedir{doc/latex/oberdiek/test}%
-% \file{pdfcolfoot-test1.tex}{\from{pdfcolfoot.dtx}{test1}}%
}
\catcode32=13\relax% active space
@@ -156,7 +152,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{pdfcolfoot.drv}%
- [2016/05/16 v1.3 Color stack for footnotes with pdfTeX (HO)]%
+ [2023-01-10 v1.4 Color stack for footnotes with pdfTeX (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\begin{document}
@@ -170,9 +166,9 @@ and the derived files
% \GetFileInfo{pdfcolfoot.drv}
%
% \title{The \xpackage{pdfcolfoot} package}
-% \date{2016/05/16 v1.3}
+% \date{2023-01-10 v1.4}
% \author{Heiko Oberdiek\thanks
-% {Please report any issues at \url{https://github.com/ho-tex/oberdiek/issues}}}
+% {Please report any issues at \url{https://github.com/ho-tex/pdfcolfoot/issues}}}
%
% \maketitle
%
@@ -270,7 +266,7 @@ and the derived files
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pdfcolfoot}%
- [2016/05/16 v1.3 Color stack for footnotes with pdfTeX (HO)]%
+ [2023-01-10 v1.4 Color stack for footnotes with pdfTeX (HO)]%
% \end{macrocode}
%
% \subsection{Load package \xpackage{pdfcol}}
@@ -317,7 +313,9 @@ and the derived files
\else
\pdfcolfoot@switch
\fi
+ \color@begingroup
#1%
+ \color@endgroup
}%
}%
}
@@ -489,33 +487,15 @@ and the derived files
% \paragraph{Package.} This package is available on
% CTAN\footnote{\CTANpkg{pdfcolfoot}}:
% \begin{description}
-% \item[\CTAN{macros/latex/contrib/oberdiek/pdfcolfoot.dtx}] The source file.
-% \item[\CTAN{macros/latex/contrib/oberdiek/pdfcolfoot.pdf}] Documentation.
+% \item[\CTAN{macros/latex/contrib/pdfcolfoot/pdfcolfoot.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/pdfcolfoot/pdfcolfoot.pdf}] Documentation.
% \end{description}
%
-%
-% \paragraph{Bundle.} All the packages of the bundle `oberdiek'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/oberdiek.tds.zip}]
-% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
-%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{oberdiek.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip oberdiek.tds.zip -d ~/texmf|
-% \end{quote}
-%
% \subsection{Package installation}
-%
+%
+% The package should be installed with the package manager of your \TeX~system.
+% If for some reason a manual installation is needed follow the following instructions.
+%
% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
% \docstrip\ archive. The files are extracted by running the
% \xfile{.dtx} through \plainTeX:
@@ -529,9 +509,9 @@ and the derived files
% \begin{quote}
% \def\t{^^A
% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
-% pdfcolfoot.sty & tex/latex/oberdiek/pdfcolfoot.sty\\
-% pdfcolfoot.pdf & doc/latex/oberdiek/pdfcolfoot.pdf\\
-% pdfcolfoot.dtx & source/latex/oberdiek/pdfcolfoot.dtx\\
+% pdfcolfoot.sty & tex/latex/pdfcolfoot/pdfcolfoot.sty\\
+% pdfcolfoot.pdf & doc/latex/pdfcolfoot/pdfcolfoot.pdf\\
+% pdfcolfoot.dtx & source/latex/pdfcolfoot/pdfcolfoot.dtx\\
% \end{tabular}^^A
% }^^A
% \sbox0{\t}^^A
@@ -670,6 +650,10 @@ and the derived files
% \item
% Documentation updates.
% \end{Version}
+% \begin{Version}{2023-01-10 v1.4}
+% \item Added a group to avoid that the wrong color
+% stack is reset after the footnote.
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/oberdiek/pdfcolfoot.pdf b/macros/latex/contrib/pdfcolfoot/pdfcolfoot.pdf
index bc2bcfc34f..8c15507e59 100644
--- a/macros/latex/contrib/oberdiek/pdfcolfoot.pdf
+++ b/macros/latex/contrib/pdfcolfoot/pdfcolfoot.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
index 46ee34e10f..46ea0f49ec 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
index b986235950..6709f9cd2f 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
@@ -5,8 +5,8 @@
% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
\documentclass{article}
-\def\PLversion{2.1.4}
-\def\PLdate{02 Janvier 2023}
+\def\PLversion{2.1.5}
+\def\PLdate{09 Janvier 2023}
\usepackage[pythontex]{ProfLycee}
\usepackage{mathtools}
\usepackage{lualatex-math}
@@ -675,6 +675,14 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
\end{codetex}
\begin{codetex}[listing only]
+%arrangement Anp
+\Arrangement(*)[option]{p}{n}
+
+%arrangement Cnp (p parmi n)
+\Combinaison(*)[option]{p}{n}
+\end{codetex}
+
+\begin{codetex}[listing only]
%conversions
\ConversionDecBin(*)[clés]{nombre}
\ConversionBinHex[clés]{nombre}
@@ -4967,6 +4975,50 @@ $\ListeKeno$
\newpage
+\section{Combinatoire}\label{combinatoire}
+
+\subsection{Idée}
+
+\begin{codeidee}
+L'idée est de proposer une commande pour calculer un arrangement ou une combinaison, en utilisant les capacités de calcul du package \ctex{xfp}.
+\end{codeidee}
+
+\begin{codetex}[listing only]
+\Arrangement(*)[option]{p}{n}
+\Combinaison(*)[option]{p}{n}
+\end{codetex}
+
+\subsection{Utilisation}
+
+\begin{codecles}
+Peu de paramétrage pour ces commandes qui permettent de calculer $A_n^p$ et $C_n^p$ :
+
+\begin{itemize}
+ \item les versions étoilées ne formatent pas le résultat grâce à \ctex{\textbackslash num} de \ctex{sinuitx} ;
+ \item le booléen \Cle{Formule} permet de présenter la formule avant le résultat ; \hfill~défaut \Cle{false}
+ \item le premier argument, \textit{mandataire}, est la valeur de $p$ ;
+ \item le second argument, \textit{mandataire}, est la valeur de $n$.
+\end{itemize}
+\end{codecles}
+
+\begin{codetex}[]
+On a $A_{20}^3=\Arrangement*{3}{20}$ en non formaté, et $A_{20}^3=\Arrangement{3}{20}$ en formaté.
+\end{codetex}
+
+\begin{codetex}[]
+On a $C_{20}^3=\Combinaison*{3}{20}$ en non formaté, et $C_{20}^3=\Combinaison{3}{20}$ en formaté.
+\end{codetex}
+
+\begin{codetex}[]
+On a $A_{20}^3=\Arrangement[Formule]{3}{20}$.
+\end{codetex}
+
+\begin{codetex}[]
+On a $C_{20}^3=\displaystyle\Combinaison[Formule]{3}{20}$.
+\end{codetex}
+
+\newpage
+
\part{Outils pour l'arithmétique}
\section{Conversions binaire/hexadécimal/décimal}\label{conversions}
@@ -6190,6 +6242,8 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0
\part{Historique}
+{\small \bverb|v 2.1.5|~:~~~~Combinatoire avec arrangements et combinaisons (page \pageref{combinatoire})
+
{\small \bverb|v 2.1.4|~:~~~~Résolution approchée d'équations $f(x)=k$ (page \pageref{resolapprox})
{\small \bverb|v 2.1.3|~:~~~~Améliorations dans les présentations \textsf{Piton} (page \pageref{pythonpiton})
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index 211b16dcb1..993b88709e 100644
--- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
@@ -3,7 +3,8 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2023/01/02 2.1.4 Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2023/01/09 2.1.5 Aide pour l'utilisation de LaTeX en lycee]
+% 2.1.5 Ajout de commandes pour calculer arrangements et combinaisons
% 2.1.4 Ajout d'une commande pour résoudre de manière approchée une équation f(x)=k
% 2.1.3 Ajout de l'option auto-tabs-gobble sur piton (v1.0) + correction d'un bug sur CodePiton
% 2.1.2 Ajout d'une commande pour déterminer la mesure principale d'un angle + option <ElargirOx/y> pour les axes
@@ -3618,4 +3619,25 @@
\expandafter\def\csname#3a\endcsname{\fpeval{round(\varvalm,\DICHOTOstep)}}%
}
+%=================aNp/Cnp================ OK!
+\setKVdefault[anpCnp]{%
+ Formule=false
+}
+\NewDocumentCommand\Arrangement{ s O{} m m }{%
+ \useKVdefault[anpCnp]%
+ \setKV[anpCnp]{#2}%
+ \ifboolKV[anpCnp]{Formule}{\frac{#4!}{\inteval{#4-#3}!}=}{}%
+ \IfBooleanTF{#1}%
+ {\fpeval{fact(#4)/fact(#4-#3)}}%non formaté
+ {\num{\fpeval{fact(#4)/fact(#4-#3)}}}%formaté
+}
+\NewDocumentCommand\Combinaison{ s O{} m m }{%
+ \useKVdefault[anpCnp]%
+ \setKV[anpCnp]{#2}%
+ \ifboolKV[anpCnp]{Formule}{\frac{#4!}{#3! \times \inteval{#4-#3}!}=}{}%
+ \IfBooleanTF{#1}%
+ {\fpeval{fact(#4)/(fact(#3)*fact(#4-#3))}}%non formaté
+ {\num{\fpeval{fact(#4)/(fact(#3)*fact(#4-#3))}}}%formaté
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/se2thesis/CHANGELOG.md b/macros/latex/contrib/se2thesis/CHANGELOG.md
index f8d4fc920d..3aa7846896 100644
--- a/macros/latex/contrib/se2thesis/CHANGELOG.md
+++ b/macros/latex/contrib/se2thesis/CHANGELOG.md
@@ -3,10 +3,34 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to
-[Semantic Versioning](http://sever.org/spec/v2.0.0.html).
+[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
+## [v2.0.0] – 2023–01–10
+
+### Added
+
+- A file `se2thesis.tex` that contains the combined documentation from all DTX
+ files as well as their code
+- Use Libertinus and Fira Code as fonts
+
+### Changed
+
+- Split the large `se2thesis.dtx` into several DTX files for the different packages
+- Deprecate the `fmode` argument to `se2fonts.sty`. *Attention:* This is a breaking change!
+- The `build.lua` now also builds all `*.tex` files
+- Use the default back-reference styling of `biblatex`
+- Changed the dimensions of the type area
+
+### Fixed
+
+- Get correct translation for lower-title back for PhD theses
+
+### Removed
+
+- Support for the TeX Gyre and Palatino/Helvetica fonts. We replace all fonts by the Libertinus font family.
+
## [v1.3.1] – 2022–11–22
### Fixed
@@ -61,6 +85,7 @@ These changes might be breaking changes!
### Added
- First official release
+[v2.0.0]: https://github.com/se2p/se2thesis/compare/v2.0.0...v1.3.1
[v1.3.1]: https://github.com/se2p/se2thesis/compare/v1.3.1...v1.3.0
[v1.3.0]: https://github.com/se2p/se2thesis/compare/v1.3.0...v1.2.0
[v1.2.0]: https://github.com/se2p/se2thesis/compare/v1.2.0...v1.1.1
diff --git a/macros/latex/contrib/se2thesis/se2colors.dtx b/macros/latex/contrib/se2thesis/se2colors.dtx
new file mode 100644
index 0000000000..b27f659f24
--- /dev/null
+++ b/macros/latex/contrib/se2thesis/se2colors.dtx
@@ -0,0 +1,373 @@
+% \iffalse meta-comment
+%
+% File: se2colors.dtx Copyright (C) 2022--2023 Stephan Lukasczyk
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% https://www.latex-project.org/lppl.txt
+%
+% This file is part of the "se2thesis bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% The released version of this bundle is available from CTAN.
+%
+% ---------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+% https://github.com/se2p/se2thesis
+%
+% for those people who are interested.
+%
+% ---------------------------------------------------------------------
+%
+%<*driver>
+\documentclass{l3doc}
+% The next line is needed so that \GetFileInfo will be able to pick up
+% version data.
+\usepackage{se2colors}
+
+\usepackage[UKenglish]{babel}
+\usepackage{hvfloat}
+\usepackage{hvlogos}
+\usepackage{booktabs}
+
+% Taken from xcolor.dtx
+\makeatletter
+\def\testclr#1#{\@testclr{#1}}
+\def\@testclr#1#2{{\fboxsep\z@\fbox{\colorbox#1{#2}{\phantom{XXX}}}}}
+\makeatother
+
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{se2colors.sty}
+%
+% \title{^^A
+% \pkg{se2colors} -- Colour Definitions for the \pkg{se2thesis} Bundle^^A
+% \thanks{This file describes \fileversion, last revised \filedate.}^^A
+% }
+%
+% \author{^^A
+% Stephan Lukasczyk^^A
+% \thanks{^^A
+% E-mail: \href{mailto:tex@lukasczyk.me}{tex@lukasczyk.me}^^A
+% }^^A
+% }
+%
+% \date{Released \filedate}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \section{The \pkg{se2colors} package}\label{sec:doc-se2colors}
+%
+% Several colours are specific to the university
+% and we want to have a comprehensive interface
+% to access them throughout all our packages.
+%
+% The \pkg{se2colors} package provides this exact features.
+% One can load it using |\usepackage{se2colors}| in the document preamble.
+%
+% \begin{function}[updated = 2022-11-03]{cmode}
+% \begin{syntax}
+% |cmode| = \meta{choice}
+% \end{syntax}
+% Selects the colour mode that shall be used for creating the results,
+% a choice from the options specified in \cref{tab:coloursoptions}.
+% The default setting is |4C|.
+% \end{function}
+%
+% \begin{table}[th]
+% \tabcaption{\label{tab:coloursoptions}%
+% Options provided by \pkg{se2colors}.%
+% }
+% \centering
+% \begin{tabular}{@{} l l @{}} \toprule
+% Option & Description \\ \midrule
+% %
+% |cmode=4C|
+% & Define colours in CMYK colour space (\emph{default}). \\
+% %
+% |cmode=CMYK|
+% & Alias for the previous. \\
+% %
+% |CMYK|, |cmyk|
+% & Aliases for the previous. \\
+% %
+% |cmode=RGB|
+% & Define colours in RGB colour space. \\
+% %
+% |RGB|, |rgb|
+% & Aliases for the previous. \\
+% %
+% |cmode=BW|
+% & Define colours in black-and-white colour space. \\
+% %
+% |cmode=1C|
+% & Alias for the previous. \\
+% %
+% |gray|
+% & Alias for the previous. \\
+% %
+% \bottomrule
+% \end{tabular}
+% \end{table}
+%
+% We define two basic colours that are taken from the University's logo,
+% namely |UPSE2-Gray| \testclr{UPSE2-Gray}
+% and |UPSE2-Orange| \testclr{UPSE2-Orange}.
+%
+% Additionally,
+% we define four colours for the four faculties of the University:
+% \begin{itemize}
+% \item the Faculty of Law |UPSE2-JUR| \testclr{UPSE2-JUR},
+% \item the School of Business, Economics and Information Systems
+% |UPSE2-WIWI| \testclr{UPSE2-WIWI},
+% \item the Faculty of Arts and Humanities
+% |UPSE2-PHIL| \testclr{UPSE2-PHIL}, and
+% \item the Faculty of Computer Science and Mathematics
+% |UPSE2-FIM| \testclr{UPSE2-FIM}.
+% \end{itemize}
+%
+% Finally,
+% we define a full set of supplementary colours:
+% \begin{itemize}
+% \item |UPSE2-DarkGray| \testclr{UPSE2-DarkGray}
+% with its derivatives \\
+% |UPSE2-DarkGray1| \testclr{UPSE2-DarkGray1},
+% |UPSE2-DarkGray2| \testclr{UPSE2-DarkGray2},
+% |UPSE2-DarkGray3| \testclr{UPSE2-DarkGray3},
+% |UPSE2-DarkGray4| \testclr{UPSE2-DarkGray4}, and
+% |UPSE2-DarkGray5| \testclr{UPSE2-DarkGray5}.
+% \item |UPSE2-White| \testclr{UPSE2-White}
+% with its derivatives \\
+% |UPSE2-White1| \testclr{UPSE2-White1},
+% |UPSE2-White2| \testclr{UPSE2-White2},
+% |UPSE2-White3| \testclr{UPSE2-White3},
+% |UPSE2-White4| \testclr{UPSE2-White4}, and
+% |UPSE2-White5| \testclr{UPSE2-White5}.
+% \item |UPSE2-MediumGray| \testclr{UPSE2-MediumGray}
+% with its derivatives \\
+% |UPSE2-MediumGray1| \testclr{UPSE2-MediumGray1},
+% |UPSE2-MediumGray2| \testclr{UPSE2-MediumGray2},
+% |UPSE2-MediumGray3| \testclr{UPSE2-MediumGray3},
+% |UPSE2-MediumGray4| \testclr{UPSE2-MediumGray4}, and
+% |UPSE2-MediumGray5| \testclr{UPSE2-MediumGray5}.
+% \item |UPSE2-LightGray| \testclr{UPSE2-LightGray}
+% with its derivatives \\
+% |UPSE2-LightGray1| \testclr{UPSE2-LightGray1},
+% |UPSE2-LightGray2| \testclr{UPSE2-LightGray2},
+% |UPSE2-LightGray3| \testclr{UPSE2-LightGray3},
+% |UPSE2-LightGray4| \testclr{UPSE2-LightGray4}, and
+% |UPSE2-LightGray5| \testclr{UPSE2-LightGray5}.
+% \item |UPSE2-Orange| \testclr{UPSE2-Orange}
+% with its derivatives \\
+% |UPSE2-Orange1| \testclr{UPSE2-Orange1},
+% |UPSE2-Orange2| \testclr{UPSE2-Orange2},
+% |UPSE2-Orange3| \testclr{UPSE2-Orange3},
+% |UPSE2-Orange4| \testclr{UPSE2-Orange4}, and
+% |UPSE2-Orange5| \testclr{UPSE2-Orange5}.
+% \item |UPSE2-LightRed| \testclr{UPSE2-LightRed}
+% with its derivatives \\
+% |UPSE2-LightRed1| \testclr{UPSE2-LightRed1},
+% |UPSE2-LightRed2| \testclr{UPSE2-LightRed2},
+% |UPSE2-LightRed3| \testclr{UPSE2-LightRed3},
+% |UPSE2-LightRed4| \testclr{UPSE2-LightRed4}, and
+% |UPSE2-LightRed5| \testclr{UPSE2-LightRed5}.
+% \item |UPSE2-DarkRed| \testclr{UPSE2-DarkRed}
+% with its derivatives \\
+% |UPSE2-DarkRed1| \testclr{UPSE2-DarkRed1},
+% |UPSE2-DarkRed2| \testclr{UPSE2-DarkRed2},
+% |UPSE2-DarkRed3| \testclr{UPSE2-DarkRed3},
+% |UPSE2-DarkRed4| \testclr{UPSE2-DarkRed4}, and
+% |UPSE2-DarkRed5| \testclr{UPSE2-DarkRed5}.
+% \item |UPSE2-Green| \testclr{UPSE2-Green}
+% with its derivatives \\
+% |UPSE2-Green1| \testclr{UPSE2-Green1},
+% |UPSE2-Green2| \testclr{UPSE2-Green2},
+% |UPSE2-Green3| \testclr{UPSE2-Green3},
+% |UPSE2-Green4| \testclr{UPSE2-Green4}, and
+% |UPSE2-Green5| \testclr{UPSE2-Green5}.
+% \item |UPSE2-Blue| \testclr{UPSE2-Blue}
+% with its derivatives \\
+% |UPSE2-Blue1| \testclr{UPSE2-Blue1},
+% |UPSE2-Blue2| \testclr{UPSE2-Blue2},
+% |UPSE2-Blue3| \testclr{UPSE2-Blue3},
+% |UPSE2-Blue4| \testclr{UPSE2-Blue4}, and
+% |UPSE2-Blue5| \testclr{UPSE2-Blue5}.
+% \item |UPSE2-AccentGray| \testclr{UPSE2-AccentGray}
+% with its derivatives \\
+% |UPSE2-AccentGray1| \testclr{UPSE2-AccentGray1},
+% |UPSE2-AccentGray2| \testclr{UPSE2-AccentGray2},
+% |UPSE2-AccentGray3| \testclr{UPSE2-AccentGray3},
+% |UPSE2-AccentGray4| \testclr{UPSE2-AccentGray4}, and
+% |UPSE2-AccentGray5| \testclr{UPSE2-AccentGray5}.
+% \end{itemize}
+%
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{se2colors} implementation}
+%
+% Start the \pkg{DocStrip} guards.
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% Identify the internal prefix (\LaTeX3 \pkg{DocStrip} convention): only
+% internal material in this \emph{submodule} should be used directly.
+% \begin{macrocode}
+%<@@=slcd_colors>
+% \end{macrocode}
+%
+% Identify the package and give the overall version information.
+% \begin{macrocode}
+\ProvidesExplPackage {se2colors} {2023-01-10} {2.0.0}
+ {A colour support package for the se2thesis bundle}
+% \end{macrocode}
+%
+% \subsection{Load-time options}
+%
+% \begin{macro}{\l_@@_colormode_tl}
+% Holds the colour mode selected by the user as a package load-time option.
+% \begin{macrocode}
+\keys_define:nn { seiicolors }
+ {
+ cmode .choice:,
+ cmode / 4C .code:n = {
+ \PassOptionsToPackage{cmyk}{xcolor}
+ \tl_gset:Nn \l_@@_colormode_tl {4C}
+ },
+ cmode / RGB .code:n = {
+ \PassOptionsToPackage{rgb}{xcolor}
+ \tl_gset:Nn \l_@@_colormode_tl {RGB}
+ },
+ cmode / BW .code:n = {
+ \PassOptionsToPackage{gray}{xcolor}
+ \tl_gset:Nn \l_@@_colormode_tl {BW}
+ },
+ cmode / CMYK .meta:n = {cmode=4C},
+ cmode / cmyk .meta:n = {cmode=4C},
+ cmode / rgb .meta:n = {cmode=RGB},
+ cmode / gray .meta:n = {cmode=BW},
+ RGB .meta:n = {cmode=RGB},
+ rgb .meta:n = {cmode=RGB},
+ CMYK .meta:n = {cmode=4C},
+ cmyk .meta:n = {cmode=4C},
+ gray .meta:n = {cmode=BW},
+ }
+\keys_set:nn { seiicolors } { cmode = 4C }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Option handling}
+%
+% \begin{macrocode}
+\IfFormatAtLeastTF { 2022-06-01 }
+ { \ProcessKeyOptions [ seiicolors ] }
+ {
+ \RequirePackage { l3keys2e }
+ \ProcessKeysOptions { seiicolors }
+ }
+% \end{macrocode}
+%
+% \subsection{Colour definitions}
+%
+% Load the \pkg{xcolor} package for colour definitions.
+% \begin{macrocode}
+\RequirePackage{xcolor}
+% \end{macrocode}
+%
+%
+% Define the primary colours gray and orange as given by the University of
+% Passau's style guides.
+% \begin{macrocode}
+\definecolorset[named]{RGB/cmyk}{UPSE2-}{}{%
+ Orange,242,148,0/0.00,0.44,0.95,0.01;%
+ Gray,153,159,158/0.40,0.28,0.28,0.00;%
+ JUR,229,49,56/0.01,0.90,0.81,0.01;%
+ WIWI,0,96,57/0.87,0.20,0.87,0.36;%
+ PHIL,188,42,51/0.06,0.93,0.81,0.11;%
+ FIM,0,90,161/0.93,0.63,0.01,0.02;%
+ DarkGray,77,77,77/0.74,0.67,0.62,0.18;%
+ White,255,255,255/0.00,0.00,0.00,0.00;%
+ MediumGray,127,127,127/0.52,0.43,0.40,0.02;%
+ LightGray,229,229,229/0.08,0.06,0.04,0.00;%
+ LightRed,229,49,56/0.01,0.90,0.81,0.01;%
+ DarkRed,188,42,51/0.06,0.93,0.80,0.11;%
+ Green,0,96,57/0.87,0.20,0.86,0.35;%
+ Blue,0,90,161/0.93,0.63,0.01,0.02;%
+ AccentGray,153,159,158/0.40,0.28,0.28,0.00%
+}
+% \end{macrocode}
+%
+% Define the derived colours.
+% \begin{macrocode}
+\colorlet{UPSE2-DarkGray1}{UPSE2-DarkGray!20!white}
+\colorlet{UPSE2-DarkGray2}{UPSE2-DarkGray!40!white}
+\colorlet{UPSE2-DarkGray3}{UPSE2-DarkGray!60!white}
+\colorlet{UPSE2-DarkGray4}{UPSE2-DarkGray!75!black}
+\colorlet{UPSE2-DarkGray5}{UPSE2-DarkGray!50!black}
+\colorlet{UPSE2-White1}{UPSE2-White!95!black}
+\colorlet{UPSE2-White2}{UPSE2-White!85!black}
+\colorlet{UPSE2-White3}{UPSE2-White!75!black}
+\colorlet{UPSE2-White4}{UPSE2-White!65!black}
+\colorlet{UPSE2-White5}{UPSE2-White!50!black}
+\colorlet{UPSE2-MediumGray1}{UPSE2-MediumGray!20!white}
+\colorlet{UPSE2-MediumGray2}{UPSE2-MediumGray!40!white}
+\colorlet{UPSE2-MediumGray3}{UPSE2-MediumGray!60!white}
+\colorlet{UPSE2-MediumGray4}{UPSE2-MediumGray!75!black}
+\colorlet{UPSE2-MediumGray5}{UPSE2-MediumGray!50!black}
+\colorlet{UPSE2-LightGray1}{UPSE2-LightGray!90!black}
+\colorlet{UPSE2-LightGray2}{UPSE2-LightGray!75!black}
+\colorlet{UPSE2-LightGray3}{UPSE2-LightGray!55!black}
+\colorlet{UPSE2-LightGray4}{UPSE2-LightGray!25!black}
+\colorlet{UPSE2-LightGray5}{UPSE2-LightGray!10!black}
+\colorlet{UPSE2-Orange1}{UPSE2-Orange!20!white}
+\colorlet{UPSE2-Orange2}{UPSE2-Orange!40!white}
+\colorlet{UPSE2-Orange3}{UPSE2-Orange!60!white}
+\colorlet{UPSE2-Orange4}{UPSE2-Orange!75!black}
+\colorlet{UPSE2-Orange5}{UPSE2-Orange!50!black}
+\colorlet{UPSE2-LightRed1}{UPSE2-LightRed!20!white}
+\colorlet{UPSE2-LightRed2}{UPSE2-LightRed!40!white}
+\colorlet{UPSE2-LightRed3}{UPSE2-LightRed!60!white}
+\colorlet{UPSE2-LightRed4}{UPSE2-LightRed!75!black}
+\colorlet{UPSE2-LightRed5}{UPSE2-LightRed!50!black}
+\colorlet{UPSE2-DarkRed1}{UPSE2-DarkRed!20!white}
+\colorlet{UPSE2-DarkRed2}{UPSE2-DarkRed!40!white}
+\colorlet{UPSE2-DarkRed3}{UPSE2-DarkRed!60!white}
+\colorlet{UPSE2-DarkRed4}{UPSE2-DarkRed!75!black}
+\colorlet{UPSE2-DarkRed5}{UPSE2-DarkRed!50!black}
+\colorlet{UPSE2-Green1}{UPSE2-Green!10!white}
+\colorlet{UPSE2-Green2}{UPSE2-Green!25!white}
+\colorlet{UPSE2-Green3}{UPSE2-Green!50!white}
+\colorlet{UPSE2-Green4}{UPSE2-Green!75!white}
+\colorlet{UPSE2-Green5}{UPSE2-Green!90!white}
+\colorlet{UPSE2-Blue1}{UPSE2-Blue!20!white}
+\colorlet{UPSE2-Blue2}{UPSE2-Blue!40!white}
+\colorlet{UPSE2-Blue3}{UPSE2-Blue!60!white}
+\colorlet{UPSE2-Blue4}{UPSE2-Blue!75!black}
+\colorlet{UPSE2-Blue5}{UPSE2-Blue!50!black}
+\colorlet{UPSE2-AccentGray1}{UPSE2-AccentGray!20!white}
+\colorlet{UPSE2-AccentGray2}{UPSE2-AccentGray!40!white}
+\colorlet{UPSE2-AccentGray3}{UPSE2-AccentGray!60!white}
+\colorlet{UPSE2-AccentGray4}{UPSE2-AccentGray!75!black}
+\colorlet{UPSE2-AccentGray5}{UPSE2-AccentGray!50!black}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \end{implementation}
+%
+% \PrintIndex
diff --git a/macros/latex/contrib/se2thesis/se2fonts.dtx b/macros/latex/contrib/se2thesis/se2fonts.dtx
new file mode 100644
index 0000000000..d78fbe9571
--- /dev/null
+++ b/macros/latex/contrib/se2thesis/se2fonts.dtx
@@ -0,0 +1,324 @@
+% \iffalse meta-comment
+%
+% File: se2fonts.dtx Copyright (C) 2022--2023 Stephan Lukasczyk
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% https://www.latex-project.org/lppl.txt
+%
+% This file is part of the "se2thesis bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% The released version of this bundle is available from CTAN.
+%
+% ---------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+% https://github.com/se2p/se2thesis
+%
+% for those people who are interested.
+%
+% ---------------------------------------------------------------------
+%
+%<*driver>
+\documentclass{l3doc}
+% The next line is needed so that \GetFileInfo will be able to pick up
+% version data.
+\usepackage{se2fonts}
+
+\usepackage[UKenglish]{babel}
+\usepackage{fontspec}
+\usepackage{unicode-math}
+\usepackage{hvlogos}
+
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{se2fonts.sty}
+%
+% \title{^^A
+% \pkg{se2fonts} -- Font Definitions for the \pkg{se2thesis} Bundle^^A
+% \thanks{This file describes \fileversion, last revised \filedate.}^^A
+% }
+%
+% \author{^^A
+% Stephan Lukasczyk^^A
+% \thanks{^^A
+% E-mail: \href{mailto:tex@lukasczyk.me}{tex@lukasczyk.me}^^A
+% }^^A
+% }
+%
+% \date{Released \filedate}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \section{The \pkg{se2fonts} package}\label{sec:doc-se2fonts}
+%
+% The \pkg{se2fonts} package sets the fonts of the document.
+% In the first version of the bundle, we were running to use Hermann Zaph's
+% \emph{Palatino}, \emph{Helvetica}, and \emph{Neo Euler} fonts.
+% However, we figured out that they are not part of a standard \LaTeX{}
+% installation, and thus required manual work by the user to install them.
+% Furthermore, loading the fonts did not always work in a correct way.
+%
+% Thus, we decided to rethink this decision and---as a consequence---now use
+% different fonts that are part of a recent standard \LaTeX{} installation:
+% we use the \emph{Libertinus} fonts\footnote{
+% \href{https://github.com/alerque/libertinus}{https://github.com/alerque/libertinus}
+% } for serif, sans-serif, and math typesetting
+% and the \emph{Anonymous Pro} font\footnote{
+% \href{https://www.marksimonson.com/fonts/view/anonymous-pro}{https://www.marksimonson.com/fonts/view/anonymous-pro}
+% } as a monospaced font.
+%
+% \emph{Please note:} this change might affect they way your documents look,
+% and also might affect paragraph and line breaks!
+%
+% If you are using \LuaTeX{},
+% fonts are expected to be present as open-type fonts;
+% using \pdfLaTeX{} will fallback to Type-1 fonts.
+%
+% \emph{Please note:} the package does not support \XeTeX{}!
+%
+% The following options are defined by the \pkg{se2fonts} package
+% to influence the selection of the fonts.
+%
+% \begin{function}[updated = 2022-11-03, deprecated = 2023-01-05]{fmode}
+% \begin{syntax}
+% |fmode| = \meta{choice}
+% \end{syntax}
+% The argument is deprecated and will raise a warning.
+% It is to be removed by a future version of the \pkg{se2thesis} bundle.
+% \end{function}
+%
+% The following list provides examples for each of the fonts:
+% \begin{itemize}
+% \item {\fontspec{Libertinus Serif}An example text in Libertinus Serif}
+% \item {\fontspec{Libertinus Sans}An example text in Libertinus Sans}
+% \item {\fontspec{Anonymous Pro}An example text in Anonymous Pro}
+% \end{itemize}
+%
+% The package provides additional helper functions
+% that are also available to the user.
+%
+% \begin{function}{\pdftexengine, \xetexengine, \luatexengine}
+% \begin{syntax}
+% \cmd{\pdftexengine}
+% \cmd{\xetexengine}
+% \cmd{\luatexengine}
+% \end{syntax}
+% These commands alias the built-in \LaTeX3{} macros
+% \cs{sys_if_engine_pdftex_p:},
+% \cs{sys_if_engine_xetex_p:}, and
+% \cs{sys_if_engine_luatex_p:}.
+% They can be used to check which engine the user is currently running.
+% \end{function}
+%
+% \begin{function}{\ifengineTF, \ifengineT, \ifengineF}
+% \begin{syntax}
+% \cmd{\ifengineTF} \marg{engine} \marg{then block} \marg{else block}
+% \cmd{\ifengineT} \marg{engine} \marg{then block}
+% \cmd{\ifengineF} \marg{engine} \marg{then block}
+% \end{syntax}
+% Allows to execute code based on the running engine.
+% The base variant \cs{ifengineTF} expects the user to specify a condition,
+% which can be built of combinations of the \cs{pdftexengine},
+% \cs{xetexengine}, and \cs{luatexengine} macros,
+% followed by the code that will be executed if the condition holds
+% and the code that will be executed if the condition does not hold.
+%
+% For convenience,
+% we provide the variants \cs{ifengineT} and \cs{ifengineF}
+% that allow to omit an empty then or else branch, respectively.
+% \end{function}
+%
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{se2fonts} implementation}
+%
+% Start the \pkg{DocStrip} guards.
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% Identify the internal prefix (\LaTeX3 \pkg{DocStrip} convention): only
+% internal material in this \emph{submodule} should be used directly.
+% \begin{macrocode}
+%<@@=slcd_fonts>
+% \end{macrocode}
+%
+% Identify the package and give the overall version information.
+% \begin{macrocode}
+\ProvidesExplPackage {se2fonts} {2023-01-10} {2.0.0}
+ {A font-selection support package for the se2thesis bundle}
+% \end{macrocode}
+%
+% \subsection{Load-time options}
+%
+% \begin{macro}{\l_@@_fontmode_tl}
+% Holds the font-selection mode specified by the user as a package
+% load-time option.
+% \emph{Please note:} this option is deprecated!
+% \begin{macrocode}
+\tl_new:N \l_@@_fontmode_tl
+\keys_define:nn { seiifonts }
+ {
+ fmode .choice:,
+ fmode / original .code:n = {
+ \tl_gset:Nn \l_@@_fontmode_tl {original}
+ },
+ fmode / replacement .code:n = {
+ \tl_gset:Nn \l_@@_fontmode_tl {replacement}
+ },
+ fmode / auto .code:n = {
+ \tl_gset:Nn \l_@@_fontmode_tl {auto}
+ },
+ original .meta:n = {fmode=original},
+ replacement .meta:n = {fmode=replacement},
+ auto .meta:n = {fmode=auto},
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Option handling}
+%
+% \begin{macrocode}
+\IfFormatAtLeastTF { 2022-06-01 }
+ { \ProcessKeyOptions [ seiifonts ] }
+ {
+ \RequirePackage{ l3keys2e }
+ \ProcessKeysOptions { seiifonts }
+ }
+% \end{macrocode}
+%
+% Define a warning message
+% \begin{macrocode}
+\msg_set:nnnn { seiifonts } { deprecated-option }
+ { The~ option~ fmode~ to~ the~ se2fonts~ package~ is~ deprecated. }
+ { Remove~ it~ from~ your~ code.}
+% \end{macrocode}
+%
+% Raise the warning if the option was used
+% \begin{macrocode}
+\tl_if_empty:NF \l_@@_fontmode_tl
+ {
+ \msg_warning:nn { seiifonts } { deprecated-option }
+ }
+% \end{macrocode}
+%
+% \subsection{Helper macros}
+%
+% \begin{macro}{\pdftexengine, \xetexengine, \luatexengine}
+% We define several alias macros to identify which engine the user is running.
+% \begin{macrocode}
+\cs_new_eq:NN \pdftexengine \sys_if_engine_pdftex_p:
+\cs_new_eq:NN \xetexengine \sys_if_engine_xetex_p:
+\cs_new_eq:NN \luatexengine \sys_if_engine_luatex_p:
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifengineTF, \ifengineT, \ifengineF}
+% True, if the engine used matches the given first argument.
+% \begin{macrocode}
+\NewExpandableDocumentCommand \ifengineTF { mmm }
+ {
+ \bool_if:nTF { #1 } { #2 } { #3 }
+ }
+\NewExpandableDocumentCommand \ifengineT { mm }
+ {
+ \bool_if:nT { #1 } { #2 }
+ }
+\NewExpandableDocumentCommand \ifengineF { mm }
+ {
+ \bool_if:nF { #1 } { #2 }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% The package is not tested with \XeTeX{}, thus we provide an error to the user
+% and stop the execution if they want to use the package with \XeTeX.
+% \begin{macrocode}
+\ifengineT { \xetexengine }
+ {
+ \msg_set:nnnn { seiifonts } { xetex-not-supported }
+ { XeTeX~ is~ not~ supported~ by~ the~ se2fonts~ package. }
+ { Switch~ to~ pdfTeX~ or~ (preferably)~ LuaTeX. }
+ \msg_error:nn { seiifonts } { xetex-not-supported }
+ }
+% \end{macrocode}
+%
+% \subsection{Font loading}
+%
+% Depending on the engine used by the user,
+% we can use \pkg{fontspec} for loading fonts.
+% \begin{macrocode}
+\ifengineTF { \luatexengine }
+ {
+% \end{macrocode}
+%
+% If the user uses \LuaTeX{}, load \pkg{fontspec} and \pkg{unicode-math}.
+% \begin{macrocode}
+ \RequirePackage{fontspec}
+ \RequirePackage{unicode-math}
+% \end{macrocode}
+%
+% To make sure the scaling of the fonts matches, we let \pkg{fontspec} do this
+% matching based on the lower-case characters.
+% \begin{macrocode}
+ \defaultfontfeatures{ Scale = MatchLowercase }
+ \defaultfontfeatures[\rmfamily]{ Scale = 1 }
+% \end{macrocode}
+%
+% Load the respective \pkg{libertinus-otf} package and omit the monospaced font.
+% \begin{macrocode}
+ \PassOptionsToPackage{mono=false}{libertinus-otf}
+ \RequirePackage{libertinus-otf}
+% \end{macrocode}
+%
+% Load the \emph{Anonymous Pro} monospaced font.
+% \begin{macrocode}
+ \setmonofont{AnonymousPro}[
+ RawFeature = {+tnum, +lnum},
+ Scale = {MatchLowercase},
+ FakeStretch = {0.9},
+ UprightFont = *-Regular,
+ ItalicFont = *-Italic,
+ SlantedFont = *-Italic,
+ BoldFont = *-Bold,
+ BoldItalicFont = *-BoldItalic,
+ Extension = .ttf,
+ ]
+% \end{macrocode}
+%
+% \begin{macrocode}
+ } {
+% \end{macrocode}
+%
+% The user does not use \LuaTeX{}, thus fallback to T1 fonts.
+% \begin{macrocode}
+ \PassOptionsToPackage{T1}{fontenc}
+ \PassOptionsToPackage{scale=0.85}{AnonymousPro}
+ \PassOptionsToPackage{mono=false}{libertinus-type1}
+ \RequirePackage{fontenc}
+ \RequirePackage{AnonymousPro}
+ \RequirePackage{libertinus-type1}
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \end{implementation}
+%
+% \PrintIndex
diff --git a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
index 1938ad4bda..e545f309c2 100644
--- a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
+++ b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex
index 96b4038fe3..1ba0afbb52 100644
--- a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex
+++ b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex
@@ -8,7 +8,6 @@
\listfiles
\usepackage[ngerman,main=UKenglish]{babel}
\usepackage{blindtext}
-\usepackage{csquotes}
\usepackage[%
group-minimum-digits=4,%
list-final-separator={, and },%
@@ -33,19 +32,19 @@
frame=single,%
}
-\usepackage{filecontents}
-
-\begin{filecontents*}{\jobname.bib}
+\begin{filecontents}{\jobname.bib}
@book{Knu86,
author = {Knuth, Donald E.},
year = {1986},
title = {The \TeX book},
}
-\end{filecontents*}
+\end{filecontents}
\addbibresource{\jobname.bib}
\usepackage{booktabs}
+\usepackage{csquotes}
+
\usepackage{hyperref}
\usepackage{cleveref}
diff --git a/macros/latex/contrib/se2thesis/se2thesis.dtx b/macros/latex/contrib/se2thesis/se2thesis.dtx
index 81bed285c7..12e77ce2f7 100644
--- a/macros/latex/contrib/se2thesis/se2thesis.dtx
+++ b/macros/latex/contrib/se2thesis/se2thesis.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% File: se2thesis.dtx Copyright (C) 2022 Stephan Lukasczyk
+% File: se2thesis.dtx Copyright (C) 2022--2023 Stephan Lukasczyk
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -29,135 +29,6 @@
% The next line is needed so that \GetFileInfo will be able to pick up
% version data.
\usepackage{se2colors}
-%
-% Commands for this document, taken from Joseph Wright's siunitx
-% documentation:
-\ExplSyntaxOn
-\makeatletter
-\NewDocumentCommand \acro { m }
- {
- \textsc
- {
- \exp_args:NV \tl_if_head_eq_charcode:nNTF \f@series { m }
- { \text_lowercase:n }
- { \use:n }
- {#1}
- }
- }
-\makeatother
-\ExplSyntaxOff
-\NewDocumentCommand{\email}{m}{\href{mailto:#1}{\nolinkurl{#1}}}
-\NewDocumentCommand{\ext}{m}{\texttt.#1}
-\NewDocumentCommand{\opt}{m}{\texttt{#1}}
-% Tidy up the above in bookmarks
-\makeatletter
-\pdfstringdefDisableCommands{%
- \let\acro\@firstofone
- \let\ext\@firstofone
- \let\opt\@firstofone
-}
-\makeatother
-
-% For creating code demonstration, taken from Joseph Wright's siunitx
-% documentation:
-\usepackage{listings}
-\makeatletter
-\lst@RequireAspects{writefile}
-\newsavebox\LaTeXdemo@box
-\lstnewenvironment{LaTeXdemo}[1][code and example]
- {%
- \global\let\lst@intname\@empty
- \edef\LaTeXdemo@end{%
- \expandafter\noexpand\csname LaTeXdemo@@#1@end\endcsname
- }%
- \@nameuse{LaTeXdemo@@#1}%
- }
- {\LaTeXdemo@end}
-\newcommand\LaTeXdemo@new[3]{%
- \@namedef{LaTeXdemo@@#1}{#2}
- \@namedef{LaTeXdemo@@#1@end}{#3}%
-}
-\newcommand*\LaTeXdemo@common{%
- \setkeys{lst}
- {%
- basicstyle = \small\ttfamily,
- breaklines = true,
- basewidth = 0.51em,
- captionpos = t,
- extendedchars = true,
- frame = single,
- gobble = 2,
- keywordstyle = \color{blue}\bfseries,
- language = [LaTeX]{TeX},
- showspaces = false,
- showstringspaces = false,
- showtabs = false,
- tabsize = 2,
- }%
-}
-\newcount\LaTeXdemo@count
-\newcommand*\LaTeXdemo@input{%
- \catcode`\^^M = 10\relax
- \input{\jobname-\number\LaTeXdemo@count.tmp}%
-}
-\LaTeXdemo@new{code and example}{%
- \setbox\LaTeXdemo@box=\hbox\bgroup
- \global\advance\LaTeXdemo@count by 1 %
- \lst@BeginAlsoWriteFile{\jobname-\number\LaTeXdemo@count.tmp}%
- \LaTeXdemo@common
-}{%
- \lst@EndWriteFile
- \egroup
- \begin{center}
- \ifdim\wd\LaTeXdemo@box > 0.48\linewidth
- \begin{minipage}{\linewidth}
- \usebox\LaTeXdemo@box
- \end{minipage}%
- \par
- \begin{minipage}{\linewidth}
- \LaTeXdemo@input
- \end{minipage}
- \else
- \begin{minipage}{0.48\linewidth}
- \LaTeXdemo@input
- \end{minipage}%
- \hspace{\fill}%
- \begin{minipage}{0.48\linewidth}
- \usebox\LaTeXdemo@box
- \end{minipage}%
- \fi
- \end{center}
-}
-\LaTeXdemo@new{code and float}{%
- \global\advance\LaTeXdemo@count by 1 %
- \lst@BeginAlsoWriteFile{\jobname-\number\LaTeXdemo@count.tmp}%
- \LaTeXdemo@common
-}{%
- \lst@EndWriteFile
- \LaTeXdemo@input
-}
-\LaTeXdemo@new{code only}{\LaTeXdemo@common}{}
-\makeatother
-
-\usepackage[UKenglish]{babel}
-\usepackage{fontspec}
-\usepackage{hvlogos}
-
-% Taken from xcolor.dtx
-\makeatletter
-\def\testclr#1#{\@testclr{#1}}
-\def\@testclr#1#2{{\fboxsep\z@\fbox{\colorbox#1{#2}{\phantom{XX}}}}}
-\makeatother
-
-\usepackage{hvfloat}
-\hypersetup{%
- allcolors=UPSE2-Blue,%
- pdftitle={se2thesis -- A Thesis Class for the Chair of Software Engineering II
- at the University of Passau, Germany},%
- pdfauthor={Stephan Lukasczyk},
-}
-\usepackage[capitalise]{cleveref}
-
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
@@ -167,57 +38,19 @@
% \GetFileInfo{se2colors.sty}
%
% \title{^^A
-% \pkg{se2thesis} -- A Thesis Class for the Chair of Software
-% Engineering~II at the University of Passau, Germany^^A
-% \thanks{This file describes \fileversion,
-% last revised \filedate.}^^A
+% \pkg{se2thesis} -- Overall set up^^A
+% \thanks{This file describes \fileversion, last revised \filedate.}^^A
% }
%
% \author{^^A
% Stephan Lukasczyk^^A
% \thanks{^^A
-% E-mail: \href{mailto:tex@lukasczyk.me}{tex@lukasczyk.me}^^A
+% E-Mail: \href{mailto:tex@lukasczyk.me}{tex@lukasczyk.me}^^A
% }^^A
% }
%
-% \date{Released \filedate}
-%
-% \maketitle
-%
-% \begin{abstract}
-% One can choose from a wide variety of templates to write a thesis.
-% Many universities provide very rigorous style guides and force their
-% students to obey to those guides, even though they might be questionable
-% from a typographics point of view.
-% Other universities do not provide such guides and leave it to their students
-% to choose or come up with a template.
-% The latter is causing very differently-looking theses.
-%
-% To avoid such a situation in the future this bundle combines several
-% \LaTeX{} packages and classes for the use at the Chair of Software
-% Engineering~II at the University of Passau.
-% We provide, among others, a document class for theses that shall be
-% used by our students.
-% The bundle is designed in a way that one can use the basic components as
-% standalone packages to allow their reuse for other projects.
-% \end{abstract}
-%
-% \tableofcontents
-%
% \begin{documentation}
%
-% \part{User Documentation}\label{sec:doc}
-%
-% This documentation is split into two parts:
-% the first part is the documentation for the user,
-% which provides all macros, variables, and functions
-% that are provided by the \pkg{se2thesis} bundle.
-% The second part (starting on page~\pageref{sec:impl})
-% shows the implementation.
-% This might be interesting for you
-% if you are curious how certain things are defined
-% of if you need to change some of the default implementation.
-%
% \section{Introduction}\label{sec:doc-intro}
%
% The University of Passau does not provide a common thesis template
@@ -242,8 +75,7 @@
% that also allow reuse of various parts of it.
% Its main class is the \pkg{se2thesis} document class,
% an extension of the \KOMAScript{} |scrreprt| document class.
-% The packages \pkg{se2colors} (documented in \cref{sec:doc-se2colors}) and
-% \pkg{se2fonts} (documented in \cref{sec:doc-se2fonts}) provide necessary
+% The packages \pkg{se2colors} and \pkg{se2fonts} provide necessary
% colour and font settings for the \pkg{se2thesis} class.
% They are available as separate packages, however, to allow their reuse for
% other classes, packages, and projects, as well.
@@ -287,10 +119,10 @@
% The following packages and classes are loaded:
% \pkg{expl3}, \pkg{l3keys2e} in case one uses a \LaTeX{} kernel from before
% 2022--06--01, \pkg{graphicx}, \pkg{translations}, \KOMAScript, \pkg{xcolor},
-% \pkg{ifthen}, as well as \pkg{fontspec} and \pkg{unicode-math} if one uses
-% \LuaTeX{};
-% for \pdfLaTeX{} we load \pkg{fontenc}, \pkg{FiraMono}, \pkg{tgheros},
-% \pkg{tgpagella} instead of the latter two.
+% \pkg{ifthen}, as well as \pkg{fontspec}, \pkg{unicode-math},
+% and \pkg{libertinus-otf} if one uses \LuaTeX{};
+% for \pdfLaTeX{} we load \pkg{fontenc}, \pkg{libertinus-type1}, and
+% \pkg{AnonymousPro} instead of the latter three.
% Furthermore, we load \pkg{microtype};
% when using \LuaTeX{}, we also load \pkg{lua-widow-control} and \pkg{selnolig}.
%
@@ -301,9 +133,9 @@
%
% Before we start with a detailed documentation of the class, we explain one
% helper macro that can be used to check whether a package has been loaded.
-% \begin{function}[EXP, pTF, updated = 2022-09-27]{\slcd_package_if_loaded:}
+% \begin{function}[pTF, updated = 2022-09-27]{\slcd_package_if_loaded:n}
% \begin{syntax}
-% |\slcd_package_if_loaded:TF| \Arg{true code} \Arg{false code}
+% |\slcd_package_if_loaded:nTF| \Arg{package name} \Arg{true code} \Arg{false code}
% \end{syntax}
% Checks whether a package has been loaded and conditionally executes code.
% \end{function}
@@ -366,12 +198,14 @@
% package, see \cref{sec:doc-se2colors} for a description.
% \end{function}
%
-% \begin{function}{fontmode}
+% \begin{function}[updated = 2023-01-10]{fontmode}
% \begin{syntax}
% |fontmode| = \meta{choice}
% \end{syntax}
% Select the font scheme used by the automatically loaded \pkg{se2fonts}
% package, see \cref{sec:doc-se2fonts} for a description.
+%
+% \emph{This option is deprecated and will be removed in the future!}
% \end{function}
%
%
@@ -814,246 +648,11 @@
% question;
% however, this can also be arbitrary text.
%
-% \section{The \pkg{se2colors} package}\label{sec:doc-se2colors}
-%
-% Several colours are specific to the university
-% and we want to have a comprehensive interface
-% to access them throughout all our packages.
-%
-% The \pkg{se2colors} package provides this exact features.
-% One can load it using |\usepackage{se2colors}| in the document preamble.
-%
-% \begin{function}[updated = 2022-11-03]{cmode}
-% \begin{syntax}
-% |cmode| = \meta{choice}
-% \end{syntax}
-% Selects the colour mode that shall be used for creating the results,
-% a choice from the options specified in \cref{tab:coloursoptions}.
-% The default setting is |4C|.
-% \end{function}
-%
-% \begin{table}[th]
-% \tabcaption{\label{tab:coloursoptions}%
-% Options provided by \pkg{se2colors}.%
-% }
-% \centering
-% \begin{tabular}{@{} l l @{}} \toprule
-% Option & Description \\ \midrule
-% %
-% |cmode=4C|
-% & Define colours in CMYK colour space (\emph{default}). \\
-% %
-% |CMYK|, |cmyk|
-% & Aliases for the previous. \\
-% %
-% |cmode=RGB|
-% & Define colours in RGB colour space. \\
-% %
-% |RGB|, |rgb|
-% & Aliases for the previous. \\
-% %
-% |cmode=BW|
-% & Define colours in black-and-white colour space. \\
-% %
-% |cmode=1C|
-% & Alias for the previous. \\
-% %
-% |gray|
-% & Alias for the previous. \\
-% %
-% \bottomrule
-% \end{tabular}
-% \end{table}
-%
-% We define two basic colours
-% that are taken from the University's logo,
-% namely |UPSE2-Gray| \testclr{UPSE2-Gray}
-% and |UPSE2-Orange| \testclr{UPSE2-Orange}.
-%
-% Additionally,
-% we define four colours for the four faculties of the University:
-% \begin{itemize}
-% \item the Faculty of Law |UPSE2-JUR| \testclr{UPSE2-JUR},
-% \item the School of Business, Economics and Information Systems |UPSE2-WIWI| \testclr{UPSE2-WIWI},
-% \item the Faculty of Arts and Humanities |UPSE2-PHIL| \testclr{UPSE2-PHIL}, and
-% \item the Faculty of Computer Science and Mathematics |UPSE2-FIM| \testclr{UPSE2-FIM}.
-% \end{itemize}
-%
-% Finally,
-% we define a full set of supplementary colours:
-% \begin{itemize}
-% \item |UPSE2-DarkGray| \testclr{UPSE2-DarkGray}
-% with its derivatives \\
-% |UPSE2-DarkGray1| \testclr{UPSE2-DarkGray1},
-% |UPSE2-DarkGray2| \testclr{UPSE2-DarkGray2},
-% |UPSE2-DarkGray3| \testclr{UPSE2-DarkGray3},
-% |UPSE2-DarkGray4| \testclr{UPSE2-DarkGray4}, and
-% |UPSE2-DarkGray5| \testclr{UPSE2-DarkGray5}.
-% \item |UPSE2-White| \testclr{UPSE2-White}
-% with its derivatives \\
-% |UPSE2-White1| \testclr{UPSE2-White1},
-% |UPSE2-White2| \testclr{UPSE2-White2},
-% |UPSE2-White3| \testclr{UPSE2-White3},
-% |UPSE2-White4| \testclr{UPSE2-White4}, and
-% |UPSE2-White5| \testclr{UPSE2-White5}.
-% \item |UPSE2-MediumGray| \testclr{UPSE2-MediumGray}
-% with its derivatives \\
-% |UPSE2-MediumGray1| \testclr{UPSE2-MediumGray1},
-% |UPSE2-MediumGray2| \testclr{UPSE2-MediumGray2},
-% |UPSE2-MediumGray3| \testclr{UPSE2-MediumGray3},
-% |UPSE2-MediumGray4| \testclr{UPSE2-MediumGray4}, and
-% |UPSE2-MediumGray5| \testclr{UPSE2-MediumGray5}.
-% \item |UPSE2-LightGray| \testclr{UPSE2-LightGray}
-% with its derivatives \\
-% |UPSE2-LightGray1| \testclr{UPSE2-LightGray1},
-% |UPSE2-LightGray2| \testclr{UPSE2-LightGray2},
-% |UPSE2-LightGray3| \testclr{UPSE2-LightGray3},
-% |UPSE2-LightGray4| \testclr{UPSE2-LightGray4}, and
-% |UPSE2-LightGray5| \testclr{UPSE2-LightGray5}.
-% \item |UPSE2-Orange| \testclr{UPSE2-Orange}
-% with its derivatives \\
-% |UPSE2-Orange1| \testclr{UPSE2-Orange1},
-% |UPSE2-Orange2| \testclr{UPSE2-Orange2},
-% |UPSE2-Orange3| \testclr{UPSE2-Orange3},
-% |UPSE2-Orange4| \testclr{UPSE2-Orange4}, and
-% |UPSE2-Orange5| \testclr{UPSE2-Orange5}.
-% \item |UPSE2-LightRed| \testclr{UPSE2-LightRed}
-% with its derivatives \\
-% |UPSE2-LightRed1| \testclr{UPSE2-LightRed1},
-% |UPSE2-LightRed2| \testclr{UPSE2-LightRed2},
-% |UPSE2-LightRed3| \testclr{UPSE2-LightRed3},
-% |UPSE2-LightRed4| \testclr{UPSE2-LightRed4}, and
-% |UPSE2-LightRed5| \testclr{UPSE2-LightRed5}.
-% \item |UPSE2-DarkRed| \testclr{UPSE2-DarkRed}
-% with its derivatives \\
-% |UPSE2-DarkRed1| \testclr{UPSE2-DarkRed1},
-% |UPSE2-DarkRed2| \testclr{UPSE2-DarkRed2},
-% |UPSE2-DarkRed3| \testclr{UPSE2-DarkRed3},
-% |UPSE2-DarkRed4| \testclr{UPSE2-DarkRed4}, and
-% |UPSE2-DarkRed5| \testclr{UPSE2-DarkRed5}.
-% \item |UPSE2-Green| \testclr{UPSE2-Green}
-% with its derivatives \\
-% |UPSE2-Green1| \testclr{UPSE2-Green1},
-% |UPSE2-Green2| \testclr{UPSE2-Green2},
-% |UPSE2-Green3| \testclr{UPSE2-Green3},
-% |UPSE2-Green4| \testclr{UPSE2-Green4}, and
-% |UPSE2-Green5| \testclr{UPSE2-Green5}.
-% \item |UPSE2-Blue| \testclr{UPSE2-Blue}
-% with its derivatives \\
-% |UPSE2-Blue1| \testclr{UPSE2-Blue1},
-% |UPSE2-Blue2| \testclr{UPSE2-Blue2},
-% |UPSE2-Blue3| \testclr{UPSE2-Blue3},
-% |UPSE2-Blue4| \testclr{UPSE2-Blue4}, and
-% |UPSE2-Blue5| \testclr{UPSE2-Blue5}.
-% \item |UPSE2-AccentGray| \testclr{UPSE2-AccentGray}
-% with its derivatives \\
-% |UPSE2-AccentGray1| \testclr{UPSE2-AccentGray1},
-% |UPSE2-AccentGray2| \testclr{UPSE2-AccentGray2},
-% |UPSE2-AccentGray3| \testclr{UPSE2-AccentGray3},
-% |UPSE2-AccentGray4| \testclr{UPSE2-AccentGray4}, and
-% |UPSE2-AccentGray5| \testclr{UPSE2-AccentGray5}.
-% \end{itemize}
-%
-% \section{The \pkg{se2fonts} package}\label{sec:doc-se2fonts}
-%
-% The \pkg{se2fonts} package sets the fonts for the document.
-% By default,
-% we recommend using Hermann Zapf's beautiul \emph{Palatino} font
-% as the main text font,
-% accompanied with the sans-serif font \emph{Helvetica}
-% and \emph{Neo Euler} as the default math font;
-% we set \emph{Meslo LGS Nerd Font Mono} as the monospaced font.
-% Palatino and Helvetica get shipped with any macOS system,
-% the user, however, needs to download Neo Euler themself\footnote{
-% for example from
-% \href{https://fontlibrary.org/en/font/euler-otf}{https://fontlibrary.org/en/font/euler-otf}.
-% }.
-% Being aware that these fonts might not be available on every user's system,
-% we recommend using \emph{\TeX{} Gyre Pagella} as an alternative to
-% Palatino, \emph{\TeX{} Gyre Heros} as an alternative to Helvetica,
-% and the \emph{\TeX{} Gyre Pagella Math} as the default math font;
-% \emph{Fira Code} is a nice monospaced font.
-% Although they look different in various details
-% they still provide a nice-looking alternative
-% that is bundled with a recent standard \TeX{} distribution.
-%
-% If you are using \LuaTeX{},
-% fonts are expected to be present as open-type fonts;
-% using \pdfLaTeX{} will fallback to Type-1 fonts,
-% and will use \TeX{} Gyre Pagella,
-% \TeX{} Gyre Heros,
-% Fira Code,
-% and \TeX{} Gyre Pagella Math as the default fonts.
-%
-% \emph{Note that the package does not support \XeTeX{}!}
-%
-% The following option is defined by the \pkg{se2fonts} package
-% to influence the selection of the fonts.
-%
-% \begin{function}[updated = 2022-11-03]{fmode}
-% \begin{syntax}
-% |fmode| = \meta{choice}
-% \end{syntax}
-% Sets the font-selection mode based on a choice:
-% |original| selects the fonts we recommend for using,
-% |replacement| selects fonts that are part of a standard \TeX{}
-% distribution,
-% in case one has no access to the |original| fonts;
-% |auto| selects fonts automatically,
-% preferring the |original| fonts if available.
-% The default is |auto|.
-%
-% The fonts are automatically scaled based on their lower-case characters
-% using the mechanisms provided by \pkg{fontspec} when using \LuaTeX.
-% \end{function}
-%
-% The following list provides examples for each of the fonts:
-% \begin{itemize}
-% \item {\fontspec{Palatino}An example text in Palatino}
-% \item {\fontspec{TeX Gyre Pagella}An example text in \TeX{} Gyre Pagella}
-% \item {\fontspec{Helvetica}An example text in Helvetica}
-% \item {\fontspec{TeX Gyre Heros}An example text in \TeX{} Gyre Heros}
-% \item {\fontspec{MesloLGSNerd Font Mono}An example text in MesloLGS}
-% \item {\fontspec{Fira Code}An example text in Fira Code}
-% \item {\fontspec{Neo Euler}An example text in Neo Euler}
-% \item {\fontspec{TeX Gyre Pagella Math}An example text in \TeX{} Gyre
-% Pagella Math}
-% \end{itemize}
-%
-% The package provides additional helper functions
-% that are also available to the user.
-%
-% \begin{function}{\pdftexengine, \xetexengine, \luatexengine}
-% \begin{syntax}
-% \cmd{\pdftexengine}
-% \cmd{\xetexengine}
-% \cmd{luatexengine}
-% \end{syntax}
-% These commands alias the built-in \LaTeX3{} macros
-% \cs{sys_if_engine_pdftex_p:},
-% \cs{sys_if_engine_xetex_p:}, and
-% \cs{sys_if_engine_luatex_p:}.
-% They can be used to check which engine the user is currently running.
-% \end{function}
-%
-% \begin{function}{\ifengineTF, \ifengineT, \ifengineF}
-% \begin{syntax}
-% \cmd{\ifengineTF} \marg{engine} \marg{then block} \marg{else block}
-% \cmd{\ifengineT} \marg{engine} \marg{then block}
-% \cmd{\ifengineF} \marg{engine} \marg{then block}
-% \end{syntax}
-% Allows to execute code based on the running engine.
-% The base variant \cs{ifengineTF} expects the user to specify a condition,
-% which can be built of combinations of the \cs{pdftexengine},
-% \cs{xetexengine},
-% and \cs{luatexengine} macros,
-% followed by the code that will be executed if the condition holds
-% and the code that will be executed if the condition does not hold.
-%
-% For convenience,
-% we provide the variants \cs{ifengineT} and \cs{ifengineF}
-% that allow to omit an empty then or else branch, respectivly.
-% \end{function}
+% \begin{thebibliography}{9}
+% \bibitem{DBLP:journals/sttt/BeyerLW19} Dirk Beyer, Stefan Löwe, and Philipp
+% Wendler: \emph{Reliable benchmarking: requirements and solutions}. STTT
+% 21(1): 1--29 (2019)
+% \end{thebibliography}
%
% \end{documentation}
%
@@ -1061,8 +660,6 @@
%
% \begin{implementation}
%
-% \part{Implementation}\label{sec:impl}
-%
% \section{Global helpers}\label{sec:impl-global}
%
% These helpers might be useful for many exported packages and classes,
@@ -1124,7 +721,7 @@
%
% Identify the class and give the overall version number.
% \begin{macrocode}
-\ProvidesExplClass {se2thesis} {2022-11-22} {1.3.1}
+\ProvidesExplClass {se2thesis} {2023-01-10} {2.0.0}
{A thesis class for the Chair of Software Engineering II}
% \end{macrocode}
%
@@ -1167,16 +764,16 @@
% \subsection{Define Variables}
%
% The following variables are necessary for the argument handling.
-% \begin{variable}{\l_@@_paper_int}
+% \begin{macro}{\l_@@_paper_int}
% A variable to store the key of the page size selected by the user.
% \begin{macrocode}
\int_new:N \l_@@_paper_int
% \end{macrocode}
-% \end{variable}
+% \end{macro}
%
% We also need properties to store class options that are not for us,
% thus shall be handled by the underlying base class.
-% \begin{variable}
+% \begin{macro}
% {
% \l_@@_base_class_tl,
% \l_@@_clsopts_prop,
@@ -1189,19 +786,19 @@
\prop_new:N \l_@@_clsopts_prop
\prop_new:N \l_@@_unknown_clsopts_prop
% \end{macrocode}
-% \end{variable}
+% \end{macro}
%
-% \begin{variable}{\l_@@_biblatex_bool}
+% \begin{macro}{\l_@@_biblatex_bool}
% The user wants to load the \pkg{biblatex} package together with our
% settings.
% \begin{macrocode}
\bool_new:N \l_@@_biblatex_bool
% \end{macrocode}
-% \end{variable}
+% \end{macro}
%
% Define internal variables to hold the values of the fields of the title
% page.
-% \begin{variable}
+% \begin{macro}
% {
% \l_@@_version_tl,
% \l_@@_degreeprogramme_tl,
@@ -1232,11 +829,11 @@
\tl_new:N \l_@@_signature_tl
\tl_new:N \l_@@_location_tl
% \end{macrocode}
-% \end{variable}
+% \end{macro}
%
% Define several dimensions for the \pkg{typearea} package to define the
% package style.
-% \begin{variable}
+% \begin{macro}
% {
% \l_@@_marginspace_dim,
% \l_@@_headmarkspace_dim,
@@ -1258,16 +855,16 @@
\dim_gset:Nn \l_@@_headmarkspace_dim { 0.75cm }
\dim_gset:Nn \l_@@_rulespace_dim { 10pt }
\dim_gset:Nn \l_@@_pagemark_minipage_dim { 1.5cm }
-\dim_gset:Nn \l_@@_ruleraise_dim { -100pt }
+\dim_gset:Nn \l_@@_ruleraise_dim { -5pt }
\dim_gset:Nn \l_@@_rulewidth_dim { 1.25pt }
-\dim_gset:Nn \l_@@_rulethickness_dim { 110pt }
+\dim_gset:Nn \l_@@_rulethickness_dim { 15pt }
% \end{macrocode}
-% \end{variable}
+% \end{macro}
%
% \subsection{Load-time options}
%
% We define the key-value interface for the class.
-% \begin{variable}
+% \begin{macro}
% {
% \l_@@_base_class_tl,
% \l_@@_unknown_clsopts_prop,
@@ -1332,7 +929,7 @@
},
}
% \end{macrocode}
-% \end{variable}
+% \end{macro}
%
% Handle the options
% \begin{macrocode}
@@ -1386,7 +983,6 @@
\PassOptionsToPackage{\l_@@_colormode_tl}{se2colors}
\RequirePackage{se2colors}
-\PassOptionsToPackage{\l_@@_fontmode_tl}{se2fonts}
\RequirePackage{se2fonts}
% \end{macrocode}
%
@@ -1455,9 +1051,8 @@
\PassOptionsToPackage
{
backend=biber,
- hyperref=true,
+ hyperref=auto,
backref=true,
- backrefstyle=none,
style=alphabetic,
maxnames=100,
minalphanames=3,
@@ -1466,38 +1061,6 @@
}{biblatex}
\RequirePackage{biblatex}
% \end{macrocode}
-% Define strings for back-referencing.
-% \begin{macrocode}
- \DefineBibliographyStrings{english}{
- backrefpage = {\lowercase{c}ited~ on~ p.},
- backrefpages = {\lowercase{c}ited~ on~ pp.},
- }
- \DefineBibliographyStrings{german}{
- backrefpage = {\lowercase{z}itiert~ auf~ S.},
- backrefpages = {\lowercase{z}itiert~ auf~ S.},
- }
-% \end{macrocode}
-% Design the page-ref format.
-% \begin{macrocode}
- \DeclareFieldFormat{pagerefformat}{
- {
- \color{UPSE2-Gray}
- \mkbibparens{\mkbibemph{#1}}
- }
- }
- \renewbibmacro*{pageref}{
- \iflistundef{pageref}{}{
- \printtext[pagerefformat]{
- \ifnumgreater{
- \value{pageref}
- }{1}
- {\bibstring{backrefpages}\ppspace}
- {\bibstring{backrefpage}\ppspace}
- \printlist[pageref][-\value{listtotal}]{pageref}
- }
- }
- }
-% \end{macrocode}
% End of the \BibLaTeX{} settings.
% \begin{macrocode}
}
@@ -1606,7 +1169,7 @@
%
% For the logo on the titlepage, we define further variables to store its height
% and a box to store the logo itself.
-% \begin{variable}{\l_@@_logo_height_dim, \l_@@_logo_box}
+% \begin{macro}{\l_@@_logo_height_dim, \l_@@_logo_box}
% \begin{macrocode}
\dim_if_exist:NF \l_@@_logo_height_dim
{
@@ -1627,23 +1190,23 @@
}
}
% \end{macrocode}
-% \end{variable}
+% \end{macro}
%
% Set the paper size depending on the selected |paper| option.
% \begin{macrocode}
\int_compare:nTF { \l_@@_paper_int=1 }
{
- \areaset[current]{389pt}{630pt}
+ \areaset[current]{350pt}{567pt}
\setlength{\marginparsep}{8.5cm}
\setlength{\marginparsep}{1em}
}{
\int_compare:nTF { \l_@@_paper_int=2 }
{
- \areaset[current]{275pt}{445pt}
+ \areaset[current]{247pt}{400pt}
\setlength{\marginparsep}{6.0cm}
\setlength{\marginparsep}{0.71em}
}{
- \areaset[current]{337pt}{545pt}
+ \areaset[current]{303pt}{491pt}
\setlength{\marginparsep}{7.4cm}
\setlength{\marginparsep}{0.87em}
}
@@ -1749,7 +1312,7 @@
\setkomafont{publishers}{\normalsize}
% \end{macrocode}
%
-% \begin{variable}{\author, \@author}
+% \begin{macro}{\author, \@author}
% Allow for automated splitting of author's names.
% \begin{macrocode}
\seq_new:N \l_@@_author_seq
@@ -1766,7 +1329,7 @@
\group_end:
}
% \end{macrocode}
-% \end{variable}
+% \end{macro}
%
% Define a new layer using the functionality from \pkg{scrlayer-scrpage} for the
% logo image.
@@ -1841,7 +1404,7 @@
}
% \end{macrocode}
%
-% \begin{variable}{\l_@@_title_box}
+% \begin{macro}{\l_@@_title_box}
% Define a box for the title if it does not yet exist.
% \begin{macrocode}
\box_if_exist:NF \l_@@_title_box
@@ -1849,9 +1412,9 @@
\box_new:N \l_@@_title_box
}
% \end{macrocode}
-% \end{variable}
+% \end{macro}
%
-% \begin{variable}{\@maketitle}
+% \begin{macro}{\@maketitle}
% Redeclare the \cs{@maketitle} macro.
% \begin{macrocode}
\renewcommand*{\@maketitle}{%
@@ -1870,7 +1433,7 @@
\@thanks\let\@thanks\@empty
}
% \end{macrocode}
-% \end{variable}
+% \end{macro}
%
% Load the \pkg{ifthen} package.
% \begin{macrocode}
@@ -1983,7 +1546,7 @@
}
% \end{macrocode}
%
-% \begin{variable}{\@lowertitleback}
+% \begin{macro}{\@lowertitleback}
% Afterwards, override the definition of \cs{@lowertitleback}.
% \begin{macrocode}
\renewcommand*{\@lowertitleback}{%
@@ -1995,12 +1558,12 @@
\tl_if_eq:NnT \l_@@_thesis_type_tl { master }
{ \GetTranslation{Master-thesis},~ }
\tl_if_eq:NnT \l_@@_thesis_type_tl { phd }
- { \GetTranslation{PhD},~ }
+ { \GetTranslation{PhD-thesis},~ }
\GetTranslation{up},~\the\year.
\group_end:
}
% \end{macrocode}
-% \end{variable}
+% \end{macro}
%
% \subsection{Provide an environment for abstracts}
%
@@ -2141,7 +1704,7 @@
wörtlich~ und~ sinngemäß~ übernommenen~ Passagen~ aus~ anderen~
Werken~ kenntlich~ gemacht~ habe.
\item Außerdem~ erkläre~ ich,~ dass~ ich~ der~ Universität~ ein~
- einfaches~ Nutzungsrecht~ zum~ Zwecke~ der~ Überprüfung~ mittels~
+ einfaches~ Nutzungsrecht~ zum~ Zwecke~ der~ Überprüfung~ mittels~
einer~ Plagiatssoftware~ in~ anonymisierter~ Form~ einräume.
\end{enumerate}\par
\bigskip
@@ -2232,7 +1795,7 @@
% We provide the following English translations.
%
% \begin{macrocode}
-\ProvideDictionaryFor{English}{se2translations}[2022/11/22]
+\ProvideDictionaryFor{English}{se2translations}[2023/01/10]
\ProvideDictTranslation{abstract}{abstract}
\ProvideDictTranslation{Abstract}{Abstract}
\ProvideDictTranslation{acknowledgement}{acknowledgement}
@@ -2283,7 +1846,7 @@
% We provide the following German translations.
%
% \begin{macrocode}
-\ProvideDictionaryFor{German}{se2translations}[2022/11/22]
+\ProvideDictionaryFor{German}{se2translations}[2023/01/10]
\ProvideDictTranslation{abstract}{Zusammenfassung}
\ProvideDictTranslation{Abstract}{Zusammenfassung}
\ProvideDictTranslation{acknowledgement}{Danksagung}
@@ -2329,358 +1892,8 @@
%</translations>
% \end{macrocode}
%
-% \section{The \pkg{se2colors} implementation}\label{sec:impl-se2colors}
-%
-% Start the \pkg{DocStrip} guards.
-% \begin{macrocode}
-%<*colors>
-% \end{macrocode}
-%
-% Identify the internal prefix (\LaTeX3 \pkg{DocStrip} convention): only
-% internal material in this \emph{submodule} should be used directly.
-% \begin{macrocode}
-%<@@=slcd_colors>
-% \end{macrocode}
-%
-% Identify the package and give the overall version information.
-% \begin{macrocode}
-\ProvidesExplPackage {se2colors} {2022-11-22} {1.3.1}
- {A colour support package for the se2thesis bundle}
-% \end{macrocode}
-%
-%
-% \subsection{Load-time options}
-%
-% \begin{variable}{\l_@@_colormode_tl}
-% Holds the colour mode selected by the user as a package load-time option.
-% \begin{macrocode}
-\keys_define:nn { seiicolors }
- {
- cmode .choice:,
- cmode / 4C .code:n = {
- \PassOptionsToPackage{cmyk}{xcolor}
- \tl_gset:Nn \l_@@_colormode_tl {4C}
- },
- cmode / RGB .code:n = {
- \PassOptionsToPackage{rgb}{xcolor}
- \tl_gset:Nn \l_@@_colormode_tl {RGB}
- },
- cmode / BW .code:n = {
- \PassOptionsToPackage{gray}{xcolor}
- \tl_gset:Nn \l_@@_colormode_tl {BW}
- },
- cmode / CMYK .meta:n = {cmode=4C},
- cmode / cmyk .meta:n = {cmode=4C},
- cmode / rgb .meta:n = {cmode=RGB},
- cmode / gray .meta:n = {cmode=BW},
- RGB .meta:n = {cmode=RGB},
- rgb .meta:n = {cmode=rgb},
- CMYK .meta:n = {cmode=4C},
- cmyk .meta:n = {cmode=4C},
- gray .meta:n = {cmode=BW},
- }
-\keys_set:nn { seiicolors } { cmode = 4C }
-% \end{macrocode}
-% \end{variable}
-%
-% \subsection{Option handling}
-%
-% \begin{macrocode}
-\IfFormatAtLeastTF { 2022-06-01 }
- { \ProcessKeyOptions [ seiicolors ] }
- {
- \RequirePackage { l3keys2e }
- \ProcessKeysOptions { seiicolors }
- }
-% \end{macrocode}
-%
-% \subsection{Colour definitions}
-%
-% Load the \pkg{xcolor} package for colour definitions.
-% \begin{macrocode}
-\RequirePackage{xcolor}
-% \end{macrocode}
-%
-% Define the primary colours gray and orange as given by the University of
-% Passau's style guides.
-% \begin{macrocode}
-\definecolorset[named]{RGB/cmyk}{UPSE2-}{}{%
- Orange,242,148,0/0.00,0.44,0.95,0.01;%
- Gray,153,159,158/0.40,0.28,0.28,0.00;%
- JUR,229,49,56/0.01,0.90,0.81,0.01;%
- WIWI,0,96,57/0.87,0.20,0.87,0.36;%
- PHIL,188,42,51/0.06,0.93,0.81,0.11;%
- FIM,0,90,161/0.93,0.63,0.01,0.02;%
- DarkGray,77,77,77/0.74,0.67,0.62,0.18;%
- White,255,255,255/0.00,0.00,0.00,0.00;%
- MediumGray,127,127,127/0.52,0.43,0.40,0.02;%
- LightGray,229,229,229/0.08,0.06,0.04,0.00;%
- LightRed,229,49,56/0.01,0.90,0.81,0.01;%
- DarkRed,188,42,51/0.06,0.93,0.80,0.11;%
- Green,0,96,57/0.87,0.20,0.86,0.35;%
- Blue,0,90,161/0.93,0.63,0.01,0.02;%
- AccentGray,153,159,158/0.40,0.28,0.28,0.00%
-}
-% \end{macrocode}
-%
-% Define the derived colours.
-% \begin{macrocode}
-\colorlet{UPSE2-DarkGray1}{UPSE2-DarkGray!20!white}
-\colorlet{UPSE2-DarkGray2}{UPSE2-DarkGray!40!white}
-\colorlet{UPSE2-DarkGray3}{UPSE2-DarkGray!60!white}
-\colorlet{UPSE2-DarkGray4}{UPSE2-DarkGray!75!black}
-\colorlet{UPSE2-DarkGray5}{UPSE2-DarkGray!50!black}
-\colorlet{UPSE2-White1}{UPSE2-White!95!black}
-\colorlet{UPSE2-White2}{UPSE2-White!85!black}
-\colorlet{UPSE2-White3}{UPSE2-White!75!black}
-\colorlet{UPSE2-White4}{UPSE2-White!65!black}
-\colorlet{UPSE2-White5}{UPSE2-White!50!black}
-\colorlet{UPSE2-MediumGray1}{UPSE2-MediumGray!20!white}
-\colorlet{UPSE2-MediumGray2}{UPSE2-MediumGray!40!white}
-\colorlet{UPSE2-MediumGray3}{UPSE2-MediumGray!60!white}
-\colorlet{UPSE2-MediumGray4}{UPSE2-MediumGray!75!black}
-\colorlet{UPSE2-MediumGray5}{UPSE2-MediumGray!50!black}
-\colorlet{UPSE2-LightGray1}{UPSE2-LightGray!90!black}
-\colorlet{UPSE2-LightGray2}{UPSE2-LightGray!75!black}
-\colorlet{UPSE2-LightGray3}{UPSE2-LightGray!55!black}
-\colorlet{UPSE2-LightGray4}{UPSE2-LightGray!25!black}
-\colorlet{UPSE2-LightGray5}{UPSE2-LightGray!10!black}
-\colorlet{UPSE2-Orange1}{UPSE2-Orange!20!white}
-\colorlet{UPSE2-Orange2}{UPSE2-Orange!40!white}
-\colorlet{UPSE2-Orange3}{UPSE2-Orange!60!white}
-\colorlet{UPSE2-Orange4}{UPSE2-Orange!75!black}
-\colorlet{UPSE2-Orange5}{UPSE2-Orange!50!black}
-\colorlet{UPSE2-LightRed1}{UPSE2-LightRed!20!white}
-\colorlet{UPSE2-LightRed2}{UPSE2-LightRed!40!white}
-\colorlet{UPSE2-LightRed3}{UPSE2-LightRed!60!white}
-\colorlet{UPSE2-LightRed4}{UPSE2-LightRed!75!black}
-\colorlet{UPSE2-LightRed5}{UPSE2-LightRed!50!black}
-\colorlet{UPSE2-DarkRed1}{UPSE2-DarkRed!20!white}
-\colorlet{UPSE2-DarkRed2}{UPSE2-DarkRed!40!white}
-\colorlet{UPSE2-DarkRed3}{UPSE2-DarkRed!60!white}
-\colorlet{UPSE2-DarkRed4}{UPSE2-DarkRed!75!black}
-\colorlet{UPSE2-DarkRed5}{UPSE2-DarkRed!50!black}
-\colorlet{UPSE2-Green1}{UPSE2-Green!10!white}
-\colorlet{UPSE2-Green2}{UPSE2-Green!25!white}
-\colorlet{UPSE2-Green3}{UPSE2-Green!50!white}
-\colorlet{UPSE2-Green4}{UPSE2-Green!75!white}
-\colorlet{UPSE2-Green5}{UPSE2-Green!90!white}
-\colorlet{UPSE2-Blue1}{UPSE2-Blue!20!white}
-\colorlet{UPSE2-Blue2}{UPSE2-Blue!40!white}
-\colorlet{UPSE2-Blue3}{UPSE2-Blue!60!white}
-\colorlet{UPSE2-Blue4}{UPSE2-Blue!75!black}
-\colorlet{UPSE2-Blue5}{UPSE2-Blue!50!black}
-\colorlet{UPSE2-AccentGray1}{UPSE2-AccentGray!20!white}
-\colorlet{UPSE2-AccentGray2}{UPSE2-AccentGray!40!white}
-\colorlet{UPSE2-AccentGray3}{UPSE2-AccentGray!60!white}
-\colorlet{UPSE2-AccentGray4}{UPSE2-AccentGray!75!black}
-\colorlet{UPSE2-AccentGray5}{UPSE2-AccentGray!50!black}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</colors>
-% \end{macrocode}
-%
-% \section{The \pkg{se2fonts} implementation}\label{sec:impl-se2fonts}
-%
-% Start the \pkg{DocStrip} guards.
-% \begin{macrocode}
-%<*fonts>
-% \end{macrocode}
-%
-% Identify the internal prefix (\LaTeX3 \pkg{DocStrip} convention): only
-% internal material in this \emph{submodule} should be used directly.
-% \begin{macrocode}
-%<@@=slcd_fonts>
-% \end{macrocode}
-%
-% Identify the package and give the overall version information.
-% \begin{macrocode}
-\ProvidesExplPackage {se2fonts} {2022-11-22} {1.3.1}
- {A font-selection support package for the se2thesis bundle}
-% \end{macrocode}
-%
-% \subsection{Load-time options}
-%
-% \begin{variable}{\l_@@_fontmode_tl}
-% Holds the font-selection mode specified by the user as a package
-% load-time option.
-% \begin{macrocode}
-\keys_define:nn { seiifonts }
- {
- fmode .choice:,
- fmode / original .code:n = {
- \tl_gset:Nn \l_@@_fontmode_tl {original}
- },
- fmode / replacement .code:n = {
- \tl_gset:Nn \l_@@_fontmode_tl {replacement}
- },
- fmode / auto .code:n = {
- \tl_gset:Nn \l_@@_fontmode_tl {auto}
- },
- original .meta:n = {fmode=original},
- replacement .meta:n = {fmode=replacement},
- auto .meta:n = {fmode=auto},
- }
-\keys_set:nn { seiifonts } { fmode = auto }
-% \end{macrocode}
-% \end{variable}
-%
-% \subsection{Option handling}
-%
-% \begin{macrocode}
-\IfFormatAtLeastTF { 2022-06-01 }
- { \ProcessKeyOptions [ seiifonts ] }
- {
- \RequirePackage{ l3keys2e }
- \ProcessKeysOptions { seiifonts }
- }
-% \end{macrocode}
-%
-% \subsection{Helper macros}
-%
-% \begin{macro}{\pdftexengine, \xetexengine, \luatexengine}
-% We define several alias macros to identify which engine the user is
-% running.
-% \begin{macrocode}
-\cs_new_eq:NN \pdftexengine \sys_if_engine_pdftex_p:
-\cs_new_eq:NN \xetexengine \sys_if_engine_xetex_p:
-\cs_new_eq:NN \luatexengine \sys_if_engine_luatex_p:
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\ifengineTF, \ifengineT, \ifengineF}
-% True, if the engine used matches the given first argument.
-% \begin{macrocode}
-\NewExpandableDocumentCommand \ifengineTF { mmm }
- {
- \bool_if:nTF { #1 } { #2 } { #3 }
- }
-\NewExpandableDocumentCommand \ifengineT { mm }
- {
- \bool_if:nT { #1 } { #2 }
- }
-\NewExpandableDocumentCommand \ifengineF { mm }
- {
- \bool_if:nF { #1 } { #2 }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% The package is not tested with \XeTeX{}, thus we provide an error to the
-% user and stop the execution, when they want to use the package with
-% \XeTeX{}.
-% \begin{macrocode}
-\ifengineT { \xetexengine }
- {
- \msg_set:nnnn { seiifonts } { xetex-not-supported }
- { XeTeX~ is~ not~ supported~ by~ the~ se2fonts~ package. }
- { Switch~ to~ pdfTeX~ or~ (preferably)~ LuaTeX. }
- \msg_error:nn { seiifonts } { xetex-not-supported }
- }
-% \end{macrocode}
-%
-% \subsection{Font loading}
-%
-% Depending on the engine used by the user,
-% we can use \pkg{fontspec} for loading fonts.
-% \begin{macrocode}
-\ifengineTF { \luatexengine }
- {
-% \end{macrocode}
-%
-% If the user uses \LuaTeX{}, load \pkg{fontspec} and
-% \pkg{unicode-math}.
-% \begin{macrocode}
- \RequirePackage{fontspec}
- \RequirePackage{unicode-math}
-% \end{macrocode}
-% To make sure the scaling of the fonts matches, we let \pkg{fontspec} do this
-% matching based on the lower-case characters.
-% \begin{macrocode}
- \defaultfontfeatures{ Scale = MatchLowercase }
- \defaultfontfeatures[\rmfamily]{ Scale = 1 }
-% \end{macrocode}
-%
-% The user wants to have the |original| fonts,
-% which are Palatino, Helvetica, MesloLGS Nerd Font Mono, and Neo Euler.
-% \begin{macrocode}
- \tl_if_eq:NnT \l_@@_fontmode_tl {original}
- {
- \setmainfont{Palatino}
- \setsansfont{Helvetica}
- \setmonofont{MesloLGS Nerd Font Mono}
- \setmathfont{Neo Euler}[math-style=upright]
- }
-% \end{macrocode}
-%
-% The user wants to have the |replacement| fonts,
-% which are \TeX{} Gyre Pagella, \TeX{} Gyre Heros, Fira Code, and \TeX{}
-% Gyre Pagella Math.
-% \begin{macrocode}
- \tl_if_eq:NnT \l_@@_fontmode_tl {replacement}
- {
- \setmainfont{TeX Gyre Pagella}
- \setsansfont{TeX Gyre Heros}
- \setmonofont{Fira Code}
- \setmathfont{TeX Gyre Pagella Math}
- \setmathfont{Latin Modern Math}[range={\mathcal,\mathbb}]
- }
-% \end{macrocode}
-%
-% The user set the |auto| mode,
-% which causes the package to check whether a font from the |original| fonts
-% exists on the system.
-% If such a font exists,
-% it will be used;
-% otherwise, a |replacement| font will be used.
-% \begin{macrocode}
- \tl_if_eq:NnT \l_@@_fontmode_tl {auto}
- {
- \IfFontExistsTF { Palatino }
- { \setmainfont{Palatino} }
- { \setmainfont{TeX Gyre Pagella} }
- \IfFontExistsTF { Helvetica }
- { \setsansfont{Helvetica} }
- { \setsansfont{TeXGyre Heros} }
- \IfFontExistsTF{ MesloLGS Nerd Font Mono }
- { \setmonofont{MesloLGS Nerd Font Mono} }
- { \setmonofont{Fira Code} }
- \IfFontExistsTF { Neo Euler }
- { \setmathfont{Neo Euler}[math-style=upright] }
- {
- \setmathfont{TeX Gyre Pagella Math}
- \setmathfont{Latin Modern Math}[range={\mathcal,\mathbb}]
- }
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
- } {
-% \end{macrocode}
-%
-% The user does neither use \LuaTeX{}, fall back
-% \begin{macrocode}
- \PassOptionsToPackage{T1}{fontenc}
- \RequirePackage{fontenc}
- \RequirePackage{FiraMono}
- \RequirePackage{tgheros}
- \RequirePackage{tgpagella}
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</fonts>
-% \end{macrocode}
-%
% \end{implementation}
%
% \clearpage
%
-% \begin{thebibliography}{9}
-% \bibitem{DBLP:journals/sttt/BeyerLW19} Dirk Beyer, Stefan Löwe, and Philipp
-% Wendler: \emph{Reliable benchmarking: requirements and solutions}. STTT
-% 21(1): 1--29 (2019)
-% \end{thebibliography}
-%
% \PrintIndex
diff --git a/macros/latex/contrib/se2thesis/se2thesis.ins b/macros/latex/contrib/se2thesis/se2thesis.ins
index 41b570d46c..1ad8d4c021 100644
--- a/macros/latex/contrib/se2thesis/se2thesis.ins
+++ b/macros/latex/contrib/se2thesis/se2thesis.ins
@@ -1,6 +1,6 @@
\iffalse meta-comment
-File: se2thesis.ins Copyright (C) 2022 Stephan Lukasczyk
+File: se2thesis.ins Copyright (C) 2022--2023 Stephan Lukasczyk
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@ for those people who are interested.
% stop DocStrip adding rather wordy text
\preamble
-Copyright (C) 2022 by Stephan Lukasczyk <tex@lukasczyk.me>
+Copyright (C) 2022--2023 by Stephan Lukasczyk <tex@lukasczyk.me>
It may be distributed and/or modified under the conditions of
the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -45,12 +45,17 @@ This work is "maintained" (as per LPPL maintenance status by
This work consists of the files se2thesis.dtx,
se2thesis.ins,
+ se2colors.dtx,
+ se2fonts.dtx,
+ se2thesis-master-thesis-example.tex
and the derived files se2thesis.pdf,
se2thesis.cls,
se2translations-english.trsl,
se2translations-german.trsl,
- se2colors.sty, and
- se2fonts.sty
+ se2colors.sty,
+ se2fonts.sty,
+ se2thesis-master-thesis-example.bib, and
+ se2thesis-master-thesis-example.pdf
\endpreamble
\nopostamble
@@ -83,7 +88,7 @@ This work consists of the files se2thesis.dtx,
\file{se2colors.sty}
{%
\from{se2thesis.dtx}{init}
- \from{se2thesis.dtx}{colors}
+ \from{se2colors.dtx}{package}
}
}
\generate
@@ -91,7 +96,7 @@ This work consists of the files se2thesis.dtx,
\file{se2fonts.sty}
{%
\from{se2thesis.dtx}{init}
- \from{se2thesis.dtx}{fonts}
+ \from{se2fonts.dtx}{package}
}
}
diff --git a/macros/latex/contrib/se2thesis/se2thesis.pdf b/macros/latex/contrib/se2thesis/se2thesis.pdf
index 9bec916719..3b861ee6fa 100644
--- a/macros/latex/contrib/se2thesis/se2thesis.pdf
+++ b/macros/latex/contrib/se2thesis/se2thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/se2thesis/se2thesis.tex b/macros/latex/contrib/se2thesis/se2thesis.tex
new file mode 100644
index 0000000000..6035c60e18
--- /dev/null
+++ b/macros/latex/contrib/se2thesis/se2thesis.tex
@@ -0,0 +1,245 @@
+\iffalse meta-comment
+
+File: se2thesis.tex Copyright (C) 2022--2023 Stephan Lukasczyk
+
+It may be distributed and/or modified under the conditions of the
+LaTeX Project Public License (LPPL), either version 1.3c of this
+license or (at your option) any later version. The latest version
+of this license is in the file
+
+ https://www.latex-project.org/lppl.txt
+
+This file is part of the "se2thesis bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
+The released version of this bundle is available from CTAN.
+
+---------------------------------------------------------------------
+
+The development version of the bundle can be found at
+
+ https://github.com/se2p/se2thesis
+
+for those people who are interested.
+
+---------------------------------------------------------------------
+
+\fi
+
+\documentclass{l3doc}
+
+% The next line is needed so that \GetFileInfo will be able to pick up
+% version data.
+\usepackage{se2colors}
+
+%
+% Commands for this document, taken from Joseph Wright's siunitx
+% documentation:
+\ExplSyntaxOn
+\makeatletter
+\NewDocumentCommand \acro { m }
+ {
+ \textsc
+ {
+ \exp_args:NV \tl_if_head_eq_charcode:nNTF \f@series { m }
+ { \text_lowercase:n }
+ { \use:n }
+ {#1}
+ }
+ }
+\makeatother
+\ExplSyntaxOff
+\NewDocumentCommand{\email}{m}{\href{mailto:#1}{\nolinkurl{#1}}}
+\NewDocumentCommand{\ext}{m}{\texttt.#1}
+\NewDocumentCommand{\opt}{m}{\texttt{#1}}
+% Tidy up the above in bookmarks
+\makeatletter
+\pdfstringdefDisableCommands{%
+ \let\acro\@firstofone
+ \let\ext\@firstofone
+ \let\opt\@firstofone
+}
+\makeatother
+
+% For creating code demonstration, taken from Joseph Wright's siunitx
+% documentation:
+\usepackage{listings}
+\makeatletter
+\lst@RequireAspects{writefile}
+\newsavebox\LaTeXdemo@box
+\lstnewenvironment{LaTeXdemo}[1][code and example]
+ {%
+ \global\let\lst@intname\@empty
+ \edef\LaTeXdemo@end{%
+ \expandafter\noexpand\csname LaTeXdemo@@#1@end\endcsname
+ }%
+ \@nameuse{LaTeXdemo@@#1}%
+ }
+ {\LaTeXdemo@end}
+\newcommand\LaTeXdemo@new[3]{%
+ \@namedef{LaTeXdemo@@#1}{#2}
+ \@namedef{LaTeXdemo@@#1@end}{#3}%
+}
+\newcommand*\LaTeXdemo@common{%
+ \setkeys{lst}
+ {%
+ basicstyle = \small\ttfamily,
+ breaklines = true,
+ basewidth = 0.51em,
+ captionpos = t,
+ extendedchars = true,
+ frame = single,
+ gobble = 2,
+ keywordstyle = \color{blue}\bfseries,
+ language = [LaTeX]{TeX},
+ showspaces = false,
+ showstringspaces = false,
+ showtabs = false,
+ tabsize = 2,
+ }%
+}
+\newcount\LaTeXdemo@count
+\newcommand*\LaTeXdemo@input{%
+ \catcode`\^^M = 10\relax
+ \input{\jobname-\number\LaTeXdemo@count.tmp}%
+}
+\LaTeXdemo@new{code and example}{%
+ \setbox\LaTeXdemo@box=\hbox\bgroup
+ \global\advance\LaTeXdemo@count by 1 %
+ \lst@BeginAlsoWriteFile{\jobname-\number\LaTeXdemo@count.tmp}%
+ \LaTeXdemo@common
+}{%
+ \lst@EndWriteFile
+ \egroup
+ \begin{center}
+ \ifdim\wd\LaTeXdemo@box > 0.48\linewidth
+ \begin{minipage}{\linewidth}
+ \usebox\LaTeXdemo@box
+ \end{minipage}%
+ \par
+ \begin{minipage}{\linewidth}
+ \LaTeXdemo@input
+ \end{minipage}
+ \else
+ \begin{minipage}{0.48\linewidth}
+ \LaTeXdemo@input
+ \end{minipage}%
+ \hspace{\fill}%
+ \begin{minipage}{0.48\linewidth}
+ \usebox\LaTeXdemo@box
+ \end{minipage}%
+ \fi
+ \end{center}
+}
+\LaTeXdemo@new{code and float}{%
+ \global\advance\LaTeXdemo@count by 1 %
+ \lst@BeginAlsoWriteFile{\jobname-\number\LaTeXdemo@count.tmp}%
+ \LaTeXdemo@common
+}{%
+ \lst@EndWriteFile
+ \LaTeXdemo@input
+}
+\LaTeXdemo@new{code only}{\LaTeXdemo@common}{}
+\makeatother
+
+\usepackage[UKenglish]{babel}
+\usepackage{fontspec}
+\usepackage{hvlogos}
+
+% Taken from xcolor.dtx
+\makeatletter
+\def\testclr#1#{\@testclr{#1}}
+\def\@testclr#1#2{{\fboxsep\z@\fbox{\colorbox#1{#2}{\phantom{XX}}}}}
+\makeatother
+
+\usepackage{hvfloat}
+\hypersetup{%
+ allcolors=UPSE2-Blue,%
+ pdftitle={se2thesis -- A Thesis Class for the Chair of Software Engineering II
+ at the University of Passau, Germany},%
+ pdfauthor={Stephan Lukasczyk},
+}
+\usepackage[capitalise]{cleveref}
+
+\begin{document}
+
+\GetFileInfo{se2colors.sty}
+
+\title{%
+ \pkg{se2thesis} -- A Thesis Class for the Chair of Software
+ Engineering~II at the University of Passau, Germany%
+ \thanks{This file describes \fileversion,
+ last revised \filedate.}%
+}
+
+\author{%
+ Stephan Lukasczyk%
+ \thanks{%
+ E-mail: \href{mailto:tex@lukasczyk.me}{tex@lukasczyk.me}%
+ }%
+}
+
+\date{Released \filedate}
+
+\pagenumbering{roman}
+
+\maketitle
+
+\begin{abstract}
+ One can choose from a wide variety of templates to write a thesis.
+ Many universities provide very rigorous style guides and force their
+ students to obey to those guides, even though they might be questionable
+ from a typographics point of view.
+ Other universities do not provide such guides and leave it to their students
+ to choose or come up with a template.
+ The latter is causing very differently-looking theses.
+
+ To avoid such a situation in the future this bundle combines several
+ \LaTeX{} packages and classes for the use at the Chair of Software
+ Engineering~II at the University of Passau.
+ We provide, among others, a document class for theses that shall be
+ used by our students.
+ The bundle is designed in a way that one can use the basic components as
+ standalone packages to allow their reuse for other projects.
+\end{abstract}
+
+\tableofcontents
+\clearpage
+\pagenumbering{arabic}
+
+% Make the separate source files into a single whole, format-wise
+\RenewDocumentCommand{\maketitle}{}{%
+ \clearpage
+}
+\DeclareExpandableDocumentCommand{\thanks}{m}{}
+
+\let\DelayPrintIndex\PrintIndex
+\RenewDocumentCommand{\PrintIndex}{}{}
+
+\DisableImplementation
+
+\part{User Documentation}\label{sec:doc}
+
+The first part of this file provides the documentation for the user
+of the \pkg{se2thesis} bundle.
+We provide the implementation in the second part of this document,
+starting at page~\pageref{sec:impl}, for those who are curious.
+
+% Load the source files in order
+\DocInput{se2thesis.dtx}
+\DocInput{se2colors.dtx}
+\DocInput{se2fonts.dtx}
+
+\EnableImplementation
+\DisableDocumentation
+
+\part{Implementation}\label{sec:impl}
+
+The second part of this file provides the implementation of the package
+for a better understanding of what is happening.
+
+\DocInputAgain
+
+\DelayPrintIndex
+
+\end{document} \ No newline at end of file
diff --git a/macros/luatex/latex/luasseq/README b/macros/luatex/latex/luasseq/README
index b6cb5d9204..4fab64cb27 100644
--- a/macros/luatex/latex/luasseq/README
+++ b/macros/luatex/latex/luasseq/README
@@ -1,6 +1,11 @@
-Version 2015-07-16 contains compatibility fixed for lualatex bundled with TeXLive 2014.
+Version 2023-01-10 bug fixed and compatibility update for Lua language version 5.3+ (LuaTeX 1.15).
+
+Luasseq is a latex package for typesetting spectral sequences, a diagrammatic representation of a mathematical structure from homological algebra.
+
+Author: Tilman Bauer (tilman@alum.mit.edu)
Required for use: luasseq.lua and luasseq.sty
To get luasseq.sty: lualatex luasseq.ins (requires luasseq.dtx)
To get the documentation luasseq.pdf: lualatex luasseq.dtx
+
diff --git a/macros/luatex/latex/luasseq/luasseq.dtx b/macros/luatex/latex/luasseq/luasseq.dtx
index 349ee9f9df..bee8c95120 100644
--- a/macros/luatex/latex/luasseq/luasseq.dtx
+++ b/macros/luatex/latex/luasseq/luasseq.dtx
@@ -3,7 +3,20 @@
% ^^A to produce the package file luasseq.sty.
% ^^A Then LaTeX this file to produce the documentation of the luasseq package.
% ^^A
-% ^^A (c) 2003-2010 Tilman Bauer. Freely distributable under the LaTeX Project Public License (LPPL)
+% ^^A This work may be distributed and/or modified under the
+% ^^A onditions of the LaTeX Project Public License, either version 1.3
+% ^^A of this license or (at your option) any later version.
+% ^^A The latest version of this license is in
+% ^^A http://www.latex-project.org/lppl.txt
+% ^^A and version 1.3 or later is part of all distributions of LaTeX
+% ^^A version 2005/12/01 or later.
+%
+% ^^A This work has the LPPL maintenance status `maintained'.
+%
+% ^^A The Current Maintainer of this work is Tilman Bauer.
+%
+% ^^A This work consists of the files luasseq.dtx, luasseq.ins, and luasseq.lua
+% ^^A and the derived files luasseq.sty and luasseq.pdf
% ^^A
% \ifthenelse{0=1}{
%<*never>
@@ -28,11 +41,13 @@
% \changes{v1.06}{August 1, 2005}{sseqxstep=0 will now suppress printing of horizontal label; similarly sseqystep=0 and vertical labels}
% \changes{v2.0a}{July 16, 2007}{Completely recoded the graphics for using pgf instead of xyPic. Many new features. Consult the manual.}
% \changes{v2.0}{April 9, 2009}{bug fix with arrows leaving the chart}
+% \changes{v2.2}{November 13, 2015}{compatibility fixes; new prefix system}
+% \changes{v2023/01/10}{January 10, 2023}{compatibility fixes for current Lua version; bug fixes}
% \ifthenelse{0=1}{
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{luasseq}[2010/11/06 ver 2.1]
+\ProvidesPackage{luasseq}[2023/01/10]
\RequirePackage{ifthen,calc,pifont}
\RequirePackage{pgf}[2006/01/01]
@@ -57,7 +72,7 @@
%
% \title{Typesetting spectral sequences in \LaTeX\ with luasseq.sty}
% \author{Tilman Bauer\footnote{tilman@alum.mit.edu}}
-% \date{November 6, 2010}
+% \date{January 10, 2023}
%
% \MakeShortVerb{\|}
%
@@ -341,16 +356,19 @@
% \fi
%
% \DescribeMacro{\ssprefix}
-% Often the mechanism provided by |\ssname|/|\ssgoto| is not flexible enough to deal with repeated code. In that case, |\ssprefix{|\meta{prefix}|}| defines a ``multiplier'' for all names that follow; i.e. a |\ssname{|\meta{name}|}| after such a command will really define a name \meta{prefix} \meta{name} (with a space in between, so that the order is irrelevant). However, since |\ssgoto| also observes the prefix, |\ssgoto{|\meta{name}|}| will still work. |\ssprefix| commands can be iterated; the prefices are then concatenated.
+% \DescribeMacro{\ssbeginprefixcontext}
+% \DescribeMacro{\ssendprefixcontext}
+% \DescribeMacro{\ssresetprefix}
+% Often the mechanism provided by |\ssname|/|\ssgoto| is not flexible enough to deal with repeated code. In that case, the prefix system can be used. |sseq| maintains a \emph{current prefix}, which is an unordered list of strings that is added to any name specified in |\ssname| or |\ssgoto|. For instance, if the current prefix is |a b|, then |\ssname{c}| will name the current element |a b c| (the order is irrelevant).
%
-% \iffalse
-\newcommand{\ssprefix}[1]{\directlua0{sseq_prefix("#1")}}
-% \fi
+% To define a prefix, you first start a \emph{prefix context} with the command |\ssbeginprefixcontext|. After that, |\ssprefix{|\meta{name}|}| will add \meta{name} to the current prefix. |\ssprefix| can be issued repeatedly to add to the current prefix. After issuing |\ssendprefixcontext|, the prefix that was in effect at |\ssbeginprefixcontext| will be restored. (If no prefix was defined before, this will be the empty prefix.) |\ssbeginprefixcontext| and |\ssendprefixcontext| can be nested and provide a stack behavior.
%
-% \DescribeMacro{\ssresetprefix}
-% This command resets the prefix defined by (a sequence of) |\ssprefix| to the empty prefix.
+% There is an older behavior that still works for compatibility reasons. In the older system, the commands |\ssbeginprefixcontext| and |\ssendprefixcontext| are not used; instead, |\ssresetprefix| will reset the current prefix to the empty prefix. |\ssresetprefix| does not work in the new prefix system and will emit an error message. The two methods cannot be mixed.
%
% \iffalse
+\newcommand{\ssprefix}[1]{\directlua0{sseq_prefix("#1")}}
+\newcommand{\ssbeginprefixcontext}{\directlua0{sseq_begin_prefix_context()}}
+\newcommand{\ssendprefixcontext}{\directlua0{sseq_end_prefix_context()}}
\newcommand{\ssresetprefix}{\directlua0{sseq_reset_prefix()}}
% \fi
%
diff --git a/macros/luatex/latex/luasseq/luasseq.lua b/macros/luatex/latex/luasseq/luasseq.lua
index 79082efce7..f0a34cd56b 100644
--- a/macros/luatex/latex/luasseq/luasseq.lua
+++ b/macros/luatex/latex/luasseq/luasseq.lua
@@ -347,7 +347,7 @@ function sseq_drop_object(x,y,shape,pathusage,content,col)
obj.wd,obj.ht = 262144,262144
obj.radius = 370727
else
- obj.cmd = "\\pgfsetstrokecolor{%s}\\pgfsetfillcolor{white}"..string.format("\\pgfnode{%s}{center}{\\color{%%s}\\ensuremath{%s}}{}{\\pgfusepath{fill,%s}}",obj.nodetype,obj.code,pathusage)
+ obj.cmd = "\\pgfsetstrokecolor{%s}\\pgfsetfillcolor{white}\\pgfsetshapeinnerxsep{1pt}\\pgfsetshapeinnerysep{1pt}"..string.format("\\pgfnode{%s}{center}{\\color{%%s}\\ensuremath{%s}}{}{\\pgfusepath{fill,%s}}",obj.nodetype,obj.code,pathusage)
tex.print (string.format("\\setbox%d=\\hbox{\\pgfinterruptpicture\\ensuremath{%s}\\endpgfinterruptpicture}",sseqboxno,obj.code))
tex.print("\\directlua0{sseq_register_size()}")
end
@@ -679,22 +679,22 @@ function sseq_correct_line_end(obj,fromx,fromy,curving)
if obj.nodetype == "circle" then
dist = math.sqrt(dirx*dirx + diry*diry)
- return posx - obj.radius*(dirx)/dist,
- posy - obj.radius*(diry)/dist
+ return math.floor(posx - obj.radius*(dirx)/dist),
+ math.floor(posy - obj.radius*(diry)/dist)
else
deltax = dirx/diry*obj.ht/2 -- no problem with infinity in LUA
deltay = diry/dirx*obj.wd/2
if(math.abs(deltax) <= obj.wd/2) then -- boundary point on one of the horizontal lines
if fromy > posy then
- return posx + deltax, posy + obj.ht/2
+ return math.floor(posx + deltax), math.floor(posy + obj.ht/2)
else
- return posx - deltax, posy - obj.ht/2
+ return math.floor(posx - deltax), math.floor(posy - obj.ht/2)
end
else
if fromx > posx then
- return posx + obj.wd/2, posy + deltay
+ return math.floor(posx + obj.wd/2), math.floor(posy + deltay)
else
- return posx - obj.wd/2, posy - deltay
+ return math.floor(posx - obj.wd/2), math.floor(posy - deltay)
end
end
end
@@ -775,16 +775,20 @@ function sseq_dump_connection(conn)
if fromobj then -- we have to be more careful where it ends
fromx,fromy = sseq_correct_line_end(fromobj,tox,toy,conn.curving)
+ else
+ fromx,fromy = math.floor(fromx),math.floor(fromy)
end
if toobj then
tox,toy = sseq_correct_line_end(toobj,fromx,fromy,conn.curving and -conn.curving)
+ else
+ tox,toy = math.floor(tox),math.floor(toy)
end
if conn.curving then
- ctrlx = tox/2+fromx/2-conn.curving*(toy-fromy)
- ctrly = toy/2+fromy/2+conn.curving*(tox-fromx)
+ ctrlx = math.floor(tox/2+fromx/2-conn.curving*(toy-fromy))
+ ctrly = math.floor(toy/2+fromy/2+conn.curving*(tox-fromx))
end
-
+
if conn.arrowfrom or conn.arrowto or conn.curving then -- got to use slow code
tex.print("\\pgfsetdash{"..conn.dashing.."}{0pt}")
tex.print("\\pgfsetstrokecolor{"..conn.color.."}")
@@ -815,6 +819,7 @@ function sseq_dump_connection(conn)
if (fromx and fromy) then
if (tox and toy) then
tex.print(string.format("\\pgfsys@moveto{%dsp}{%dsp}",fromx,fromy))
+
tex.print(string.format("\\pgfsys@lineto{%dsp}{%dsp}",tox,toy))
tex.print("\\pgfsys@stroke")
end
@@ -878,6 +883,7 @@ function sseq_dump_code()
end
-- objects
tex.print("\\color{white}") -- background fill color
+ tex.print("\\pgfsetdash{}{0pt}") -- reset dashing
for x,ylist in pairs(sseqobject) do
for y,olist in pairs(ylist) do
for z,obj in ipairs(olist) do
diff --git a/macros/luatex/latex/luasseq/luasseq.pdf b/macros/luatex/latex/luasseq/luasseq.pdf
index 6e487fcde6..6ec110e375 100644
--- a/macros/luatex/latex/luasseq/luasseq.pdf
+++ b/macros/luatex/latex/luasseq/luasseq.pdf
Binary files differ