Files
quic-message/lib/abdokoma.sty
Sebastian Rust dd3a223a1c Initial commit
2023-03-08 14:01:45 +01:00

268 lines
7.6 KiB
TeX

% ----------------------------------------------------------------------- %
% File: koma.sty KOMA customizations %
% Author: Abdó Roig-Maranges <abdo.roig@gmail.com> 2012-2013 %
% ----------------------------------------------------------------------- %
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{abdokoma}
% ----------------------------------------------------------------------- %
% Layout %
% ----------------------------------------------------------------------- %
% Linespread
\newcommand{\widelinespread}{\linespread{1.3}}
\newcommand{\regularlinespread}{\linespread{1}}
% ----------------------------------------------------------------------- %
% Options %
% ----------------------------------------------------------------------- %
% Hooks
\providecommand{\hyperrefhook}{}
\providecommand{\sectioninghook}{}
% Draft option
\DeclareOption{draft}{
\ExecuteOptions{regularspread}
\PassOptionsToPackage{showkeys}{draftools}
}
% Line spread options
\DeclareOption{widespread}{
\widelinespread
}
\DeclareOption{regularspread}{
\regularlinespread
}
% Hyperref option
\DeclareOption{hyperref}{
\PassOptionsToPackage{final}{hyperref}
\renewcommand{\hyperrefhook}{%
\hypersetup{%
pdfencoding=auto,%
unicode,%
psdextra,%
pdftitle={\@title},%
pdfauthor={\@author},%
colorlinks,%
citecolor=citecolor,%
filecolor=filecolor,%
linkcolor=linkcolor,%
urlcolor=urlcolor%
}%
}
}
\DeclareOption{nohyperref}{
\PassOptionsToPackage{draft}{hyperref}
\renewcommand{\hyperrefhook}{}
}
% Sectioning depth (tocdepth3 means paragraph is depth 3, after section and
% subsection)
\DeclareOption{tocdepth3}{
\renewcommand{\sectioninghook}{
\setupsectioning{3}
\@ifclassloaded{scrreprt}{\setupchapterpart}{}
\@ifclassloaded{scrbook}{\setupchapterpart}{}
}
}
\DeclareOption{tocdepth2}{
\renewcommand{\sectioninghook}{
\setupsectioning{2}
\@ifclassloaded{scrreprt}{\setupchapterpart}{}
\@ifclassloaded{scrbook}{\setupchapterpart}{}
}
}
% Defaults
\ExecuteOptions{tocdepth3}
\ExecuteOptions{hyperref}
\ExecuteOptions{regularspread}
% Process options of the package.
\ProcessOptions
% Delay options to be processed.
\AtBeginDocument{\setupheader}
% ----------------------------------------------------------------------- %
% Package loading %
% ----------------------------------------------------------------------- %
% NOTE: without etex, tikz + beamer complain about not enough room for dimendions.
\RequirePackage{etex} % etex stuff
\RequirePackage{iftex} % conditionals on tex engine
\RequirePackage{ifpdf} % conditional on pdf output
% NOTE: needed on texlive 2016 due to some packages not following recent lualatex changes.
\ifLuaTeX
\RequirePackage{luatex85}
\fi
\RequirePackage{babel} % language support
\RequirePackage[nodayofweek]{datetime} % date formating
%\RequirePackage{etoolbox} % e-tex tools
%\RequirePackage{ifthen} % Make decisions inside latex
%\RequirePackage{calc} % Arithmetic with lengths
%\RequirePackage{xparse} % Extended command definitions
%\RequirePackage{xkeyval} % Use of Key value pairs
% page layout
\RequirePackage{geometry} % Geometry of the page
\RequirePackage[automark]{scrpage2} % Customizing headings
\RequirePackage{titletoc} % Tweaking TOC
% bibliography
\RequirePackage[autostyle]{csquotes} % quotation (required by biblatex).
\RequirePackage[ % Bibliography
backend=biber,
style=numeric,
url=false,
doi=true,
eprint=true
]{biblatex}
% biblatex tweaks
\renewbibmacro{in:}{}
% ams
\RequirePackage{amsmath} % AMS stuff
% graphics and color
\RequirePackage{xcolor} % provides color
\RequirePackage{graphicx} % Include external graphics
\ifpdf
\RequirePackage{tikz} % Graphics
\usetikzlibrary{matrix}
\usetikzlibrary{calc}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{cd}
\tikzcdset{arrow style=tikz}
\fi
% personal
\RequirePackage{abdocolor} % Custom colors
\RequirePackage{abdoalias} % My aliases
\RequirePackage{abdofonts} % My font settings
\RequirePackage{abdothms} % My theorems
\RequirePackage{draftools} % Various draft tools
% typesetting tools
\RequirePackage{url} % provides URL typesetting
% NOTE: hyperref must load last, or it breaks showkeys...
\RequirePackage{hyperref}
% NOTE: but cleveref must load after hyperref
\RequirePackage[ % Smart references
noabbrev,
capitalise
]{cleveref}
% ----------------------------------------------------------------------- %
% Visual appearence %
% ----------------------------------------------------------------------- %
% change emph
\let\emphold\emph
\renewcommand{\emph}[1]{\textbf{\color{emphcolor}#1}}
\newcommand{\setupheader}{%
\setkomafont{pageheadfoot}{\sffamily}
\pagestyle{scrheadings}%
\setheadsepline{0.0pt}%
\ihead{\headmark} \chead{} \ohead{}%
%\ifoot{} \cfoot{} \ofoot{}%
}
\newcommand{\setupsectioning}[1]{
% section colors
\addtokomafont{section}{\color{section1color}}
\addtokomafont{subsection}{\color{section2color}}
\addtokomafont{subsubsection}{\color{section3color}}
\addtokomafont{paragraph}{\color{paragraphcolor}}
\pagecolor{backgroundcolor}
\color{textcolor}
\setcounter{tocdepth}{4}
\renewcommand*{\toclevel@section}{1}
\renewcommand*{\toclevel@subsection}{2}
\def\sectioning@argument{#1}
\if\sectioning@argument2
\def\sectioning@paragraphmargin{2.5em}
\renewcommand*{\toclevel@paragraph}{2}
\else
\def\sectioning@paragraphmargin{4.5em}
\renewcommand*{\toclevel@paragraph}{3}
\fi
% table of contents style (titletoc)
\titlecontents{section}[1em]{\bfseries\sffamily\vspace*{1ex}}{\thecontentslabel. }
{}{\titlerule*[1pc]{}\thecontentspage}[]
\titlecontents{subsection}[2.5em]{}{\sffamily\thecontentslabel. }
{}{\ \titlerule*[1em]{$\cdot$}\ \thecontentspage}[]
\titlecontents*{paragraph}[\sectioning@paragraphmargin]{\sffamily\itshape\small}{\thecontentslabel. }
{}{\, \thecontentspage}[\hspace*{0.5em} -- \hspace*{0.5em}]
}
\newcommand{\setupchapterpart}{
% chapter and part colors
\addtokomafont{part}{\color{chaptercolor}}
\addtokomafont{chapter}{\color{chaptercolor}}
% table of contents style
\renewcommand*{\toclevel@part}{-1}
\titlecontents{part}[0pt]{\bfseries\sffamily\Large\vspace*{1ex}}{\thecontentslabel. }
{}{}[]
\renewcommand*{\toclevel@chapter}{0}
\titlecontents{chapter}[0pt]{\bfseries\sffamily\vspace*{1ex}}{\thecontentslabel. }
{}{\titlerule*[1pc]{}\thecontentspage}[]
}
% ----------------------------------------------------------------------- %
% Miscelania %
% ----------------------------------------------------------------------- %
% Unnumbereds footnotes
\def\unfootnote{\xdef\@thefnmark{}\@footnotetext}
% Shortcut to select a tex-title and an alternate string to embed in pdf's
\newcommand{\texorpdf}[2]{\texorpdfstring{#1}{#2}}
% ----------------------------------------------------------------------- %
% Run hooks %
% ----------------------------------------------------------------------- %
\hyperrefhook
\sectioninghook