% ********************************************************************
% classicthesis.sty
%
% Copyright (C) 2010 Andr� Miede http://www.miede.de
%
% 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 both LaTeX and PDFLaTeX now.
%
% * You must not use "u etc. in strings/commands that will be spaced out 
%   (use \"u or real umlauts instead)
% * Chapters must be marked with the \myChapter{Foo} command 
%   (sorry for the inconvenience at this point)
% * For margin notes: \graffito{}
% * There is a problem with the case of math text in part-,
%   chapter-, and section titles (either the case or the spacing breaks). 
%   => this can be fixed by using pdftex 1.40 or later and enabling the
%      option pdfspacing of this package
%
% ********************************************************************  
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{classicthesis}[2010/02/13 v2.7 Typographic Style for a classic-looking thesis]
\RequirePackage{ifthen}
    \newboolean{@tocaligned} % the left column of the toc will be aligned (no indention)
    \newboolean{@eulerchapternumbers} % use AMS Euler for chapter font (otherwise Palatino)
    \newboolean{@drafting} % print version information on pages
    \newboolean{@linedheaders} % chaper headers will have line above and beneath
    \newboolean{@listsseparated} % toggles the vertical space between lof/lot entries of different chapters
    \newboolean{@nochapters} % disable all chapter-specific commands 
    \newboolean{@beramono} % toggle nice monospaced font (w/ bold) + pre-installed 
    \newboolean{@eulermath} % use awesome Euler fonts for math
    \newboolean{@parts} % use part division for the text
    \newboolean{@minionpro} % setup for minion pro font
    \newboolean{@minionprospacing} % use minion pro's textssc for letter spacing
    \newboolean{@pdfspacing} % use pdftex for letterspacing (via microtype)
    \newboolean{@subfig} % setup for preloaded @subfig package
    \newboolean{@a5paper} % use those tiny DIN A5 pages
    \newboolean{@dottedtoc} % page numbers in ToC flushed right
		\newboolean{@listings} % load listings package (if not already) and setup LoL
		\newboolean{@manychapters} % additional space in ToC after chapter number (if two digits are needed)
    
% ********************************************************************
% Options
% ******************************************************************** 
\DeclareOption{tocaligned}{\setboolean{@tocaligned}{true}}
\DeclareOption{eulerchapternumbers}{\setboolean{@eulerchapternumbers}{true}}
\DeclareOption{drafting}{\setboolean{@drafting}{true}}
\DeclareOption{linedheaders}{\setboolean{@linedheaders}{true}}
\DeclareOption{listsseparated}{\setboolean{@listsseparated}{true}}
\DeclareOption{subfigure}{%
    \PackageWarningNoLine{classicthesis}{Package "subfigure" and option "subfigure" are deprecated, used "subfig" instead.}
    \setboolean{@subfig}{true}%
    }
\DeclareOption{subfig}{\setboolean{@subfig}{true}}
\DeclareOption{nochapters}{\setboolean{@nochapters}{true}}
\DeclareOption{beramono}{\setboolean{@beramono}{true}} 
\DeclareOption{eulermath}{\setboolean{@eulermath}{true}} 
\DeclareOption{parts}{\setboolean{@parts}{true}} 
\DeclareOption{a5paper}{\setboolean{@a5paper}{true}}
\DeclareOption{minionpro}{\setboolean{@minionpro}{true}} 
\DeclareOption{minionprospacing}{\setboolean{@minionprospacing}{true}} 
\DeclareOption{pdfspacing}{\setboolean{@pdfspacing}{true}} 
\DeclareOption{pdfspacing}{\setboolean{@pdfspacing}{true}} 
\DeclareOption{dottedtoc}{\setboolean{@dottedtoc}{true}} 
\DeclareOption{listings}{\setboolean{@listings}{true}}
\DeclareOption{manychapters}{\setboolean{@manychapters}{true}}
\ProcessOptions\relax

% subfig-related stuff
\@ifpackageloaded{subfig}%
    {\setboolean{@subfig}{true}%
    }{\relax}
\@ifpackageloaded{subfigure}%
    {\setboolean{@subfig}{true}%
     \PackageWarningNoLine{classicthesis}{Package "subfigure" and option "subfigure" are deprecated, %
                                            use "subfig" instead.}
    }{\relax}
\ifthenelse{\boolean{@subfig}}%
    {\PassOptionsToPackage{subfigure}{tocloft}%
    }{\relax}%

% listings-related stuff
\ifthenelse{\boolean{@listings}}%
    {\@ifpackageloaded{listings}%
    	{\relax}{\RequirePackage{listings}}%
    }{\relax}%

% fine-tuning if we use minionprospacing
\ifthenelse{\boolean{@minionprospacing}}%
    {%
        \PackageInfo{classicthesis}{Using option "minionprospacing". %
            This activates "minionpro" in general and turns off %
            the option "pdfspacing".}%
        % is the user trying to use pdfspacing at the same time?    
        \ifthenelse{\boolean{@pdfspacing}}%
            {% both minionprospacing and pdfspacing are active
                \PackageWarningNoLine{classicthesis}{You cannot use "pdfspacing" at the same time %
                    as "minionprospacing"!}%
            }{\relax}%
        \setboolean{@minionpro}{true}%
        \setboolean{@pdfspacing}{false}%
    }{\relax}

% fine-tuning if we do not use chapters
\ifthenelse{\boolean{@nochapters}}%
    {%
        % is the user trying to use parts at the same time?
        \ifthenelse{\boolean{@parts}}%
            {% both parts and nochapters are active
                \PackageWarningNoLine{classicthesis}{You cannot use "parts" at the same time %
                    as "nochapters"!}%
            }{\relax}%
        % is the user trying to use manychapters at the same time?
        \ifthenelse{\boolean{@manychapters}}%
            {% both manychapters and nochapters are active
                \PackageWarningNoLine{classicthesis}{You cannot use "manychapters" at the same time %
                    as "nochapters"!}%
            }{\relax}%
        % turn off some things if we do not use chapters
        \PackageInfo{classicthesis}{Using option "nochapters" (probably for an article). %
                This turns off the options "linedheaders", "manychapters",%
                "listsseparated", "eulerchapternumbers", and "parts". Please be aware of that.}
        \setboolean{@linedheaders}{false}%
        \setboolean{@listsseparated}{false}%
        \setboolean{@eulerchapternumbers}{false}%
        \setboolean{@parts}{false}%
        \setboolean{@manychapters}{false}%
    }{\relax}%

% ********************************************************************                
% PDF Stuff
% ********************************************************************
\RequirePackage{ifpdf}
\ifpdf\RequirePackage{hyperref}\fi % for texorpdfstring command below

% ********************************************************************                
% Colors
% ********************************************************************
\RequirePackage[dvipsnames]{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{@minionpro}}%
    {%
        % specialists: MinionPro
        \RequirePackage[opticals,mathlf]{MinionPro} %  opticals, fullfamily, osf
    }{%
        % default: Palatino
        \RequirePackage[osf,sc]{mathpazo} % Palatino with real small caps and old style figures
        \linespread{1.05} % a bit more for Palatino
    }

\ifthenelse{\boolean{@beramono}}%
    {\RequirePackage[scaled=0.85]{beramono}}%
    {%
    	\relax%
    	% put your own suitable typewriter font here
    	%\renewcommand{\ttdefault}{\rmdefault}
    } 
\ifthenelse{\boolean{@eulermath}}%
    {\RequirePackage[euler-digits]{eulervm}} % Euler math fonts
    {\relax}

\ifthenelse{\boolean{@eulerchapternumbers}}% font for the chapter numbers
    {\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
%*******************************************************
\ifthenelse{\boolean{@a5paper}}%
    {% A5
        \ifthenelse{\boolean{@minionpro}}%
        {% Minion gets some extra sizes
        		\PackageInfo{classicthesis}{A5 paper, MinionPro}
            \areaset[5mm]{278pt}{556pt}%
            \setlength{\marginparwidth}{5em}%
            \setlength{\marginparsep}{1.25em}%
        }{% Palatino or other
        		\PackageInfo{classicthesis}{A5 paper, Palatino or other}
            \areaset[5mm]{288pt}{555pt}%
            \setlength{\marginparwidth}{4em}%
            \setlength{\marginparsep}{1.25em}%
        }%
	}{% A4
        \ifthenelse{\boolean{@minionpro}}%
        {% Minion gets some extra sizes
        		\PackageInfo{classicthesis}{A4 paper, MinionPro}
            \areaset[5mm]{288pt}{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[5mm]{312pt}{761pt} % 686 (factor 2.2) + 33 head + 42 head \the\footskip
            \setlength{\marginparwidth}{7em}%
            \setlength{\marginparsep}{2em}%
        }%
	}
% 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:

% ********************************************************************
% 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"
\DeclareRobustCommand{\graffito}[1]{\marginpar{%
    \slshape\footnotesize%\small%
    \ifodd\thepage\raggedright\else\raggedleft\fi%
    \parindent=0pt\lineskip=0pt\lineskiplimit=0pt%\baselineskip=10pt
    \tolerance=2000\hyphenpenalty=300\exhyphenpenalty=300%
    \doublehyphendemerits=100000\finalhyphendemerits=\doublehyphendemerits%
    %\raggedright%
    \hspace{0pt}#1}}
    
% 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

\ifthenelse{\boolean{@minionprospacing}}%
    {%
        \PackageInfo{classicthesis}{Using MinionPro's textssc for character spacing.}%
        \DeclareRobustCommand{\spacedallcaps}[1]{\textssc{\MakeTextUppercase{#1}}}%
        \DeclareRobustCommand{\spacedlowsmallcaps}[1]{\textssc{\MakeTextLowercase{#1}}}%
    }{%
        \ifthenelse{\boolean{@pdfspacing}}%
        {%
            \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}}}%
        }{%
            \RequirePackage{soul} % 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{\textsc{\lowsmallcapsspacing{#1}}}}%
        }%
    }

% ********************************************************************                
% headlines
% ********************************************************************  
\RequirePackage[automark]{scrpage2} % provides headers and footers (KOMA Script)
    \clearscrheadings
    \setheadsepline{0pt}
    \ifthenelse{\boolean{@nochapters}}%
        {\relax}%
        {\renewcommand{\chaptermark}[1]{\markboth{\spacedlowsmallcaps{#1}}{\spacedlowsmallcaps{#1}}}}
    \renewcommand{\sectionmark}[1]{\markright{\thesection\enspace\spacedlowsmallcaps{#1}}} 
    \lehead{\mbox{\llap{\small\thepage\kern2em}\headmark\hfil}}
    \rohead{\mbox{\hfil{\headmark}\rlap{\small\kern2em\thepage}}}
    \renewcommand{\headfont}{\small}  
    %\DeclareRobustCommand{\fixBothHeadlines}[1]{} % <--- ToDo
    % hack to get the content headlines right (thanks, Lorenzo!)
		\def\toc@heading{%
	 		\ifthenelse{\boolean{@nochapters}}%
	 		{\section*{\contentsname}}%nochapters
	 		{\chapter*{\contentsname}}%chapters
	 		\@mkboth{\spacedlowsmallcaps{\contentsname}}{\spacedlowsmallcaps{\contentsname}}}

% ********************************************************************
% figures are placed only within section they were declared in
% provides command \FloatBarrier
% ********************************************************************
%\RequirePackage[section,below]{placeins}    
    
% ********************************************************************
% layout of the chapter-, section-, subsection-, subsubsection-,
% paragraph and description-headings
% ********************************************************************             
\RequirePackage{titlesec}
		% parts
		\ifthenelse{\boolean{@parts}}%
		{%
    \titleformat{\part}[display]
        {\normalfont\centering\large}%
        {\thispagestyle{empty}\partname~\MakeTextUppercase{\thepart}}{1em}%
        {\color{Maroon}\spacedallcaps}
    }{\relax}
    % chapters
    \ifthenelse{\boolean{@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{}\marginpar{\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{@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)
% ********************************************************************
\RequirePackage[titles]{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{@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{@parts}}%
    {%
      \renewcommand{\thepart}{\roman{part}}%
      \renewcommand{\cftpartpresnum}{\scshape}%  \MakeTextLowercase
%      \renewcommand{\cftpartaftersnum}{\cftchapaftersnum}%
%      \renewcommand{\cftpartaftersnumb}{\quad}%
%      \setlength{\cftpartnumwidth}{\cftpartnumwidth}
      \renewcommand{\cftpartfont}{\color{Maroon}\normalfont}%
      \renewcommand{\cftpartpagefont}{\normalfont}%
      \ifthenelse{\boolean{@dottedtoc}}{\relax}%
      {%
      	\renewcommand{\cftpartleader}{\hspace{1.5em}}% 
      	\renewcommand{\cftpartafterpnum}{\cftparfillskip}%
      }%        
      \setlength{\cftbeforepartskip}{1em}%
      \setlength{\cftbeforechapskip}{.1em}%
      \setlength{\beforebibskip}{\cftbeforepartskip}%
     }{\relax}
    % chapters
    \ifthenelse{\boolean{@nochapters}}%
        {\relax}%
        {%
        	\renewcommand{\cftchappresnum}{\scshape\MakeTextLowercase}%
            \renewcommand{\cftchapfont}{\normalfont}%
            \renewcommand{\cftchappagefont}{\normalfont}%
            \ifthenelse{\boolean{@dottedtoc}}{\relax}%
      			{%
            	\renewcommand{\cftchapleader}{\hspace{1.5em}}% 
            	\renewcommand{\cftchapafterpnum}{\cftparfillskip}% 
            }
            %\setlength{\cftbeforechapskip}{.1em}%           
        }
    % sections
    \ifthenelse{\boolean{@nochapters}}%        
      {%
          \setlength{\cftbeforesecskip}{.1em}%
          \setlength{\beforebibskip}{1em}%
      }%
      {\relax}
    	\renewcommand{\cftsecpresnum}{\scshape\MakeTextLowercase}%
    	\renewcommand{\cftsecfont}{\normalfont}%
      \renewcommand{\cftsecpagefont}{\normalfont}%
    	\ifthenelse{\boolean{@dottedtoc}}{\relax}%
    	{%        
      	\renewcommand{\cftsecleader}{\hspace{1.5em}}% 
      	\renewcommand{\cftsecafterpnum}{\cftparfillskip}%
      }
      \ifthenelse{\boolean{@tocaligned}}{\renewcommand{\cftsecindent}{0em}}{\relax}
    % subsections
    	\renewcommand{\cftsubsecpresnum}{\scshape\MakeTextLowercase}%
    	\renewcommand{\cftsubsecfont}{\normalfont}%
      \ifthenelse{\boolean{@dottedtoc}}{\relax}%
      {%      
      	\renewcommand{\cftsubsecleader}{\hspace{1.5em}}% 
      	\renewcommand{\cftsubsecafterpnum}{\cftparfillskip}%   
      }             
      \ifthenelse{\boolean{@tocaligned}}{\renewcommand{\cftsubsecindent}{0em}}{\relax}
    % subsubsections
    	\renewcommand{\cftsubsubsecpresnum}{\scshape\MakeTextLowercase}%
    	\renewcommand{\cftsubsubsecfont}{\normalfont}%
      \ifthenelse{\boolean{@dottedtoc}}{\relax}%
      {%      
      	\renewcommand{\cftsubsubsecleader}{\hspace{1.5em}}% 
      	\renewcommand{\cftsubsubsecafterpnum}{\cftparfillskip}%   
      }             
      \ifthenelse{\boolean{@tocaligned}}{\renewcommand{\cftsubsubsecindent}{0em}}{\relax}
    % figures     
    	\renewcommand{\cftfigpresnum}{\scshape\MakeTextLowercase}% 
    	\renewcommand{\cftfigfont}{\normalfont}%                 
      \ifthenelse{\boolean{@dottedtoc}}{\relax}%
      {%
	      \renewcommand{\cftfigleader}{\hspace{1.5em}}% 
	      \renewcommand{\cftfigafterpnum}{\cftparfillskip}%
      }
      \renewcommand{\cftfigpresnum}{\figurename~}%Fig.~}
      \newlength{\figurelabelwidth}
      \settowidth{\figurelabelwidth}{\cftfigpresnum~99}
      \addtolength{\figurelabelwidth}{2.5em}
      \cftsetindents{figure}{0em}{\figurelabelwidth}
    % tables
    	\renewcommand{\cfttabpresnum}{\scshape\MakeTextLowercase}%
    	\renewcommand{\cfttabfont}{\normalfont}%
			\ifthenelse{\boolean{@dottedtoc}}{\relax}%
      {%
      	\renewcommand{\cfttableader}{\hspace{1.5em}}% 
      	\renewcommand{\cfttabafterpnum}{\cftparfillskip}%   
      } 
      \renewcommand{\cfttabpresnum}{\tablename~}%Tab.~}
      \newlength{\tablelabelwidth}
      \settowidth{\tablelabelwidth}{\cfttabpresnum~99}
      \addtolength{\tablelabelwidth}{2.5em}
      %\cftsetindents{table}{0em}{\tablelabelwidth}
      \cftsetindents{table}{0em}{\figurelabelwidth}
    % listings
    \ifthenelse{\boolean{@listings}}%        
    {%
	    \newlistof{listings}{lol}{\lstlistlistingname}%
			\renewcommand{\cftlistingspresnum}{\scshape\MakeTextLowercase}%
			\renewcommand{\cftlistingsfont}{\normalfont}%
			\renewcommand{\cftlistingspresnum}{\lstlistingname~}%
			\renewcommand{\cftlistingspagefont}{\normalfont}%
			\ifthenelse{\boolean{@dottedtoc}}{\relax}%
      {%  
				\renewcommand{\cftlistingsleader}{\hspace{1.5em}}%
				\renewcommand{\cftlistingsafterpnum}{\cftparfillskip}%
			}
			\newlength{\listingslabelwidth}%
			\settowidth{\listingslabelwidth}{\cftlistingspresnum~99}%
			\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{@parts}}%        
    {%
    		\AtBeginDocument{\addtocontents{toc}{\protect\vspace{-\cftbeforepartskip}}}
    }{%
        \ifthenelse{\boolean{@nochapters}}%
    		{\relax}%
    		{\AtBeginDocument{\addtocontents{toc}{\protect\vspace{-\cftbeforechapskip}}}}
    }
                                       
    % another dirty work-around to get the spaced low small caps into the toc ;-(
    \ifthenelse{\boolean{@nochapters}}%
    {\relax}%
    {%
%% use modified \chapter (thanks to Hinrich Harms)
         \let\oldchap=\chapter
         \renewcommand*{\chapter}{%
                 \secdef{\Chap}{\ChapS}%
         }
         \newcommand\ChapS[1]{\oldchap*{#1}}%
         \newcommand\Chap[2][]{%
                 \ifpdf\oldchap[\texorpdfstring{\spacedlowsmallcaps{#1}}{#1}]{#2}%
                 \else\oldchap[\spacedlowsmallcaps{#1}]{#2}%
                 \fi%
         }
%% Old version w/ optional parameter 
%        \newcommand{\myChapter}[2][]{% for chapters
%        	\ifthenelse{\equal{#1}{}}{%  
%        		%\chapter[\tocEntry{#2}]{#2} % causes soul "reconstruction failed" with plain LaTeX    
%            	\ifpdf\chapter[\texorpdfstring{\spacedlowsmallcaps{#2}}{#2}]{#2}%
%            	\else\chapter[\spacedlowsmallcaps{#2}]{#2}\fi%
%          }{%
%          		%\chapter[\tocEntry{#1}]{#2}
%          		\ifpdf\chapter[\texorpdfstring{\spacedlowsmallcaps{#1}}{#1}]{#2}%
%            	\else\chapter[\spacedlowsmallcaps{#1}]{#2}\fi%
%        }}%
%% Old version w/o optional parameter
%        \newcommand{\myChapter}[1]{% for chapters      
%            \ifpdf\chapter[\texorpdfstring{\spacedlowsmallcaps{#1}}{#1}]{#1}%
%            \else\chapter[\spacedlowsmallcaps{#1}]{#1}\fi%
%        }%
    }
    
    % yet another dirty work-around to get the spaced low small caps into the toc ;-(
    \ifthenelse{\boolean{@parts}}%
    {% 
%% use modified \part (thanks to Hinrich Harms)
	    	 \let\oldpart=\part%
	       \renewcommand*{\part}{%
	               \secdef{\Part}{\PartS}%
	       }%
	       \newcommand\PartS[1]{\oldpart*{#1}}%
	       \newcommand\Part[2][]{%
	               \ifpdf\pdfstringdefDisableCommands{\let\thepart\@gobbletwo}%
	                     \oldpart[\texorpdfstring{\spacedlowsmallcaps{#1}}{#1}]{#2}% spacedallcaps spacedlowsmallcaps
%	               \else\oldpart[\spacedlowsmallcaps{#1}]{#2}%
	               \fi%
	       }%
%% Old version w/ optional parameter 
%	    	\newcommand{\myPart}[2][]{% for parts     
%	    		\ifthenelse{\equal{#1}{}}{%  
%		        	\ifpdf%
%		        	% ugly hack to remove the part number from the PDF bookmark entry
%		        	\pdfstringdefDisableCommands{\let\thepart\@gobbletwo}% 	        
%		        	\part[\texorpdfstring{\spacedlowsmallcaps{#2}}{#2}]{#2}% spacedallcaps spacedlowsmallcaps	
%		        	\else\part[\spacedlowsmallcaps{#2}]{#2}\fi%
%		      }{%
%		      		\ifpdf%
%		        	% ugly hack to remove the part number from the PDF bookmark entry
%		        	\pdfstringdefDisableCommands{\let\thepart\@gobbletwo}% 	        
%		        	\part[\texorpdfstring{\spacedlowsmallcaps{#1}}{#1}]{#2}% spacedallcaps spacedlowsmallcaps	
%		        	\else\part[\spacedlowsmallcaps{#1}]{#2}\fi%
%     		}}%
     }{\relax}
             
    \newcommand{\tocEntry}[1]{% for bib, etc.
    	\ifpdf\texorpdfstring{\spacedlowsmallcaps{#1}}{#1}%
        \else{#1}\fi%
    }

    % remove the vertical space between lof/lot entries of different chapters
    \ifthenelse{\boolean{@listsseparated}}{%
        \AtBeginDocument{%
            \addtocontents{lof}{\protect\vspace{-10\cftbeforechapskip}}%
            \addtocontents{lot}{\protect\vspace{-10\cftbeforechapskip}}%
            \ifthenelse{\boolean{@listings}}%        
    				{%
             	\addtocontents{lol}{\protect\vspace{-10\cftbeforechapskip}}%
            }%
        }%
    }{%
        \DeclareRobustCommand*{\deactivateaddvspace}{\let\addvspace\@gobble}% 
        \AtBeginDocument{%      
            \addtocontents{lof}{\deactivateaddvspace}% 
            \addtocontents{lot}{\deactivateaddvspace}%
    				 {%
             	\addtocontents{lol}{\deactivateaddvspace}%
             }%                  
            %\addtocontents{lof}{\protect\renewcommand*{\protect\addvspace}[1]{}}% 
            %\addtocontents{lot}{\protect\renewcommand*{\protect\addvspace}[1]{}}% 
        }%
    } 
   
% ********************************************************************
% footnotes setup   
% ********************************************************************
%\RequirePackage{footmisc}  % [bottom] norule para symbol* marginal perpage
    % KOMA-command, footnotemark not superscripted at the bottom
    \deffootnote{0em}{0em}{\thefootnotemark\hspace*{.5em}}      
    %\setfnsymbol{bringhurst}   % use symbols recommended by guru Robert Bringhurst 
    %\setlength{\footnotemargin}{-1em}     
    
% ********************************************************************
% Drafting Stuff
% ********************************************************************
\RequirePackage{scrtime} % time access
\newcommand{\finalVersionString}{}
\ifthenelse{\boolean{@drafting}}{% 
    \RequirePackage[draft]{prelim2e}
        \renewcommand{\PrelimWords}{\relax}
        \renewcommand{\PrelimText}{\footnotesize[\,\today\ at \thistime\,]}
}{\renewcommand{\finalVersionString}{\emph{Final Version} as of \today\ at \thistime.}}