From c1c19023b4b1d43cb874f84df5102b485853e672 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 11 Jan 2023 03:01:35 +0000 Subject: CTAN sync 202301110301 --- macros/latex/contrib/se2thesis/CHANGELOG.md | 27 +- macros/latex/contrib/se2thesis/se2colors.dtx | 373 +++++++++ macros/latex/contrib/se2thesis/se2fonts.dtx | 324 ++++++++ .../se2thesis/se2thesis-master-thesis-example.pdf | Bin 1138744 -> 1097568 bytes .../se2thesis/se2thesis-master-thesis-example.tex | 9 +- macros/latex/contrib/se2thesis/se2thesis.dtx | 891 ++------------------- macros/latex/contrib/se2thesis/se2thesis.ins | 17 +- macros/latex/contrib/se2thesis/se2thesis.pdf | Bin 381335 -> 339853 bytes macros/latex/contrib/se2thesis/se2thesis.tex | 245 ++++++ 9 files changed, 1035 insertions(+), 851 deletions(-) create mode 100644 macros/latex/contrib/se2thesis/se2colors.dtx create mode 100644 macros/latex/contrib/se2thesis/se2fonts.dtx create mode 100644 macros/latex/contrib/se2thesis/se2thesis.tex (limited to 'macros/latex/contrib/se2thesis') 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} +% +% \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} +% +% \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} +% +% \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} +% +% \end{macrocode} +% +% \end{implementation} +% +% \PrintIndex diff --git a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf index 1938ad4bda..e545f309c2 100644 Binary files a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf and b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf differ diff --git a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex index 96b4038fe3..1ba0afbb52 100644 --- a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex +++ b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.tex @@ -8,7 +8,6 @@ \listfiles \usepackage[ngerman,main=UKenglish]{babel} \usepackage{blindtext} -\usepackage{csquotes} \usepackage[% group-minimum-digits=4,% list-final-separator={, and },% @@ -33,19 +32,19 @@ frame=single,% } -\usepackage{filecontents} - -\begin{filecontents*}{\jobname.bib} +\begin{filecontents}{\jobname.bib} @book{Knu86, author = {Knuth, Donald E.}, year = {1986}, title = {The \TeX book}, } -\end{filecontents*} +\end{filecontents} \addbibresource{\jobname.bib} \usepackage{booktabs} +\usepackage{csquotes} + \usepackage{hyperref} \usepackage{cleveref} diff --git a/macros/latex/contrib/se2thesis/se2thesis.dtx b/macros/latex/contrib/se2thesis/se2thesis.dtx index 81bed285c7..12e77ce2f7 100644 --- a/macros/latex/contrib/se2thesis/se2thesis.dtx +++ b/macros/latex/contrib/se2thesis/se2thesis.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% File: se2thesis.dtx Copyright (C) 2022 Stephan Lukasczyk +% File: se2thesis.dtx Copyright (C) 2022--2023 Stephan Lukasczyk % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -29,135 +29,6 @@ % The next line is needed so that \GetFileInfo will be able to pick up % version data. \usepackage{se2colors} -% -% Commands for this document, taken from Joseph Wright's siunitx -% documentation: -\ExplSyntaxOn -\makeatletter -\NewDocumentCommand \acro { m } - { - \textsc - { - \exp_args:NV \tl_if_head_eq_charcode:nNTF \f@series { m } - { \text_lowercase:n } - { \use:n } - {#1} - } - } -\makeatother -\ExplSyntaxOff -\NewDocumentCommand{\email}{m}{\href{mailto:#1}{\nolinkurl{#1}}} -\NewDocumentCommand{\ext}{m}{\texttt.#1} -\NewDocumentCommand{\opt}{m}{\texttt{#1}} -% Tidy up the above in bookmarks -\makeatletter -\pdfstringdefDisableCommands{% - \let\acro\@firstofone - \let\ext\@firstofone - \let\opt\@firstofone -} -\makeatother - -% For creating code demonstration, taken from Joseph Wright's siunitx -% documentation: -\usepackage{listings} -\makeatletter -\lst@RequireAspects{writefile} -\newsavebox\LaTeXdemo@box -\lstnewenvironment{LaTeXdemo}[1][code and example] - {% - \global\let\lst@intname\@empty - \edef\LaTeXdemo@end{% - \expandafter\noexpand\csname LaTeXdemo@@#1@end\endcsname - }% - \@nameuse{LaTeXdemo@@#1}% - } - {\LaTeXdemo@end} -\newcommand\LaTeXdemo@new[3]{% - \@namedef{LaTeXdemo@@#1}{#2} - \@namedef{LaTeXdemo@@#1@end}{#3}% -} -\newcommand*\LaTeXdemo@common{% - \setkeys{lst} - {% - basicstyle = \small\ttfamily, - breaklines = true, - basewidth = 0.51em, - captionpos = t, - extendedchars = true, - frame = single, - gobble = 2, - keywordstyle = \color{blue}\bfseries, - language = [LaTeX]{TeX}, - showspaces = false, - showstringspaces = false, - showtabs = false, - tabsize = 2, - }% -} -\newcount\LaTeXdemo@count -\newcommand*\LaTeXdemo@input{% - \catcode`\^^M = 10\relax - \input{\jobname-\number\LaTeXdemo@count.tmp}% -} -\LaTeXdemo@new{code and example}{% - \setbox\LaTeXdemo@box=\hbox\bgroup - \global\advance\LaTeXdemo@count by 1 % - \lst@BeginAlsoWriteFile{\jobname-\number\LaTeXdemo@count.tmp}% - \LaTeXdemo@common -}{% - \lst@EndWriteFile - \egroup - \begin{center} - \ifdim\wd\LaTeXdemo@box > 0.48\linewidth - \begin{minipage}{\linewidth} - \usebox\LaTeXdemo@box - \end{minipage}% - \par - \begin{minipage}{\linewidth} - \LaTeXdemo@input - \end{minipage} - \else - \begin{minipage}{0.48\linewidth} - \LaTeXdemo@input - \end{minipage}% - \hspace{\fill}% - \begin{minipage}{0.48\linewidth} - \usebox\LaTeXdemo@box - \end{minipage}% - \fi - \end{center} -} -\LaTeXdemo@new{code and float}{% - \global\advance\LaTeXdemo@count by 1 % - \lst@BeginAlsoWriteFile{\jobname-\number\LaTeXdemo@count.tmp}% - \LaTeXdemo@common -}{% - \lst@EndWriteFile - \LaTeXdemo@input -} -\LaTeXdemo@new{code only}{\LaTeXdemo@common}{} -\makeatother - -\usepackage[UKenglish]{babel} -\usepackage{fontspec} -\usepackage{hvlogos} - -% Taken from xcolor.dtx -\makeatletter -\def\testclr#1#{\@testclr{#1}} -\def\@testclr#1#2{{\fboxsep\z@\fbox{\colorbox#1{#2}{\phantom{XX}}}}} -\makeatother - -\usepackage{hvfloat} -\hypersetup{% - allcolors=UPSE2-Blue,% - pdftitle={se2thesis -- A Thesis Class for the Chair of Software Engineering II - at the University of Passau, Germany},% - pdfauthor={Stephan Lukasczyk}, -} -\usepackage[capitalise]{cleveref} - \begin{document} \DocInput{\jobname.dtx} \end{document} @@ -167,57 +38,19 @@ % \GetFileInfo{se2colors.sty} % % \title{^^A -% \pkg{se2thesis} -- A Thesis Class for the Chair of Software -% Engineering~II at the University of Passau, Germany^^A -% \thanks{This file describes \fileversion, -% last revised \filedate.}^^A +% \pkg{se2thesis} -- Overall set up^^A +% \thanks{This file describes \fileversion, last revised \filedate.}^^A % } % % \author{^^A % Stephan Lukasczyk^^A % \thanks{^^A -% E-mail: \href{mailto:tex@lukasczyk.me}{tex@lukasczyk.me}^^A +% E-Mail: \href{mailto:tex@lukasczyk.me}{tex@lukasczyk.me}^^A % }^^A % } % -% \date{Released \filedate} -% -% \maketitle -% -% \begin{abstract} -% One can choose from a wide variety of templates to write a thesis. -% Many universities provide very rigorous style guides and force their -% students to obey to those guides, even though they might be questionable -% from a typographics point of view. -% Other universities do not provide such guides and leave it to their students -% to choose or come up with a template. -% The latter is causing very differently-looking theses. -% -% To avoid such a situation in the future this bundle combines several -% \LaTeX{} packages and classes for the use at the Chair of Software -% Engineering~II at the University of Passau. -% We provide, among others, a document class for theses that shall be -% used by our students. -% The bundle is designed in a way that one can use the basic components as -% standalone packages to allow their reuse for other projects. -% \end{abstract} -% -% \tableofcontents -% % \begin{documentation} % -% \part{User Documentation}\label{sec:doc} -% -% This documentation is split into two parts: -% the first part is the documentation for the user, -% which provides all macros, variables, and functions -% that are provided by the \pkg{se2thesis} bundle. -% The second part (starting on page~\pageref{sec:impl}) -% shows the implementation. -% This might be interesting for you -% if you are curious how certain things are defined -% of if you need to change some of the default implementation. -% % \section{Introduction}\label{sec:doc-intro} % % The University of Passau does not provide a common thesis template @@ -242,8 +75,7 @@ % that also allow reuse of various parts of it. % Its main class is the \pkg{se2thesis} document class, % an extension of the \KOMAScript{} |scrreprt| document class. -% The packages \pkg{se2colors} (documented in \cref{sec:doc-se2colors}) and -% \pkg{se2fonts} (documented in \cref{sec:doc-se2fonts}) provide necessary +% The packages \pkg{se2colors} and \pkg{se2fonts} provide necessary % colour and font settings for the \pkg{se2thesis} class. % They are available as separate packages, however, to allow their reuse for % other classes, packages, and projects, as well. @@ -287,10 +119,10 @@ % The following packages and classes are loaded: % \pkg{expl3}, \pkg{l3keys2e} in case one uses a \LaTeX{} kernel from before % 2022--06--01, \pkg{graphicx}, \pkg{translations}, \KOMAScript, \pkg{xcolor}, -% \pkg{ifthen}, as well as \pkg{fontspec} and \pkg{unicode-math} if one uses -% \LuaTeX{}; -% for \pdfLaTeX{} we load \pkg{fontenc}, \pkg{FiraMono}, \pkg{tgheros}, -% \pkg{tgpagella} instead of the latter two. +% \pkg{ifthen}, as well as \pkg{fontspec}, \pkg{unicode-math}, +% and \pkg{libertinus-otf} if one uses \LuaTeX{}; +% for \pdfLaTeX{} we load \pkg{fontenc}, \pkg{libertinus-type1}, and +% \pkg{AnonymousPro} instead of the latter three. % Furthermore, we load \pkg{microtype}; % when using \LuaTeX{}, we also load \pkg{lua-widow-control} and \pkg{selnolig}. % @@ -301,9 +133,9 @@ % % Before we start with a detailed documentation of the class, we explain one % helper macro that can be used to check whether a package has been loaded. -% \begin{function}[EXP, pTF, updated = 2022-09-27]{\slcd_package_if_loaded:} +% \begin{function}[pTF, updated = 2022-09-27]{\slcd_package_if_loaded:n} % \begin{syntax} -% |\slcd_package_if_loaded:TF| \Arg{true code} \Arg{false code} +% |\slcd_package_if_loaded:nTF| \Arg{package name} \Arg{true code} \Arg{false code} % \end{syntax} % Checks whether a package has been loaded and conditionally executes code. % \end{function} @@ -366,12 +198,14 @@ % package, see \cref{sec:doc-se2colors} for a description. % \end{function} % -% \begin{function}{fontmode} +% \begin{function}[updated = 2023-01-10]{fontmode} % \begin{syntax} % |fontmode| = \meta{choice} % \end{syntax} % Select the font scheme used by the automatically loaded \pkg{se2fonts} % package, see \cref{sec:doc-se2fonts} for a description. +% +% \emph{This option is deprecated and will be removed in the future!} % \end{function} % % @@ -814,246 +648,11 @@ % question; % however, this can also be arbitrary text. % -% \section{The \pkg{se2colors} package}\label{sec:doc-se2colors} -% -% Several colours are specific to the university -% and we want to have a comprehensive interface -% to access them throughout all our packages. -% -% The \pkg{se2colors} package provides this exact features. -% One can load it using |\usepackage{se2colors}| in the document preamble. -% -% \begin{function}[updated = 2022-11-03]{cmode} -% \begin{syntax} -% |cmode| = \meta{choice} -% \end{syntax} -% Selects the colour mode that shall be used for creating the results, -% a choice from the options specified in \cref{tab:coloursoptions}. -% The default setting is |4C|. -% \end{function} -% -% \begin{table}[th] -% \tabcaption{\label{tab:coloursoptions}% -% Options provided by \pkg{se2colors}.% -% } -% \centering -% \begin{tabular}{@{} l l @{}} \toprule -% Option & Description \\ \midrule -% % -% |cmode=4C| -% & Define colours in CMYK colour space (\emph{default}). \\ -% % -% |CMYK|, |cmyk| -% & Aliases for the previous. \\ -% % -% |cmode=RGB| -% & Define colours in RGB colour space. \\ -% % -% |RGB|, |rgb| -% & Aliases for the previous. \\ -% % -% |cmode=BW| -% & Define colours in black-and-white colour space. \\ -% % -% |cmode=1C| -% & Alias for the previous. \\ -% % -% |gray| -% & Alias for the previous. \\ -% % -% \bottomrule -% \end{tabular} -% \end{table} -% -% We define two basic colours -% that are taken from the University's logo, -% namely |UPSE2-Gray| \testclr{UPSE2-Gray} -% and |UPSE2-Orange| \testclr{UPSE2-Orange}. -% -% Additionally, -% we define four colours for the four faculties of the University: -% \begin{itemize} -% \item the Faculty of Law |UPSE2-JUR| \testclr{UPSE2-JUR}, -% \item the School of Business, Economics and Information Systems |UPSE2-WIWI| \testclr{UPSE2-WIWI}, -% \item the Faculty of Arts and Humanities |UPSE2-PHIL| \testclr{UPSE2-PHIL}, and -% \item the Faculty of Computer Science and Mathematics |UPSE2-FIM| \testclr{UPSE2-FIM}. -% \end{itemize} -% -% Finally, -% we define a full set of supplementary colours: -% \begin{itemize} -% \item |UPSE2-DarkGray| \testclr{UPSE2-DarkGray} -% with its derivatives \\ -% |UPSE2-DarkGray1| \testclr{UPSE2-DarkGray1}, -% |UPSE2-DarkGray2| \testclr{UPSE2-DarkGray2}, -% |UPSE2-DarkGray3| \testclr{UPSE2-DarkGray3}, -% |UPSE2-DarkGray4| \testclr{UPSE2-DarkGray4}, and -% |UPSE2-DarkGray5| \testclr{UPSE2-DarkGray5}. -% \item |UPSE2-White| \testclr{UPSE2-White} -% with its derivatives \\ -% |UPSE2-White1| \testclr{UPSE2-White1}, -% |UPSE2-White2| \testclr{UPSE2-White2}, -% |UPSE2-White3| \testclr{UPSE2-White3}, -% |UPSE2-White4| \testclr{UPSE2-White4}, and -% |UPSE2-White5| \testclr{UPSE2-White5}. -% \item |UPSE2-MediumGray| \testclr{UPSE2-MediumGray} -% with its derivatives \\ -% |UPSE2-MediumGray1| \testclr{UPSE2-MediumGray1}, -% |UPSE2-MediumGray2| \testclr{UPSE2-MediumGray2}, -% |UPSE2-MediumGray3| \testclr{UPSE2-MediumGray3}, -% |UPSE2-MediumGray4| \testclr{UPSE2-MediumGray4}, and -% |UPSE2-MediumGray5| \testclr{UPSE2-MediumGray5}. -% \item |UPSE2-LightGray| \testclr{UPSE2-LightGray} -% with its derivatives \\ -% |UPSE2-LightGray1| \testclr{UPSE2-LightGray1}, -% |UPSE2-LightGray2| \testclr{UPSE2-LightGray2}, -% |UPSE2-LightGray3| \testclr{UPSE2-LightGray3}, -% |UPSE2-LightGray4| \testclr{UPSE2-LightGray4}, and -% |UPSE2-LightGray5| \testclr{UPSE2-LightGray5}. -% \item |UPSE2-Orange| \testclr{UPSE2-Orange} -% with its derivatives \\ -% |UPSE2-Orange1| \testclr{UPSE2-Orange1}, -% |UPSE2-Orange2| \testclr{UPSE2-Orange2}, -% |UPSE2-Orange3| \testclr{UPSE2-Orange3}, -% |UPSE2-Orange4| \testclr{UPSE2-Orange4}, and -% |UPSE2-Orange5| \testclr{UPSE2-Orange5}. -% \item |UPSE2-LightRed| \testclr{UPSE2-LightRed} -% with its derivatives \\ -% |UPSE2-LightRed1| \testclr{UPSE2-LightRed1}, -% |UPSE2-LightRed2| \testclr{UPSE2-LightRed2}, -% |UPSE2-LightRed3| \testclr{UPSE2-LightRed3}, -% |UPSE2-LightRed4| \testclr{UPSE2-LightRed4}, and -% |UPSE2-LightRed5| \testclr{UPSE2-LightRed5}. -% \item |UPSE2-DarkRed| \testclr{UPSE2-DarkRed} -% with its derivatives \\ -% |UPSE2-DarkRed1| \testclr{UPSE2-DarkRed1}, -% |UPSE2-DarkRed2| \testclr{UPSE2-DarkRed2}, -% |UPSE2-DarkRed3| \testclr{UPSE2-DarkRed3}, -% |UPSE2-DarkRed4| \testclr{UPSE2-DarkRed4}, and -% |UPSE2-DarkRed5| \testclr{UPSE2-DarkRed5}. -% \item |UPSE2-Green| \testclr{UPSE2-Green} -% with its derivatives \\ -% |UPSE2-Green1| \testclr{UPSE2-Green1}, -% |UPSE2-Green2| \testclr{UPSE2-Green2}, -% |UPSE2-Green3| \testclr{UPSE2-Green3}, -% |UPSE2-Green4| \testclr{UPSE2-Green4}, and -% |UPSE2-Green5| \testclr{UPSE2-Green5}. -% \item |UPSE2-Blue| \testclr{UPSE2-Blue} -% with its derivatives \\ -% |UPSE2-Blue1| \testclr{UPSE2-Blue1}, -% |UPSE2-Blue2| \testclr{UPSE2-Blue2}, -% |UPSE2-Blue3| \testclr{UPSE2-Blue3}, -% |UPSE2-Blue4| \testclr{UPSE2-Blue4}, and -% |UPSE2-Blue5| \testclr{UPSE2-Blue5}. -% \item |UPSE2-AccentGray| \testclr{UPSE2-AccentGray} -% with its derivatives \\ -% |UPSE2-AccentGray1| \testclr{UPSE2-AccentGray1}, -% |UPSE2-AccentGray2| \testclr{UPSE2-AccentGray2}, -% |UPSE2-AccentGray3| \testclr{UPSE2-AccentGray3}, -% |UPSE2-AccentGray4| \testclr{UPSE2-AccentGray4}, and -% |UPSE2-AccentGray5| \testclr{UPSE2-AccentGray5}. -% \end{itemize} -% -% \section{The \pkg{se2fonts} package}\label{sec:doc-se2fonts} -% -% The \pkg{se2fonts} package sets the fonts for the document. -% By default, -% we recommend using Hermann Zapf's beautiul \emph{Palatino} font -% as the main text font, -% accompanied with the sans-serif font \emph{Helvetica} -% and \emph{Neo Euler} as the default math font; -% we set \emph{Meslo LGS Nerd Font Mono} as the monospaced font. -% Palatino and Helvetica get shipped with any macOS system, -% the user, however, needs to download Neo Euler themself\footnote{ -% for example from -% \href{https://fontlibrary.org/en/font/euler-otf}{https://fontlibrary.org/en/font/euler-otf}. -% }. -% Being aware that these fonts might not be available on every user's system, -% we recommend using \emph{\TeX{} Gyre Pagella} as an alternative to -% Palatino, \emph{\TeX{} Gyre Heros} as an alternative to Helvetica, -% and the \emph{\TeX{} Gyre Pagella Math} as the default math font; -% \emph{Fira Code} is a nice monospaced font. -% Although they look different in various details -% they still provide a nice-looking alternative -% that is bundled with a recent standard \TeX{} distribution. -% -% If you are using \LuaTeX{}, -% fonts are expected to be present as open-type fonts; -% using \pdfLaTeX{} will fallback to Type-1 fonts, -% and will use \TeX{} Gyre Pagella, -% \TeX{} Gyre Heros, -% Fira Code, -% and \TeX{} Gyre Pagella Math as the default fonts. -% -% \emph{Note that the package does not support \XeTeX{}!} -% -% The following option is defined by the \pkg{se2fonts} package -% to influence the selection of the fonts. -% -% \begin{function}[updated = 2022-11-03]{fmode} -% \begin{syntax} -% |fmode| = \meta{choice} -% \end{syntax} -% Sets the font-selection mode based on a choice: -% |original| selects the fonts we recommend for using, -% |replacement| selects fonts that are part of a standard \TeX{} -% distribution, -% in case one has no access to the |original| fonts; -% |auto| selects fonts automatically, -% preferring the |original| fonts if available. -% The default is |auto|. -% -% The fonts are automatically scaled based on their lower-case characters -% using the mechanisms provided by \pkg{fontspec} when using \LuaTeX. -% \end{function} -% -% The following list provides examples for each of the fonts: -% \begin{itemize} -% \item {\fontspec{Palatino}An example text in Palatino} -% \item {\fontspec{TeX Gyre Pagella}An example text in \TeX{} Gyre Pagella} -% \item {\fontspec{Helvetica}An example text in Helvetica} -% \item {\fontspec{TeX Gyre Heros}An example text in \TeX{} Gyre Heros} -% \item {\fontspec{MesloLGSNerd Font Mono}An example text in MesloLGS} -% \item {\fontspec{Fira Code}An example text in Fira Code} -% \item {\fontspec{Neo Euler}An example text in Neo Euler} -% \item {\fontspec{TeX Gyre Pagella Math}An example text in \TeX{} Gyre -% Pagella Math} -% \end{itemize} -% -% The package provides additional helper functions -% that are also available to the user. -% -% \begin{function}{\pdftexengine, \xetexengine, \luatexengine} -% \begin{syntax} -% \cmd{\pdftexengine} -% \cmd{\xetexengine} -% \cmd{luatexengine} -% \end{syntax} -% These commands alias the built-in \LaTeX3{} macros -% \cs{sys_if_engine_pdftex_p:}, -% \cs{sys_if_engine_xetex_p:}, and -% \cs{sys_if_engine_luatex_p:}. -% They can be used to check which engine the user is currently running. -% \end{function} -% -% \begin{function}{\ifengineTF, \ifengineT, \ifengineF} -% \begin{syntax} -% \cmd{\ifengineTF} \marg{engine} \marg{then block} \marg{else block} -% \cmd{\ifengineT} \marg{engine} \marg{then block} -% \cmd{\ifengineF} \marg{engine} \marg{then block} -% \end{syntax} -% Allows to execute code based on the running engine. -% The base variant \cs{ifengineTF} expects the user to specify a condition, -% which can be built of combinations of the \cs{pdftexengine}, -% \cs{xetexengine}, -% and \cs{luatexengine} macros, -% followed by the code that will be executed if the condition holds -% and the code that will be executed if the condition does not hold. -% -% For convenience, -% we provide the variants \cs{ifengineT} and \cs{ifengineF} -% that allow to omit an empty then or else branch, respectivly. -% \end{function} +% \begin{thebibliography}{9} +% \bibitem{DBLP:journals/sttt/BeyerLW19} Dirk Beyer, Stefan Löwe, and Philipp +% Wendler: \emph{Reliable benchmarking: requirements and solutions}. STTT +% 21(1): 1--29 (2019) +% \end{thebibliography} % % \end{documentation} % @@ -1061,8 +660,6 @@ % % \begin{implementation} % -% \part{Implementation}\label{sec:impl} -% % \section{Global helpers}\label{sec:impl-global} % % These helpers might be useful for many exported packages and classes, @@ -1124,7 +721,7 @@ % % Identify the class and give the overall version number. % \begin{macrocode} -\ProvidesExplClass {se2thesis} {2022-11-22} {1.3.1} +\ProvidesExplClass {se2thesis} {2023-01-10} {2.0.0} {A thesis class for the Chair of Software Engineering II} % \end{macrocode} % @@ -1167,16 +764,16 @@ % \subsection{Define Variables} % % The following variables are necessary for the argument handling. -% \begin{variable}{\l_@@_paper_int} +% \begin{macro}{\l_@@_paper_int} % A variable to store the key of the page size selected by the user. % \begin{macrocode} \int_new:N \l_@@_paper_int % \end{macrocode} -% \end{variable} +% \end{macro} % % We also need properties to store class options that are not for us, % thus shall be handled by the underlying base class. -% \begin{variable} +% \begin{macro} % { % \l_@@_base_class_tl, % \l_@@_clsopts_prop, @@ -1189,19 +786,19 @@ \prop_new:N \l_@@_clsopts_prop \prop_new:N \l_@@_unknown_clsopts_prop % \end{macrocode} -% \end{variable} +% \end{macro} % -% \begin{variable}{\l_@@_biblatex_bool} +% \begin{macro}{\l_@@_biblatex_bool} % The user wants to load the \pkg{biblatex} package together with our % settings. % \begin{macrocode} \bool_new:N \l_@@_biblatex_bool % \end{macrocode} -% \end{variable} +% \end{macro} % % Define internal variables to hold the values of the fields of the title % page. -% \begin{variable} +% \begin{macro} % { % \l_@@_version_tl, % \l_@@_degreeprogramme_tl, @@ -1232,11 +829,11 @@ \tl_new:N \l_@@_signature_tl \tl_new:N \l_@@_location_tl % \end{macrocode} -% \end{variable} +% \end{macro} % % Define several dimensions for the \pkg{typearea} package to define the % package style. -% \begin{variable} +% \begin{macro} % { % \l_@@_marginspace_dim, % \l_@@_headmarkspace_dim, @@ -1258,16 +855,16 @@ \dim_gset:Nn \l_@@_headmarkspace_dim { 0.75cm } \dim_gset:Nn \l_@@_rulespace_dim { 10pt } \dim_gset:Nn \l_@@_pagemark_minipage_dim { 1.5cm } -\dim_gset:Nn \l_@@_ruleraise_dim { -100pt } +\dim_gset:Nn \l_@@_ruleraise_dim { -5pt } \dim_gset:Nn \l_@@_rulewidth_dim { 1.25pt } -\dim_gset:Nn \l_@@_rulethickness_dim { 110pt } +\dim_gset:Nn \l_@@_rulethickness_dim { 15pt } % \end{macrocode} -% \end{variable} +% \end{macro} % % \subsection{Load-time options} % % We define the key-value interface for the class. -% \begin{variable} +% \begin{macro} % { % \l_@@_base_class_tl, % \l_@@_unknown_clsopts_prop, @@ -1332,7 +929,7 @@ }, } % \end{macrocode} -% \end{variable} +% \end{macro} % % Handle the options % \begin{macrocode} @@ -1386,7 +983,6 @@ \PassOptionsToPackage{\l_@@_colormode_tl}{se2colors} \RequirePackage{se2colors} -\PassOptionsToPackage{\l_@@_fontmode_tl}{se2fonts} \RequirePackage{se2fonts} % \end{macrocode} % @@ -1455,9 +1051,8 @@ \PassOptionsToPackage { backend=biber, - hyperref=true, + hyperref=auto, backref=true, - backrefstyle=none, style=alphabetic, maxnames=100, minalphanames=3, @@ -1466,38 +1061,6 @@ }{biblatex} \RequirePackage{biblatex} % \end{macrocode} -% Define strings for back-referencing. -% \begin{macrocode} - \DefineBibliographyStrings{english}{ - backrefpage = {\lowercase{c}ited~ on~ p.}, - backrefpages = {\lowercase{c}ited~ on~ pp.}, - } - \DefineBibliographyStrings{german}{ - backrefpage = {\lowercase{z}itiert~ auf~ S.}, - backrefpages = {\lowercase{z}itiert~ auf~ S.}, - } -% \end{macrocode} -% Design the page-ref format. -% \begin{macrocode} - \DeclareFieldFormat{pagerefformat}{ - { - \color{UPSE2-Gray} - \mkbibparens{\mkbibemph{#1}} - } - } - \renewbibmacro*{pageref}{ - \iflistundef{pageref}{}{ - \printtext[pagerefformat]{ - \ifnumgreater{ - \value{pageref} - }{1} - {\bibstring{backrefpages}\ppspace} - {\bibstring{backrefpage}\ppspace} - \printlist[pageref][-\value{listtotal}]{pageref} - } - } - } -% \end{macrocode} % End of the \BibLaTeX{} settings. % \begin{macrocode} } @@ -1606,7 +1169,7 @@ % % For the logo on the titlepage, we define further variables to store its height % and a box to store the logo itself. -% \begin{variable}{\l_@@_logo_height_dim, \l_@@_logo_box} +% \begin{macro}{\l_@@_logo_height_dim, \l_@@_logo_box} % \begin{macrocode} \dim_if_exist:NF \l_@@_logo_height_dim { @@ -1627,23 +1190,23 @@ } } % \end{macrocode} -% \end{variable} +% \end{macro} % % Set the paper size depending on the selected |paper| option. % \begin{macrocode} \int_compare:nTF { \l_@@_paper_int=1 } { - \areaset[current]{389pt}{630pt} + \areaset[current]{350pt}{567pt} \setlength{\marginparsep}{8.5cm} \setlength{\marginparsep}{1em} }{ \int_compare:nTF { \l_@@_paper_int=2 } { - \areaset[current]{275pt}{445pt} + \areaset[current]{247pt}{400pt} \setlength{\marginparsep}{6.0cm} \setlength{\marginparsep}{0.71em} }{ - \areaset[current]{337pt}{545pt} + \areaset[current]{303pt}{491pt} \setlength{\marginparsep}{7.4cm} \setlength{\marginparsep}{0.87em} } @@ -1749,7 +1312,7 @@ \setkomafont{publishers}{\normalsize} % \end{macrocode} % -% \begin{variable}{\author, \@author} +% \begin{macro}{\author, \@author} % Allow for automated splitting of author's names. % \begin{macrocode} \seq_new:N \l_@@_author_seq @@ -1766,7 +1329,7 @@ \group_end: } % \end{macrocode} -% \end{variable} +% \end{macro} % % Define a new layer using the functionality from \pkg{scrlayer-scrpage} for the % logo image. @@ -1841,7 +1404,7 @@ } % \end{macrocode} % -% \begin{variable}{\l_@@_title_box} +% \begin{macro}{\l_@@_title_box} % Define a box for the title if it does not yet exist. % \begin{macrocode} \box_if_exist:NF \l_@@_title_box @@ -1849,9 +1412,9 @@ \box_new:N \l_@@_title_box } % \end{macrocode} -% \end{variable} +% \end{macro} % -% \begin{variable}{\@maketitle} +% \begin{macro}{\@maketitle} % Redeclare the \cs{@maketitle} macro. % \begin{macrocode} \renewcommand*{\@maketitle}{% @@ -1870,7 +1433,7 @@ \@thanks\let\@thanks\@empty } % \end{macrocode} -% \end{variable} +% \end{macro} % % Load the \pkg{ifthen} package. % \begin{macrocode} @@ -1983,7 +1546,7 @@ } % \end{macrocode} % -% \begin{variable}{\@lowertitleback} +% \begin{macro}{\@lowertitleback} % Afterwards, override the definition of \cs{@lowertitleback}. % \begin{macrocode} \renewcommand*{\@lowertitleback}{% @@ -1995,12 +1558,12 @@ \tl_if_eq:NnT \l_@@_thesis_type_tl { master } { \GetTranslation{Master-thesis},~ } \tl_if_eq:NnT \l_@@_thesis_type_tl { phd } - { \GetTranslation{PhD},~ } + { \GetTranslation{PhD-thesis},~ } \GetTranslation{up},~\the\year. \group_end: } % \end{macrocode} -% \end{variable} +% \end{macro} % % \subsection{Provide an environment for abstracts} % @@ -2141,7 +1704,7 @@ wörtlich~ und~ sinngemäß~ übernommenen~ Passagen~ aus~ anderen~ Werken~ kenntlich~ gemacht~ habe. \item Außerdem~ erkläre~ ich,~ dass~ ich~ der~ Universität~ ein~ - einfaches~ Nutzungsrecht~ zum~ Zwecke~ der~ Überprüfung~ mittels~ + einfaches~ Nutzungsrecht~ zum~ Zwecke~ der~ Überprüfung~ mittels~ einer~ Plagiatssoftware~ in~ anonymisierter~ Form~ einräume. \end{enumerate}\par \bigskip @@ -2232,7 +1795,7 @@ % We provide the following English translations. % % \begin{macrocode} -\ProvideDictionaryFor{English}{se2translations}[2022/11/22] +\ProvideDictionaryFor{English}{se2translations}[2023/01/10] \ProvideDictTranslation{abstract}{abstract} \ProvideDictTranslation{Abstract}{Abstract} \ProvideDictTranslation{acknowledgement}{acknowledgement} @@ -2283,7 +1846,7 @@ % We provide the following German translations. % % \begin{macrocode} -\ProvideDictionaryFor{German}{se2translations}[2022/11/22] +\ProvideDictionaryFor{German}{se2translations}[2023/01/10] \ProvideDictTranslation{abstract}{Zusammenfassung} \ProvideDictTranslation{Abstract}{Zusammenfassung} \ProvideDictTranslation{acknowledgement}{Danksagung} @@ -2329,358 +1892,8 @@ % % \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} -% -% \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} -% -% \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 +Copyright (C) 2022--2023 by Stephan Lukasczyk It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of @@ -45,12 +45,17 @@ This work is "maintained" (as per LPPL maintenance status by This work consists of the files se2thesis.dtx, se2thesis.ins, + se2colors.dtx, + se2fonts.dtx, + se2thesis-master-thesis-example.tex and the derived files se2thesis.pdf, se2thesis.cls, se2translations-english.trsl, se2translations-german.trsl, - se2colors.sty, and - se2fonts.sty + se2colors.sty, + se2fonts.sty, + se2thesis-master-thesis-example.bib, and + se2thesis-master-thesis-example.pdf \endpreamble \nopostamble @@ -83,7 +88,7 @@ This work consists of the files se2thesis.dtx, \file{se2colors.sty} {% \from{se2thesis.dtx}{init} - \from{se2thesis.dtx}{colors} + \from{se2colors.dtx}{package} } } \generate @@ -91,7 +96,7 @@ This work consists of the files se2thesis.dtx, \file{se2fonts.sty} {% \from{se2thesis.dtx}{init} - \from{se2thesis.dtx}{fonts} + \from{se2fonts.dtx}{package} } } diff --git a/macros/latex/contrib/se2thesis/se2thesis.pdf b/macros/latex/contrib/se2thesis/se2thesis.pdf index 9bec916719..3b861ee6fa 100644 Binary files a/macros/latex/contrib/se2thesis/se2thesis.pdf and b/macros/latex/contrib/se2thesis/se2thesis.pdf differ diff --git a/macros/latex/contrib/se2thesis/se2thesis.tex b/macros/latex/contrib/se2thesis/se2thesis.tex new file mode 100644 index 0000000000..6035c60e18 --- /dev/null +++ b/macros/latex/contrib/se2thesis/se2thesis.tex @@ -0,0 +1,245 @@ +\iffalse meta-comment + +File: se2thesis.tex Copyright (C) 2022--2023 Stephan Lukasczyk + +It may be distributed and/or modified under the conditions of the +LaTeX Project Public License (LPPL), either version 1.3c of this +license or (at your option) any later version. The latest version +of this license is in the file + + https://www.latex-project.org/lppl.txt + +This file is part of the "se2thesis bundle" (The Work in LPPL) +and all files in that bundle must be distributed together. + +The released version of this bundle is available from CTAN. + +--------------------------------------------------------------------- + +The development version of the bundle can be found at + + https://github.com/se2p/se2thesis + +for those people who are interested. + +--------------------------------------------------------------------- + +\fi + +\documentclass{l3doc} + +% The next line is needed so that \GetFileInfo will be able to pick up +% version data. +\usepackage{se2colors} + +% +% Commands for this document, taken from Joseph Wright's siunitx +% documentation: +\ExplSyntaxOn +\makeatletter +\NewDocumentCommand \acro { m } + { + \textsc + { + \exp_args:NV \tl_if_head_eq_charcode:nNTF \f@series { m } + { \text_lowercase:n } + { \use:n } + {#1} + } + } +\makeatother +\ExplSyntaxOff +\NewDocumentCommand{\email}{m}{\href{mailto:#1}{\nolinkurl{#1}}} +\NewDocumentCommand{\ext}{m}{\texttt.#1} +\NewDocumentCommand{\opt}{m}{\texttt{#1}} +% Tidy up the above in bookmarks +\makeatletter +\pdfstringdefDisableCommands{% + \let\acro\@firstofone + \let\ext\@firstofone + \let\opt\@firstofone +} +\makeatother + +% For creating code demonstration, taken from Joseph Wright's siunitx +% documentation: +\usepackage{listings} +\makeatletter +\lst@RequireAspects{writefile} +\newsavebox\LaTeXdemo@box +\lstnewenvironment{LaTeXdemo}[1][code and example] + {% + \global\let\lst@intname\@empty + \edef\LaTeXdemo@end{% + \expandafter\noexpand\csname LaTeXdemo@@#1@end\endcsname + }% + \@nameuse{LaTeXdemo@@#1}% + } + {\LaTeXdemo@end} +\newcommand\LaTeXdemo@new[3]{% + \@namedef{LaTeXdemo@@#1}{#2} + \@namedef{LaTeXdemo@@#1@end}{#3}% +} +\newcommand*\LaTeXdemo@common{% + \setkeys{lst} + {% + basicstyle = \small\ttfamily, + breaklines = true, + basewidth = 0.51em, + captionpos = t, + extendedchars = true, + frame = single, + gobble = 2, + keywordstyle = \color{blue}\bfseries, + language = [LaTeX]{TeX}, + showspaces = false, + showstringspaces = false, + showtabs = false, + tabsize = 2, + }% +} +\newcount\LaTeXdemo@count +\newcommand*\LaTeXdemo@input{% + \catcode`\^^M = 10\relax + \input{\jobname-\number\LaTeXdemo@count.tmp}% +} +\LaTeXdemo@new{code and example}{% + \setbox\LaTeXdemo@box=\hbox\bgroup + \global\advance\LaTeXdemo@count by 1 % + \lst@BeginAlsoWriteFile{\jobname-\number\LaTeXdemo@count.tmp}% + \LaTeXdemo@common +}{% + \lst@EndWriteFile + \egroup + \begin{center} + \ifdim\wd\LaTeXdemo@box > 0.48\linewidth + \begin{minipage}{\linewidth} + \usebox\LaTeXdemo@box + \end{minipage}% + \par + \begin{minipage}{\linewidth} + \LaTeXdemo@input + \end{minipage} + \else + \begin{minipage}{0.48\linewidth} + \LaTeXdemo@input + \end{minipage}% + \hspace{\fill}% + \begin{minipage}{0.48\linewidth} + \usebox\LaTeXdemo@box + \end{minipage}% + \fi + \end{center} +} +\LaTeXdemo@new{code and float}{% + \global\advance\LaTeXdemo@count by 1 % + \lst@BeginAlsoWriteFile{\jobname-\number\LaTeXdemo@count.tmp}% + \LaTeXdemo@common +}{% + \lst@EndWriteFile + \LaTeXdemo@input +} +\LaTeXdemo@new{code only}{\LaTeXdemo@common}{} +\makeatother + +\usepackage[UKenglish]{babel} +\usepackage{fontspec} +\usepackage{hvlogos} + +% Taken from xcolor.dtx +\makeatletter +\def\testclr#1#{\@testclr{#1}} +\def\@testclr#1#2{{\fboxsep\z@\fbox{\colorbox#1{#2}{\phantom{XX}}}}} +\makeatother + +\usepackage{hvfloat} +\hypersetup{% + allcolors=UPSE2-Blue,% + pdftitle={se2thesis -- A Thesis Class for the Chair of Software Engineering II + at the University of Passau, Germany},% + pdfauthor={Stephan Lukasczyk}, +} +\usepackage[capitalise]{cleveref} + +\begin{document} + +\GetFileInfo{se2colors.sty} + +\title{% + \pkg{se2thesis} -- A Thesis Class for the Chair of Software + Engineering~II at the University of Passau, Germany% + \thanks{This file describes \fileversion, + last revised \filedate.}% +} + +\author{% + Stephan Lukasczyk% + \thanks{% + E-mail: \href{mailto:tex@lukasczyk.me}{tex@lukasczyk.me}% + }% +} + +\date{Released \filedate} + +\pagenumbering{roman} + +\maketitle + +\begin{abstract} + One can choose from a wide variety of templates to write a thesis. + Many universities provide very rigorous style guides and force their + students to obey to those guides, even though they might be questionable + from a typographics point of view. + Other universities do not provide such guides and leave it to their students + to choose or come up with a template. + The latter is causing very differently-looking theses. + + To avoid such a situation in the future this bundle combines several + \LaTeX{} packages and classes for the use at the Chair of Software + Engineering~II at the University of Passau. + We provide, among others, a document class for theses that shall be + used by our students. + The bundle is designed in a way that one can use the basic components as + standalone packages to allow their reuse for other projects. +\end{abstract} + +\tableofcontents +\clearpage +\pagenumbering{arabic} + +% Make the separate source files into a single whole, format-wise +\RenewDocumentCommand{\maketitle}{}{% + \clearpage +} +\DeclareExpandableDocumentCommand{\thanks}{m}{} + +\let\DelayPrintIndex\PrintIndex +\RenewDocumentCommand{\PrintIndex}{}{} + +\DisableImplementation + +\part{User Documentation}\label{sec:doc} + +The first part of this file provides the documentation for the user +of the \pkg{se2thesis} bundle. +We provide the implementation in the second part of this document, +starting at page~\pageref{sec:impl}, for those who are curious. + +% Load the source files in order +\DocInput{se2thesis.dtx} +\DocInput{se2colors.dtx} +\DocInput{se2fonts.dtx} + +\EnableImplementation +\DisableDocumentation + +\part{Implementation}\label{sec:impl} + +The second part of this file provides the implementation of the package +for a better understanding of what is happening. + +\DocInputAgain + +\DelayPrintIndex + +\end{document} \ No newline at end of file -- cgit v1.2.3