698 lines
29 KiB
Text
698 lines
29 KiB
Text
|
% ********************************************************************
|
||
|
% classicthesis.sty
|
||
|
%
|
||
|
% Copyright (C) 2017 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}%[2015/01/01] % fixed via latexrelease package, see below
|
||
|
\ProvidesPackage{classicthesis}[2017/10/13 v4.4 Typographic style for a classic-looking thesis]
|
||
|
\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{parts} % use part division
|
||
|
|
||
|
\DeclareBoolOption{nochapters} % OBSOLETE - automatic check; disable all chapter-specific commands
|
||
|
\DeclareBoolOption{eulerchapternumbers} % use AMS Euler for chapter font (otherwise Palatino)
|
||
|
\DeclareBoolOption{linedheaders} % chaper headers will have line above and beneath
|
||
|
\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} % load listings package and setup LoL
|
||
|
\DeclareBoolOption{subfig} % setup for preloaded @subfig package
|
||
|
|
||
|
\DeclareBoolOption{eulermath} % use awesome Euler fonts for mathematical formulae; only with pdflatex
|
||
|
\DeclareBoolOption{beramono} % toggle a nice monospaced font (w/ bold) + pre-installed
|
||
|
\DeclareBoolOption{minionpro} % setup for minion pro font; use minion pro small caps as well; only with pdflatex
|
||
|
|
||
|
\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{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@a4paper}}{\renewcommand*{\ct@paper}{a4}}{}
|
||
|
%%% then
|
||
|
\ifthenelse{\equal{\ct@paper}{a4}}%
|
||
|
{\setboolean{ct@a4paper}{true} \setboolean{ct@a5paper}{false} \setboolean{ct@letterpaper}{false}}%
|
||
|
{}
|
||
|
\ifthenelse{\equal{\ct@paper}{a5}}%
|
||
|
{\setboolean{ct@a4paper}{false} \setboolean{ct@a5paper}{true} \setboolean{ct@letterpaper}{false}}%
|
||
|
{}
|
||
|
\ifthenelse{\equal{\ct@paper}{letter}}%
|
||
|
{\setboolean{ct@a4paper}{false} \setboolean{ct@a5paper}{false} \setboolean{ct@letterpaper}{true}}%
|
||
|
{}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
% subfig-related stuff
|
||
|
\@ifpackageloaded{subfig}%
|
||
|
{\setboolean{ct@subfig}{true}%
|
||
|
}{\relax}
|
||
|
|
||
|
\ifthenelse{\boolean{ct@subfig}}%
|
||
|
{\PassOptionsToPackage{subfigure}{tocloft}%
|
||
|
}{\relax}%
|
||
|
|
||
|
% listings-related stuff
|
||
|
\ifthenelse{\boolean{ct@listings}}%
|
||
|
{\@ifpackageloaded{listings}%
|
||
|
{\relax}{\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, linedheaders, manychapters, listsseparated, eulerchapternumbers and parts}%
|
||
|
\setboolean{ct@linedheaders}{false}%
|
||
|
\setboolean{ct@listsseparated}{false}%
|
||
|
\setboolean{ct@eulerchapternumbers}{false}%
|
||
|
\setboolean{ct@parts}{false}% %%%IVO: note that parts exist even when chapters are not defined!
|
||
|
\setboolean{ct@manychapters}{false}%
|
||
|
\setboolean{ct@floatperchapter}{false}%
|
||
|
\setboolean{ct@nochapters}{true}
|
||
|
}{\relax}
|
||
|
|
||
|
% ********************************************************************
|
||
|
% PDF and XeLaTeX Stuff
|
||
|
% ********************************************************************
|
||
|
\RequirePackage{ifpdf}
|
||
|
\RequirePackage{ifxetex}
|
||
|
\RequirePackage{ifluatex}
|
||
|
\ifthenelse{\boolean{pdf}\OR\boolean{luatex}\OR\boolean{xetex}}%
|
||
|
{
|
||
|
\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
|
||
|
}{}
|
||
|
|
||
|
|
||
|
% ********************************************************************
|
||
|
% Colors
|
||
|
% ********************************************************************
|
||
|
\PassOptionsToPackage{dvipsnames}{xcolor}
|
||
|
\RequirePackage{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{xetex}\OR\boolean{luatex}}
|
||
|
{ % use fontspec and OpenType fonts with utf8 engines
|
||
|
\RequirePackage{fontspec}
|
||
|
\setmainfont[Ligatures=TeX,Numbers=OldStyle]{TeX Gyre Pagella} % Palatino clone
|
||
|
\linespread{1.05} % a bit more for Palatino
|
||
|
\ifthenelse{\boolean{ct@beramono}}%
|
||
|
{\setmonofont[Scale=0.85]{DejaVu Sans Mono}} % like Bera; Scale=MatchLowercase
|
||
|
{\setmonofont[Scale=1]{Latin Modern Mono}}
|
||
|
\RequirePackage{unicode-math}
|
||
|
\setmathfont{TeX Gyre Pagella Math}
|
||
|
% font for the chapter numbers will be defined in the old way below
|
||
|
% because there is no OpenType Euler font; this is how it should be done:
|
||
|
%\newfontface\chapterNumber[Scale=7,Color=000000]{TeX Gyre Pagella Bold}
|
||
|
}
|
||
|
{ % use Type 1 fonts with pdflatex
|
||
|
\ifthenelse{\boolean{ct@minionpro}}% specialists: MinionPro
|
||
|
{%
|
||
|
% in order have Euler math fonts work with Minion, special option is needed
|
||
|
\ifthenelse{\boolean{ct@eulermath}}%
|
||
|
{%
|
||
|
\PassOptionsToPackage{opticals,mathlf,onlytext}{MinionPro}%
|
||
|
\RequirePackage{MinionPro} % opticals, fullfamily, osf
|
||
|
}{%
|
||
|
\PassOptionsToPackage{opticals,mathlf}{MinionPro}%
|
||
|
\RequirePackage{MinionPro} % opticals, fullfamily, osf
|
||
|
}
|
||
|
}{
|
||
|
% 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
|
||
|
}
|
||
|
|
||
|
\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
|
||
|
%*******************************************************
|
||
|
\@ifpackageloaded{typearea}%
|
||
|
{\relax}{%
|
||
|
\PassOptionsToPackage{headinclude,footinclude}{typearea}
|
||
|
\RequirePackage{typearea}%
|
||
|
}
|
||
|
|
||
|
\ifthenelse{\boolean{ct@letterpaper}}%
|
||
|
{% A4
|
||
|
\ifthenelse{\boolean{ct@minionpro}}%
|
||
|
{% Minion gets some extra sizes
|
||
|
\PackageInfo{classicthesis}{letter paper, MinionPro}%
|
||
|
\areaset[current]{332pt}{634pt}% guessing from A4 values
|
||
|
\setlength{\marginparwidth}{7.5em}%
|
||
|
\setlength{\marginparsep}{2em}%
|
||
|
}{% Palatino or other
|
||
|
\PackageInfo{classicthesis}{letter paper, Palatino or other}
|
||
|
\areaset[current]{356pt}{700pt} % guessing from A4 values
|
||
|
\setlength{\marginparwidth}{7em}%
|
||
|
\setlength{\marginparsep}{2em}%
|
||
|
}%
|
||
|
}{\relax}
|
||
|
\ifthenelse{\boolean{ct@a5paper}}%
|
||
|
{% A5
|
||
|
\ifthenelse{\boolean{ct@minionpro}}%
|
||
|
{% Minion gets some extra sizes
|
||
|
\PackageInfo{classicthesis}{A5 paper, MinionPro}%
|
||
|
\areaset[current]{278pt}{556pt}%
|
||
|
\setlength{\marginparwidth}{5em}%
|
||
|
\setlength{\marginparsep}{1.25em}%
|
||
|
}{% Palatino or other
|
||
|
\PackageInfo{classicthesis}{A5 paper, Palatino or other}%
|
||
|
\areaset[current]{288pt}{555pt}%
|
||
|
\setlength{\marginparwidth}{4em}%
|
||
|
\setlength{\marginparsep}{1.25em}%
|
||
|
}%
|
||
|
}{\relax}
|
||
|
\ifthenelse{\boolean{ct@a4paper}}%
|
||
|
{% A4
|
||
|
\ifthenelse{\boolean{ct@minionpro}}%
|
||
|
{% Minion gets some extra sizes
|
||
|
\PackageInfo{classicthesis}{A4 paper, MinionPro}%
|
||
|
\areaset[current]{312pt}{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[current]{370pt}{750pt} % ~ 336 * factor 2 + 33 head + 42 \the\footskip
|
||
|
% \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
|
||
|
% Libertine 10pt:
|
||
|
% Libertine 11pt:
|
||
|
% Libertine 12pt:
|
||
|
% kpfonts 10pt:
|
||
|
% kpfonts 11pt:
|
||
|
% kpfonts 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"
|
||
|
% 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}}}
|
||
|
|
||
|
\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
|
||
|
|
||
|
%%% engine-dependent letterspacing: microtype for pdflatex, fontspec for xelatex and luatex
|
||
|
\ifthenelse{\boolean{ct@minionpro}}{% MinionPro small caps
|
||
|
\PackageInfo{classicthesis}{Using MinionPro's textssc for character spacing.}
|
||
|
\DeclareRobustCommand{\spacedallcaps}[1]{\textssc{\MakeTextUppercase{#1}}}
|
||
|
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\textssc{\MakeTextLowercase{#1}}}
|
||
|
}{
|
||
|
% engine-based spacedallcaps and spacedlowsmallcaps
|
||
|
\ifthenelse{\boolean{pdf}\OR\boolean{luatex}}{ % pdf will soon test true for both pdflatex and luatex; \AND\NOT\boolean{luatex}
|
||
|
\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}}}
|
||
|
}{\relax}
|
||
|
|
||
|
\ifthenelse{\boolean{xetex}}{ % use fontspec features; \OR\boolean{luatex} does not work well
|
||
|
\DeclareRobustCommand{\spacedallcaps}[1]{{\addfontfeature{LetterSpace=18.0}\MakeTextUppercase{#1}}}% WordSpace=1.8
|
||
|
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{{\addfontfeatures{LetterSpace=14.0}\scshape\MakeTextLowercase{#1}}}% WordSpace=1.8
|
||
|
}{\relax}
|
||
|
|
||
|
\ifthenelse{\boolean{pdf}\OR\boolean{xetex}\OR\boolean{luatex}}% ever used? only dvi engines remain
|
||
|
{\relax}{%
|
||
|
\RequirePackage{soulutf8} % 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{\lowsmallcapsspacing{#1}}}%\protect
|
||
|
}%
|
||
|
}
|
||
|
|
||
|
% ********************************************************************
|
||
|
% 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{\thesection\enspace\spacedlowsmallcaps{#1}}}
|
||
|
\lehead{\mbox{\llap{\small\pagemark\kern2em}\headmark\hfil}}
|
||
|
\rohead{\mbox{\hfil{\headmark}\rlap{\small\kern2em\pagemark}}}
|
||
|
\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\centering\large}%
|
||
|
{\thispagestyle{empty}\partname~\MakeTextUppercase{\thepart}}{1em}%
|
||
|
{\color{Maroon}\spacedallcaps}[\bigskip\normalfont\normalsize\color{Black}\begin{quote}\ctparttext@print\end{quote}]
|
||
|
}{\relax}
|
||
|
% chapters
|
||
|
\ifthenelse{\boolean{ct@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{}\oldmarginpar{\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{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}{.} % <--- 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}{}%
|
||
|
\renewcommand{\cftpartaftersnumb}{\spacedlowsmallcaps}%
|
||
|
\setlength{\cftpartnumwidth}{\cftchapnumwidth}
|
||
|
\renewcommand{\cftpartfont}{\color{Maroon}\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}{\normalfont}%
|
||
|
\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}}%
|
||
|
{%
|
||
|
\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{flushmargin}{footmisc}%
|
||
|
\RequirePackage{footmisc}%
|
||
|
\setlength{\footnotemargin}{-.5em}%
|
||
|
\PackageWarningNoLine{classicthesis}{Using package "footmisc" with option %
|
||
|
"flushmargin" 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\ -- \texttt{classicthesis}~\myVersion\,]}
|
||
|
}{\renewcommand{\finalVersionString}{\emph{Final Version} as of \today\ (\texttt{classicthesis}~\myVersion).}}
|
||
|
|
||
|
% ********************************************************************
|
||
|
% 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}%
|
||
|
\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}}%
|
||
|
}
|
||
|
|
||
|
% ********************************************************************
|
||
|
% Backward-compatibility
|
||
|
% ********************************************************************
|
||
|
\let\myChapter\chapter
|
||
|
\let\myPart\part
|
||
|
\let\graffito\marginpar
|