%************************************************
\chapter{The code}
\label{chp:code}
%************************************************
 
 
\lstset{numbers=left,
    numberstyle=\scriptsize,
    stepnumber=1,
    numbersep=8pt
}    

Announcement of the package and requirement for the necessary packages.
\begin{lstlisting}[firstnumber=1]
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{arsclassica}[2010/02/14 v2.7 Customizing
                              ClassicThesis (LP)]
\RequirePackage{classicthesis-ldpkg}
\RequirePackage{classicthesis}
\end{lstlisting}
Declaration of the language option: \optname{english} (default), \optname{french}, \optname{german}, \optname{spanish}, and \optname{italian}. 
\begin{lstlisting}
\newboolean{english}
\newboolean{french}
\newboolean{german}
\newboolean{spanish}
\newboolean{italian}
\DeclareOption{english}{\setboolean{english}{true}}
\DeclareOption{french}{\setboolean{french}{true}}
\DeclareOption{german}{\setboolean{german}{true}}
\DeclareOption{spanish}{\setboolean{spanish}{true}}
\DeclareOption{italian}{\setboolean{italian}{true}}
\ExecuteOptions{english}
\ProcessOptions\relax
\end{lstlisting}
%
Balance of index columns (if your document has an index).
\begin{lstlisting}
\@ifpackageloaded{makeidx} 
{%
   \RequirePackage{multicol}
   \let\orgtheindex\theindex
   \let\orgendtheindex\endtheindex
   \def\theindex{%
      \def\twocolumn{\begin{multicols}{2}}%
      \def\onecolumn{}%
      \clearpage
      \orgtheindex}
   \def\endtheindex{%
      \end{multicols}%
      \orgendtheindex}
   \makeindex
} 
{\relax}
\end{lstlisting}
%
References of \pkgname{backref} in English, French, German, Spanish, and Italian.
\begin{lstlisting}
\ifcld@backref
\ifthenelse{\boolean{english}}%
{%
   \PackageInfo{arsclassica}{Using option "english". %
              This activates english language in "backref".}
   \renewcommand*{\backreftwosep}{ and~} 
   \renewcommand*{\backreflastsep}{, and~} 
   \renewcommand*{\backrefalt}[4]{% 
      \ifcase #1 % 
         \relax% 
      \or 
         (Cited on page~#2.)% 
      \else 
         (Cited on pages~#2.) 
      \fi}
}
{\relax}

\ifthenelse{\boolean{french}}%
{%
   \PackageInfo{arsclassica}{Using option "french". %
              This activates french language in "backref".}
   \renewcommand*{\backreftwosep}{ et~} 
   \renewcommand*{\backreflastsep}{ et~} 
   \renewcommand*{\backrefalt}[4]{% 
      \ifcase #1 % 
         \relax% 
      \or 
         (Cit\'e \`a page~#2.)% 
      \else 
         (Cit\'e aux pages~#2.) 
      \fi}
}
{\relax}

\ifthenelse{\boolean{german}}%
{%
   \PackageInfo{arsclassica}{Using option "german". %
              This activates german language in "backref".}
   \renewcommand*{\backreftwosep}{ und~} 
   \renewcommand*{\backreflastsep}{ und~} 
   \renewcommand*{\backrefalt}[4]{% 
      \ifcase #1 % 
         \relax% 
      \or 
         (Zitiert auf Seite~#2.)% 
      \else 
         (Zitiert auf Seiten~#2.) 
      \fi}
}
{\relax}

\ifthenelse{\boolean{spanish}}%
{%
   \PackageInfo{arsclassica}{Using option "spanish". %
              This activates spanish language in "backref".}
   \renewcommand*{\backreftwosep}{ y~} 
   \renewcommand*{\backreflastsep}{ y~} 
   \renewcommand*{\backrefalt}[4]{% 
      \ifcase #1 % 
         \relax% 
      \or 
         (Citado en la p\'agina~#2.)% 
      \else 
         (Citado en las p\'aginas~#2.) 
      \fi}
}
{\relax}

\ifthenelse{\boolean{italian}}%
{%
   \PackageInfo{arsclassica}{Using option "italian". %
              This activates italian language in "backref".}
   \renewcommand*{\backreftwosep}{ e~} 
   \renewcommand*{\backreflastsep}{ e~} 
   \renewcommand*{\backrefalt}[4]{% 
      \ifcase #1 % 
         \relax% 
      \or 
         (Citato a pagina~#2.)% 
      \else 
         (Citato alle pagine~#2.) 
      \fi}
}
{\relax}
\fi
\end{lstlisting}
%
Settings of \pkgname{minitoc}.
\begin{lstlisting}
\@ifpackageloaded{minitoc} 
{%
   \ifthenelse{\boolean{english}}%
   {%
      \def\ptctitle{contents}
      \def\mtctitle{contents}
      \def\stctitle{contents}
      \setlength{\mtcindent}{0pt}
      \renewcommand{\mtifont}{\normalsize\sffamily%
         \scshape\lsstyle}
   }
   {%
      \setlength{\mtcindent}{0pt}
      \renewcommand{\mtifont}{\normalsize\sffamily%
         \scshape\lsstyle}
   }
}
{\relax}

\@ifpackageloaded{minitoc} 
{%
   \ifthenelse{\boolean{french}}%
   {%
      \def\ptctitle{mati\`eres}
      \def\mtctitle{mati\`eres}
      \def\stctitle{mati\`eres}
      \setlength{\mtcindent}{0pt}
      \renewcommand{\mtifont}{\normalsize\sffamily%
         \scshape\lsstyle}
   }
   {%
      \setlength{\mtcindent}{0pt}
      \renewcommand{\mtifont}{\normalsize\sffamily%
         \scshape\lsstyle}
   }
}
{\relax}

\@ifpackageloaded{minitoc} 
{%
   \ifthenelse{\boolean{german}}%
   {%
      \def\ptctitle{inhaltsverzeichnis}
      \def\mtctitle{inhaltsverzeichnis}
      \def\stctitle{inhaltsverzeichnis}
      \setlength{\mtcindent}{0pt}
      \renewcommand{\mtifont}{\normalsize\sffamily%
         \scshape\lsstyle}
   }
   {%
      \setlength{\mtcindent}{0pt}
      \renewcommand{\mtifont}{\normalsize\sffamily%
         \scshape\lsstyle}
   }
}
{\relax}

\@ifpackageloaded{minitoc} 
{%
   \ifthenelse{\boolean{spanish}}%
   {%
      \def\ptctitle{\'indice}
      \def\mtctitle{\'indice}
      \def\stctitle{\'indice}
      \setlength{\mtcindent}{0pt}
      \renewcommand{\mtifont}{\normalsize\sffamily%
         \scshape\lsstyle}
   }
   {%
      \setlength{\mtcindent}{0pt}
      \renewcommand{\mtifont}{\normalsize\sffamily%
         \scshape\lsstyle}
   }
}
{\relax}

\@ifpackageloaded{minitoc} 
{%
   \ifthenelse{\boolean{italian}}%
   {%
      \def\ptctitle{indice}
      \def\mtctitle{indice}
      \def\stctitle{indice}
      \setlength{\mtcindent}{0pt}
      \renewcommand{\mtifont}{\normalsize\sffamily%
         \scshape\lsstyle}
   }
   {%
      \setlength{\mtcindent}{0pt}
      \renewcommand{\mtifont}{\normalsize\sffamily%
         \scshape\lsstyle}
   }
}
{\relax}
\end{lstlisting}
Use of Iwona\index{Iwona} as font sans serif.
\begin{lstlisting}
\renewcommand{\sfdefault}{iwona}
\end{lstlisting}
%
Customized chapter numbers.
\begin{lstlisting}
\let\chapterNumber\undefined 
\ifthenelse{\boolean{@eulerchapternumbers}}
{\newfont{\chapterNumber}{eurb10 scaled 5000}}% 
{\newfont{\chapterNumber}{pplr9d scaled 5000}}
\end{lstlisting}
%
Small caps sans serif.
\begin{lstlisting}
\ifthenelse{\boolean{@minionprospacing}}%
{%
  \DeclareRobustCommand{\spacedallcaps}[1]{\sffamily%
  \textssc{\MakeTextUppercase{#1}}}%
  \DeclareRobustCommand{\spacedlowsmallcaps}[1]%
  {\sffamily\textssc{\MakeTextLowercase{#1}}}%
}{%
  \ifthenelse{\boolean{@pdfspacing}}%
  {%
    \microtypesetup{expansion=false}%
    \DeclareRobustCommand{\spacedallcaps}[1]%
    {\sffamily\textls[160]{\MakeTextUppercase{#1}}}%
    \DeclareRobustCommand{\spacedlowsmallcaps}[1]%
    {\sffamily\textls[80]{\scshape\MakeTextLowercase{#1}}}%
  }{%
    \RequirePackage{soul} 
    \sodef\allcapsspacing{\sffamily\upshape}%
    {0.15em}{0.65em}{0.6em}%
    \sodef\lowsmallcapsspacing{\sffamily\scshape}%
    {0.075em}{0.5em}{0.6em}%   
    \DeclareRobustCommand{\spacedallcaps}[1]%
    {\MakeTextUppercase{\allcapsspacing{#1}}}%   
	\DeclareRobustCommand{\spacedlowsmallcaps}[1]%
	{\MakeTextLowercase{\textsc%
	   {\lowsmallcapsspacing{#1}}}}%
  }%
}
\end{lstlisting}
%
Semi-transparent headlines and page numbers in Iwona.
\begin{lstlisting}
\renewcommand{\sectionmark}[1]{\markright{\textsc%
{\MakeTextLowercase{\thesection}} \spacedlowsmallcaps{#1}}}
\lehead{\mbox{\llap{\small\thepage\kern1em\color{halfgray}%
\vline}%
\color{halfgray}\hspace{0.5em}\headmark\hfil}} 
\rohead{\mbox{\hfil{\color{halfgray}%
\headmark\hspace{0.5em}}%
\rlap{\small{\color{halfgray}\vline}\kern1em\thepage}}}
\renewcommand{\headfont}{\normalfont\sffamily}
\renewcommand{\pnumfont}{\small\sffamily}
\end{lstlisting}
%  
Use of Iwona\index{Iwona} for the titles of sectioning units (chapters, sections, subsections, sub-subsections, paragraphs, subparagraphs) and for the labels of description lists.
\begin{lstlisting}
\RequirePackage{titlesec}
		% parts
		\ifthenelse{\boolean{@parts}}%
		{%
    \titleformat{\part}[display]
        {\normalfont\centering\large}%
        {\thispagestyle{empty}\partname~\thepart}{1em}%
        {\color{Maroon}\spacedallcaps}
    }{\relax}
    % chapters
    \ifthenelse{\boolean{@linedheaders}}%
    {%
    \titleformat{\chapter}[display]%             
        {\relax}{\raggedleft{\color{halfgray}%
        \chapterNumber\thechapter} \\ }{0pt}%
        {\titlerule\vspace*{.9\baselineskip}\raggedright%
        \spacedallcaps}%
        [\normalsize\vspace*{.8\baselineskip}\titlerule]%
    }{%  
    \titleformat{\chapter}[block]%
        {\normalfont\Large\sffamily}%
        {{\color{halfgray}\chapterNumber\thechapter%
        \hspace{10pt}\vline}  }{10pt}%
        {\spacedallcaps}}
    % sections
    \titleformat{\section} 
    	  {\normalfont\Large\sffamily}{\textsc%
	  {\MakeTextLowercase{\thesection}}}%
         {1em}{\spacedlowsmallcaps}
    % subsections
    \titleformat{\subsection}
        {\normalfont\sffamily}{\textsc{\MakeTextLowercase%
        {\thesubsection}}}{1em}{\normalsize}
    % subsubsections
    \titleformat{\subsubsection}
        {\normalfont\sffamily\itshape}{\textsc%
        {\MakeTextLowercase{\thesubsubsection}}}%
        {1em}{\normalsize\itshape}        
    % paragraphs
    \titleformat{\paragraph}[runin]
        {\normalfont\normalsize\sffamily}{\textsc%
        {\MakeTextLowercase{\theparagraph}}}%
        {0pt}{\spacedlowsmallcaps}    
    % descriptionlabels
    \renewcommand{\descriptionlabel}[1]{\hspace*{\labelsep}%
    \bfseries\spacedlowsmallcaps{#1}}
    \titlespacing*{\chapter}{0pt}{1\baselineskip}%
    {2\baselineskip}
    \titlespacing*{\section}{0pt}{2\baselineskip}%
    {.8\baselineskip}[\marginparsep]
    \titlespacing*{\subsection}{0pt}{1.5\baselineskip}%
    {.8\baselineskip}[\marginparsep]
    \titlespacing*{\paragraph}{0pt}{1\baselineskip}%
    {1\baselineskip}
\end{lstlisting}
%
Itemize lists with semi-transparent labels.
\begin{lstlisting}
\renewcommand\labelitemi{\color{halfgray}$\bullet$} 
\end{lstlisting}
%
Settings of captions.
\begin{lstlisting}
\captionsetup{format=hang,font=small,labelfont={sf,bf}}
\captionsetup[table]{skip=\medskipamount}
\end{lstlisting}
%
Symmetrical marginal notes.
\begin{lstlisting}
\let\graffito\relax
\def\graffito@setup{% 
    \slshape\footnotesize% 
    \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}}} 
\end{lstlisting}
%
Space between the lines.
\begin{lstlisting}
\linespread{1.00}
\end{lstlisting}
%
``Double square'' text body (like in version~2.3 of ClassicThesis), for documents written in A4 format using Palatino font.
\begin{lstlisting}
\ifthenelse{\boolean{@a5paper}}%
{\relax}%
{% A4
  \ifthenelse{\boolean{@minionpro}}%
  {\relax}%
  {% Palatino or other
    \PackageInfo{classicthesis}{A4 paper, Palatino or other}
    \areaset[5mm]{312pt}{699pt}
    % 624 + 33 head + 42 head \the\footskip
    \setlength{\marginparwidth}{7em}%
    \setlength{\marginparsep}{2em}%
  }%
}
\end{lstlisting}
%
The {\ttfamily\textbackslash\color{RoyalBlue}{arsincludegraphics}} command is defined, which allows to include graphics with ``Alice Blue'' coloured background. In the previous versions of \arsclassica{} package, {\ttfamily\textbackslash\color{RoyalBlue}{arsincludegraphics}} command was named {\ttfamily\textbackslash\color{RoyalBlue}{myincludegraphics}}: the old name is still mantained (for now), but deprecated.
\begin{lstlisting}
\definecolor{aliceblue}{RGB}{240,248,255}

\let\ars@@includegraphics\includegraphics
\newcommand{\arsincludegraphics}[2][]{%
  \begingroup\setlength{\fboxsep}{0pt}%
   \colorbox{aliceblue}{\ars@@includegraphics[#1]{#2}}%
  \endgroup}
\def\myincludegraphics{\PackageWarning{classiclatex}{%
  The command \noexpand\myincludegraphics is
  obsolete;\MessageBreak use \string\arsincludegraphics}% 
  \arsincludegraphics}
\end{lstlisting}
Settings of \pkgname{hyperref}.
\begin{lstlisting}
\hypersetup{%
    colorlinks=true, linktocpage=true, pdfstartpage=3, 
    pdfstartview=FitV, breaklinks=true, pdfpagemode=UseNone, 
    pageanchor=true, pdfpagemode=UseOutlines,%
    plainpages=false, bookmarksnumbered,
    bookmarksopen=true,%
    bookmarksopenlevel=1,%
    hypertexnames=true, pdfhighlight=/O,%
    urlcolor=webbrown, linkcolor=RoyalBlue, 
    citecolor=RoyalBlue,%
    pagecolor=RoyalBlue,%
    pdfsubject={},%
    pdfkeywords={},%
    pdfcreator={pdfLaTeX},%
    pdfproducer={LaTeX con hyperref e ClassicThesis}%
}

\ifdefined\myTitle 
   \hypersetup{pdftitle={\myTitle}}
\else 
   \relax
\fi

\ifdefined\myName 
   \hypersetup{pdfauthor={\textcopyright\ \myName}}
\else 
   \relax
\fi
\end{lstlisting}
%
Definition of the commands
{\ttfamily\textbackslash\color{RoyalBlue}{ctLaTeX}},
{\ttfamily\textbackslash\color{RoyalBlue}{ctLaTeXe}} e
{\ttfamily\textbackslash\color{RoyalBlue}{ctTeX}}, 
which allow to reproduce respectively the \LaTeX, \LaTeXe{} e \TeX{} logos correctly written in Iwona.\index{Iwona}
\begin{lstlisting}
\def\@ppljLaTeX{{\upshape 
   \sbox\z@{\check@mathfonts\fontsize\sf@size\z@%
   \math@fontsfalse\selectfont A}% 
   \sbox\tw@ T% 
   L\kern-.55\wd\z@ 
   \vbox to\ht\tw@{\copy\z@\vss}% 
   \kern-.25\wd0 
        \@ctTeX}} 
\def\@ppljTeX{{\upshape T\kern -.08em \lower .3ex\hbox{E}%
\kern -.08em X}} 

\def\@ppljscLaTeX{{\upshape\scshape 
   \sbox\z@{\check@mathfonts\fontsize\sf@size\z@%
   \math@fontsfalse\selectfont a}% 
   \sbox\tw@ t% 
   l\kern-.6\wd\z@ 
   \vbox to\ht\tw@{\copy\z@\vss}% 
   \kern-.25\wd0 
        \@ctTeX}} 
\def\@ppljscTeX{{\upshape\scshape t\kern -.085em
\lower .25ex\hbox{e}\kern -.085em x}} 

\def\@iwonaLaTeX{{\upshape 
   \sbox\z@{\check@mathfonts\fontsize\sf@size\z@%
   \math@fontsfalse\selectfont A}% 
   \sbox\tw@ T% 
   L\kern-.5\wd\z@ 
   \vbox to\ht\tw@{\copy\z@\vss}% 
   \kern-.2\wd0 
        \@ctTeX}} 
\def\@iwonaTeX{{\upshape T\kern -.12em \lower .3ex\hbox{E}%
   \kern -.12em X}} 

\def\@iwonascLaTeX{{\upshape\scshape 
   \sbox\z@{\check@mathfonts\fontsize\sf@size\z@%
   \math@fontsfalse%
   \selectfont a}% 
   \sbox\tw@ t% 
   l\kern-.5\wd\z@ 
   \vbox to\ht\tw@{\copy\z@\vss}% 
   \kern-.2\wd0 
        \@ctTeX}} 
\def\@iwonascTeX{{\upshape\scshape t\kern -.1em
   \lower .25ex\hbox{e}\kern -.1em x}} 

\def\ct@sc{sc} 
\def\@ctTeX{\csname @\f@family\ifx\f@shape\ct@sc sc%
\fi TeX\endcsname} 

\DeclareRobustCommand\ctLaTeX{% 
  \texorpdfstring{\textls[1]{\csname @\f@family\ifx%
  \f@shape\ct@sc sc\fi LaTeX\endcsname}}{LaTeX}} 
\DeclareRobustCommand\ctLaTeXe{% 
  \texorpdfstring{\textls[1]{\ctLaTeX\csname @\ifx%
  \f@shape\ct@sc sc\fi twoe\endcsname}}{LaTeX2e}} 

\def\@twoe{\kern.1em$\m@th2_{\textstyle\varepsilon}$} 
\def\@sctwoe{\kern.15em$\m@th{\scriptscriptstyle2}%
_\varepsilon$}

\DeclareRobustCommand\ctTeX{% 
  \texorpdfstring{\textls[1]{\csname @\f@family\f@shape TeX%
  \endcsname}}{TeX}} 
\end{lstlisting}
%
The following code allows to have, in the table of contents, the headlines in spaced small caps, even when the table of contents spreads over more than two pages (fixing a little bug of \classicthesis).
\begin{lstlisting}
\def\toc@headingbkORrp{% 
  \def\toc@heading{% 
    \chapter*{\contentsname}% 
    \@mkboth{\spacedlowsmallcaps{\contentsname}} 
      {\spacedlowsmallcaps{\contentsname}}}} 
\@ifclassloaded{scrreprt}{\toc@headingbkORrp}{} 
\@ifclassloaded{scrbook}{\toc@headingbkORrp}{}
\end{lstlisting}
