summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/se2thesis
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-04-19 03:03:47 +0000
committerNorbert Preining <norbert@preining.info>2023-04-19 03:03:47 +0000
commit10bb4d468226c290e5e87e3fa367dc6fd2dcb84b (patch)
tree0e3fae0643d2bed385e6b758a246aaa2edf61133 /macros/latex/contrib/se2thesis
parent80e82c6cd5fb165fa720a1ce3a25f357ea11b9fc (diff)
CTAN sync 202304190303
Diffstat (limited to 'macros/latex/contrib/se2thesis')
-rw-r--r--macros/latex/contrib/se2thesis/CHANGELOG.md25
-rw-r--r--macros/latex/contrib/se2thesis/se2colors.dtx2
-rw-r--r--macros/latex/contrib/se2thesis/se2fonts.dtx2
-rw-r--r--macros/latex/contrib/se2thesis/se2packages.dtx788
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdfbin1101240 -> 1101208 bytes
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex40
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.dtx339
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.ins10
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.pdfbin345472 -> 382546 bytes
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.tex1
-rw-r--r--macros/latex/contrib/se2thesis/test.pdfbin23939 -> 1102663 bytes
-rw-r--r--macros/latex/contrib/se2thesis/test.tex167
12 files changed, 998 insertions, 376 deletions
diff --git a/macros/latex/contrib/se2thesis/CHANGELOG.md b/macros/latex/contrib/se2thesis/CHANGELOG.md
index c93bb1110b..96e937e109 100644
--- a/macros/latex/contrib/se2thesis/CHANGELOG.md
+++ b/macros/latex/contrib/se2thesis/CHANGELOG.md
@@ -7,6 +7,30 @@ and this project adheres to
## [Unreleased]
+## [v3.0.0] – 2023–04–18
+
+### Added
+
+- Add documentation on how to install the bundle if it is not part of the
+ existing TeX distribution.
+- Add a package `se2packages` that provides the ability to directly load
+ recommended packages with recommended options.
+
+### Changed
+
+- The `paper=a4` and `paper=b5` options now produce the exact same text-block
+ sizes.
+- Make the logo height smaller for B5 paper.
+- The default class is now `scrbook` instead of `scrreprt`.
+
+### Removed
+
+- **Breaking:** Removed the `biblatex` class option from `se2thesis`, use the
+ `se2packages` package with its `biblatex=true` option instead.
+- **Breaking:** Removed the `paper=a5` option.
+- Removed the automated loading of the `microtype`, `selnolig`, and
+ `lua-widow-control` packages from `se2thesis`—use `se2packages` instead.
+
## [v2.1.0] – 2023–01–27
### Added
@@ -100,6 +124,7 @@ These changes might be breaking changes!
### Added
- First official release
+[v3.0.0]: https://github.com/se2p/se2thesis/compare/v3.0.0...v2.1.0
[v2.1.0]: https://github.com/se2p/se2thesis/compare/v2.1.0...v2.0.0
[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
diff --git a/macros/latex/contrib/se2thesis/se2colors.dtx b/macros/latex/contrib/se2thesis/se2colors.dtx
index 5fa39c0c34..bf2af3728f 100644
--- a/macros/latex/contrib/se2thesis/se2colors.dtx
+++ b/macros/latex/contrib/se2thesis/se2colors.dtx
@@ -231,7 +231,7 @@
%
% Identify the package and give the overall version information.
% \begin{macrocode}
-\ProvidesExplPackage {se2colors} {2023-01-27} {2.1.0}
+\ProvidesExplPackage {se2colors} {2023-04-18} {3.0.0}
{A colour support package for the se2thesis bundle}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/se2thesis/se2fonts.dtx b/macros/latex/contrib/se2thesis/se2fonts.dtx
index 0743d85cbc..dccb8420b1 100644
--- a/macros/latex/contrib/se2thesis/se2fonts.dtx
+++ b/macros/latex/contrib/se2thesis/se2fonts.dtx
@@ -159,7 +159,7 @@
%
% Identify the package and give the overall version information.
% \begin{macrocode}
-\ProvidesExplPackage {se2fonts} {2023-01-27} {2.1.0}
+\ProvidesExplPackage {se2fonts} {2023-04-18} {3.0.0}
{A font-selection support package for the se2thesis bundle}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/se2thesis/se2packages.dtx b/macros/latex/contrib/se2thesis/se2packages.dtx
new file mode 100644
index 0000000000..319bbfeed1
--- /dev/null
+++ b/macros/latex/contrib/se2thesis/se2packages.dtx
@@ -0,0 +1,788 @@
+% \iffalse meta-comment
+%
+% File: se2packages.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{se2packages}
+
+\usepackage[UKenglish]{babel}
+\usepackage{hvlogos}
+
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{se2packages.sty}
+%
+% \title{^^A
+% \pkg{se2packages} -- Supporting Packages for the \pkg{se2thesis} Bundle^^A
+% \thanks{This file describes \fileversion, last revised \filedate.}^^A
+% }
+%
+% \author{^^A
+% Stephan Lukasczyk^^A
+% \thanks{Email: \href{mailto:stephan@dante.de}{stephan@dante.de}}^^A
+% }
+%
+% \date{Released \filedate}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \section{The \pkg{se2packages} package}\label{sec:doc-se2packages}
+%
+% Several packages can be useful for writing a thesis.
+% We provide a simple package for the user
+% that loads these support packages with the recommended options.
+% Please note that you might not need all these packages,
+% however,
+% having a look at them (especially their documentation)
+% might give you an insight whether to use a certain package.
+% Our general recommendation is to use as few packages as you can;
+% some might have conflicts,
+% others basically do the same,
+% or are outdated.
+% Please consider reading the documentation of each package you are using
+% to figure out whether they have any conflicts with other packages
+% (for example, one cannot use the recommended \pkg{siunitx} package
+% together with \pkg{SIunits}) or they might require to be loaded
+% at special places in your preamble (for example, \pkg{hyperref}
+% is usually meant to be loaded as the last package,
+% except you are also using \pkg{cleveref},
+% which needs to be loaded \emph{after} \pkg{hyperref}).
+%
+% \subsection{The Recommended Packages}
+%
+% We first present the packages we recommend
+% and give a rationale why we believe they should be used.
+% Afterwards,
+% we will discuss how to load the \pkg{se2packages} package
+% to use one or the other of these recommended packages
+% in the next section.
+%
+% \subsubsection{Quoting with \pkg{csquotes}}
+%
+% The \pkg{csquotes} packages allows you for intelligent quoting of text.
+% While verbose quotes are not that common in computer science,
+% the package still provides some useful macros to the user.
+%
+% \subsubsection{Number formatting with \pkg{siunitx}}
+%
+% While \pkg{siunitx}'s original purpose was to format physical quantities,
+% it provides a lot of useful features
+% when typesetting theses (and other documents) in computer science.
+% When you skim through its documentation,
+% especiall look at the \cmd{\qty} and \cmd{\num} macros,
+% as well as the section on typesetting tabular material.
+% We also recommend reading an extensive discussion on number formatting,
+% precision of presented numbers,
+% and more related topics in Beyer et al.'s journal paper
+% on requirements and solutions for reliable
+% benchmarking~\cite{DBLP:journals/sttt/BeyerLW19}.
+%
+% \subsubsection{Code Listings}
+%
+% We prefer using the \pkg{minted} package for code listings
+% because it provides a lot of options for styling
+% as well as built-in support for a huge number of languages.
+% However,
+% this package requires the installation of Python
+% and the setting of the |-shell-escape| option to your \TeX{} engine.
+% Please read the package's documentation to set it up;
+% the aforementioned Docker images from the Island of \TeX{} project
+% provide you everything set up already.
+%
+% In case you do not want to use the \pkg{minted} package,
+% please consider using \pkg{listings} for typesetting your code listings.
+%
+% Please be aware to use \emph{either} \pkg{minted} \emph{or} \pkg{listings}!
+%
+% \subsubsection{Designing Tables}
+%
+% A basically mandatory package to all users of tables
+% is the \pkg{booktabs} package.
+% Especially its documentation is a must-read!
+% It provides a large variety of hints for designing tables,
+% most notably that one should never ever use vertical lines;
+% horizontal lines should be used sparesly;
+% \pkg{booktabs} provides three macros for lines that shall be used
+% instead of \cmd{\hline} from standard \LaTeX:
+% \cmd{\toprule} for a rule on the top of a table,
+% above the column heads;
+% \cmd{\midrule} to separate column heads and the content,
+% and \cmd{\bottomrule} to mark the bottom of a table.
+% We highly recommend that you follow this style when writing your thesis.
+%
+% Note that captions of tables shall be put \emph{above} the table
+% whereas captions of figures shall go \emph{below} the figure.
+% The rationale is that a figure should be more or less self explaining
+% while a table almost always needs some explanation.
+%
+% Unfortunately,
+% the distances when using a \cmd{\caption} above a table are wrong by default;
+% when creating tables,
+% consider loading the \pkg{hvfloats} package
+% and use its \cmd{\tabcaption} instead of \cmd{\caption} for tables.
+% The \pkg{hvfloats} package furthermore provides additional useful macros
+% to typeset all kinds of floats.
+%
+% \subsubsection{Controlling Ligatures, Orphans, and Widows}
+%
+% When using \LuaTeX{}~(which we recommend anyway),
+% we additionally recommend to use the \pkg{selnolig}
+% and \pkg{lua-widow-control} packages.
+% The former implements a better control over ligatures,
+% the latter provides better control over orphans and widows.
+%
+% \subsubsection{Use \pkg{microtype} for Microtypographic Optimisation}
+%
+% \pkg{microtype} is a game changer when writing documents.
+% While standard \LaTeX{} provides reasonably good typography,
+% the \pkg{microtype} package brings it to the next level.
+% We refer you to the documentation of the package for details.
+%
+% Additionally,
+% we prefer to have a thin space around the m-dash.
+% Although we are aware of the discussion
+% whether to have such a space in English,
+% we think it looks more beautiful and thus recommend it.
+%
+% \subsubsection{Use \pkg{biblatex} for Bibliographic References}
+%
+% The standard way of typesetting bibliographic references used to be \BibTeX.
+% The original \BibTeX,
+% however,
+% seems to be very outdated in various ways:
+% it originally only supported 7\,bit character sets
+% and creating citation styles requires the usage
+% of a kind of an archaic language.
+% \BibLaTeX{} resolves many of the drawbacks of \BibTeX;
+% when combined with the |biber| engine,
+% it supports full UTF-8 unicode,
+% therefore correct sorting of the references now works out of the box;
+% also creating citation styles can now be done using simple \LaTeX{} commands.
+%
+% \subsubsection{Use \pkg{cleveref} for Internal References}
+%
+% \LaTeX{} provides an easy-to-use reference mechanism using the \cmd{\label}
+% and \cmd{\ref} macros.
+% However,
+% this requires some manual effort and the text needs to specify
+% whether a reference is to a figure, section, or table.
+% We often see in drafts artefacts such as \enquote{we discuss our findings in 4};
+% but what is \enquote{4} here?
+% Is it a section?
+% A table?
+% A figure?
+%
+% To avoid such confusion,
+% use the \pkg{cleveref} package,
+% which automatically infers the type of the reference~(see its documentation
+% on how this works).
+% The \pkg{cleveref} package furthermore avoids an additional, common mistake:
+% between the name of the element and its reference
+% one needs to have a non-breaking space that is often forgotten.
+% Instead people are using normal spaces that can break at the end of a line
+% which looks very ugly.
+%
+% Please note that,
+% in contrast to most other packages,
+% \pkg{cleveref} has to be loaded \emph{after} the \pkg{hyperref} package!
+%
+% \subsection{Loading \pkg{se2packages}}
+%
+% When you load the \pkg{se2packages} package
+% it will automatically load the \pkg{csquotes} and \pkg{booktabs} packages
+% because we believe that you definitely should use them.
+% Still, it is possible to avoid this by setting the following
+% load-time options to the package.
+% \begin{function}{csquotes,nocsquotes}
+% \begin{syntax}
+% |csquotes| = \meta{true,false}
+% |nocsquotes|
+% \end{syntax}
+% The argument to |csquotes| can be one of |true| or |false|.
+% The latter does not load \pkg{csquotes}, the former is the default value.
+% By using |nocsquotes| you can also avoid that \pkg{csquote} is loaded.
+% \end{function}
+%
+% \begin{function}{booktabs,nobooktabs}
+% \begin{syntax}
+% |booktabs| = \meta{true,false}
+% |nobooktabs|
+% \end{syntax}
+% The argument to |booktabs| can be one of |true| or |false|.
+% The latter does not load \pkg{booktabs}, the former is the default value.
+% By using |nobooktabs| you can also avoid that \pkg{booktabs} is loaded.
+% \end{function}
+%
+% The \pkg{siunitx} package is helpful to set quantities
+% and to automatically format numbers consistently.
+% The following load-time option loads it automatically.
+% \begin{function}{siunitx}
+% \begin{syntax}
+% |siunitx| = \meta{true,false}
+% \end{syntax}
+% Decides whether the package loads \pkg{siunitx}
+% and sets the options for \pkg{siunitx} to the values we recommend.
+% The default value is |false|, set it to |true| to load \pkg{siunitx}.
+% \end{function}
+%
+% We provide a load-time option to load \pkg{minted}
+% and configure it.
+% \begin{function}{minted}
+% \begin{syntax}
+% |minted| = \meta{true,false}
+% \end{syntax}
+% Decides whether the package loads \pkg{minted}
+% and sets the options for \pkg{minted} to the values we recommend.
+% The default value is |false|, set it to |true| to load \pkg{minted}.
+% Note that \pkg{minted} requires additional installation effort
+% and the use of the |-shell-escape| option, see its documentation.
+% \end{function}
+%
+% We also provide a load-time option to load \pkg{listings}
+% and configure it.
+% This option and the |minted| option are mutually exclusive!
+% \begin{function}{listings}
+% \begin{syntax}
+% |listings| = \meta{true,false}
+% \end{syntax}
+% Decides whether the package loads \pkg{listings}
+% and sets the options for \pkg{listings} to the values we recommend.
+% The default value is |false|, set it to |true| to load \pkg{listings}.
+% \end{function}
+%
+% We provide a load-time option to load \pkg{selnolig}.
+% \begin{function}{selnolig,noselnolig}
+% \begin{syntax}
+% |selnolig| = \meta{true,false}
+% |noselnolig|
+% \end{syntax}
+% The argument to |selnolig| can be one of |true| or |false|.
+% The latter does not load \pkg{selnolig}, the former is the default value.
+% By using |noselnolig| you can also avoid that \pkg{selnolig} is loaded.
+% \end{function}
+%
+% We provide a load-time option to load \pkg{lua-widow-control}.
+% \begin{function}{widowcontrol,nowidowcontrol}
+% \begin{syntax}
+% |widowcontrol| = \meta{true,false}
+% |nowidowcontrol|
+% \end{syntax}
+% The argument to |widowcontrol| can be one of |true| or |false|.
+% The latter does not load \pkg{lua-widow-control},
+% the former is the default value.
+% By using |nowidowcontrol| you can also avoid
+% that \pkg{lua-widow-control} is loaded.
+% \end{function}
+%
+% We provide a load-time option to load and configure \pkg{microtype}.
+% \begin{function}{microtype,nomicrotype}
+% \begin{syntax}
+% |microtype| = \meta{true,false}
+% |nomicrotype|
+% \end{syntax}
+% The argument to |microtype| can be one of |true| or |false|.
+% The latter does not load \pkg{microtype}, the former is the default value.
+% By using |nomicrotype| you can also avoid that \pkg{microtype} is loaded.
+% \end{function}
+%
+% We provide a load-time option to load and configure \pkg{biblatex}.
+% \begin{function}{biblatex}
+% \begin{syntax}
+% |biblatex| = \meta{true,false}
+% \end{syntax}
+% Decides whether the package loads \pkg{biblatex}
+% and sets the options for \pkg{biblatex} to the values we recommend.
+% The default value is |false|, set it to |true| to load \pkg{biblatex}.
+% \end{function}
+%
+% Additionally,
+% we provide a load-time option to load \pkg{cleveref}.
+% This option makes use of \LaTeX's hook system to load it as the very last
+% thing in the preamble.
+% You shall not use this option, but load \pkg{cleveref} on your own,
+% if your document requires packages that need to be loaded even \emph{after}
+% \pkg{cleveref}.
+% \begin{function}{cleveref}
+% \begin{syntax}
+% |cleveref| = \meta{true,false}
+% \end{syntax}
+% Decides whether the package load \pkg{cleveref}.
+% The default value is |false|, set it to |true| to load \pkg{cleveref}.
+% \end{function}
+%
+% Lastly,
+% we provide one option to load all recommended packages~(with \pkg{minted}
+% prefered over \pkg{listings}).
+% \begin{function}{all}
+% \begin{syntax}
+% |all| = \meta{true,false}
+% \end{syntax}
+% Decides whether the package loads all recommended packages.
+% The default value is |false|, set it to |true| to load them.
+% \end{function}
+%
+% \subsection{Additional Recommended Packages}
+%
+% The following packages are not part of \pkg{se2packages}
+% because they serve a very specific purpose.
+% They might not be needed by many thesis writers,
+% however,
+% we mention them here in order to give you a pointer.
+% We list them in alphabetic order.
+%
+% \begin{itemize}
+% \item \pkg{algorithm2e}: provides tooling for typesetting algorithm
+% diagrams.
+% We recommend loading it with the following options:
+% \begin{LaTeXdemo}[code only]
+% \usepackage[ruled,noline,noend,linesnumbered]{algorithm2e}
+% \end{LaTeXdemo}
+% \item \pkg{hvfloat}: a package to control captions, fullpage, and
+% double-page floats.
+% We recommend to load it and use its \cmd{\tabcaption} for table captions.
+% \item \pkg{lettrine}: allows to start a paragraph with a large initial.
+% This is a beautiful opener for the first paragraph of a thesis' main
+% content.
+% \item \pkg{mathtools}: an enhanced version of the famous \amsmath
+% package that provides more functionality and fixes some of the known bugs.
+% \item \pkg{pdfx}: adds support for PDF/X and PDF/A, which is useful for
+% creating documents that can be archived, for example, by the University's
+% library.
+% \item \pkg{pgfplots}: a library for creating all kinds of plots, based on
+% \pkg{pgf}, which is also the basis of the \pkg{tikz} package.
+% \item \pkg{sidenotesplus}: a package to place all kinds of objects in the
+% margin of a document, from footnotes (then called sidenotes) to figures
+% and tables.
+% \item \pkg{subcaption}: support for sub-captions and sub-figures.
+% \item \pkg{tabularray}: a rewrite of \LaTeX's array and tabular abilities
+% in \LaTeXIII.
+% While the package offers a great combination of several other packages'
+% functionality, it tends to be quite slow for large tables due to the way
+% it is implemented internally.
+% \item \pkg{tcolorbox}: allows to typeset coloured boxes, for example, for
+% short summaries on research questions or hypotheses.
+% \item \pkg{tikz}: for creating all kinds of figures.
+% Beware: \TikZ{} is a really huge package with a lot of functionality and
+% a manual of more than 1300~pages.
+% \end{itemize}
+%
+%
+% \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}
+%
+% \begin{implementation}
+%
+% \section{\pkg{se2packages} 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_packages>
+% \end{macrocode}
+%
+% Identify the package and give the overall version information.
+% \begin{macrocode}
+\ProvidesExplPackage {se2packages} {2023-04-18} {3.0.0}
+ {Supporting packages for the se2thesis bundle}
+% \end{macrocode}
+%
+% \subsection{Load-time options}
+%
+% Before we define the actual options,
+% define some Boolean variables to store the selected values.
+%
+% \begin{macro}{\l_@@_csquotes_bool}
+% Whether or not to load \pkg{csquotes}.
+% \begin{macrocode}
+\bool_new:N \l_@@_csquotes_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l_@@_booktabs_bool}
+% Whether or not to load \pkg{booktabs}.
+% \begin{macrocode}
+\bool_new:N \l_@@_booktabs_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l_@@_siunitx_bool}
+% Whether or not to load and configure \pkg{siunitx}.
+% \begin{macrocode}
+\bool_new:N \l_@@_siunitx_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l_@@_minted_bool}
+% Whether or not to load and configure \pkg{minted}.
+% \begin{macrocode}
+\bool_new:N \l_@@_minted_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l_@@_listings_bool}
+% Whether or not to load and configure \pkg{listings}.
+% \begin{macrocode}
+\bool_new:N \l_@@_listings_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l_@@_biblatex_bool}
+% Whether or not to load and configure \pkg{biblatex}.
+% \begin{macrocode}
+\bool_new:N \l_@@_biblatex_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l_@@_selnolig_bool}
+% Whether or not to load \pkg{selnolig} (\LuaTeX{} only).
+% \begin{macrocode}
+\bool_new:N \l_@@_selnolig_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l_@@_luawidowcontrol_bool}
+% Whether or not to load \pkg{luawidowcontrol} (\LuaTeX{} only).
+% \begin{macrocode}
+\bool_new:N \l_@@_luawidowcontrol_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l_@@_microtype_bool}
+% Whether or not to load \pkg{microtype}.
+% \begin{macrocode}
+\bool_new:N \l_@@_microtype_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l_@@_cleveref_bool}
+% Whether or not to load and configure \pkg{cleveref}.
+% \begin{macrocode}
+\bool_new:N \l_@@_cleveref_bool
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l_@@_all_bool}
+% Whether or not to load and configure all recommended packages.
+% \begin{macrocode}
+\bool_new:N \l_@@_all_bool
+% \end{macrocode}
+% \end{macro}
+%
+% Define the actual load-time options.
+% \begin{macrocode}
+\keys_define:nn { seiipackages }
+ {
+ csquotes .bool_gset:N = \l_@@_csquotes_bool,
+ csquotes .initial:n = true,
+ nocsquotes .meta:n = {csquotes=false},
+
+ booktabs .bool_gset:N = \l_@@_booktabs_bool,
+ booktabs .initial:n = true,
+ nobooktabs .meta:n = {booktabs=false},
+
+ siunitx .bool_gset:N = \l_@@_siunitx_bool,
+ siunitx .initial:n = false,
+
+ minted .bool_gset:N = \l_@@_minted_bool,
+ minted .initial:n = false,
+
+ listings .bool_gset:N = \l_@@_listings_bool,
+ listings .initial:n = false,
+
+ biblatex .bool_gset:N = \l_@@_biblatex_bool,
+ biblatex .initial:n = false,
+
+ selnolig .bool_gset:N = \l_@@_selnolig_bool,
+ selnolig .initial:n = true,
+ noselnolig .meta:n = {selnolig=false},
+
+ widowcontrol .bool_gset:N = \l_@@_luawidowcontrol_bool,
+ widowcontrol .initial:n = true,
+ nowidowcontrol .meta:n = {widowcontrol=false},
+
+ microtype .bool_gset:N = \l_@@_microtype_bool,
+ microtype .initial:n = true,
+ nomicrotype .meta:n = {microtype=false},
+
+ cleveref .bool_gset:N = \l_@@_cleveref_bool,
+ cleveref .initial:n = false,
+
+ all .bool_gset:N = \l_@@_all_bool,
+ all .initial:n = false,
+ }
+% \end{macrocode}
+%
+% \subsection{Option handling}
+%
+% \begin{macrocode}
+\IfFormatAtLeastTF { 2022-06-01 }
+ { \ProcessKeyOptions [ seiipackages ] }
+ {
+ \RequirePackage{ l3keys2e }
+ \ProcessKeysOptions { seiipackages }
+ }
+% \end{macrocode}
+%
+% Define an error message if both \pkg{minted} and \pkg{listings} are requested.
+% \begin{macrocode}
+\msg_set:nnnn { seiipackages } { conflicting-packages }
+ { Setting~ both~ minted~ and~ listings~ to~ true~ is~ not~ possible. }
+ { Choose~ either~ of~ them! }
+% \end{macrocode}
+%
+% Define a message for logging that a specific package will be loaded by
+% \pkg{se2packages}.
+% Expects as parameter the name of the package that will be loaded.
+% \begin{macrocode}
+\msg_new:nnn { seiipackages } { load-package }
+ { se2packages~ loads~ the~ #1~ package now. }
+% \end{macrocode}
+%
+% And, in case both values are set to |true|,
+% raise the error message.
+% \begin{macrocode}
+\bool_lazy_and:nnT { \l_@@_minted_bool } { \l_@@_listings_bool }
+ {
+ \msg_error:nn { seiipackages } { conflicting-packages }
+ }
+% \end{macrocode}
+%
+% In case the |all| option is set,
+% set all other values to |true|.
+% \begin{macrocode}
+\bool_if:NT \l_@@_all_bool
+ {
+ \bool_gset_true:N \l_@@_csquotes_bool
+ \bool_gset_true:N \l_@@_booktabs_bool
+ \bool_gset_true:N \l_@@_siunitx_bool
+ \bool_gset_true:N \l_@@_minted_bool
+ \bool_gset_false:N \l_@@_listings_bool
+ \bool_gset_true:N \l_@@_selnolig_bool
+ \bool_gset_true:N \l_@@_luawidowcontrol_bool
+ \bool_gset_true:N \l_@@_microtype_bool
+ \bool_gset_true:N \l_@@_biblatex_bool
+ \bool_gset_true:N \l_@@_cleveref_bool
+ }
+% \end{macrocode}
+%
+% \subsection{Package loading}
+%
+% Conditionally load the \pkg{csquotes} package.
+% \begin{macrocode}
+\bool_if:NT \l_@@_csquotes_bool
+ {
+ \msg_info:nnn { seiipackages } { load-package } { csquotes }
+ \RequirePackage{csquotes}
+ }
+% \end{macrocode}
+%
+% Conditionally load the \pkg{booktabs} package.
+% \begin{macrocode}
+\bool_if:NT \l_@@_booktabs_bool
+ {
+ \msg_info:nnn { seiipackages } { load-package } { booktabs }
+ \RequirePackage{booktabs}
+ }
+% \end{macrocode}
+%
+% Conditionally load and configure the \pkg{siunitx} package.
+% \begin{macrocode}
+\bool_if:NT \l_@@_siunitx_bool
+ {
+ \msg_info:nnn { seiipackages } { load-package } { siunitx }
+ \RequirePackage[
+ add-integer-zero=false,
+ detect-inline-weight=math,
+ detect-weight=true,
+ free-standing-units,
+ group-minimum-digits=4,
+ list-final-separator={, and },
+ round-mode=figures,
+ round-precision=3,
+ separate-uncertainty=true,
+ uncertainty-mode=separate,
+ ]{siunitx}
+ }
+% \end{macrocode}
+%
+% Conditionally load and configure the \pkg{minted} package.
+% \begin{macrocode}
+\bool_if:NT \l_@@_minted_bool
+ {
+ \msg_info:nnn { seiipackages } { load-package } { minted }
+ \RequirePackage[newfloat=true]{minted}
+ \setminted{
+ autogobble,
+ breaklines=true,
+ fontsize=\footnotesize,
+ frame=single,
+ linenos=false,
+ resetmargins=true,
+ xleftmargin=1em,
+ xrightmargin=1em,
+ }
+ }
+% \end{macrocode}
+%
+% Conditionally load and configure the \pkg{listings} package.
+% \begin{macrocode}
+\bool_if:NT \l_@@_listings_bool
+ {
+ \msg_info:nnn { seiipackages } { load-package } { listings }
+ \RequirePackage{listings}
+ \lstset{
+ basicstyle=\footnotesize\ttfamily,
+ breaklines=true,
+ captionpos=t,
+ extendedchars=true,
+ frame=single,
+ keywordstyle=\color{blue}\bfseries,
+ showspaces=false,
+ showtabs=false,
+ showstringspaces=false,
+ tabsize=2,
+ }
+ }
+% \end{macrocode}
+%
+% Conditionally load \pkg{selnolig} if present and we run \LuaTeX.
+% \begin{macrocode}
+\bool_lazy_and:nnT { \l_@@_selnolig_bool } { \sys_if_engine_luatex_p: }
+ {
+ \IfFileExists { selnolig.sty }
+ {
+ \RequirePackage{selnolig}
+ } {
+ \msg:nnnn { seiipackages }
+ { selnolig-not-available }
+ { Could~ not~ find~ selnolig.sty }
+ { You~ might~ want~ to~ install~ it~ for~ better~ ligatures~ control.}
+ \msg_note:nn { seipackages } { selnolig-not-available }
+ }
+ }
+% \end{macrocode}
+%
+% Conditionally load \pkg{luawidowcontrol} if present and we run \LuaTeX.
+% \begin{macrocode}
+\bool_lazy_and:nnT { \l_@@_luawidowcontrol_bool } { \sys_if_engine_luatex_p: }
+ {
+ \IfFileExists { lua-widow-control.sty }
+ {
+ \RequirePackage{lua-widow-control}
+ } {
+ \msg:nnnn { seiipackages }
+ { lua-widow-control-not-available }
+ { Could~ not~ find~ lua-widow-control.sty }
+ {
+ You~ might~ want~ to~ install~ it~ for~ better~ control~ over~
+ widows~ and~ orphans.
+ }
+ \msg_note:nn { seipackages } { lua-widow-control-not-available }
+ }
+ }
+% \end{macrocode}
+%
+% Conditionally load and configure \pkg{microtype}.
+% \begin{macrocode}
+\bool_if:NT \l_@@_microtype_bool
+ {
+ \msg_info:nnn { seiipackages } { load-package } { microtype }
+ \RequirePackage{microtype}
+ \clubpenalty=10000
+ \widowpenalty=10000
+ \displaywidowpenalty=10000
+ \SetExtraKerning{
+ encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}
+ }{
+ \textemdash = {167,167},
+ — = {167,167}
+ }
+ }
+% \end{macrocode}
+%
+% Conditionally load and configure the \pkg{biblatex} package.
+% \begin{macrocode}
+\bool_if:NT \l_@@_biblatex_bool
+ {
+ \msg_info:nnn { seiipackages } { load-package } { biblatex }
+ \PassOptionsToPackage
+ {
+ backend=biber,
+ backref=true,
+ giveninits=true,
+ hyperref=auto,
+ maxnames=100,
+ minalphanames=3,
+ sorting=nyt,
+ style=alphabetic,
+ } { biblatex }
+ \RequirePackage{biblatex}
+ }
+% \end{macrocode}
+%
+% Conditionally load the \pkg{cleveref} package as the last of the preamble.
+% \begin{macrocode}
+\bool_if:NT \l_@@_cleveref_bool
+ {
+ \msg_info:nnn { seiipackages } { load-package } { cleveref }
+ \AddToHook { begindocument/before }
+ {
+ \RequirePackage[capitalise]{cleveref}
+ }
+ }
+% \end{macrocode}
+%
+%
+%
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \end{implementation}
+%
+% \PrintIndex
diff --git a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
index 3b09372b1c..df38c24126 100644
--- a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
+++ b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex
index 2a7cf037a2..da47aaa56e 100644
--- a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex
+++ b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex
@@ -2,37 +2,25 @@
chapterprefix=true,%
open=right,%
twoside=true,%
+ paper=a4,%
logofile={logo.png},%
thesistype=master,%
- biblatex=true,%
UKenglish,%
]{se2thesis}
\listfiles
\usepackage[ngerman,main=UKenglish]{babel}
\usepackage{blindtext}
\usepackage[%
- group-minimum-digits=4,%
- list-final-separator={, and },%
- add-integer-zero=false,%
- free-standing-units,%
- round-mode=figures,%
- round-precision=3,%
- detect-weight=true,%
- separate-uncertainty=true,%
- uncertainty-mode=separate,%
-]{siunitx}
-
-\usepackage[newfloat=true]{minted}
-\setminted{%
- autogobble,%
- breaklines=true,%
- fontsize=\footnotesize,%
- linenos=false,%
- resetmargins=true,%
- xleftmargin=1em,%
- xrightmargin=1em,%
- frame=single,%
-}
+ csquotes=true,%
+ booktabs=true,%
+ siunitx=true,%
+ minted=true,%
+ selnolig=true,%
+ widowcontrol=false,%
+ microtype=true,%
+ biblatex=true,%
+ cleveref=true,%
+]{se2packages}
\begin{filecontents}{\jobname.bib}
@book{Knu86,
@@ -43,18 +31,14 @@
\end{filecontents}
\addbibresource{\jobname.bib}
-\usepackage{booktabs}
-
-\usepackage{csquotes}
-
\usepackage{hyperref}
-\usepackage{cleveref}
\author{Stephan Lukasczyk}
\title{A Master Thesis Example Document}
\degreeprogramme{Computer Science}
\matrnumber{0815}
\supervisor{Prof.\,Dr.~Max Mustermann}
+\external{Prof.~John Doe,~PhD}
\advisor{Marianne Musterfrau}
\department{Faculty of Examples}
\institute{Chair of Example}
diff --git a/macros/latex/contrib/se2thesis/se2thesis.dtx b/macros/latex/contrib/se2thesis/se2thesis.dtx
index 525d551869..8826356f6c 100644
--- a/macros/latex/contrib/se2thesis/se2thesis.dtx
+++ b/macros/latex/contrib/se2thesis/se2thesis.dtx
@@ -80,6 +80,46 @@
% They are available as separate packages, however, to allow their reuse for
% other classes, packages, and projects, as well.
%
+% \subsection{Installation}\label{sec:doc-intro-install}
+%
+% The \pkg{se2thesis} bundle is available from \CTAN\footnote{
+% \href{https://ctan.org/pkg/se2thesis}{ctan.org/pkg/se2thesis}
+% }.
+% It is part of both \MiKTeX{} and \TeXLive.
+% You can find its development version from GitHub\footnote{
+% \href{https://github.com/se2p/se2thesis}{github.com/se2p/se2thesis}
+% }.
+% The easiest way of installing it is through your \TeX{} distribution;
+% please check your distribution's documentation on this.
+% Note that it might be necessary to update your \TeX{} distribution
+% because they might not provide you updates;
+% for example, there is a new version of \TeXLive{} every year
+% which needs to be installed separately.
+% If you have installed an older version of \pkg{se2thesis}
+% consider updating it to the latest version available from \CTAN{}
+% through your distribution.
+%
+% For manual installation, we recommend to clone the Git repository
+% and run the \texttt{l3build} tool that we also use for building the bundle.
+% Running |l3build ctan| builds the source files and compiles the documentation.
+% This creates a folder |build| containing these artefacts;
+% |build/doc| contains the documentation,
+% |build/local| the source files.
+% See the documentation of \texttt{l3build} and your \TeX{} distribution
+% on how to install them manually.
+% Please note that \texttt{l3build} also provides a |l3build install| target
+% to install the bundle files to your local texmf tree.
+%
+% The “Island of \TeX{}” project provides Docker images of \TeXLive.
+% If you do not want to install/update \TeXLive{} on your system
+% you might want to consider their \texttt{latest} image,
+% which contains a recent \TeXLive{} 2023 build.
+% They build their images weekly,
+% thus also recent releases of \pkg{se2thesis} will be part of the image
+% soon after their release date.
+%
+% \subsection{General Macros}\label{sec:doc-intro-macros}
+%
% They all have in common one macro, \cs{IfFormatAtLeastTF};
% this macro is part of the latest \LaTeX{} kernel.
% However, not all users might have upgraded their \TeX{} installation
@@ -128,7 +168,7 @@
%
% However, we recommend to use a couple of further packages, together with some
% further options to those package. We describe these settings in
-% \cref{sec:doc-se2thesis-pkgs}.
+% \cref{sec:doc-se2packages}.
% Please consider looking at this section when starting to write your document.
%
% Before we start with a detailed documentation of the class, we explain one
@@ -151,7 +191,7 @@
% \end{syntax}
% Set the base document class.
% Values are \cls{scrreprt}, \cls{scrartcl}, or \cls{scrbook}.
-% Default is |scrreprt|.
+% Default is |scrbook|.
% \end{function}
%
% \begin{function}{paper}
@@ -159,7 +199,7 @@
% |paper| = \meta{choice}
% \end{syntax}
% Set the paper format.
-% Possible values are |a4|, |a5|, or |b5|.
+% Possible values are |a4| or |b5|.
% Default is |a4|.
% \end{function}
%
@@ -182,14 +222,6 @@
% and |phd| for a PhD thesis.
% \end{function}
%
-% \begin{function}{biblatex}
-% \begin{syntax}
-% |biblatex| = \meta{true,false}
-% \end{syntax}
-% Whether \cls{se2thesis} shall load the \pkg{biblatex} package together with
-% some settings automatically.
-% \end{function}
-%
% \begin{function}{colormode}
% \begin{syntax}
% |colormode| = \meta{choice}
@@ -354,164 +386,6 @@
% page numbers in the outer margin and the headmarks split from the page numbers
% by a vertical bar.
%
-% \subsection{Recommended additional packages}\label{sec:doc-se2thesis-pkgs}
-%
-% Several packages can be useful for writing a thesis.
-% We list them in this section; for the recommended option settings, please have
-% a look at our examples.
-% Please note that you might not need all these packages, however, having a look
-% at them (especially their documentation) might give you an insight, whether to
-% use a package.
-% Our general recommendation is to use as few packages as you can; some might
-% have conflicts, others basically do the same or are outdated.
-% Please consider reading the documentation of each package you are using to
-% figure out whether they have any conflicts with other packages~(for example,
-% one cannot use the recommended \pkg{siunitx} package together with
-% \pkg{SIunits}) or they might require to be loaded at special places in your
-% preamble~(for example, \pkg{hyperref} is usually meant to be loaded as the
-% last package, except you are also using \pkg{cleveref}, which needs to be
-% loaded \emph{after} \pkg{hyperref}).
-%
-% \subsubsection{Quoting with \pkg{csquotes}}
-%
-% The \pkg{csquotes} package allows for intelligent quoting of text.
-% While verbose quotes are not that common on computer science, the package
-% still provides some useful macros to the user.
-%
-% \subsubsection{Number formatting with \pkg{siunitx}}
-%
-% While \pkg{siunitx}'s original purpose was to format physical quantities, it
-% provides a lot of useful features when typesetting theses~(and other
-% documents) in computer science.
-% When you skim through its documentation, especially look at the \cmd{\qty} and
-% \cmd{\num} macros, as well as the section on typesetting tabular material.
-% We also recommend reading an extensive discussion on number formatting,
-% precision of presented numbers, and many more related topics in Beyer et al.'s
-% journal paper on requirements and solutions for reliable
-% benchmarking~\cite{DBLP:journals/sttt/BeyerLW19}.
-%
-% When using the \pkg{siunitx} package, we recommend adding the following lines
-% to your document's preamble
-% \begin{LaTeXdemo}[code only]
-% \usepackage[
-% group-minimum-digits=4,
-% list-final-separator={, and },
-% add-integer-zero=false,
-% free-standing-units,
-% round-mode=figures,
-% round-precision=3,
-% detect-weight=true,
-% detect-inline-weight=math,
-% separate-uncertainty=true,
-% uncertainty-mode=separate,
-% ]{siunitx}
-% \end{LaTeXdemo}
-%
-% \subsubsection{Code listings with \pkg{minted}}
-%
-% We prefer using the \pkg{minted} package for code listings.
-% However, this package requires the installation of Python and the setting of
-% the |-shell-escape| option to your \TeX{} engine.
-% Please read the package's documentation to set it up.
-% If you do not want to install Python and the dependencies, we also provide
-% settings for the alternative \pkg{listings} package in the next subsection.
-%
-% When using \pkg{minted} we recommend the following settings:
-% \begin{LaTeXdemo}[code only]
-% \usepackage[newfloat=true]{minted}
-% \setminted{
-% autogobble,
-% breaklines=true,
-% fontsize=\footnotesize,
-% linenos=false,
-% resetmargins=true,
-% xleftmargin=1em,
-% xrightmargin=1em,
-% frame=single,
-% }
-% \end{LaTeXdemo}
-%
-% \subsubsection{Code listing with \pkg{listings}}
-%
-% In case you do not want to use the aforementioned \pkg{minted} package, please
-% consider using \pkg{listings} for typesetting your code listings.
-% \begin{LaTeXdemo}[code only]
-% \usepackage{listings}
-% \lstset{
-% frame=single,
-% extendedchars=true,
-% basicstyle=\footnotesize\ttfamily,
-% keywordstyle=\color{blue}\bfseries,
-% showstringspaces=false,
-% showspaces=false,
-% tabsize=2,
-% breaklines=true,
-% showtabs=false,
-% captionpos=t,
-% }
-% \end{LaTeXdemo}
-%
-% Please be aware to use \emph{either} \pkg{minted} \emph{or} \pkg{listings}!
-%
-% \subsubsection{Designing tables}
-%
-% A basically mandatory package to all users of tables is the \pkg{booktabs}
-% package.
-% Especially its documentation is a must read!
-% It provides a large variety of hints for designing tables,
-% most notably that one should never ever use vertical lines;
-% horizontal lines should be used sparsely; \pkg{booktabs} provides three macros
-% for lines that shall be used: \cmd{\toprule} for a rule on the top of a table,
-% above the column heads, \cmd{\midrule} to separate column heads and the
-% content but, and \cmd{\bottomrule} to mark the bottom of a table.
-%
-% Note that captions of tables shall be put \emph{above} the table whereas
-% captions of figures shall go \emph{below} the figure.
-% The rationale is that a figure should be more of less self explaining whereas
-% a table almost always needs some explanation.
-%
-% Unfortunately, the distances when using a \cmd{\caption} above a table are
-% wrong by default; when creating tables, consider loading the \pkg{hvfloats}
-% package and use its \cmd{\tabcaption} instead of \cmd{\caption} for tables.
-% The \pkg{hvfloats} package furthermore provides additional useful things to
-% typeset all kinds of floats.
-%
-% \subsubsection{Use \pkg{biblatex} for bibliographic references}
-%
-% The standard way of typesetting bibliographic references was using
-% \BibTeX.
-% The original \BibTeX, however, seems to be very outdated in
-% various ways: it originally supported only 7\,bit character sets and creating
-% citation styles requires the usage of an archaic language.
-% \BibLaTeX resolves many of the drawbacks of \BibTeX;
-% when combined with the |biber| engine, it supports full UTF-8 unicode,
-% therefore correct sorting of the references now works out of the box; also
-% creating citation styles can now be done using simple \LaTeX{} commands.
-%
-% For easier usage, we provide the load-time option |biblatex| that already sets
-% all settings~(see \cref{sec:doc-se2thesis-options}.
-% Set this options to \cls{se2thesis} and add your reference file using the
-% \cmd{\addbibresource} macro. \cmd{\printbibliography} will print your
-% references.
-%
-% \subsubsection{Use \pkg{cleveref} for internal references}
-%
-% \LaTeX{} provides an easy-to-use reference mechanism using the \cmd{\label}
-% and \cmd{\ref} macros.
-% However, this requires some manual effort and the text needs to specify
-% whether a reference is to a figure, section, or table.
-% We often see things in drafts such as \enquote{we discuss our findings in 4};
-% but what is \enquote{4} here?
-% Is it a section, a table, a figure?
-% To avoid such confusion, use the \pkg{cleveref} package, which automatically
-% infers the type of the reference~(see its documentation on how this works).
-% The \pkg{cleveref} package furthermore avoids one additional mistake: between
-% the name of the element and its reference one needs to have a non-breaking
-% space that often is forgotten.
-%
-% Please note that, in contrast to most other packages, \pkg{cleveref} has to be
-% loaded \emph{after} the \pkg{hyperref} package!
-%
% \subsection{Abstract for the thesis}\label{sec:doc-se2thesis-abstract}
%
% Each thesis shall come with an abstract that summarises its content.
@@ -648,12 +522,6 @@
% question;
% however, this can also be arbitrary text.
%
-% \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}
%
% \clearpage
@@ -721,7 +589,7 @@
%
% Identify the class and give the overall version number.
% \begin{macrocode}
-\ProvidesExplClass {se2thesis} {2023-01-27} {2.1.0}
+\ProvidesExplClass {se2thesis} {2023-04-18} {3.0.0}
{A thesis class for the Chair of Software Engineering II}
% \end{macrocode}
%
@@ -788,14 +656,6 @@
% \end{macrocode}
% \end{macro}
%
-% \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{macro}
-%
% Define internal variables to hold the values of the fields of the title
% page.
% \begin{macro}
@@ -886,9 +746,9 @@
class / scrartcl .code:n = \tl_gset:Nn \l_@@_base_class_tl {scrartcl},
class / book .meta:n = {class=scrbook},
class / scrbook .code:n = \tl_gset:Nn \l_@@_base_class_tl {scrbook},
- class .initial:n = scrreprt,
+ class .initial:n = scrbook,
- paper .choices:nn = {a4,a5,b5}{
+ paper .choices:nn = {a4,b5}{
\int_gset_eq:NN \l_@@_paper_int \l_keys_choice_int
},
paper .initial:n = a4,
@@ -911,9 +771,6 @@
},
thesistype .initial:n = master,
- biblatex .bool_gset:N = \l_@@_biblatex_bool,
- biblatex .initial:n = false,
-
colormode .choices:nn = {cmyk,rgb,bw}{
\tl_gset_eq:NN \l_@@_colormode_tl \l_keys_choice_tl
},
@@ -986,86 +843,6 @@
\RequirePackage{se2fonts}
% \end{macrocode}
%
-% Load the \pkg{microtype} package.
-% We also set some options to \pkg{microtype}, namely the penalties for widows
-% and orphans (which might also be corrected by \pkg{lua-widow-control} when
-% using \LuaTeX{}) and a thin space around the m-dash.
-% We are aware of the discussion whether to have a space around the m-dash in
-% English, however, we think it looks more beautiful.
-% We took this from \href{https://tex.stackexchange.com/a/109188/14622}{a
-% \TeX{}.StackExchange post}.
-% \begin{macrocode}
-\RequirePackage{microtype}
-\clubpenalty=10000
-\widowpenalty=10000
-\displaywidowpenalty=10000
-\SetExtraKerning{
- encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}
-}{
- \textemdash = {167,167},
- — = {167,167}
-}
-% \end{macrocode}
-%
-% When using \LuaTeX{} load the \pkg{lua-widow-control} package for a better
-% control of orphans and widows.
-% \begin{macrocode}
-\ifengineT { \luatexengine }
- {
- \IfFileExists { lua-widow-control.sty }
- { \RequirePackage{lua-widow-control} }
- {
- \msg:nnn { seiithesis }
- { lua-widow-control-not-available }
- {
- Could~ not~ find~ lua-widow-control.sty.~ You~ might~ want~ to~
- install~ it~ for~ better~ control~ over~ orphans~ and~ widows.
- }
- \msg_note:nn { seiithesis } { lua-widow-control-not-available }
- }
- }
-% \end{macrocode}
-%
-% Similarly, load \pkg{ligtype} when using \LuaTeX.
-% \begin{macrocode}
-\ifengineT { \luatexengine }
- {
- \IfFileExists { selnolig.sty }
- { \RequirePackage{selnolig} }
- {
- \msg:nnn { seiithesis }
- { selnolig-not-available }
- {
- Could~ not~ find~ selnolig.sty.~ You~ might~ want~ to~ install~ it~
- for~ better~ ligatures~ control.
- }
- \msg_note:nn { seiithesis } { selnolig-not-available }
- }
- }
-% \end{macrocode}
-%
-% When the user requests the |biblatex| option, also load \pkg{biblatex}
-% \begin{macrocode}
-\bool_if:NT \l_@@_biblatex_bool
- {
- \PassOptionsToPackage
- {
- backend=biber,
- hyperref=auto,
- backref=true,
- style=alphabetic,
- maxnames=100,
- minalphanames=3,
- sorting=nyt,
- giveninits=true,
- }{biblatex}
- \RequirePackage{biblatex}
-% \end{macrocode}
-% End of the \BibLaTeX{} settings.
-% \begin{macrocode}
- }
-% \end{macrocode}
-%
% \subsection{User macros for the title page}
%
% In addition to the macros provided by the \KOMAScript{} classes
@@ -1174,7 +951,12 @@
\dim_if_exist:NF \l_@@_logo_height_dim
{
\dim_new:N \l_@@_logo_height_dim
- \dim_gset:Nn \l_@@_logo_height_dim { 67.5pt }
+ \int_compare:nTF { \l_@@_paper_int=1 }
+ {
+ \dim_gset:Nn \l_@@_logo_height_dim { 67.5pt }
+ } {
+ \dim_gset:Nn \l_@@_logo_height_dim { 56.8pt }
+ }
}
\box_if_exist:NF \l_@@_logo_box
{
@@ -1200,16 +982,9 @@
\setlength{\marginparsep}{8.5cm}
\setlength{\marginparsep}{1em}
}{
- \int_compare:nTF { \l_@@_paper_int=2 }
- {
- \areaset[current]{247pt}{400pt}
- \setlength{\marginparsep}{6.0cm}
- \setlength{\marginparsep}{0.71em}
- }{
- \areaset[current]{303pt}{491pt}
- \setlength{\marginparsep}{7.4cm}
- \setlength{\marginparsep}{0.87em}
- }
+ \areaset[current]{350pt}{567pt}
+ \setlength{\marginparsep}{7.4cm}
+ \setlength{\marginparsep}{0.87em}
}
% \end{macrocode}
%
@@ -1835,7 +1610,7 @@
% We provide the following English translations.
%
% \begin{macrocode}
-\ProvideDictionaryFor{English}{se2translations}[2023/01/27]
+\ProvideDictionaryFor{English}{se2translations}[2023/04/18]
\ProvideDictTranslation{abstract}{abstract}
\ProvideDictTranslation{Abstract}{Abstract}
\ProvideDictTranslation{acknowledgement}{acknowledgement}
@@ -1886,7 +1661,7 @@
% We provide the following German translations.
%
% \begin{macrocode}
-\ProvideDictionaryFor{German}{se2translations}[2023/01/27]
+\ProvideDictionaryFor{German}{se2translations}[2023/04/18]
\ProvideDictTranslation{abstract}{Zusammenfassung}
\ProvideDictTranslation{Abstract}{Zusammenfassung}
\ProvideDictTranslation{acknowledgement}{Danksagung}
diff --git a/macros/latex/contrib/se2thesis/se2thesis.ins b/macros/latex/contrib/se2thesis/se2thesis.ins
index 1ad8d4c021..c3af7cd020 100644
--- a/macros/latex/contrib/se2thesis/se2thesis.ins
+++ b/macros/latex/contrib/se2thesis/se2thesis.ins
@@ -47,6 +47,7 @@ This work consists of the files se2thesis.dtx,
se2thesis.ins,
se2colors.dtx,
se2fonts.dtx,
+ se2packages.dtx,
se2thesis-master-thesis-example.tex
and the derived files se2thesis.pdf,
se2thesis.cls,
@@ -54,6 +55,7 @@ This work consists of the files se2thesis.dtx,
se2translations-german.trsl,
se2colors.sty,
se2fonts.sty,
+ se2packages.sty,
se2thesis-master-thesis-example.bib, and
se2thesis-master-thesis-example.pdf
\endpreamble
@@ -99,6 +101,14 @@ This work consists of the files se2thesis.dtx,
\from{se2fonts.dtx}{package}
}
}
+\generate
+ {%
+ \file{se2packages.sty}
+ {%
+ \from{se2thesis.dtx}{init}
+ \from{se2packages.dtx}{package}
+ }
+ }
\endbatchfile
diff --git a/macros/latex/contrib/se2thesis/se2thesis.pdf b/macros/latex/contrib/se2thesis/se2thesis.pdf
index 89835e4070..dd2d5278ec 100644
--- a/macros/latex/contrib/se2thesis/se2thesis.pdf
+++ b/macros/latex/contrib/se2thesis/se2thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/se2thesis/se2thesis.tex b/macros/latex/contrib/se2thesis/se2thesis.tex
index 6035c60e18..4747857e55 100644
--- a/macros/latex/contrib/se2thesis/se2thesis.tex
+++ b/macros/latex/contrib/se2thesis/se2thesis.tex
@@ -229,6 +229,7 @@ starting at page~\pageref{sec:impl}, for those who are curious.
\DocInput{se2thesis.dtx}
\DocInput{se2colors.dtx}
\DocInput{se2fonts.dtx}
+\DocInput{se2packages.dtx}
\EnableImplementation
\DisableDocumentation
diff --git a/macros/latex/contrib/se2thesis/test.pdf b/macros/latex/contrib/se2thesis/test.pdf
index 1690e75f98..d33ba70794 100644
--- a/macros/latex/contrib/se2thesis/test.pdf
+++ b/macros/latex/contrib/se2thesis/test.pdf
Binary files differ
diff --git a/macros/latex/contrib/se2thesis/test.tex b/macros/latex/contrib/se2thesis/test.tex
index 866a44d2f2..79694db902 100644
--- a/macros/latex/contrib/se2thesis/test.tex
+++ b/macros/latex/contrib/se2thesis/test.tex
@@ -1,68 +1,107 @@
-\documentclass[twoside]{scrartcl}
-\usepackage[automark]{scrlayer-scrpage}
-\usepackage{xcolor}
+\documentclass[%
+ chapterprefix=true,%
+ open=right,%
+ twoside=true,%
+ logofile={logo.png},%
+ thesistype=master,%
+ biblatex=true,%
+ UKenglish,%
+ class=book,%
+ paper=b5,%
+]{se2thesis}
+\listfiles
+\usepackage[ngerman,main=UKenglish]{babel}
\usepackage{blindtext}
-%\DeclareLayer[clone=scrheadings.head.oneside,
-% contents={%
-% \color{yellow}%
-% \rule[-\dp\strutbox]%
-% {\layerwidth}{\layerheight}%
-% }%
-%]{scrheadings.head.oneside.background}
-%\DeclareLayer[clone=scrheadings.head.odd,
-% contents={%
-% \color{yellow}%
-% \rule[-\dp\strutbox]%
-% {\layerwidth}{\layerheight}%
-% }%
-%]{scrheadings.head.odd.background}
-%\DeclareLayer[clone=scrheadings.head.even,
-% contents={%
-% \color{yellow}%
-% \rule[-\dp\strutbox]%
-% {\layerwidth}{\layerheight}%
-% }%
-%]{scrheadings.head.even.background}
-%\AddLayersAtBeginOfPageStyle{scrheadings}{%
-% scrheadings.head.oneside.background,%
-% scrheadings.head.odd.background,%
-% scrheadings.head.even.background%
-%}
-\DeclareLayer[%
- clone=scrheadings.foot.odd,%
- contents={%
- {\ }%
- \footnotesize%
- {\color{blue}\headmark}%
- \hspace*{0.75cm}%
- {\color{blue}\rule[-5pt]{1.25pt}{15pt}}%
- \hspace*{0.75cm}%
- \begin{minipage}[b]{1.5cm}%
- \normalsize\textbf{\pagemark}%
- \end{minipage}%
- \hspace{-1.85cm}%
- }%
-]{scrheadings.foot.odd.slcd}
-\DeclareLayer[%
- clone=scrheadings.foot.even,%
- contents={%
- \null\hspace{-1.85cm}%
- \footnotesize%
- \begin{minipage}[b]{1.5cm}
- \raggedleft\normalsize\textbf{\pagemark}%
- \end{minipage}%
- \footnotesize%
- \hspace*{0.75cm}%
- {\color{blue}\rule[-5pt]{1.25pt}{15pt}}%
- \hspace*{0.75cm}%
- {\color{blue}\headmark}%
- }%
-]{scrheadings.foot.even.slcd}
-\AddLayersAtBeginOfPageStyle{scrheadings}{%
- scrheadings.foot.odd.slcd,%
- scrheadings.foot.even.slcd%
+\usepackage[%
+ group-minimum-digits=4,%
+ list-final-separator={, and },%
+ add-integer-zero=false,%
+ free-standing-units,%
+ round-mode=figures,%
+ round-precision=3,%
+ detect-weight=true,%
+ separate-uncertainty=true,%
+ uncertainty-mode=separate,%
+]{siunitx}
+
+\usepackage[newfloat=true]{minted}
+\setminted{%
+ autogobble,%
+ breaklines=true,%
+ fontsize=\footnotesize,%
+ linenos=false,%
+ resetmargins=true,%
+ xleftmargin=1em,%
+ xrightmargin=1em,%
+ frame=single,%
}
-\pagestyle{scrheadings}
+
+\begin{filecontents}{\jobname.bib}
+ @book{Knu86,
+ author = {Knuth, Donald E.},
+ year = {1986},
+ title = {The \TeX book},
+ }
+\end{filecontents}
+\addbibresource{\jobname.bib}
+
+\usepackage{booktabs}
+
+\usepackage{csquotes}
+
+\usepackage{hyperref}
+\usepackage{cleveref}
+
+\author{Stephan Lukasczyk}
+\title{A Master Thesis Example Document}
+\degreeprogramme{Computer Science}
+\matrnumber{0815}
+\supervisor{Prof.\,Dr.~Max Mustermann}
+\advisor{Marianne Musterfrau}
+\department{Faculty of Examples}
+\institute{Chair of Example}
+\location{Passau}
+
\begin{document}
+
+\frontmatter
+
+\maketitle
+
+\authorshipDeclaration
+
+\begin{abstract}
+ An English abstract to the thesis.
+\end{abstract}
+
+\begin{abstract}[german]
+ Eine deutschsprachige Zusammenfassung der Arbeit.
+\end{abstract}
+
+\begin{acknowledgements}
+ Some acknowledgements.
+\end{acknowledgements}
+
+\tableofcontents
+
+\mainmatter
+
\blinddocument
-\end{document} \ No newline at end of file
+
+\section{Further Examples}
+
+We could reference the \TeX{} book~\cite{Knu86}.
+
+\begin{resq}
+ What is \(41 + 1\)?
+\end{resq}
+
+\begin{summary}{Research Question 1}
+ It's 42, obviously!
+\end{summary}
+
+\backmatter
+
+\printbibliography
+
+\end{document}