diff options
Diffstat (limited to 'macros/latex')
76 files changed, 1397 insertions, 1352 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 Binary files differindex 3f75e2a64d..4317bfee45 100644 --- a/macros/latex/contrib/maze/maze.pdf +++ b/macros/latex/contrib/maze/maze.pdf 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 Binary files differnew file mode 100644 index 0000000000..d742860de5 --- /dev/null +++ b/macros/latex/contrib/maze/mazes-picture.png 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 Binary files differindex 91bdbe4bcc..6fee1a4e82 100644 --- a/macros/latex/contrib/ntgclass/a4.pdf +++ b/macros/latex/contrib/ntgclass/a4.pdf diff --git a/macros/latex/contrib/ntgclass/artdoc.pdf b/macros/latex/contrib/ntgclass/artdoc.pdf Binary files differindex 8eb6e01ad3..b75e1be554 100644 --- a/macros/latex/contrib/ntgclass/artdoc.pdf +++ b/macros/latex/contrib/ntgclass/artdoc.pdf diff --git a/macros/latex/contrib/ntgclass/brief-sample.pdf b/macros/latex/contrib/ntgclass/brief-sample.pdf Binary files differindex 480f0947b8..e20cb4abca 100644 --- a/macros/latex/contrib/ntgclass/brief-sample.pdf +++ b/macros/latex/contrib/ntgclass/brief-sample.pdf 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 Binary files differindex 80590ff0f9..0fe405eb5c 100644 --- a/macros/latex/contrib/ntgclass/brief.pdf +++ b/macros/latex/contrib/ntgclass/brief.pdf diff --git a/macros/latex/contrib/ntgclass/briefdoc.pdf b/macros/latex/contrib/ntgclass/briefdoc.pdf Binary files differindex 3cf449999d..171f783b5e 100644 --- a/macros/latex/contrib/ntgclass/briefdoc.pdf +++ b/macros/latex/contrib/ntgclass/briefdoc.pdf diff --git a/macros/latex/contrib/ntgclass/classdoc.pdf b/macros/latex/contrib/ntgclass/classdoc.pdf Binary files differindex d799c88e66..859038f7f7 100644 --- a/macros/latex/contrib/ntgclass/classdoc.pdf +++ b/macros/latex/contrib/ntgclass/classdoc.pdf 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 Binary files differindex d273db1dda..130cb7f330 100644 --- a/macros/latex/contrib/ntgclass/ntgclass.pdf +++ b/macros/latex/contrib/ntgclass/ntgclass.pdf diff --git a/macros/latex/contrib/ntgclass/rapdoc.pdf b/macros/latex/contrib/ntgclass/rapdoc.pdf Binary files differindex cda701838a..2d1db4a6da 100644 --- a/macros/latex/contrib/ntgclass/rapdoc.pdf +++ b/macros/latex/contrib/ntgclass/rapdoc.pdf 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 Binary files differindex 8b606cc806..c07aff9681 100644 --- a/macros/latex/contrib/oberdiek/aliascnt.pdf +++ b/macros/latex/contrib/oberdiek/aliascnt.pdf diff --git a/macros/latex/contrib/oberdiek/bmpsize.pdf b/macros/latex/contrib/oberdiek/bmpsize.pdf Binary files differindex 12c25efac6..ce8c1577bf 100644 --- a/macros/latex/contrib/oberdiek/bmpsize.pdf +++ b/macros/latex/contrib/oberdiek/bmpsize.pdf diff --git a/macros/latex/contrib/oberdiek/centernot.pdf b/macros/latex/contrib/oberdiek/centernot.pdf Binary files differindex 62f2d9da69..4ca41461b0 100644 --- a/macros/latex/contrib/oberdiek/centernot.pdf +++ b/macros/latex/contrib/oberdiek/centernot.pdf diff --git a/macros/latex/contrib/oberdiek/chemarr.pdf b/macros/latex/contrib/oberdiek/chemarr.pdf Binary files differindex a0491c8dcc..73757752af 100644 --- a/macros/latex/contrib/oberdiek/chemarr.pdf +++ b/macros/latex/contrib/oberdiek/chemarr.pdf diff --git a/macros/latex/contrib/oberdiek/classlist.pdf b/macros/latex/contrib/oberdiek/classlist.pdf Binary files differindex f7489d1bd4..0c7c08eac2 100644 --- a/macros/latex/contrib/oberdiek/classlist.pdf +++ b/macros/latex/contrib/oberdiek/classlist.pdf diff --git a/macros/latex/contrib/oberdiek/colonequals.pdf b/macros/latex/contrib/oberdiek/colonequals.pdf Binary files differindex 5c3cb08f41..ee38d5e1ec 100644 --- a/macros/latex/contrib/oberdiek/colonequals.pdf +++ b/macros/latex/contrib/oberdiek/colonequals.pdf diff --git a/macros/latex/contrib/oberdiek/dvipscol.pdf b/macros/latex/contrib/oberdiek/dvipscol.pdf Binary files differindex 8cb994eacc..63fc735cc6 100644 --- a/macros/latex/contrib/oberdiek/dvipscol.pdf +++ b/macros/latex/contrib/oberdiek/dvipscol.pdf diff --git a/macros/latex/contrib/oberdiek/engord.pdf b/macros/latex/contrib/oberdiek/engord.pdf Binary files differindex 3e45bede84..8d158d56b1 100644 --- a/macros/latex/contrib/oberdiek/engord.pdf +++ b/macros/latex/contrib/oberdiek/engord.pdf diff --git a/macros/latex/contrib/oberdiek/enparen.pdf b/macros/latex/contrib/oberdiek/enparen.pdf Binary files differindex c84e418b5f..1873fe0a26 100644 --- a/macros/latex/contrib/oberdiek/enparen.pdf +++ b/macros/latex/contrib/oberdiek/enparen.pdf diff --git a/macros/latex/contrib/oberdiek/eolgrab.pdf b/macros/latex/contrib/oberdiek/eolgrab.pdf Binary files differindex 23422c71bd..577c2afe2a 100644 --- a/macros/latex/contrib/oberdiek/eolgrab.pdf +++ b/macros/latex/contrib/oberdiek/eolgrab.pdf diff --git a/macros/latex/contrib/oberdiek/fibnum.pdf b/macros/latex/contrib/oberdiek/fibnum.pdf Binary files differindex 838c7866a1..1ff983c5ed 100644 --- a/macros/latex/contrib/oberdiek/fibnum.pdf +++ b/macros/latex/contrib/oberdiek/fibnum.pdf diff --git a/macros/latex/contrib/oberdiek/flags.pdf b/macros/latex/contrib/oberdiek/flags.pdf Binary files differindex 38cfdfce4e..4df19863e3 100644 --- a/macros/latex/contrib/oberdiek/flags.pdf +++ b/macros/latex/contrib/oberdiek/flags.pdf diff --git a/macros/latex/contrib/oberdiek/holtxdoc.pdf b/macros/latex/contrib/oberdiek/holtxdoc.pdf Binary files differindex 4defa8d604..730a024ef8 100644 --- a/macros/latex/contrib/oberdiek/holtxdoc.pdf +++ b/macros/latex/contrib/oberdiek/holtxdoc.pdf diff --git a/macros/latex/contrib/oberdiek/hypbmsec.pdf b/macros/latex/contrib/oberdiek/hypbmsec.pdf Binary files differindex 29f5c45d4a..63aab2339d 100644 --- a/macros/latex/contrib/oberdiek/hypbmsec.pdf +++ b/macros/latex/contrib/oberdiek/hypbmsec.pdf diff --git a/macros/latex/contrib/oberdiek/hypcap.pdf b/macros/latex/contrib/oberdiek/hypcap.pdf Binary files differindex 302590434b..1282a9a96c 100644 --- a/macros/latex/contrib/oberdiek/hypcap.pdf +++ b/macros/latex/contrib/oberdiek/hypcap.pdf diff --git a/macros/latex/contrib/oberdiek/hypgotoe.pdf b/macros/latex/contrib/oberdiek/hypgotoe.pdf Binary files differindex 4237695b37..26886e3c63 100644 --- a/macros/latex/contrib/oberdiek/hypgotoe.pdf +++ b/macros/latex/contrib/oberdiek/hypgotoe.pdf diff --git a/macros/latex/contrib/oberdiek/hyphsubst.pdf b/macros/latex/contrib/oberdiek/hyphsubst.pdf Binary files differindex bebccb7585..b5c110d070 100644 --- a/macros/latex/contrib/oberdiek/hyphsubst.pdf +++ b/macros/latex/contrib/oberdiek/hyphsubst.pdf diff --git a/macros/latex/contrib/oberdiek/ifdraft.pdf b/macros/latex/contrib/oberdiek/ifdraft.pdf Binary files differindex 4745dadca8..fe11a750ff 100644 --- a/macros/latex/contrib/oberdiek/ifdraft.pdf +++ b/macros/latex/contrib/oberdiek/ifdraft.pdf diff --git a/macros/latex/contrib/oberdiek/iflang.pdf b/macros/latex/contrib/oberdiek/iflang.pdf Binary files differindex de5fa254fe..8620a980c1 100644 --- a/macros/latex/contrib/oberdiek/iflang.pdf +++ b/macros/latex/contrib/oberdiek/iflang.pdf 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 Binary files differindex 1ee28ae509..590a1eb26f 100644 --- a/macros/latex/contrib/oberdiek/oberdiek.pdf +++ b/macros/latex/contrib/oberdiek/oberdiek.pdf 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 Binary files differindex 5bf37a6dea..57dfb4a216 100644 --- a/macros/latex/contrib/oberdiek/pdfcolparallel.pdf +++ b/macros/latex/contrib/oberdiek/pdfcolparallel.pdf diff --git a/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf b/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf Binary files differindex 9ef22b141b..7daa3cce58 100644 --- a/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf +++ b/macros/latex/contrib/oberdiek/pdfcolparcolumns.pdf diff --git a/macros/latex/contrib/oberdiek/pdfcrypt.pdf b/macros/latex/contrib/oberdiek/pdfcrypt.pdf Binary files differindex ebcfef66c0..f7188935a0 100644 --- a/macros/latex/contrib/oberdiek/pdfcrypt.pdf +++ b/macros/latex/contrib/oberdiek/pdfcrypt.pdf diff --git a/macros/latex/contrib/oberdiek/pdfrender.pdf b/macros/latex/contrib/oberdiek/pdfrender.pdf Binary files differindex f5d7da9a0f..7934b263a9 100644 --- a/macros/latex/contrib/oberdiek/pdfrender.pdf +++ b/macros/latex/contrib/oberdiek/pdfrender.pdf diff --git a/macros/latex/contrib/oberdiek/protecteddef.pdf b/macros/latex/contrib/oberdiek/protecteddef.pdf Binary files differindex 351db60331..14eb375730 100644 --- a/macros/latex/contrib/oberdiek/protecteddef.pdf +++ b/macros/latex/contrib/oberdiek/protecteddef.pdf diff --git a/macros/latex/contrib/oberdiek/resizegather.pdf b/macros/latex/contrib/oberdiek/resizegather.pdf Binary files differindex 7cbdc874d6..9296927ce8 100644 --- a/macros/latex/contrib/oberdiek/resizegather.pdf +++ b/macros/latex/contrib/oberdiek/resizegather.pdf diff --git a/macros/latex/contrib/oberdiek/rotchiffre.pdf b/macros/latex/contrib/oberdiek/rotchiffre.pdf Binary files differindex db416d802d..f069af2a46 100644 --- a/macros/latex/contrib/oberdiek/rotchiffre.pdf +++ b/macros/latex/contrib/oberdiek/rotchiffre.pdf diff --git a/macros/latex/contrib/oberdiek/scrindex.pdf b/macros/latex/contrib/oberdiek/scrindex.pdf Binary files differindex 0d5b4f9ff6..6f805bf906 100644 --- a/macros/latex/contrib/oberdiek/scrindex.pdf +++ b/macros/latex/contrib/oberdiek/scrindex.pdf diff --git a/macros/latex/contrib/oberdiek/setouterhbox.pdf b/macros/latex/contrib/oberdiek/setouterhbox.pdf Binary files differindex 4c6388b5fb..17ec8a3e56 100644 --- a/macros/latex/contrib/oberdiek/setouterhbox.pdf +++ b/macros/latex/contrib/oberdiek/setouterhbox.pdf diff --git a/macros/latex/contrib/oberdiek/settobox.pdf b/macros/latex/contrib/oberdiek/settobox.pdf Binary files differindex 7c534622e3..86eaf6a5b1 100644 --- a/macros/latex/contrib/oberdiek/settobox.pdf +++ b/macros/latex/contrib/oberdiek/settobox.pdf diff --git a/macros/latex/contrib/oberdiek/stackrel.pdf b/macros/latex/contrib/oberdiek/stackrel.pdf Binary files differindex 8cfb4f6e67..fd5ee058b9 100644 --- a/macros/latex/contrib/oberdiek/stackrel.pdf +++ b/macros/latex/contrib/oberdiek/stackrel.pdf diff --git a/macros/latex/contrib/oberdiek/stampinclude.pdf b/macros/latex/contrib/oberdiek/stampinclude.pdf Binary files differindex 853e3478c0..f3998d3365 100644 --- a/macros/latex/contrib/oberdiek/stampinclude.pdf +++ b/macros/latex/contrib/oberdiek/stampinclude.pdf diff --git a/macros/latex/contrib/oberdiek/tabularht.pdf b/macros/latex/contrib/oberdiek/tabularht.pdf Binary files differindex af03656d55..656a807aa5 100644 --- a/macros/latex/contrib/oberdiek/tabularht.pdf +++ b/macros/latex/contrib/oberdiek/tabularht.pdf diff --git a/macros/latex/contrib/oberdiek/tabularkv.pdf b/macros/latex/contrib/oberdiek/tabularkv.pdf Binary files differindex dd9bc6df3f..3b87e220e6 100644 --- a/macros/latex/contrib/oberdiek/tabularkv.pdf +++ b/macros/latex/contrib/oberdiek/tabularkv.pdf diff --git a/macros/latex/contrib/oberdiek/telprint.pdf b/macros/latex/contrib/oberdiek/telprint.pdf Binary files differindex a01f02b13b..612dca0253 100644 --- a/macros/latex/contrib/oberdiek/telprint.pdf +++ b/macros/latex/contrib/oberdiek/telprint.pdf diff --git a/macros/latex/contrib/oberdiek/thepdfnumber.pdf b/macros/latex/contrib/oberdiek/thepdfnumber.pdf Binary files differindex a2a14e0cfc..bd8521f4cc 100644 --- a/macros/latex/contrib/oberdiek/thepdfnumber.pdf +++ b/macros/latex/contrib/oberdiek/thepdfnumber.pdf diff --git a/macros/latex/contrib/oberdiek/twoopt.pdf b/macros/latex/contrib/oberdiek/twoopt.pdf Binary files differindex 415203aef1..9f6a6ce364 100644 --- a/macros/latex/contrib/oberdiek/twoopt.pdf +++ b/macros/latex/contrib/oberdiek/twoopt.pdf 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 Binary files differindex bc2bcfc34f..8c15507e59 100644 --- a/macros/latex/contrib/oberdiek/pdfcolfoot.pdf +++ b/macros/latex/contrib/pdfcolfoot/pdfcolfoot.pdf diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf Binary files differindex 46ee34e10f..46ea0f49ec 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf 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 Binary files differindex 1938ad4bda..e545f309c2 100644 --- a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf +++ b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf 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 Binary files differindex 9bec916719..3b861ee6fa 100644 --- a/macros/latex/contrib/se2thesis/se2thesis.pdf +++ b/macros/latex/contrib/se2thesis/se2thesis.pdf 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 |