% ********************************************************************
% classicthesis.sty
%
% Copyright (C) 2025 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}
\ProvidesPackage{classicthesis}[2025/02/02 v4.8 Typographic style for a classic-looking thesis]
\providecommand{\classicthesis}{classicthesis v4.8}
% Removed due to hint by David Carlisle and Ulrike Fischer
% \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[true]{parts} % OBSOLETE -- automatic check; use part division

\DeclareBoolOption{nochapters} % OBSOLETE -- automatic check; disable all chapter-specific commands
\DeclareBoolOption{eulerchapternumbers} % use AMS Euler for chapter font (otherwise Palatino)
\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} % OBSOLETE -- automatic check; load listings package and setup LoL
\DeclareBoolOption{subfig} % OBSOLETE -- automatic check; setup for preloaded @subfig package

\DeclareBoolOption{eulermath} % use awesome Euler fonts for mathematical formulae; only with pdflatex
\DeclareBoolOption[true]{beramono} % toggle a nice monospaced font (w/ bold) + pre-installed
\DeclareBoolOption{minionpro} % OBSOLETE -- removed; setup for minion pro font; use minion pro small caps as well
\DeclareBoolOption[true]{palatino} % default is Palatino/Paladio/TeX Gyre Pagella font, use this switch to skip selection
\DeclareBoolOption{linedheaders} % OBSOLETE -- to be used with style=linedheaders now
\DeclareStringOption[classicthesis]{style} % classicthesis, arsclassica, linedheaders, plain
\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{b5paper}
\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@b5paper}}{\renewcommand*{\ct@paper}{b5}}{}
\ifthenelse{\boolean{ct@a4paper}}{\renewcommand*{\ct@paper}{a4}}{}

\ifthenelse{\equal{\ct@paper}{letter}\OR\equal{\ct@paper}{a5}\OR\equal{\ct@paper}{b5}\OR\equal{\ct@paper}{a4}}{\relax}%
    {\PackageWarningNoLine{classicthesis}{Text area setup only provided for paper sizes: letter, a5, b5, a4. You are using paper=\ct@paper}}


% subfig-related stuff
\@ifpackageloaded{subfig}%
    {\setboolean{ct@subfig}{true}%
    }{\relax}

\ifthenelse{\boolean{ct@subfig}}%
    {\PassOptionsToPackage{subfigure}{tocloft}%
    }{\relax}%

% listings-related stuff
\@ifpackageloaded{listings}%
    {\setboolean{ct@listings}{true}%
    }{\relax}

\ifthenelse{\boolean{ct@listings}}%
    {\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, manychapters, listsseparated, eulerchapternumbers}%
        \setboolean{ct@listsseparated}{false}
        \setboolean{ct@eulerchapternumbers}{false}
        \setboolean{ct@parts}{false}
        \setboolean{ct@manychapters}{false}
        \setboolean{ct@floatperchapter}{false}
        \setboolean{ct@nochapters}{true}
    }{\relax}

% no parts in document class
\ifthenelse{\NOT\isundefined{\part}\AND\boolean{ct@parts}}
    {\setboolean{ct@parts}{true}}{\setboolean{ct@parts}{false}}

% use linedheaders style
\provideboolean{ct@linedheadersstyle}
\ifthenelse{\boolean{ct@linedheaders}}{% 
	\PackageWarningNoLine{classicthesis}{Option "linedheaders" is obsolete. Please use "style=linedheaders" instead.}%
	\renewcommand*{\ct@style}{linedheaders}% experimental; overwrites other used style options
	}{\relax}
\ifthenelse{\equal{\ct@style}{linedheaders}}%
	{\setboolean{ct@linedheadersstyle}{true}}{\setboolean{ct@linedheadersstyle}{false}}

