diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/arsclassica/Chapters/Code.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/arsclassica/Chapters/Code.tex | 549 |
1 files changed, 549 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/arsclassica/Chapters/Code.tex b/Master/texmf-dist/doc/latex/arsclassica/Chapters/Code.tex new file mode 100644 index 00000000000..48fb5e1847c --- /dev/null +++ b/Master/texmf-dist/doc/latex/arsclassica/Chapters/Code.tex @@ -0,0 +1,549 @@ +%************************************************ +\myChapter{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}[2009/01/01 v2.5.3 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} +\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} + +\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; it works like {\ttfamily\textbackslash\color{RoyalBlue}{includegraphics}}. This works, of course, only with graphics with a transparent background, such us \textsc{pdf} or some \textsc{png} files. In the previous versions of \arsclassica, {\ttfamily\textbackslash\color{RoyalBlue}{arsincludegraphics}} command was named {\ttfamily\textbackslash\color{RoyalBlue}{myincludegraphics}}: the old name is still manteined (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} |