bachelor-thesis/classicthesis.sty
2023-10-08 20:33:23 +02:00

697 lines
29 KiB
TeX

% ********************************************************************
% classicthesis.sty
%
% Copyright (C) 2017 André Miede and Ivo Pletikosić
%
% If you like the style then I would appreciate a postcard. My address
% can be found in the file ClassicThesis.pdf. A collection of the
% postcards I received so far is available online at
% http://postcards.miede.de
%
% License:
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; see the file COPYING. If not, write to
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.
%
% ********************************************************************
% Important:
%
% This style can also be used without the thesis template.
% It works with LaTeX, PDFLaTeX, XeLaTeX and LuaLaTeX.
%
% ********************************************************************
\NeedsTeXFormat{LaTeX2e}%[2015/01/01] % fixed via latexrelease package, see below
\ProvidesPackage{classicthesis}[2017/10/13 v4.4 Typographic style for a classic-looking thesis]
\PassOptionsToPackage{latest}{latexrelease} % replacement for fixltx2e,
\RequirePackage{latexrelease} % emulate newer kernel version if older is detected
\RequirePackage{ifthen}
% ********************************************************************
% Options
% ********************************************************************
\RequirePackage{kvoptions}
\SetupKeyvalOptions{family=ct, prefix=ct@}
\DeclareBoolOption{drafting} % print version information on all pages
\DeclareBoolOption{tocaligned} % the left column of the toc will be aligned (no indentation)
\DeclareBoolOption{dottedtoc} % page numbers in ToC flushed right
\DeclareBoolOption{listsseparated} % OBSOLETE; toggles the vertical space between lof/lot entries of different chapters
\DeclareBoolOption{parts} % use part division
\DeclareBoolOption{nochapters} % OBSOLETE - automatic check; disable all chapter-specific commands
\DeclareBoolOption{eulerchapternumbers} % use AMS Euler for chapter font (otherwise Palatino)
\DeclareBoolOption{linedheaders} % chaper headers will have line above and beneath
\DeclareBoolOption{floatperchapter} % numbering per chapter for all floats (i.e., Figure 1.1)
\DeclareBoolOption{manychapters} % additional space in ToC after chapter number (if two digits are needed)
\DeclareBoolOption{listings} % load listings package and setup LoL
\DeclareBoolOption{subfig} % setup for preloaded @subfig package
\DeclareBoolOption{eulermath} % use awesome Euler fonts for mathematical formulae; only with pdflatex
\DeclareBoolOption{beramono} % toggle a nice monospaced font (w/ bold) + pre-installed
\DeclareBoolOption{minionpro} % setup for minion pro font; use minion pro small caps as well; only with pdflatex
\DeclareBoolOption{minionprospacing} % OBSOLETE; use minion pro's textssc for letter spacing
\DeclareBoolOption{pdfspacing} % OBSOLETE; use pdftex for letterspacing (via microtype)
\DeclareBoolOption{a4paper}
\DeclareBoolOption{a5paper}
\DeclareBoolOption{letterpaper}
\DeclareStringOption[a4]{paper} % paper size defaults to A4
\ProcessKeyvalOptions{ct}
%%% seems that KOMA-Script gives preference to old-style paper options, thus first
\ifthenelse{\boolean{ct@letterpaper}}{\renewcommand*{\ct@paper}{letter}}{}
\ifthenelse{\boolean{ct@a5paper}}{\renewcommand*{\ct@paper}{a5}}{}
\ifthenelse{\boolean{ct@a4paper}}{\renewcommand*{\ct@paper}{a4}}{}
%%% then
\ifthenelse{\equal{\ct@paper}{a4}}%
{\setboolean{ct@a4paper}{true} \setboolean{ct@a5paper}{false} \setboolean{ct@letterpaper}{false}}%
{}
\ifthenelse{\equal{\ct@paper}{a5}}%
{\setboolean{ct@a4paper}{false} \setboolean{ct@a5paper}{true} \setboolean{ct@letterpaper}{false}}%
{}
\ifthenelse{\equal{\ct@paper}{letter}}%
{\setboolean{ct@a4paper}{false} \setboolean{ct@a5paper}{false} \setboolean{ct@letterpaper}{true}}%
{}
% subfig-related stuff
\@ifpackageloaded{subfig}%
{\setboolean{ct@subfig}{true}%
}{\relax}
\ifthenelse{\boolean{ct@subfig}}%
{\PassOptionsToPackage{subfigure}{tocloft}%
}{\relax}%
% listings-related stuff
\ifthenelse{\boolean{ct@listings}}%
{\@ifpackageloaded{listings}%
{\relax}{\RequirePackage{listings}}%
}{\relax}%
% fine-tuning if we do not use chapters
\ifthenelse{\isundefined{\chapter}\OR\boolean{ct@nochapters}}
{
\PackageWarningNoLine{classicthesis}{Chapter sectioning command not present in this document class. %
Deactivating options floatperchapter, linedheaders, manychapters, listsseparated, eulerchapternumbers and parts}%
\setboolean{ct@linedheaders}{false}%
\setboolean{ct@listsseparated}{false}%
\setboolean{ct@eulerchapternumbers}{false}%
\setboolean{ct@parts}{false}% %%%IVO: note that parts exist even when chapters are not defined!
\setboolean{ct@manychapters}{false}%
\setboolean{ct@floatperchapter}{false}%
\setboolean{ct@nochapters}{true}
}{\relax}
% ********************************************************************
% PDF and XeLaTeX Stuff
% ********************************************************************
\RequirePackage{ifpdf}
\RequirePackage{ifxetex}
\RequirePackage{ifluatex}
\ifthenelse{\boolean{pdf}\OR\boolean{luatex}\OR\boolean{xetex}}%
{
\RequirePackage{hyperref}
\pdfstringdefDisableCommands{\let\thepart=\relax} % no part numbers (i, ii, iii) in PDF outline IVO
%\pdfstringdefDisableCommands{\renewcommand{\thepart}{\Roman{part}}} %%%IVO bring back Part numbers in PDF outline
}{}
% ********************************************************************
% Colors
% ********************************************************************
\PassOptionsToPackage{dvipsnames}{xcolor}
\RequirePackage{xcolor} % [dvipsnames]
\definecolor{halfgray}{gray}{0.55} % chapter numbers will be semi transparent .5 .55 .6 .0
\definecolor{webgreen}{rgb}{0,.5,0}
\definecolor{webbrown}{rgb}{.6,0,0}
%\definecolor{Maroon}{cmyk}{0, 0.87, 0.68, 0.32}
%\definecolor{RoyalBlue}{cmyk}{1, 0.50, 0, 0}
%\definecolor{Black}{cmyk}{0, 0, 0, 0}
% ********************************************************************
% Font Stuff
% ********************************************************************
\ifthenelse{\boolean{xetex}\OR\boolean{luatex}}
{ % use fontspec and OpenType fonts with utf8 engines
\RequirePackage{fontspec}
\setmainfont[Ligatures=TeX,Numbers=OldStyle]{TeX Gyre Pagella} % Palatino clone
\linespread{1.05} % a bit more for Palatino
\ifthenelse{\boolean{ct@beramono}}%
{\setmonofont[Scale=0.85]{DejaVu Sans Mono}} % like Bera; Scale=MatchLowercase
{\setmonofont[Scale=1]{Latin Modern Mono}}
\RequirePackage{unicode-math}
\setmathfont{TeX Gyre Pagella Math}
% font for the chapter numbers will be defined in the old way below
% because there is no OpenType Euler font; this is how it should be done:
%\newfontface\chapterNumber[Scale=7,Color=000000]{TeX Gyre Pagella Bold}
}
{ % use Type 1 fonts with pdflatex
\ifthenelse{\boolean{ct@minionpro}}% specialists: MinionPro
{%
% in order have Euler math fonts work with Minion, special option is needed
\ifthenelse{\boolean{ct@eulermath}}%
{%
\PassOptionsToPackage{opticals,mathlf,onlytext}{MinionPro}%
\RequirePackage{MinionPro} % opticals, fullfamily, osf
}{%
\PassOptionsToPackage{opticals,mathlf}{MinionPro}%
\RequirePackage{MinionPro} % opticals, fullfamily, osf
}
}{
% default: Palatino
\PassOptionsToPackage{osf,sc}{mathpazo}%
\RequirePackage{mathpazo} % Palatino with real small caps and old style figures
\linespread{1.05} % a bit more for Palatino
}
\ifthenelse{\boolean{ct@beramono}}%
{\PassOptionsToPackage{scaled=0.85}{beramono}%
\RequirePackage{beramono}%
}{%
\relax%
% put your own suitable typewriter font here
%\renewcommand{\ttdefault}{\rmdefault}
}
\ifthenelse{\boolean{ct@eulermath}}%
{\PassOptionsToPackage{euler-digits}{eulervm}%
\RequirePackage{eulervm}} % Euler math fonts
{\relax}
}
\ifthenelse{\boolean{ct@eulerchapternumbers}}% font for the chapter numbers
{\DeclareFixedFont{\chapterNumber}{U}{eur}{b}{n}{70}}%
{\DeclareFixedFont{\chapterNumber}{T1}{pplj}{m}{n}{70}}%
%{\newfont{\chapterNumber}{eurb10 scaled 7000}}%
%{\newfont{\chapterNumber}{pplr9d scaled 7000}}
% Euler eurb10 / Palatino OSF pplr9d / Palatino SC pplrc9d
% Latin Modern cork-lmr10 / Minion MinionPro-Regular-osf-t1
% (MinionPro-SemiboldCapt-osf-t1 MinionPro-SemiboldDisp-osf-t1)
\RequirePackage{microtype} % character protruding and other micro-typography stuff
% [expansion=false]
% ********************************************************************
% Textblock size
%*******************************************************
\@ifpackageloaded{typearea}%
{\relax}{%
\PassOptionsToPackage{headinclude,footinclude}{typearea}
\RequirePackage{typearea}%
}
\ifthenelse{\boolean{ct@letterpaper}}%
{% A4
\ifthenelse{\boolean{ct@minionpro}}%
{% Minion gets some extra sizes
\PackageInfo{classicthesis}{letter paper, MinionPro}%
\areaset[current]{332pt}{634pt}% guessing from A4 values
\setlength{\marginparwidth}{7.5em}%
\setlength{\marginparsep}{2em}%
}{% Palatino or other
\PackageInfo{classicthesis}{letter paper, Palatino or other}
\areaset[current]{356pt}{700pt} % guessing from A4 values
\setlength{\marginparwidth}{7em}%
\setlength{\marginparsep}{2em}%
}%
}{\relax}
\ifthenelse{\boolean{ct@a5paper}}%
{% A5
\ifthenelse{\boolean{ct@minionpro}}%
{% Minion gets some extra sizes
\PackageInfo{classicthesis}{A5 paper, MinionPro}%
\areaset[current]{278pt}{556pt}%
\setlength{\marginparwidth}{5em}%
\setlength{\marginparsep}{1.25em}%
}{% Palatino or other
\PackageInfo{classicthesis}{A5 paper, Palatino or other}%
\areaset[current]{288pt}{555pt}%
\setlength{\marginparwidth}{4em}%
\setlength{\marginparsep}{1.25em}%
}%
}{\relax}
\ifthenelse{\boolean{ct@a4paper}}%
{% A4
\ifthenelse{\boolean{ct@minionpro}}%
{% Minion gets some extra sizes
\PackageInfo{classicthesis}{A4 paper, MinionPro}%
\areaset[current]{312pt}{684pt}% 609 + 33 + 42 head \the\footskip
\setlength{\marginparwidth}{7.5em}%
\setlength{\marginparsep}{2em}%
}{% Palatino or other
\PackageInfo{classicthesis}{A4 paper, Palatino or other}
\areaset[current]{370pt}{750pt} % ~ 336 * factor 2 + 33 head + 42 \the\footskip
% \areaset[current]{336pt}{750pt} % ~ 336 * factor 2 + 33 head + 42 \the\footskip
% \areaset{336pt}{761pt} % 686 (factor 2.2) + 33 head + 42 head \the\footskip 10pt
\setlength{\marginparwidth}{7em}%
\setlength{\marginparsep}{2em}%
}%
}{\relax}
% Here are some suggestions for the text widths and heights:
% Palatino 10pt: 288--312pt | 609--657pt
% Palatino 11pt: 312--336pt | 657--705pt
% Palatino 12pt: 360--384pt | 768pt
% Minion 10pt: 264--288pt | 561--609pt
% Minion 11pt: 288--312pt | 609--657pt
% Minion 12pt: 336pt | 672pt
% Libertine 10pt:
% Libertine 11pt:
% Libertine 12pt:
% kpfonts 10pt:
% kpfonts 11pt:
% kpfonts 12pt:
% ********************************************************************
% Own Stuff
% ********************************************************************
% Disable single lines at the start of a paragraph (Schusterjungen)
\clubpenalty = 10000
% Disable single lines at the end of a paragraph (Hurenkinder)
\widowpenalty = 10000
\displaywidowpenalty = 10000 % formulas
% Graffiti as in GKP's book "Concrete Mathematics"
% thanks to Lorenzo Pantieri and Enrico Gregorio
\def\graffito@setup{%
% \slshape\footnotesize% this was due to \slhape in above book
\itshape\footnotesize\leavevmode\color{Black}%
\parindent=0pt \lineskip=0pt \lineskiplimit=0pt %
\tolerance=2000 \hyphenpenalty=300 \exhyphenpenalty=300%
\doublehyphendemerits=100000%
\finalhyphendemerits=\doublehyphendemerits}
%\DeclareRobustCommand{\graffito}[1]{\marginpar%
% [\graffito@setup\raggedleft\hspace{0pt}{#1}]%
% {\graffito@setup\raggedright\hspace{0pt}{#1}}}
\let\oldmarginpar\marginpar
\renewcommand{\marginpar}[2][]{% always add optional parameter, make it empty by default
\if\relax\detokenize{#1}\relax% optional parameter empty, in all normal document calls
\oldmarginpar[\graffito@setup\raggedleft\hspace{0pt}#2]{\graffito@setup\raggedright\hspace{0pt}#2}%
\else%two parameters, let them use their styling
\oldmarginpar[#1]{#2}%
\fi%
}
% Enumeration environment with small caps
\newenvironment{aenumerate}
{\def\theenumi{\textsc{\alph{enumi}}}%
\enumerate}
{\endenumerate}
% ********************************************************************
% Fancy Stuff
% ********************************************************************
\RequirePackage{booktabs} % for better rules in tables
\RequirePackage{textcase} % for \MakeTextUppercase
%%% engine-dependent letterspacing: microtype for pdflatex, fontspec for xelatex and luatex
\ifthenelse{\boolean{ct@minionpro}}{% MinionPro small caps
\PackageInfo{classicthesis}{Using MinionPro's textssc for character spacing.}
\DeclareRobustCommand{\spacedallcaps}[1]{\textssc{\MakeTextUppercase{#1}}}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\textssc{\MakeTextLowercase{#1}}}
}{
% engine-based spacedallcaps and spacedlowsmallcaps
\ifthenelse{\boolean{pdf}\OR\boolean{luatex}}{ % pdf will soon test true for both pdflatex and luatex; \AND\NOT\boolean{luatex}
\PackageInfo{classicthesis}{Using pdftex/microtype for character spacing.%
Make sure your pdftex is version 1.40 or higher.}%
\microtypesetup{expansion=false}
\DeclareRobustCommand{\spacedallcaps}[1]{\textls[160]{\MakeTextUppercase{#1}}}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\textls[80]{\scshape\MakeTextLowercase{#1}}}
}{\relax}
\ifthenelse{\boolean{xetex}}{ % use fontspec features; \OR\boolean{luatex} does not work well
\DeclareRobustCommand{\spacedallcaps}[1]{{\addfontfeature{LetterSpace=18.0}\MakeTextUppercase{#1}}}% WordSpace=1.8
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{{\addfontfeatures{LetterSpace=14.0}\scshape\MakeTextLowercase{#1}}}% WordSpace=1.8
}{\relax}
\ifthenelse{\boolean{pdf}\OR\boolean{xetex}\OR\boolean{luatex}}% ever used? only dvi engines remain
{\relax}{%
\RequirePackage{soulutf8} % for letterspacing
\sodef\allcapsspacing{\upshape}{0.15em}{0.65em}{0.6em}%
\sodef\lowsmallcapsspacing{\scshape}{0.075em}{0.5em}{0.6em}%
\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\allcapsspacing{#1}}}%
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\lowsmallcapsspacing{#1}}}%\protect
}%
}
% ********************************************************************
% headlines
% ********************************************************************
%\PassOptionsToPackage{automark}{scrpage2}
\PassOptionsToPackage{automark}{scrlayer-scrpage}
%\RequirePackage{scrpage2} % provides headers and footers (KOMA Script)
\RequirePackage{scrlayer-scrpage} % provides headers and footers (KOMA Script)
\clearpairofpagestyles
%\setheadsepline{0pt}
\let\MakeMarkcase\spacedlowsmallcaps
\ifthenelse{\boolean{ct@nochapters}}%
{\relax}%
{\renewcommand{\chaptermark}[1]{\markboth{\spacedlowsmallcaps{#1}}{\spacedlowsmallcaps{#1}}}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\enspace\spacedlowsmallcaps{#1}}}
\lehead{\mbox{\llap{\small\pagemark\kern2em}\headmark\hfil}}
\rohead{\mbox{\hfil{\headmark}\rlap{\small\kern2em\pagemark}}}
\renewcommand{\headfont}{\small}
% \DeclareRobustCommand{\fixBothHeadlines}[2]{} % <--- ToDo
% hack to get the content headlines right (thanks, Lorenzo!)
\def\toc@heading{%
\ifthenelse{\boolean{ct@nochapters}}%
{\section*{\contentsname}}%nochapters
{\chapter*{\contentsname}}%chapters
\@mkboth{\spacedlowsmallcaps{\contentsname}}{\spacedlowsmallcaps{\contentsname}}} %%%IVO what does this do?
% ********************************************************************
% layout of the chapter-, section-, subsection-, subsubsection-,
% paragraph and description-headings
% ********************************************************************
\RequirePackage[newparttoc]{titlesec} % newparttoc to write \part to .toc with \numberline
\ifthenelse{\boolean{ct@nochapters}}{\relax}{\titleclass{\chapter}{top}} % thanks to Javier Bezos of titlesec
\def\ttl@addcontentsline#1#2{% this is from titlesec.sty
\addcontentsline{toc}{#1}{\ifttl@toclabel\ttl@a\fi{#2}}% write titles as a group inside {}
\nobreak}
% parts
\ifthenelse{\boolean{ct@parts}}%
{%
\newcommand{\ctparttext}[1]{\renewcommand{\ctparttext@keep}{#1}}
\def\ctparttext@keep{} % Thanks to Ivo
\def\ctparttext@print{\ctparttext@keep \gdef\ctparttext@keep{}}
\titleformat{\part}[display]
{\normalfont\centering\large}%
{\thispagestyle{empty}\partname~\MakeTextUppercase{\thepart}}{1em}%
{\color{Maroon}\spacedallcaps}[\bigskip\normalfont\normalsize\color{Black}\begin{quote}\ctparttext@print\end{quote}]
}{\relax}
% chapters
\ifthenelse{\boolean{ct@linedheaders}}%
{% lines above and below, number right
\titleformat{\chapter}[display]%
{\relax}{\raggedleft{\color{halfgray}\chapterNumber\thechapter} \\ }{0pt}%
{\titlerule\vspace*{.9\baselineskip}\raggedright\spacedallcaps}[\normalsize\vspace*{.8\baselineskip}\titlerule]%
}{% something like Bringhurst
\titleformat{\chapter}[display]%
{\relax}{\mbox{}\oldmarginpar{\vspace*{-3\baselineskip}\color{halfgray}\chapterNumber\thechapter}}{0pt}%
{\raggedright\spacedallcaps}[\normalsize\vspace*{.8\baselineskip}\titlerule]%
}
% sections \FloatBarrier
\titleformat{\section}
{\relax}{\textsc{\MakeTextLowercase{\thesection}}}{1em}{\spacedlowsmallcaps}
% subsections
\titleformat{\subsection}
{\relax}{\textsc{\MakeTextLowercase{\thesubsection}}}{1em}{\normalsize\itshape}
% subsubsections
\titleformat{\subsubsection}
{\relax}{\textsc{\MakeTextLowercase{\thesubsubsection}}}{1em}{\normalsize\itshape}
% paragraphs
\titleformat{\paragraph}[runin]
{\normalfont\normalsize}{\theparagraph}{0pt}{\spacedlowsmallcaps}
% descriptionlabels
\renewcommand{\descriptionlabel}[1]{\hspace*{\labelsep}\spacedlowsmallcaps{#1}} % spacedlowsmallcaps textit textsc
% spacing
\ifthenelse{\boolean{ct@nochapters}}%
{\relax}%
{\titlespacing*{\chapter}{0pt}{1\baselineskip}{1.2\baselineskip}}
\titlespacing*{\section}{0pt}{1.25\baselineskip}{1\baselineskip}
\titlespacing*{\subsection}{0pt}{1.25\baselineskip}{1\baselineskip}
\titlespacing*{\paragraph}{0pt}{1\baselineskip}{1\baselineskip}
% ********************************************************************
% layout of the TOC, LOF and LOT (LOL-workaround see next section)
% ********************************************************************
\PassOptionsToPackage{titles}{tocloft}
\RequirePackage{tocloft}
% avoid page numbers being right-aligned in fixed-size box
\newlength{\newnumberwidth}
\settowidth{\newnumberwidth}{999} % yields overfull hbox warnings for pages > 999
\cftsetpnumwidth{\newnumberwidth}
% have the bib neatly positioned after the rest
\newlength{\beforebibskip}
\setlength{\beforebibskip}{0em}
% space for more than nine chapters
\newlength{\newchnumberwidth}
\settowidth{\newchnumberwidth}{.} % <--- tweak here if more space required
\ifthenelse{\boolean{ct@manychapters}}% <--- many chapters option
{%
\addtolength{\cftchapnumwidth}{\newchnumberwidth}%
\addtolength{\cftsecnumwidth}{\newchnumberwidth}
\addtolength{\cftsecindent}{\newchnumberwidth}
\addtolength{\cftsubsecnumwidth}{\newchnumberwidth}
\addtolength{\cftsubsecindent}{2\newchnumberwidth}
\addtolength{\cftsubsubsecnumwidth}{\newchnumberwidth}
}{\relax}%
% pagenumbers right after the titles
% parts
\ifthenelse{\boolean{ct@parts}}%
{%
\renewcommand{\thepart}{\roman{part}}%
\renewcommand{\cftpartpresnum}{\scshape}% \MakeTextLowercase
\renewcommand{\cftpartaftersnum}{}%
\renewcommand{\cftpartaftersnumb}{\spacedlowsmallcaps}%
\setlength{\cftpartnumwidth}{\cftchapnumwidth}
\renewcommand{\cftpartfont}{\color{Maroon}\normalfont}%
\cftpagenumbersoff{part}
\renewcommand{\cftpartpagefont}{\normalfont}%
\ifthenelse{\boolean{ct@dottedtoc}}{\relax}%
{%
\renewcommand{\cftpartleader}{\hspace{1.5em}}%
\renewcommand{\cftpartafterpnum}{\cftparfillskip}%
}%
\setlength{\cftbeforepartskip}{1em}%
\setlength{\cftbeforechapskip}{.1em}%
\setlength{\beforebibskip}{1.5\cftbeforepartskip}%
}{\relax}
% chapters
\ifthenelse{\boolean{ct@nochapters}}%
{\relax}%
{%
\renewcommand{\cftchappresnum}{\spacedlowsmallcaps}%
\renewcommand{\cftchapaftersnumb}{\spacedlowsmallcaps}%
\renewcommand{\cftchapfont}{\normalfont}%
\renewcommand{\cftchappagefont}{\normalfont}%
\ifthenelse{\boolean{ct@dottedtoc}}{\relax}%
{%
\renewcommand{\cftchapleader}{\hspace{1.5em}}%
\renewcommand{\cftchapafterpnum}{\cftparfillskip}%
}
%\setlength{\cftbeforechapskip}{.1em}%
}
% sections
\ifthenelse{\boolean{ct@nochapters}}%
{%
\setlength{\cftbeforesecskip}{.1em}%
\setlength{\beforebibskip}{1em}%
}%
{\relax}
\renewcommand{\cftsecpresnum}{\scshape\MakeTextLowercase}%
\renewcommand{\cftsecfont}{\normalfont}%
\renewcommand{\cftsecpagefont}{\normalfont}%
\ifthenelse{\boolean{ct@dottedtoc}}{\relax}%
{%
\renewcommand{\cftsecleader}{\hspace{1.5em}}%
\renewcommand{\cftsecafterpnum}{\cftparfillskip}%
}
\ifthenelse{\boolean{ct@tocaligned}}{\renewcommand{\cftsecindent}{0em}}{\relax}
% subsections
\renewcommand{\cftsubsecpresnum}{\scshape\MakeTextLowercase}%
\renewcommand{\cftsubsecfont}{\normalfont}%
\ifthenelse{\boolean{ct@dottedtoc}}{\relax}%
{%
\renewcommand{\cftsubsecleader}{\hspace{1.5em}}%
\renewcommand{\cftsubsecafterpnum}{\cftparfillskip}%
}
\ifthenelse{\boolean{ct@tocaligned}}{\renewcommand{\cftsubsecindent}{0em}}{\relax}
% subsubsections
\renewcommand{\cftsubsubsecpresnum}{\scshape\MakeTextLowercase}%
\renewcommand{\cftsubsubsecfont}{\normalfont}%
\ifthenelse{\boolean{ct@dottedtoc}}{\relax}%
{%
\renewcommand{\cftsubsubsecleader}{\hspace{1.5em}}%
\renewcommand{\cftsubsubsecafterpnum}{\cftparfillskip}%
}
\ifthenelse{\boolean{ct@tocaligned}}{\renewcommand{\cftsubsubsecindent}{0em}}{\relax}
% figures
\renewcommand{\cftfigpresnum}{\scshape\MakeTextLowercase}%
\renewcommand{\cftfigfont}{\normalfont}%
\ifthenelse{\boolean{ct@dottedtoc}}{\relax}%
{%
\renewcommand{\cftfigleader}{\hspace{1.5em}}%
\renewcommand{\cftfigafterpnum}{\cftparfillskip}%
}
\renewcommand{\cftfigpresnum}{\figurename~}%Fig.~}
\newlength{\figurelabelwidth}
\settowidth{\figurelabelwidth}{\cftfigpresnum~999}
\addtolength{\figurelabelwidth}{2.5em}
\cftsetindents{figure}{0em}{\figurelabelwidth}
% tables
\renewcommand{\cfttabpresnum}{\scshape\MakeTextLowercase}%
\renewcommand{\cfttabfont}{\normalfont}%
\ifthenelse{\boolean{ct@dottedtoc}}{\relax}%
{%
\renewcommand{\cfttableader}{\hspace{1.5em}}%
\renewcommand{\cfttabafterpnum}{\cftparfillskip}%
}
\renewcommand{\cfttabpresnum}{\tablename~}%Tab.~}
\newlength{\tablelabelwidth}
\settowidth{\tablelabelwidth}{\cfttabpresnum~999}
\addtolength{\tablelabelwidth}{2.5em}
%\cftsetindents{table}{0em}{\tablelabelwidth}
\cftsetindents{table}{0em}{\figurelabelwidth}
% listings
\ifthenelse{\boolean{ct@listings}}%
{%
\newlistof{listings}{lol}{\lstlistlistingname}%
\renewcommand{\cftlistingspresnum}{\scshape\MakeTextLowercase}%
\renewcommand{\cftlistingsfont}{\normalfont}%
\renewcommand{\cftlistingspresnum}{\lstlistingname~}%
\renewcommand{\cftlistingspagefont}{\normalfont}%
\ifthenelse{\boolean{ct@dottedtoc}}{\relax}%
{%
\renewcommand{\cftlistingsleader}{\hspace{1.5em}}%
\renewcommand{\cftlistingsafterpnum}{\cftparfillskip}%
}
\newlength{\listingslabelwidth}%
\settowidth{\listingslabelwidth}{\cftlistingspresnum~999}%
\addtolength{\listingslabelwidth}{2.5em}%
%\cftsetindents{listings}{0em}{\listingslabelwidth}%
\cftsetindents{listings}{0em}{\figurelabelwidth}%
\let\l@lstlisting\l@listings%
\let\lstlistoflistings\listoflistings%
}{\relax}%
% dirty work-around to get the spacing after the toc/lot/lof-titles right
\ifthenelse{\boolean{ct@parts}}%
{%
\AtBeginDocument{\addtocontents{toc}{\protect\vspace{-\cftbeforepartskip}}}
}{%
\ifthenelse{\boolean{ct@nochapters}}%
{\relax}%
{\AtBeginDocument{\addtocontents{toc}{\protect\vspace{-\cftbeforechapskip}}}}
}
\newcommand{\tocEntry}[1]{\protect\numberline {}{#1}}%
%% remove the vertical space between lof/lot entries of different chapters
\ifthenelse{\boolean{ct@listsseparated}}{%
\PackageWarningNoLine{classicthesis}{Option "listsseparated" deprecated as of version 2.9.}%
}{\relax}
% \ifthenelse{\boolean{ct@listsseparated}}{%
% \AtBeginDocument{%
% \addtocontents{lof}{\protect\vspace{-\cftbeforechapskip}}%
% \addtocontents{lot}{\protect\vspace{-\cftbeforechapskip}}%
% \ifthenelse{\boolean{ct@listings}}%
% {%
% \addtocontents{lol}{\protect\vspace{-\cftbeforechapskip}}%
% }{\relax}%
% }%
% }{%
\DeclareRobustCommand*{\deactivateaddvspace}{\let\addvspace\@gobble}%
\AtBeginDocument{%
\addtocontents{lof}{\deactivateaddvspace}%
\addtocontents{lot}{\deactivateaddvspace}%
\ifthenelse{\boolean{ct@listings}}%
{%
\addtocontents{lol}{\deactivateaddvspace}%
}{\relax}%
}%
% }
% ********************************************************************
% footnotes setup
% ********************************************************************
\ifdefined\deffootnote
% KOMA-command, footnotemark not superscripted at the bottom
\deffootnote{0em}{0em}{\thefootnotemark\hspace*{.5em}}%
\message{Using KOMA-command "deffootnote" for footnote setup}%
\else
\PassOptionsToPackage{flushmargin}{footmisc}%
\RequirePackage{footmisc}%
\setlength{\footnotemargin}{-.5em}%
\PackageWarningNoLine{classicthesis}{Using package "footmisc" with option %
"flushmargin" for footnote setup (not 100\% the same as with KOMA)}%
\fi
% ********************************************************************
% Drafting Stuff
% ********************************************************************
\RequirePackage{scrtime} % time access
\newcommand{\finalVersionString}{\relax}
\providecommand{\myVersion}{$\!\!$} % w/o classicthesis-config.tex
\ifthenelse{\boolean{ct@drafting}}{%
% \RequirePackage{draftwatermark}%
% \SetWatermarkLightness{0.9}
% \SetWatermarkScale{.5}
% \SetWatermarkText{\today\ at \thistime}
\PassOptionsToPackage{draft}{prelim2e}
\RequirePackage{prelim2e}
\renewcommand{\PrelimWords}{\relax}
\renewcommand{\PrelimText}{\footnotesize[\,\today\ at \thistime\ -- \texttt{classicthesis}~\myVersion\,]}
}{\renewcommand{\finalVersionString}{\emph{Final Version} as of \today\ (\texttt{classicthesis}~\myVersion).}}
% ********************************************************************
% Caption numbering now w/o chapter number
% ********************************************************************
\ifthenelse{\boolean{ct@floatperchapter}}{%
\ifthenelse{\boolean{ct@listings}}{%
\lstset{numberbychapter=true}}{\relax}% numberbychapter works in listings>=1.4
}{%
\ifthenelse{\boolean{ct@listings}}{%
\lstset{numberbychapter=false}}{\relax}%
\RequirePackage{remreset}%
\ifthenelse{\boolean{ct@nochapters}}%
{\relax}{%
\@removefromreset{table}{chapter} % requires remreset package
}%
\renewcommand{\thetable}{\arabic{table}}%
\ifthenelse{\boolean{ct@nochapters}}%
{\relax}{%
\@removefromreset{figure}{chapter} % requires remreset package
}%
\renewcommand{\thefigure}{\arabic{figure}}%
\ifthenelse{\boolean{ct@nochapters}}%
{\relax}{%
\@removefromreset{equation}{chapter} % requires remreset package
}%
\renewcommand{\theequation}{\arabic{equation}}%
}
% ********************************************************************
% Backward-compatibility
% ********************************************************************
\let\myChapter\chapter
\let\myPart\part
\let\graffito\marginpar