% use arsclassica style
\provideboolean{ct@arsclassica}
\ifthenelse{\equal{\ct@style}{arsclassica}}%
    {%\setboolean{ct@eulerchapternumbers}{true}% for arsclassica only eulerchapternumbers
    \setboolean{ct@arsclassica}{true}}{\setboolean{ct@arsclassica}{false}}

% use plain vanilla style
\provideboolean{ct@plain}
\ifthenelse{\equal{\ct@style}{plain}}%
    {\setboolean{ct@plain}{true}}{\setboolean{ct@plain}{false}}


% ********************************************************************
% PDF and XeLaTeX Stuff
% ********************************************************************
\RequirePackage{ifpdf}
\RequirePackage{ifxetex}
\RequirePackage{ifluatex}

% ********************************************************************
% Colors
% ********************************************************************
\PassOptionsToPackage{dvipsnames}{xcolor}
    \RequirePackage{xcolor} % [dvipsnames]
\definecolor{CTsemi}{gray}{0.55} % chapter numbers will be semi transparent .5 .55 .6 .0
\definecolor{CTcitation}{rgb}{0,0.5,0} % WebGreen
\definecolor{CTurl}{named}{Maroon} % Maroon
\definecolor{CTtitle}{named}{Maroon} % Maroon {cmyk}{0, 0.87, 0.68, 0.32}
\definecolor{CTlink}{named}{RoyalBlue} % RoyalBlue {cmyk}{1, 0.50, 0, 0}
\definecolor{halfgray}{gray}{0.55} % chapter numbers will be semi transparent .5 .55 .6 .0
\definecolor{webgreen}{rgb}{0,0.5,0}
\definecolor{webbrown}{rgb}{0.6,0,0}

