% ********************************************************************
% 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
