summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/se2thesis/se2thesis.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/se2thesis/se2thesis.dtx')
-rw-r--r--macros/latex/contrib/se2thesis/se2thesis.dtx339
1 files changed, 57 insertions, 282 deletions
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}