% ********************************************************************
% Font Stuff
% ********************************************************************
\ifthenelse{\boolean{xetex}\OR\boolean{luatex}}
   { % use fontspec and OpenType fonts with utf8 engines
     \RequirePackage{fontspec}
     \ifthenelse{\boolean{ct@palatino}}% default
       {
         \setmainfont[Ligatures=TeX,Numbers=OldStyle]{texgyrepagella}[ % Palatino clone
	        Extension= .otf,%
	        UprightFont=*-regular,%
	        ItalicFont= *-italic,%
	        BoldFont= *-bold,%
	        BoldItalicFont = *-bolditalic,%
         ]%
         \linespread{1.05} % a bit more for Palatino
         \RequirePackage{unicode-math}
         \setmathfont{texgyrepagella-math}[Extension= .otf]%
       }{\relax} % use class' default font
     \setmonofont[Scale=0.85]{DejaVuSansMono}[%
     		Extension      = .ttf,%
     	    BoldFont       = *-Bold,%
            ItalicFont     = *-Oblique,%
            BoldItalicFont = *-BoldOblique%
     ]%
     %\ifthenelse{\boolean{ct@beramono}}%
     %  {\setmonofont[Scale=0.85]{DejaVuSansMono}} % like Bera; Scale=MatchLowercase
     %  {\setmonofont[Scale=1]{lmmono10-regular}[Extension= .otf]} % https://www.ctan.org/tex-archive/fonts/lm/fonts/opentype/public/lm/ 
     \ifthenelse{\boolean{ct@eulermath}}%
     {\PassOptionsToPackage{math-style=upright}{unicode-math}%
     	\RequirePackage{euler-math}} % Euler math fonts (OTF)
     {\relax}
     \ifthenelse{\boolean{ct@eulerchapternumbers}}% font for the chapter numbers
     	{\newfontface\chapterNumber[Scale=7,Color=000000]{Euler-Math}[Extension= .otf]}%
     	{\newfontface\chapterNumber[Scale=7,Color=000000]{texgyrepagella-regular}[Extension= .otf]}%
   }
   { % use Type 1 fonts with pdflatex
     \ifthenelse{\boolean{ct@palatino}}% default
       {
       % 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
       }{\relax}

       \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
%*******************************************************
\PassOptionsToPackage{headinclude,footinclude}{typearea} % for classes other than KOMA
\RequirePackage{typearea}

\ifthenelse{\equal{\ct@paper}{letter}}%
    {% Letter 216mm x 279mm
            \PackageInfo{classicthesis}{letter paper, Palatino or other}
            \areaset[current]{356pt}{700pt}%  guessing from A4 values
            \setlength{\marginparwidth}{7em}%
            \setlength{\marginparsep}{2em}%
    }{\relax}
\ifthenelse{\equal{\ct@paper}{b5}}%
    {% B5 176mm x 250mm
            % Thanks to Jos\'e M. Alcaide
            \PackageInfo{classicthesis}{B5 paper, Palatino or other}%
            \areaset[current]{311pt}{645pt}%
            \setlength{\marginparwidth}{6em}%
            \setlength{\marginparsep}{1.5em}%
    }{\relax}
\ifthenelse{\equal{\ct@paper}{a5}}%
    {% A5 148mm x 210mm
            \PackageInfo{classicthesis}{A5 paper, Palatino or other}%
            \areaset[current]{288pt}{555pt}%
            \setlength{\marginparwidth}{4em}%
            \setlength{\marginparsep}{1.25em}%
    }{\relax}
\ifthenelse{\equal{\ct@paper}{a4}}%
    {% A4 210mm x 297mm
            \PackageInfo{classicthesis}{A4 paper, Palatino or other}
            \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


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

\RequirePackage{mparhack} % get marginpar right

\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

% Provide a hook for font customization, e.g., for arsclassica
\newcommand{\ct@altfont}{}% \color{red}\sffamily
\newcommand{\ct@caps}{\ct@altfont\scshape} % typesetting smallcaps

%%% define spacedallcaps and spacedlowsmallcaps
%%% engine-dependent letterspacing: microtype for pdflatex, fontspec for xelatex and luatex
    \ifthenelse{\boolean{pdf}\OR\boolean{luatex}}{ % pdf will soon test true for both pdflatex and luatex; \AND\NOT\boolean{luatex}
      \PackageInfo{classicthesis}{Using microtype for character spacing.%
                                  Make sure your pdflatex is version 1.40 or higher.}%
      % \microtypesetup{expansion=false}
      \microtypesetup{protrusion=true,expansion=true}
      \DeclareRobustCommand{\spacedallcaps}[1]{\textls[160]{\ct@caps\MakeTextUppercase{#1}}}
      \DeclareRobustCommand{\spacedlowsmallcaps}[1]{\textls[80]{\ct@caps\MakeTextLowercase{#1}}}
	  \DeclareRobustCommand{\spacedlowsmallcapsstyle}{\ct@caps\lsstyle\lowercase}	  
      }{\relax}

    \ifthenelse{\boolean{xetex}}{ % use fontspec features; \OR\boolean{luatex} does not work well
      \PackageInfo{classicthesis}{Using fontspec for character spacing.}%
      \microtypesetup{expansion=false}
      \DeclareRobustCommand{\spacedallcaps}[1]{{\addfontfeature{LetterSpace=18.0}\ct@caps\MakeTextUppercase{#1}}}% WordSpace=1.8
      \DeclareRobustCommand{\spacedlowsmallcaps}[1]{{\addfontfeatures{LetterSpace=14.0}\ct@caps\MakeTextLowercase{#1}}}% WordSpace=1.8
	  \DeclareRobustCommand{\spacedlowsmallcapsstyle}{\addfontfeatures{LetterSpace=14.0}\ct@caps\lowercase}
      }{\relax}

      \ifthenelse{\boolean{pdf}\OR\boolean{xetex}\OR\boolean{luatex}}% ever used? only dvi engines remain
      {\relax}{%
        \PackageWarningNoLine{classicthesis}{Plain LaTeX / DVI engines no longer supported. spacedlowsmallcaps and spacedallcaps will not work. See the Wiki for help.}%
        \DeclareRobustCommand{\spacedlowsmallcaps}[1]{#1}%
        \DeclareRobustCommand{\spacedallcaps}[1]{#1}%
		 \DeclareRobustCommand{\spacedlowsmallcapsstyle}{\relax}%
      }

% ********************************************************************
% 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{\textsc{\thesection}\enspace\spacedlowsmallcaps{#1}}}
    \lehead{\mbox{\llap{\small\pagemark\kern2em}\headmark\hfil}}
    \rohead{\mbox{\hfil{\headmark}\rlap{\small\kern2em\pagemark}}}
    \ofoot[\small\pagemark]{}% only for plain.scrheadings page style (first page of a chapter)
    \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\ct@altfont\centering\large}%
    {\thispagestyle{empty}\partname~\MakeTextUppercase{\thepart}}{1em}%
    {\color{CTtitle}\spacedallcaps}[\bigskip\normalfont\normalsize\color{Black}\begin{quote}\ctparttext@print\end{quote}]
}{\relax}
% chapters
% something like Bringhurst
  \titleformat{\chapter}[display]%
  {\relax}{\mbox{}\oldmarginpar{\vspace*{-3\baselineskip}\color{CTsemi}\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}{0} % <--- 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}{\spacedlowsmallcaps}%
    \renewcommand{\cftpartaftersnumb}{\spacedlowsmallcaps}%
    \setlength{\cftpartnumwidth}{\cftchapnumwidth}
    \renewcommand{\cftpartfont}{\color{CTtitle}\spacedlowsmallcapsstyle}% \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}{\spacedlowsmallcaps}%
        \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}}%
{%
	\AtBeginDocument{%
	    \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{marginal}{footmisc}% marginal flushmargin
    \RequirePackage{footmisc}%
    % \setlength{\footnotemargin}{-.5em}%
    \PackageWarningNoLine{classicthesis}{Using package "footmisc" with option %
        "marginal" 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\ -- \myVersion\,]}
}{\renewcommand{\finalVersionString}{\emph{Final Version} as of \today\ (\myVersion).}}

% ********************************************************************
% Captions
% ********************************************************************
% \PassOptionsToPackage{font=small}{caption} % ,format=hang ,labelformat=smallcaps
\RequirePackage{caption}
\captionsetup{font=small}
% Thanks to cgnieder and Claus Lahiri
% http://tex.stackexchange.com/questions/69349/spacedlowsmallcaps-in-caption-label
% [REMOVED DUE TO OTHER PROBLEMS, SEE ISSUE #82]
%\DeclareCaptionLabelFormat{smallcaps}{\bothIfFirst{#1}{~}\MakeTextLowercase{\textsc{#2}}}

% ********************************************************************
% 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}%
    % remreset is now obsolete as its functionality has
    % been incorporated into the LaTeX format.
    % https://ctan.org/pkg/remreset
    % \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}}%
}

% ********************************************************************
% arsclassica integration (experimental, dirty hack currently)
% ********************************************************************
\ifct@arsclassica
\RequirePackage{classicthesis-arsclassica}
\fi

% ********************************************************************
% linedheaders as separate style integration (experimental)
% ********************************************************************
\ifct@linedheadersstyle
\RequirePackage{classicthesis-linedheaders}
\fi

% ********************************************************************
% plain vanilla as separate style integration (experimental)
% ********************************************************************
\ifct@plain
\RequirePackage{classicthesis-plain}
\fi


% ********************************************************************
% hyperreferences, pdf outline
% ********************************************************************
% \PassOptionsToPackage{hyperfootnotes=false}{hyperref}
\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
    \hypersetup{colorlinks=true,linktocpage=true,breaklinks=true,urlcolor=CTurl,linkcolor=CTlink,citecolor=CTcitation}


% ********************************************************************
% Backward-compatibility
% ********************************************************************
\let\myChapter\chapter
\let\myPart\part
\let\graffito\marginpar
