% ********************************************************************
% classicthesis-ldpkg.sty (formerly known as loadpackages.sty)
%
% Copyright (C) 2008 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.
%
% ********************************************************************  
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{classicthesis-ldpkg}[2008/10/01 v2.5 Package Loader for Classic Thesis Style]
 
\@ifpackageloaded{classicthesis}%
    {\PackageWarningNoLine{classicthesis-ldpkg}{Package "classicthesis" should be loaded AFTER "classicthesis-ldpkg".}}%
    {\relax}%    
 
% ********************************************************************
% Options
% ******************************************************************** 
\RequirePackage{ifthen}
    \newboolean{cld@nochapters} % disable all chapter-specific commands
\DeclareOption{nochapters}{\setboolean{cld@nochapters}{true}}
\ProcessOptions\relax

% ******************************************************************** 
% Packages
% ******************************************************************** 
\RequirePackage[T1]{fontenc}                
\RequirePackage{textcomp}
%\RequirePackage[dvipsnames]{xcolor} 
\RequirePackage{xspace} % to get the spacing after macros right
\RequirePackage{tabularx} % better tables
\RequirePackage{mparhack} % get marginpar right
\RequirePackage{fixltx2e} % fixes some LaTeX stuff
%\RequirePackage{ellipsis} % ... ;-)                  
\RequirePackage{relsize} % scale font up or down                                        
\RequirePackage[smaller]{acronym} % nice macros for handling all acronyms in the thesis
\renewcommand{\bflabel}[1]{{#1}\hfill} % fix the list of acronyms
%\RequirePackage{natbib}

% ********************************************************************
% Commands
% ********************************************************************                
\newcounter{dummy} % necessary for correct hyperlinks (to index, bib, etc.)
\newcommand{\longpage}{\enlargethispage{3\baselineskip}}
\newcommand{\medpage}{\enlargethispage{2\baselineskip}}
\newcommand{\shortpage}{\enlargethispage{\baselineskip}}
\newcommand{\concskip}{\medskip}
\newcommand{\myPrimRef}[1]{\textit{#1}} % how primary index entries will be marked 
% ******************************************************************** 
\newcommand{\ie}{i.\,e.}
\newcommand{\Ie}{I.\,e.}
\newcommand{\eg}{e.\,g.}
\newcommand{\Eg}{E.\,g.}
\newcommand{\etAl}{et al.\xspace}
\newcommand{\twod}{2\textsc{d}\xspace}
\newcommand{\threed}{3\textsc{d}\xspace}
% ******************************************************************** 
\newcommand{\system}[1]{\emph{#1}}
\newcommand{\person}[1]{#1}
\newcommand{\term}[1]{\emph{#1}}
\newcommand{\cauthor}[1]{\relax}
\@ifpackageloaded{natbib}%
    {\renewcommand{\cauthor}[1]{\person{\citeauthor{#1}}}%
    }{\PackageWarningNoLine{classicthesis-ldpk}{Package "natbib" not loaded, %
        command "cauthor" will not work.}}
\newcommand{\tableheadline}[1]{\multicolumn{1}{c}{\spacedlowsmallcaps{#1}}}
% ******************************************************************** 
\newcommand{\RA}{\ensuremath{\Rightarrow}}
\newcommand{\ra}{\ensuremath{\rightarrow}}
\newcommand{\lra}{\ensuremath{\leftrightarrow}}
\newcommand{\On}{\ensuremath{O(n)}\xspace}
\newcommand{\Ologn}{\ensuremath{O(\log n)}\xspace}
\newcommand{\Oone}{\ensuremath{O(1)}\xspace}

% ********************************************************************
% take care of the caption fonts and sizes (tables and figures)
\RequirePackage{caption}
    
% ********************************************************************
% caption numbering now w/o chapter number
\RequirePackage{remreset}
    \makeatletter
        \ifthenelse{\boolean{cld@nochapters}}%
        {\relax}{%
            \@removefromreset{table}{chapter}  % requires remreset package
        }
        \renewcommand{\thetable}{\arabic{table}}
    \makeatother
    \makeatletter
        \ifthenelse{\boolean{cld@nochapters}}%
        {\relax}{%
            \@removefromreset{figure}{chapter}  % requires remreset package
        }
        \renewcommand{\thefigure}{\arabic{figure}}  
    \makeatother

% ********************************************************************
% enable subfigures in figures
\RequirePackage{subfig}  

% ********************************************************************
% fine typesetting of code listings
\RequirePackage{listings}  
% ********************************************************************
% caption numbering now w/o chapter number
%\makeatletter
%    \ifthenelse{\boolean{@nochapters}}%
%    {\relax}{%
%        \@removefromreset{lstlisting}{chapter}% requires remreset package
%    }
%    \renewcommand{\thelstlisting}{\arabic{lstlisting}} % <-- might cause an error with some TeX distributions
%\makeatother
% ********************************************************************
% ...and get the layout of the list of listings right (dirty workaround)
%\makeatletter
%        \def\@dottedtocline#1#2#3#4#5{%
%          \ifnum #1>\c@tocdepth \else
%            \vskip \z@ \@plus.2\p@
%            {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
%             \parindent #2\relax\@afterindenttrue
%             \interlinepenalty\@M
%             \leavevmode
%             \@tempdima #3\relax
%             \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
%             \hbox{{#4}\nobreak
%             \hspace{1.5em}
%             \nobreak
%             \hb@xt@\@pnumwidth{\normalfont \normalcolor #5}}%
%             \par}%
%          \fi}
%        \def\@pnumwidth{0em}
%\makeatother
% ********************************************************************
% to get the LoL entries right, change line 1461 in listings.sty (v1.3a) to
% {\protect\hspace{-\parindent}Listing~\thelstlisting\hspace{1.5em}\lst@@caption}%
% really nasty, if you know of a better way, please let me know
% ********************************************************************
%\lstset{emph={trueIndex,root},emphstyle=\color{BlueViolet}}%\underbar} % for special keywords
% ********************************************************************
\lstset{language=[LaTeX]Tex,%C++,
    keywordstyle=\color{RoyalBlue},%\bfseries,
    basicstyle=\small\ttfamily,
    %identifierstyle=\color{NavyBlue},
    commentstyle=\color{Green}\ttfamily,
    stringstyle=\rmfamily,
    numbers=none,%left,%
    numberstyle=\scriptsize,%\tiny
    stepnumber=5,
    numbersep=8pt,
    showstringspaces=false,
    breaklines=true,
    frameround=ftff,
    frame=single
    %frame=L
}    

% ********************************************************************
% Using PDFLaTeX:
% ********************************************************************
\RequirePackage[pdftex,hyperfootnotes=false,pdfpagelabels,pagebackref]{hyperref}  % backref linktocpage pagebackref
\pdfcompresslevel=9
\pdfadjustspacing=1 
\RequirePackage[pdftex]{graphicx} % PDFTeX driver for graphicx
\DeclareGraphicsRule{*}{mps}{*}{} % enables use of MetaPost graphics with pdflatex 

%*******************************************************
% for German texts to get \autoref macros right
\renewcommand{\figureautorefname}{Figure}
\renewcommand{\tableautorefname}{Table}
\renewcommand{\partautorefname}{Part}
\renewcommand{\chapterautorefname}{Chapter}
\renewcommand{\sectionautorefname}{Section}
\renewcommand{\subsectionautorefname}{Section}
\renewcommand{\subsubsectionautorefname}{Section}
%\renewcommand{\paragraphautorefname}{Absatz}
%\renewcommand{\subparagraphautorefname}{Unterabsatz}
%\renewcommand{\footnoteautorefname}{Fu\"snote}
%\renewcommand{\FancyVerbLineautorefname}{Zeile}
%\renewcommand{\theoremautorefname}{Theorem}
%\renewcommand{\appendixautorefname}{Anhang}
%\renewcommand{\equationautorefname}{Gleichung}        
%\renewcommand{\itemautorefname}{Punkt}                
%\newcommand*{\subfigureautorefname}{Abbildung}

% ********************************************************************
% get the links to the figures and tables right
%\RequirePackage[all]{hypcap} % to be loaded after hyperref package

% ********************************************************************
% setup the style of the backrefs from the bibliography
\newcommand{\backrefnotcitedstring}{\relax}%(Not cited.)
\newcommand{\backrefcitedsinglestring}[1]{(Cited on page~#1.)}
\newcommand{\backrefcitedmultistring}[1]{(Cited on pages~#1.)}

\RequirePackage[hyperpageref]{backref} % to be loaded after hyperref package 
   \renewcommand{\backreftwosep}{ and~} % seperate 2 pages
   \renewcommand{\backreflastsep}{, and~} % seperate last of longer list
   \renewcommand*{\backref}[1]{}  % Disable standard
   \renewcommand*{\backrefalt}[4]{% Detailed backref
      \ifcase #1 %
         \backrefnotcitedstring%
      \or
         \backrefcitedsinglestring{#2}%
      \else
         \backrefcitedmultistring{#2}%
      \fi}
%   \hspace*{\fill}{\scriptsize\itshape\mbox{%
%   \ifnum#1=1 %
%     (Cited on page~%
%   \else
%     (Cited on pages~%
%   \fi
%   #2)}
%}       