You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
327 lines
9.7 KiB
327 lines
9.7 KiB
%%
|
|
%% An *unofficial* LaTeX class for PhD dissertations (and licentiate theses) at Linnaeus University, Sweden
|
|
%% Copyright (C) 2019 Kostiantyn Kucher <kostiantyn.kucher@{lnu.se,gmail.com}>
|
|
%% This class is provided "AS IS" without any warranties and it may be freely reproduced, distributed, modified, etc.
|
|
%%
|
|
%% Based on the vxulicentiate class (c) Robert Nyqvist, 2007 and partially the actawex class / awmonograph.clo (c) Robert Nyqvist, 2007 with later modifications by PhD students at VXU/LNU
|
|
%% Additionally, uses several images with LNU logos from
|
|
%% https://medarbetare.lnu.se/medarbetare/stod-och-service/kommunikation-och-marknadsforing/designmanual/grundelement/
|
|
%%
|
|
%% Please read the enclosed documentation file and see the examples.
|
|
%%
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
\ProvidesClass{lnudissertation}[2019/03/05 v1.0.1 Unofficial LNU dissertation class]
|
|
|
|
\DeclareOption{twocolumn}
|
|
{\ClassError{lnudissertation}{Option `twocolumn' is not supported}{}}
|
|
\DeclareOption{oneside}
|
|
{\ClassError{lnudissertation}{Option `oneside' is not supported}{}}
|
|
\DeclareOption{openany}
|
|
{\ClassError{lnudissertation}{Option `openany' is not supported}{}}
|
|
\DeclareOption{11pt}
|
|
{\ClassError{lnudissertation}{Option `11pt' is not supported}{}}
|
|
\DeclareOption{12pt}
|
|
{\ClassError{lnudissertation}{Option `12pt' is not supported}{}}
|
|
\DeclareOption{a4paper}
|
|
{\ClassError{lnudissertation}{Option `a4paper' is not supported}}
|
|
\DeclareOption{a5paper}
|
|
{\ClassError{lnudissertation}{Option `a5paper' is not supported}}
|
|
\DeclareOption{b5paper}
|
|
{\ClassError{lnudissertation}{Option `b5paper' is not supported}{}}
|
|
\DeclareOption{letterpaper}
|
|
{\ClassError{lnudissertation}{Option `letterpaper' is not supported}{}}
|
|
\DeclareOption{legalpaper}
|
|
{\ClassError{lnudissertation}{Option `legalpaper' is not supported}{}}
|
|
\DeclareOption{executivepaper}
|
|
{\ClassError{lnudissertation}{Option `executivepaper' is not supported}{}}
|
|
\DeclareOption{landscape}
|
|
{\ClassError{lnudissertation}{Option `landscape' is not supported}{}}
|
|
\DeclareOption{notitlepage}
|
|
{\ClassError{lnudissertation}{Option `notitlepage' is not supported}{}}
|
|
\DeclareOption{titlepage}
|
|
{\ClassError{lnudissertation}{Option `titlepage' is not supported}{}}
|
|
|
|
%% Use the "showframe" option to take a look at the margins
|
|
\DeclareOption{showframe}
|
|
{\PassOptionsToPackage{showframe}{geometry}}
|
|
|
|
%% Use the "notlud" option for dissertations published outside of Linnaeus University Dissertation Series (https://lnu.se/en/library/research-support/publish-with-lnu-press/checklist-notLUD/) -> must provide their own complete front matter
|
|
\DeclareOption{notlud}
|
|
{\newcommand{\isnotludseries}{\relax}}
|
|
|
|
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
|
|
\ProcessOptions\relax
|
|
\LoadClass[10pt,onecolumn,openright,twoside]{book}
|
|
|
|
%% Note: despite the code below, only pdflatex was tested with this class
|
|
\RequirePackage{ifpdf}
|
|
\ifpdf
|
|
\RequirePackage[pdftex]{graphicx,xcolor}
|
|
\pdfadjustspacing 1
|
|
\AtBeginDocument{%
|
|
\DeclareGraphicsExtensions{.mps,.pdf,.jpg,.png}%
|
|
\DeclareGraphicsRule{*}{mps}{*}{}%
|
|
}
|
|
\else
|
|
\RequirePackage[dvips]{graphicx,xcolor}
|
|
\AtBeginDocument{%
|
|
\DeclareGraphicsExtensions{.mps,.eps}%
|
|
\DeclareGraphicsRule{*}{eps}{*}{}%
|
|
}
|
|
\fi
|
|
|
|
%% Change the page geometry to 165x242 mm, the settings [currently] used by LNU Press
|
|
%% See "Checklist for Linnaeus University Dissertations Series" (https://lnu.se/en/library/forskningsstod/publish-with-lnu-press/checklistLUD/) -> "Cheat Sheet"
|
|
%% textwidth is also mentioned to be 115 mm there
|
|
%% inner and outer horizontal margins are decided automatically based on (paperwidth - textwidth),
|
|
%% but the proportion of inner margin is increased (4:5 compared to the default 2:3)
|
|
%% bottom margin is decreased a bit
|
|
%% (the current textheight is, consequently, around 180 mm)
|
|
%% lines are not set explicitly
|
|
%% "showframe" option is useful to take a look at the margins, and it will be triggered by the class option, if necessary
|
|
\RequirePackage{geometry}
|
|
\geometry{%
|
|
papersize={165mm,242mm},
|
|
textwidth=115mm,
|
|
hmarginratio={4:5},
|
|
top=25mm,
|
|
bottom=29mm,
|
|
headheight=12pt,
|
|
headsep=15pt,
|
|
footskip=30pt
|
|
}
|
|
|
|
%% doi is required to ensure proper handling of DOI links in the bibliography
|
|
\RequirePackage{doi}
|
|
|
|
%% ToC and caption modifications
|
|
\RequirePackage{tocloft}
|
|
\RequirePackage{etoc}
|
|
\RequirePackage[labelfont=bf]{caption}
|
|
|
|
\RequirePackage{fancyhdr}
|
|
\fancyfoot{}
|
|
\fancyhead{}
|
|
\fancyhead[RO]{\small\nouppercase\rightmark}
|
|
\fancyhead[LE]{\small\nouppercase\leftmark}
|
|
\fancyfoot[LE,RO]{\thepage}
|
|
\renewcommand{\headrulewidth}{\z@}
|
|
%\pagestyle{fancy}
|
|
|
|
%% Used for conditional tests below:
|
|
\RequirePackage{etoolbox}
|
|
|
|
%% Define commands for generating front and back cover pages for non-LUD books, if desired
|
|
\ifdefvoid{\isnotludseries}
|
|
{\relax}% For LUD books, do nothing
|
|
{
|
|
\relax
|
|
%% TODO
|
|
}%
|
|
|
|
%% Configure various parts of the book template
|
|
\renewcommand{\frontmatter}{%
|
|
\@mainmatterfalse%
|
|
\pagestyle{plain}%
|
|
\pagenumbering{roman}%
|
|
\renewcommand{\thefootnote}{\fnsymbol{footnote}}%
|
|
%% KK: according to my calculations, after all pages inserted by the publisher for LUD series,
|
|
%% the dedication page will get number 'vii' and the next recto (right-side) page with the abstract should get number 'ix'
|
|
%% For non-LUD books, the dedication page should get number 'v' and then the page with the abstract should get number 'vii'
|
|
\ifdefvoid{\isnotludseries}
|
|
{\setcounter{page}{9}}%
|
|
{\setcounter{page}{7}}%
|
|
}
|
|
\renewcommand{\mainmatter}{%
|
|
\cleardoublepage%
|
|
\pagestyle{headings}%
|
|
\markboth{}{}%
|
|
\@mainmattertrue%
|
|
\pagenumbering{arabic}%
|
|
\renewcommand{\thefootnote}{\arabic{footnote}}%
|
|
%% KK: note that the footnote counter is reset in every chapter by default
|
|
}
|
|
\renewcommand{\backmatter}{%
|
|
\@mainmatterfalse%
|
|
\pagestyle{empty}%
|
|
}
|
|
|
|
\def\cleardoublepage{%
|
|
\clearpage
|
|
\ifodd\c@page\else
|
|
\hbox{}\thispagestyle{empty}\newpage
|
|
\fi
|
|
}
|
|
|
|
\newenvironment{abstract}[1][Abstract]{%
|
|
\clearpage
|
|
\thispagestyle{plain}
|
|
\phantomsection%
|
|
\addcontentsline{toc}{chapter}{#1}%
|
|
\begin{center}
|
|
\Large\bfseries #1
|
|
\end{center}
|
|
\par%\vspace{.25\baselineskip}
|
|
\noindent\ignorespaces
|
|
}{}
|
|
\setcounter{secnumdepth}{1}
|
|
\setcounter{tocdepth}{1}
|
|
|
|
\newenvironment{notoc_page}[1][Abstract]{%
|
|
\clearpage
|
|
\thispagestyle{plain}
|
|
\begin{center}
|
|
\Large\bfseries #1
|
|
\end{center}
|
|
\par%\vspace{.25\baselineskip}
|
|
\noindent\ignorespaces
|
|
}{}
|
|
\setcounter{secnumdepth}{1}
|
|
\setcounter{tocdepth}{1}
|
|
|
|
\newenvironment{acknowledgments*}{%
|
|
\begin{center}%
|
|
\Large\bfseries\acknowledgmentsname
|
|
%\vspace{-1.5ex}\vspace{\z@}
|
|
\par%\vspace{.25\baselineskip}
|
|
\noindent\ignorespaces
|
|
\end{center}%
|
|
% % KK: uncomment the quotation and endquotation lines below if acknowledgments should be formatted in a narrow way
|
|
%\quotation
|
|
}{%
|
|
%\endquotation
|
|
}
|
|
\newenvironment{acknowledgments}{%
|
|
\phantomsection%
|
|
\addcontentsline{toc}{chapter}{\acknowledgmentsname}%
|
|
\begin{acknowledgments*}%
|
|
\thispagestyle{plain}%
|
|
}{%
|
|
\end{acknowledgments*}%
|
|
}
|
|
\newcommand{\acknowledgmentsname}{Acknowledgments}
|
|
|
|
%% KK: the whole "part" code is copied from vxulicentiate and is not tested!
|
|
\renewcommand{\part}{%
|
|
\clearpage
|
|
\thispagestyle{empty}%
|
|
\@tempswafalse
|
|
\null\vfil
|
|
\secdef\@part\@spart
|
|
}
|
|
\def\@part[#1]#2{%
|
|
\ifnum \c@secnumdepth >-2\relax
|
|
\refstepcounter{part}%
|
|
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
|
|
\else
|
|
\addcontentsline{toc}{part}{#1}%
|
|
\fi
|
|
\markboth{}{}%
|
|
{%
|
|
\centering
|
|
\interlinepenalty \@M
|
|
\normalfont
|
|
\ifnum \c@secnumdepth >-2\relax
|
|
\LARGE\bfseries \partname~\thepart
|
|
\par
|
|
\vskip 20\p@
|
|
\fi
|
|
\Huge \bfseries #2\par
|
|
}%
|
|
\@endpart
|
|
}
|
|
\def\@spart#1{%
|
|
{%
|
|
\centering
|
|
\interlinepenalty \@M
|
|
\normalfont
|
|
\Huge \bfseries #1\par
|
|
}%
|
|
\@endpart
|
|
}
|
|
%%
|
|
|
|
\def\@makechapterhead#1{%
|
|
\vspace*{15\p@}%
|
|
{%
|
|
\parindent \z@ \raggedright \normalfont
|
|
\ifnum \c@secnumdepth >\m@ne
|
|
\Large\bfseries\slshape \@chapapp\space \thechapter
|
|
\par\nobreak
|
|
\vskip 10\p@
|
|
\fi
|
|
\interlinepenalty\@M
|
|
\huge \bfseries\upshape #1\par\nobreak
|
|
\vskip 30\p@
|
|
}%
|
|
}
|
|
\def\@makeschapterhead#1{%
|
|
\vspace*{15\p@}%
|
|
{%
|
|
\parindent \z@ \raggedright
|
|
\normalfont
|
|
\interlinepenalty\@M
|
|
\huge\bfseries #1\par\nobreak
|
|
\vskip 30\p@
|
|
}%
|
|
}
|
|
|
|
\renewcommand{\section}{%
|
|
\@startsection{section}{1}{\z@}%
|
|
{-3.5ex \@plus -1ex \@minus -.2ex}%
|
|
{2.3ex \@plus.2ex}%
|
|
{\normalfont\Large\bfseries\raggedright}%
|
|
}
|
|
|
|
\renewcommand{\subsubsection}{%
|
|
\@startsection{subsubsection}{2}{\z@}%
|
|
{-2.5ex\@plus -1ex \@minus -.2ex}%
|
|
{1ex \@plus .2ex}%
|
|
{\normalfont\large\bfseries\raggedright}%
|
|
}
|
|
|
|
\renewcommand{\paragraph}[1]{\medskip\par\noindent\textbf{#1}\quad}
|
|
|
|
|
|
%% Setup the ToC
|
|
\setcounter{secnumdepth}{4}
|
|
|
|
%% To avoid hyphenation and word breaks in ToC:
|
|
\renewcommand{\@tocrmarg}{2.55em plus1fil}
|
|
|
|
\@addtoreset{figure}{chapter}
|
|
\@addtoreset{table}{chapter}
|
|
\renewcommand{\thefigure}{\thechapter.\arabic{figure}}
|
|
\renewcommand{\thetable}{\thechapter.\arabic{table}}
|
|
|
|
%% Local ToCs using the etoc package
|
|
\newcommand{\chaptertoc}{%
|
|
\begingroup%
|
|
\etocsettocstyle{\noindent{\large\textbf{Contents}}\\\noindent\rule{\textwidth}{\heavyrulewidth}\medskip}{\noindent\rule{\textwidth}{\heavyrulewidth}\bigskip}%
|
|
\etocsetnexttocdepth{2}%
|
|
\setlength\cftsecindent{0em}%
|
|
\setlength\cftsecnumwidth{1.8em}%
|
|
\setlength\cftsubsecindent{1.8em}%
|
|
\setlength\cftsubsecnumwidth{2.5em}%
|
|
\setlength\cftsubsubsecindent{4.3em}%
|
|
\setlength\cftsubsubsecnumwidth{3.2em}%
|
|
%% To avoid hyphenation and word breaks in local ToCs:
|
|
\renewcommand{\@tocrmarg}{2.55em plus1fil}%
|
|
\localtableofcontents%
|
|
\endgroup%
|
|
}
|
|
|
|
% Fix the line breaks for long URLs in footnotes
|
|
\g@addto@macro{\UrlBreaks}{\do\/\do\-}
|
|
|
|
\clubpenalty = 10000
|
|
\widowpenalty = 10000
|
|
\displaywidowpenalty = 10000
|
|
|
|
\interfootnotelinepenalty=10000
|
|
|
|
\setlength{\parindent}{.5cm}
|
|
|
|
|
|
%%
|
|
%% End of file `lnudissertation.cls'.
|
|
|