From 385cc92bc91e1a6c3724085c060e76bf40c13ed3 Mon Sep 17 00:00:00 2001 From: Rasmus Dahlberg Date: Tue, 15 Oct 2024 16:08:16 +0200 Subject: Import PhD thesis --- template/kauthesis.dtx | 604 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 604 insertions(+) create mode 100644 template/kauthesis.dtx (limited to 'template/kauthesis.dtx') diff --git a/template/kauthesis.dtx b/template/kauthesis.dtx new file mode 100644 index 0000000..866e7a7 --- /dev/null +++ b/template/kauthesis.dtx @@ -0,0 +1,604 @@ +% \iffalse meta-comment +%% kauthesis.dtx +%% Copyright (c) 2011-2015 Stefan Berthold +% +% This file is part of the kauthesis bundle. +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer and author of this work is Stefan Berthold. +% +% This work consists of all files listed in manifest.txt. +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{\jobname.dtx} +% +%\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%\ProvidesClass{kaucollection} +%\ProvidesClass{kaureport} +%\ProvidesClass{kaumasters} +%<*collection|report|masters> + [2014/12/04 v1.16 Karlstad University thesis layout] +% +% +%<*driver> +\documentclass[a4paper]{ltxdoc} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{\jobname.dtx} +\end{document} +% +% \fi +% +% \CheckSum{266} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% +% \changes{v1.0}{2011/02/01}{SBe's licentiate version} +% \changes{v1.1}{2011/05/06}{Initial public release} +% \changes{v1.2}{2012/12/14}{Support for babel.sty,\\Documentation added} +% \changes{v1.3}{2012/12/15}{Merged the classes' dtx files} +% \changes{v1.4}{2012/12/20}{Fixed babel.sty support} +% \changes{v1.5}{2012/12/20}{Added templates for kaucollection and kaureport} +% \changes{v1.6}{2012/12/22}{Merged the styles' dtx files} +% \changes{v1.7}{2013/04/12}{Added approval page to kaumasters} +% \changes{v1.8}{2013/04/18}{Improved author's signatures on the approval page of kaumasters} +% \changes{v1.9}{2013/05/03}{Added keywords to kaumasters, added an environment for English abstracts} +% \changes{v1.10}{2013/05/28}{Version bump without changes} +% \changes{v1.11}{2013/09/17}{Fixed missing file in babel support} +% \changes{v1.16}{2014/12/04}{Added font option to kaumasters} +% +% \GetFileInfo{\jobname.dtx} +% +% \DoNotIndex{\newcommand,\newenvironment} +% +% \StopEventually{\PrintChanges\PrintIndex} +% +% \title{The \textsf{\jobname} package\thanks{This document +% corresponds to \textsf{\jobname}~\fileversion, dated \filedate.}} +% \author{Stefan Berthold \\ \texttt{stefan.berthold@kau.se}} +% +% \maketitle +% +% \section{Introduction} +% +% The \textsf{\jobname} package provides \LaTeX{} classes for master's theses (\textsf{kaumasters} class), collection theses (\textsf{kaucollection} class), and monographs (\textsf{kaureport} class). The latest version can be obtained from +% \begin{quote} +% \texttt{http://github.com/ZjMNZHgG5jMXw/kauthesis}\quad. +% \end{quote} +% The user's manual is found in \texttt{kauguide.pdf}. This file provides the source code documentation to all three classes. +% +% \section{Usage} +% +% \subsection{Master's thesis} +% +% This template can be found in \texttt{kaumasterstemplate.tex}. +% The \textsf{kaumasters} class is quite similar to \LaTeX's \textsf{article} class. After loading the class, title, author, and institute have to be declared. Different authors in author lists can be separated by commata (``,''). The formatting will be done by \LaTeX. +% \begin{macrocode} +%<*masterstemplate> +\documentclass{kaumasters} % available class options: garamond +\title{Title} +\author{Author} +\supervisor{Super} +\examiner{Exam} +\institute{Department of Mathematics and Computer Science} +\place{Place} +% \end{macrocode} +% The thesis starts with the front matter |\frontmatter|. It will (re)print the title. The macro |\maketitle| does not exist, since the title will be created by Karlstad University Studies. +% \begin{macrocode} +\begin{document} +\frontmatter +% \end{macrocode} +% The two mandatory inhabitants of the front matter are the abstract (|abstract| environment) and the |\tableofcontents|. If you like to write acknowledgements, put it between the abstract and the table of contents. +% \begin{macrocode} +\begin{abstract} + Abstract. + \keywords keywords +\end{abstract} +\approvalpage% +\begin{acknowledgements} + Thanks. +\end{acknowledgements} +\tableofcontents +% \end{macrocode} +% The main matter starts with |\mainmatter| for adjusting the page numbering. The content in the main matter is your work. Any macro or environment known from \LaTeX's \textsf{article} class can be used here. +% \begin{macrocode} +\mainmatter +\section{Introduction} +\end{document} +% +% \end{macrocode} +% +% \subsection{Report} +% +% This template can be found in \texttt{kaureporttemplate.tex}. +% Like the master's thesis class, the report class is derived from the \LaTeX{} \textsf{article} class. +% +% \begin{macrocode} +%<*reporttemplate> +\documentclass{kaureport} +% \end{macrocode} +% After loading the class, title, author, and institute have to be declared. Different authors in author lists can be separated by commata (``,''). The formatting will be done by \LaTeX. +% \begin{macrocode} +\title{Title} +\author{Author} +\institute{Department of Mathematics and Computer Science} +\place{Place} +\begin{document} +% \end{macrocode} +% The two mandatory inhabitants of the front matter are the abstract (|abstract| environment) and the |\tableofcontents|. If you like to write acknowledgements, put it between the abstract and the table of contents. +% \begin{macrocode} +\frontmatter +\begin{abstract} + Brief abstract. + \keywords keywords +\end{abstract} +\begin{acknowledgements} + Thanks. +\end{acknowledgements} +\tableofcontents +% \end{macrocode} +% The main matter starts with |\mainmatter| for adjusting the page numbering. The content in the main matter is your work. Any macro or environment known from \LaTeX's \textsf{article} class can be used here. +% \begin{macrocode} +\mainmatter +\part{Introduction} +\section{Related work} +\part{Conclusions and Future Work} +\end{document} +% +% \end{macrocode} +% +% \subsection{Collection thesis} +% +% This template can be found in \texttt{kaucollectiontemplate.tex}. +% Like the master's thesis class, the report class is derived from the \LaTeX{} \textsf{article} class. +% +% \begin{macrocode} +%<*collectiontemplate> +\documentclass{kaucollection} +% \end{macrocode} +% Page headings and can be created using the \textsf{scrheadings} packages. +% \begin{macrocode} +\usepackage{scrpage2} +\pagestyle{scrheadings} +\renewcommand*\headfont{\normalfont\small} +\rehead{\thepaper} +\lohead{\thepapertitle} +% \end{macrocode} +% After loading the class, title, author, and institute have to be declared. Different authors in author lists can be separated by commata (``,''). The formatting will be done by \LaTeX. +% \begin{macrocode} +\title{Title} +\author{Author} +\institute{Department of Mathematics and Computer Science} +\place{Place} +\begin{document} +% \end{macrocode} +% The two mandatory inhabitants of the front matter are the abstract (|abstract| environment) and the |\tableofcontents|. If you like to write acknowledgements, put it between the abstract and the table of contents. +% \begin{macrocode} +\frontmatter +\begin{abstract} + Brief abstract. + \keywords keywords +\end{abstract} +\begin{acknowledgements} + Thanks. +\end{acknowledgements} +\tableofcontents +% \end{macrocode} +% The table of contents is followed by the list of papers. +% \begin{macrocode} +\listofpapers +% \end{macrocode} +% The main matter starts with |\mainmatter| for adjusting the page numbering. +% \begin{macrocode} +\mainmatter +\section{Introduction} +% \end{macrocode} +% Create a list of summaries of all appended papers with |\listofsummaries|. +% \begin{macrocode} +\section{Summary of Appended Papers} +\listofsummaries +\section{Conclusions and Future Work} +% \end{macrocode} +% Append papers, each in an own |kaupaper| environment. +% \begin{macrocode} +\begin{kaupaper}[ author=Author + , title=Paper Title + , reference=reference text. + , email=author@kau.se + , summary=Abstract in the intro. + , participation=I am the main author. + , label=paper:shorttitle + ] +% \end{macrocode} +% Appended papers may have their own titles and abstracts. +% \begin{macrocode} + \maketitle + \begin{abstract} + Paper abstract. + \end{abstract} + Paper content. +\end{kaupaper} +\end{document} +% +% \end{macrocode} +% +% \section{Implementation} +% +% \subsection{Class options and dependencies} +% +% Class options are neither parsed nor passed to the underlying \textsf{article} class. All macros are derived from the standard \textsf{article} class. +% \begin{macrocode} +%<*collection|report|masters> +\LoadClass{article} +% \end{macrocode} +% +% \noindent \textsf{kauclear} provides page style switches in |\cleardoublepage|, +% \textsf{kaumeta} defines the macros relevant for creating title information, e.\,g., |\institute|. +% \begin{macrocode} +\RequirePackage{kauclear} +\RequirePackage{kaumeta} +\RequirePackage{kaulist} +\RequirePackage{kaulanguage} +% \end{macrocode} +% \textsf{kaustudies} sets the page dimension to the format required by Karlstad University Studies, +% \textsf{kauenvironments} defines environments such as |researchquestions| and |contributions|, +% \textsf{tikz} allows to place content material with absolute coordinates (required by |\vanityquote|). +% \begin{macrocode} +%<*collection|report> +\RequirePackage{kaustudies} +\RequirePackage{kauenvironments} +\RequirePackage{tikz} +% +% \end{macrocode} +% \textsf{kaupaper} defines the macros for appending papers to the collection thesis. +% \begin{macrocode} +%<*collection> +\RequirePackage{kaupaper} +% +% \end{macrocode} +% \textsf{kauparts} defines |\kaupart|, a replacement for |\part|. +% \begin{macrocode} +%<*report> +\RequirePackage{kauparts} +% +% \end{macrocode} +% Garamond becomes the default font on A4 page layout, if the |nofont| option was not given. +% \begin{macrocode} +%<*masters> +\newif\if@kaufont\@kaufontfalse +\DeclareOption{garamond}{\@kaufonttrue} +% +\ProcessOptions\relax +%<*masters> +\if@kaufont +\RequirePackage{garamondx} +\RequirePackage[garamondx,cmbraces]{newtxmath} +\fi +\RequirePackage[paper=a4,pagesize,twoside=semi]{typearea} +% +% \end{macrocode} +% +% \subsection{Language support} +% +% \begin{macro}{\acknowledgementname} +% By default, the |acknowledgements| environment will create an unnumbered section with the title ``Acknowledgements'' (or ``Tacks\"agelser'', if Swedish is chosen as default language). The section headline can be changed to any other language by redefining the macro |\acknowledgementname|. +% \begin{macrocode} +\AtBeginDocument{% + \setname{acknowledgementname}{Acknowledgements}{Tacks\"agelser}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\keywordname} +% The abstract is followed by the list of keywords. By default, the list is introduced by the word ``Keywords'' (and ``Nyckelord'' if the default language is set to Swedish). The list introduction can be changed to any other language by redefining the macro |\keywordname|. +% \begin{macrocode} +\AtBeginDocument{% + \setname{keywordname}{Keywords}{Nyckelord}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\introname} +% In collection thesis, the main matter starts automatically with an Introductory Summary. The name of the Introductory Summary (``Inledande sammanfattning'' in Swedish) can be changed to any other language by redefining the macro |\introname|. +% \begin{macrocode} +%<*collection> +\AtBeginDocument{% + \setname{introname}{Introductory Summary}{Inledande sammanfattning}% +} +% +% \end{macrocode} +% \end{macro} +% +% \medskip +% \noindent A master's thesis needs to be approved by the supervisor and the examiner. +% \begin{macrocode} +%<*masters> +% \end{macrocode} +% \begin{macro}{\approvalname} +% This macro contains the word ``approved''. +% \begin{macrocode} +\AtBeginDocument{% + \setname{approvalname}{Approved}{Godk\"and}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\examinationname} +% This macro contains the name of the examination. +% \begin{macrocode} +\AtBeginDocument{% + \setname{examinationname}{Master's degree}{magisterexamen}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\approvaltext} +% The approval text. +% \begin{macrocode} +\AtBeginDocument{% + \setname{approvaltext}% + {This thesis is submitted in partial fulfillment of the % + requirements for the \examinationname{} in Computer Science. % + All material in this thesis which is not my own work has been % + identified and no material is included for which a degree has % + previously been conferred.}% + {Denna uppsats \"ar skriven som en del av det arbete som kr\"avs % + f\"or att erh\aa lla en \examinationname{} i datavetenskap. Allt % + material i denna rapport, vilket inte \"ar mitt eget, har blivit % + tydligt identifierat och inget material \"ar inkluderat som % + tidigare anv\"ants f\"or erh\aa llande av annan examen.}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\supervisorname} +% This macro contains the word ``supervisor''. +% \begin{macrocode} +\AtBeginDocument{% + \setname{supervisorname}{Supervisor}{Handledare}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\examinername} +% This macro contains the word ``examiner''. +% \begin{macrocode} +\AtBeginDocument{% + \setname{examinername}{Examiner}{Examinator}% +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +% +% \end{macrocode} +% +% \subsection{Title page} +% +% Karlstad University Studies will create the title page for the thesis, thus, creating an own title page is not necessary. +% +% \begin{macro}{\kauths@maketitle} +% The definition of |\maketitle| in the \textsf{article} class creates a title without creating a separate page. The original definition is preserved in |\kauths@maketitle|. +% \begin{macrocode} +\let\kauths@maketitle\maketitle +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\maketitle} +% |\maketitle| does not serve any purpose. When invoked, it produces a warning, refering the user to the |abstract| environment. +% \begin{macrocode} +\renewcommand\maketitle{% + \PackageWarning{maketitle does not serve any purpose in this class. + The abstract environment reproduces the title instead.}% +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Front matter} +% +% The front matter starts after the title on page~iii. It contains the abstract of the thesis, followed by an optional acknowledgements section and the table of contents. In collection theses and reports, the keywords are defined in the front matter. +% +% \begin{macro}{\kauths@abstract} +% The |abstract| environment of the \textsf{article} class provides a perfect layout for article abstracts in collection theses. It will be used for the abstracts of appended papers and preserved in the macro |\kauths@abstract|. +% \begin{macrocode} +\let\kauths@abstract\abstract% +\let\kauths@endabstract\endabstract% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\frontmatter} +% The front matter is started with |\frontmatter|. It is assumed that this macro directly runs after the optional |\maketitle|. +% \begin{macrocode} +\newcommand*\frontmatter{% + \clearpage% +% \end{macrocode} +% The front matter starts on page~iii, i.\,e., two pages are reserved for the title. +% \begin{macrocode} + \setcounter{page}{3}% + \renewcommand\thepage{\roman{page}}% +% \end{macrocode} +% \begin{environment}{abstract} +% The |abstract| environment in the front matter creates a title and an unnumbered abstract section. +% \begin{macrocode} + \renewenvironment{abstract}{% +% \end{macrocode} +% \begin{macro}{\keywords} +% The abstract's last line in collection theses and reports is supposed to be a list of keywords preceeded by |\keywords|. +% \begin{macrocode} + \newcommand\keywords{\paragraph{\keywordname:}}% +% \end{macrocode} +% \end{macro} +% \begin{environment}{english} +% It is common to append an English translation of the abstract, if the thesis or report is not written in English. +% \begin{macrocode} + \newenvironment{english}{% + \renewcommand\keywords{\paragraph{Keywords:}}% + \section*{Abstract}% + }{% + } +% \end{macrocode} +% \end{environment} +% The abstract starts by repeating the title, author, and the institue. +% \begin{macrocode} + \cleardoublepage% + \section*{\@title}% + \textsc{\prettylist{\@author}}\par% + \noindent\textit{\@institute}% + \section*{\abstractname}% + }{% +% \end{macrocode} +% The thesis continues after the abstract on an odd page. +% \begin{macrocode} + \cleardoublepage% + }% +} +% \end{macrocode} +% \end{environment} +% \end{macro} +% +% \begin{macro}{\approvalpage} +% The macro |\approvalpage| creates an approval page for Master's theses. +% \begin{macrocode} +%<*masters> +\newcommand\approvalpage{% + \cleardoublepage% + \newcommand\sig{\makebox[7cm]{\hrulefill}\\}% + \newcommand\signer[1]{\begin{quote}\sig ##1\end{quote}\mbox{}}% + \noindent\approvaltext\\\mbox{}\bigskip% + \foreach \x in \@author {\signer{\x}}% + \\\mbox{}\bigskip\\\mbox{}\bigskip% + \approvalname,\\\mbox{}\bigskip% + \begin{quote}% + \sig\supervisorname: \@supervisor\\\mbox{}\bigskip\\% + \sig\examinername: \@examiner + \end{quote}% +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{acknowledgements} +% The environment |acknowledgements| creates an unnumbered section. +% \begin{macrocode} +\newenvironment{acknowledgements}{% + \cleardoublepage% + \section*{\acknowledgementname}% +}{% +% \end{macrocode} +% The author's name is reused to create an attribution line at the end of the acknowledgements section. +% \begin{macrocode} + \par\bigskip\bigskip\bigskip\noindent\@place, \@date\hfill \prettylist{\@author}% + \cleardoublepage% +} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\kauths@tableofcontents} +% The |\tableofcontents| definition from the \textsf{article} class is preserved. It is not reused in this class. +% \begin{macrocode} +\let\kauths@tableofcontents\tableofcontents +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tableofcontents} +% The redefined macro makes the table of contents start on an odd page. +% \begin{macrocode} +\renewcommand\tableofcontents{% + \cleardoublepage% + \kauths@tableofcontents% +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Main matter} +% +% The main matter is started with |\mainmatter|. The macro resets the page counter to page~1 and, for collection theses, it immediately creates the part Introductory Summary. +% +% \begin{macro}{\mainmatter} +% The optional argument of |\mainmatter|\oarg{body material} can be used to get access to the part's title page, e.\,g., for adding a quote with |\vanityquote|. +% \begin{macrocode} +\newcommand\mainmatter[1][]{% + \cleardoublepage% +% \end{macrocode} +% The original definition of the |abstract| environment is restored. +% \begin{macrocode} + \renewenvironment{abstract}{\kauths@abstract}{\kauths@endabstract}% +% \end{macrocode} +% The page counter is set to page~1. +% \begin{macrocode} + \setcounter{page}{1}% + \pagenumbering{arabic}% +% \end{macrocode} +% The Introductory Summary title page is created with |\introname| and \meta{body material}. +% \begin{macrocode} +%<*collection> + \kaupart*[body={#1}]{\introname}% +% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\vanityquote} +% The macro |\vanityquote|\marg{quote}\marg{reference} can be used in collection theses and reports to add quotes to the cover pages of parts, e.\,g., in \meta{body material} of |\mainmatter|. +% The first argument, \meta{quote}, is the quote and the second, \meta{reference}, is the reference to the person which is quoted. +% \begin{macrocode} +%<*collection|report> +\newcommand\vanityquote[2]{% +% \end{macrocode} +% The quote is placed relative to the borders of the page. TikZ is doing the actual placing. +% \begin{macrocode} + \begin{tikzpicture}[remember picture,overlay]% +% \end{macrocode} +% The placing reference is the lower right corner of the page. +% \begin{macrocode} + \path (current page.south east) +(-3,3.5)% + node% + [ anchor=south east% + , font=\large% + , text width=28em% +% \end{macrocode} +% The closing quotation marks are placed outside the quote's right margin. +% \begin{macrocode} + ] {\raggedleft``#1\rlap{''}% + \normalfont\par\medskip\itshape #2\par};% + \end{tikzpicture}% +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\part} +% In the \textsf{kaureport} class, the |\part|\marg{headline} is replaced by |\kaupart|. +% \begin{macrocode} +%<*report> +\let\part\kaupart +% +% +% \end{macrocode} +% \end{macro} +% +% \Finale +\endinput -- cgit v1.2.3