about summary refs log tree commit diff stats
path: root/common/latex/preamble
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-03 11:17:29 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-03 11:17:29 +0200
commit1b0d1d4b8f373d9c05996055fb85ea8a2bb949a7 (patch)
tree93781d3a88a498ec27ea1e3f550e899476f11496 /common/latex/preamble
parentfix(templates/latex/{academia,letter}): Share files and update to lpm v2.0 (diff)
downloadflake-templates-1b0d1d4b8f373d9c05996055fb85ea8a2bb949a7.tar.gz
flake-templates-1b0d1d4b8f373d9c05996055fb85ea8a2bb949a7.zip
refactor(templates/latex): Split the preamble up into multiple files
Diffstat (limited to 'common/latex/preamble')
-rw-r--r--common/latex/preamble/academia/mod.tex4
-rw-r--r--common/latex/preamble/academia/theorems/definitions.tex90
-rw-r--r--common/latex/preamble/academia/theorems/mod.tex2
-rw-r--r--common/latex/preamble/academia/theorems/packages.tex6
-rw-r--r--common/latex/preamble/academia/visuals.tex1
-rw-r--r--common/latex/preamble/beamer/appendix.tex1
-rw-r--r--common/latex/preamble/beamer/columns.tex1
-rw-r--r--common/latex/preamble/beamer/float_positioning.tex4
-rw-r--r--common/latex/preamble/beamer/mod.tex6
-rw-r--r--common/latex/preamble/beamer/pdfpc.tex2
-rw-r--r--common/latex/preamble/core/chemistry.tex5
-rw-r--r--common/latex/preamble/core/copyright.tex15
-rw-r--r--common/latex/preamble/core/date_and_time.tex1
-rw-r--r--common/latex/preamble/core/encoding.tex4
-rw-r--r--common/latex/preamble/core/graphics_and_floats.tex22
-rw-r--r--common/latex/preamble/core/index.tex8
-rw-r--r--common/latex/preamble/core/linting.tex1
-rw-r--r--common/latex/preamble/core/margindate.tex37
-rw-r--r--common/latex/preamble/core/math.tex25
-rw-r--r--common/latex/preamble/core/mod.tex15
-rw-r--r--common/latex/preamble/core/notes.tex1
-rw-r--r--common/latex/preamble/core/references.tex37
-rw-r--r--common/latex/preamble/core/visuals.tex10
-rw-r--r--common/latex/preamble/mod.tex3
24 files changed, 301 insertions, 0 deletions
diff --git a/common/latex/preamble/academia/mod.tex b/common/latex/preamble/academia/mod.tex
new file mode 100644
index 0000000..39b9230
--- /dev/null
+++ b/common/latex/preamble/academia/mod.tex
@@ -0,0 +1,4 @@
+% derived from:
+% https://github.com/gillescastel/lecture-notes/blob/929672a96abc27eaeb6fa58b1d277b3582d28532/group-theory/preamble.tex
+\input{headers/preamble/academia/theorems/mod.tex}
+\input{headers/preamble/academia/visuals.tex}
diff --git a/common/latex/preamble/academia/theorems/definitions.tex b/common/latex/preamble/academia/theorems/definitions.tex
new file mode 100644
index 0000000..4355b3c
--- /dev/null
+++ b/common/latex/preamble/academia/theorems/definitions.tex
@@ -0,0 +1,90 @@
+\renewcommand\qedsymbol{\ensuremath{\text{\textit{O.}}~\epsilon.~\delta.}}
+% \renewcommand\qedsymbol{\dots}
+
+\theoremstyle{definition}
+
+
+\declaretheoremstyle[
+	headfont=\bfseries\sffamily\color{NavyBlue!80},
+	bodyfont=\normalfont,
+	headpunct={:\\},
+	qed=\qedsymbol,
+	mdframed={
+			linewidth=2pt,
+			rightline=false, topline=false, bottomline=false,
+			linecolor=NavyBlue, backgroundcolor=NavyBlue!5,
+		},
+]{thmexample}
+\declaretheorem[numbered=no, style=thmexample,name=Beispiel]{eg}
+
+\declaretheoremstyle[
+	headfont=\bfseries\sffamily\color{RawSienna!80},
+	bodyfont=\normalfont,
+	headpunct={:\\},
+	qed=\qedsymbol,
+	mdframed={
+			linewidth=2pt,
+			rightline=false, topline=false, bottomline=false,
+			linecolor=RawSienna, backgroundcolor=RawSienna!5,
+		},
+]{thmexercise}
+\declaretheorem[numbered=no, style=thmexercise, name=Aufgabe]{ex}
+
+
+\declaretheoremstyle[
+	headfont=\bfseries\sffamily\color{ForestGreen!80},
+	bodyfont=\normalfont,
+	headpunct={:\\},
+	qed=\qedsymbol,
+	mdframed={
+			linewidth=2pt,
+			rightline=false, topline=false, bottomline=false,
+			linecolor=ForestGreen, backgroundcolor=ForestGreen!5,
+		},
+]{thmdef}
+\declaretheorem[numbered=yes, style=thmdef, name=Definition]{definition}
+
+\declaretheoremstyle[
+	headfont=\bfseries\sffamily\color{RawSienna!70!black},
+	bodyfont=\normalfont,
+	headpunct={:\\},
+	qed=\qedsymbol,
+	mdframed={
+			linewidth=2pt,
+			leftline=false, rightline=true, topline=false, bottomline=false,
+			linecolor=RawSienna, backgroundcolor=Red!5,
+		}
+]{thmtheorem}
+\declaretheorem[numbered=yes, style=thmtheorem, name=Satz]{theorem}
+
+
+\declaretheoremstyle[
+	headfont=\bfseries\sffamily\color{Violet!80},
+	bodyfont=\normalfont,
+	headpunct={:\\},
+	notebraces={f\"ur }{},
+	qed=\qedsymbol,
+	mdframed={
+			linewidth=2pt,
+			rightline=false, topline=false, bottomline=false,
+			linecolor=Violet, backgroundcolor=Violet!5,
+		},
+]{thmsolution}
+\makeatletter
+\@ifclasswith{report}{nosolutions}
+{%
+	\NewEnviron{solution}[1][]{Eine L\"osung mit dem Name ("L\"osung für #1") wurde ausgeblendet.\ \\ \par}
+	\newcommand\hdsolution[1]{L\"osung ausgeblendet}
+}{%
+	\declaretheorem[numbered=no, style=thmsolution, name=L\"osung]{replacementSolution}
+
+	\NewEnviron{solution}[1][]{
+		\vspace{-1em}
+		\begin{replacementSolution}[#1]
+			\
+			\BODY
+		\end{replacementSolution}
+	}
+	\newcommand\hdsolution[1]{#1}
+}
+\makeatother
diff --git a/common/latex/preamble/academia/theorems/mod.tex b/common/latex/preamble/academia/theorems/mod.tex
new file mode 100644
index 0000000..8350276
--- /dev/null
+++ b/common/latex/preamble/academia/theorems/mod.tex
@@ -0,0 +1,2 @@
+\input{headers/preamble/academia/theorems/definitions.tex}
+\input{headers/preamble/academia/theorems/packages.tex}
diff --git a/common/latex/preamble/academia/theorems/packages.tex b/common/latex/preamble/academia/theorems/packages.tex
new file mode 100644
index 0000000..c881ab5
--- /dev/null
+++ b/common/latex/preamble/academia/theorems/packages.tex
@@ -0,0 +1,6 @@
+\usepackage[framemethod=TikZ]{mdframed}
+\mdfsetup{skipabove=1em,skipbelow=0em, innertopmargin=5pt, innerbottommargin=6pt}
+
+\usepackage{amsthm}  % math commands for theorems
+\usepackage{thmtools} % improved theorems
+\usepackage{environ} % for hiding of the solution env
diff --git a/common/latex/preamble/academia/visuals.tex b/common/latex/preamble/academia/visuals.tex
new file mode 100644
index 0000000..dada594
--- /dev/null
+++ b/common/latex/preamble/academia/visuals.tex
@@ -0,0 +1 @@
+\usepackage{fancyhdr}  % Text layout and margins, headers so on
diff --git a/common/latex/preamble/beamer/appendix.tex b/common/latex/preamble/beamer/appendix.tex
new file mode 100644
index 0000000..e0599b9
--- /dev/null
+++ b/common/latex/preamble/beamer/appendix.tex
@@ -0,0 +1 @@
+\usepackage{appendixnumberbeamer}
diff --git a/common/latex/preamble/beamer/columns.tex b/common/latex/preamble/beamer/columns.tex
new file mode 100644
index 0000000..594bc49
--- /dev/null
+++ b/common/latex/preamble/beamer/columns.tex
@@ -0,0 +1 @@
+\usepackage{multicol} % allows for multi-columns everywhere, with the "multicols" environment
diff --git a/common/latex/preamble/beamer/float_positioning.tex b/common/latex/preamble/beamer/float_positioning.tex
new file mode 100644
index 0000000..28a9167
--- /dev/null
+++ b/common/latex/preamble/beamer/float_positioning.tex
@@ -0,0 +1,4 @@
+% \usepackage[absolute,overlay,showboxes]{textpos}
+\usepackage[absolute,overlay]{textpos}
+
+\usepackage{adjustbox}
diff --git a/common/latex/preamble/beamer/mod.tex b/common/latex/preamble/beamer/mod.tex
new file mode 100644
index 0000000..a82acad
--- /dev/null
+++ b/common/latex/preamble/beamer/mod.tex
@@ -0,0 +1,6 @@
+\setbeamercolor{itemize/enumerate body}{fg=gray}
+
+\input{headers/preamble/beamer/appendix.tex}
+\input{headers/preamble/beamer/columns.tex}
+\input{headers/preamble/beamer/float_positioning.tex}
+\input{headers/preamble/beamer/pdfpc.tex}
diff --git a/common/latex/preamble/beamer/pdfpc.tex b/common/latex/preamble/beamer/pdfpc.tex
new file mode 100644
index 0000000..93e1f2d
--- /dev/null
+++ b/common/latex/preamble/beamer/pdfpc.tex
@@ -0,0 +1,2 @@
+% "overridenote" must be specified as a package option
+\usepackage[overridenote]{pdfpc}
diff --git a/common/latex/preamble/core/chemistry.tex b/common/latex/preamble/core/chemistry.tex
new file mode 100644
index 0000000..94f2592
--- /dev/null
+++ b/common/latex/preamble/core/chemistry.tex
@@ -0,0 +1,5 @@
+\usepackage[locale = %INIT_SIUNITX_LANGUAGE]{siunitx} % For easy unit representation
+\sisetup{per-mode = fraction}
+
+\usepackage[version=4]{mhchem} % for \ce command
+\usepackage{chemfig}
diff --git a/common/latex/preamble/core/copyright.tex b/common/latex/preamble/core/copyright.tex
new file mode 100644
index 0000000..268b910
--- /dev/null
+++ b/common/latex/preamble/core/copyright.tex
@@ -0,0 +1,15 @@
+\ExplSyntaxOn
+\cs_new_protected:Npn \SetAuthors #1
+{
+	\tl_const:Nn \AuthorList {#1}
+}
+\cs_new_protected:Npn \SetYears #1
+{
+	\tl_const:Nn \YearList {#1}
+}
+\ExplSyntaxOff
+
+\usepackage[scale=2]{ccicons} % Typeset the cc icons
+
+% TODO: Add a `\copyright` macro, that generates the copyright text automatically and
+% language defined <2024-10-03>
diff --git a/common/latex/preamble/core/date_and_time.tex b/common/latex/preamble/core/date_and_time.tex
new file mode 100644
index 0000000..32e838d
--- /dev/null
+++ b/common/latex/preamble/core/date_and_time.tex
@@ -0,0 +1 @@
+\usepackage[%INIT_DATE_TIME_LANGUAGE, showdow]{datetime2} % make handling dates easier
diff --git a/common/latex/preamble/core/encoding.tex b/common/latex/preamble/core/encoding.tex
new file mode 100644
index 0000000..1f48d2a
--- /dev/null
+++ b/common/latex/preamble/core/encoding.tex
@@ -0,0 +1,4 @@
+
+\usepackage[utf8]{inputenc} % use utf8 encoding
+\usepackage[T1]{fontenc} % for 8bit font support
+\usepackage{lmodern} % latin modern fonts, should be better than ae, aecompl
diff --git a/common/latex/preamble/core/graphics_and_floats.tex b/common/latex/preamble/core/graphics_and_floats.tex
new file mode 100644
index 0000000..b975c5f
--- /dev/null
+++ b/common/latex/preamble/core/graphics_and_floats.tex
@@ -0,0 +1,22 @@
+\usepackage{graphicx} % allows for easy inclusion of graphics
+\usepackage{xcolor} % colors and color mixing \color{red!30!green!40!blue}
+
+\usepackage{tikz} % Nice drawn graphics, for library see: https://tex.stackexchange.com/a/42664
+\usetikzlibrary{calc}
+
+\usepackage{pgfplots} % plots, 2D and 3D
+\pgfplotsset{compat=1.19} % Set a compatibility level, to be able to use the new versions
+
+\usetikzlibrary{external}
+\tikzexternalize[prefix=figures/, mode=list and make]
+
+% \usetikzlibrary{intersections, angles, quotes, calc, positioning}
+% \usetikzlibrary{arrows.meta} %TODO maybe deprecated?
+
+% \usepackage{tikz-cd} % better commutative diagrams
+% \usepackage{subcaption} % like caption package, but for subfigures
+% \usepackage{booktabs} % better tables
+
+
+\usepackage{float} % Allows placing floats here (H) and creating new floats `\newfloat`
+\usepackage{wrapfig} % Wraps text around figures with the \begin{wrapfigure} environment
diff --git a/common/latex/preamble/core/index.tex b/common/latex/preamble/core/index.tex
new file mode 100644
index 0000000..a52cc20
--- /dev/null
+++ b/common/latex/preamble/core/index.tex
@@ -0,0 +1,8 @@
+\usepackage{index} % Helps to create an index
+\makeindex
+
+\ifdraft{
+	\usepackage{showidx}
+} {
+	\message {Draft packages not loaded, showidx not loaded.}
+}
diff --git a/common/latex/preamble/core/linting.tex b/common/latex/preamble/core/linting.tex
new file mode 100644
index 0000000..a1bbe34
--- /dev/null
+++ b/common/latex/preamble/core/linting.tex
@@ -0,0 +1 @@
+\usepackage{nag}
diff --git a/common/latex/preamble/core/margindate.tex b/common/latex/preamble/core/margindate.tex
new file mode 100644
index 0000000..5579f98
--- /dev/null
+++ b/common/latex/preamble/core/margindate.tex
@@ -0,0 +1,37 @@
+\DTMnewdatestyle{margindate}{
+	\renewcommand*\DTMdisplaydate[4]{
+		\MakeLowercase{\DTMshortweekdayname{##4}}\space
+		\number##3\relax\space
+		\MakeLowercase{\DTMshortmonthname{##2}}\space
+		\DTMtwodigits{\DTMtwodigits{##1}}
+	}
+	\renewcommand*\DTMDisplaydate[4]{
+		\DTMshortweekdayname{##4}\space
+		##3\space
+		\DTMshortmonthname{##2}\space
+		\DTMtwodigits{\DTMtwodigits{##1}}
+	}
+}
+
+\NewDocumentCommand\MarginContent{m}{
+	\marginpar{
+		\small\textsf{\mbox{#1}}
+	}\relax
+}
+
+\NewDocumentCommand\MarginDate{m}{
+	{
+			\DTMsetdatestyle{margindate}
+
+			\MarginContent{\DTMDate{#1}}
+		}
+}
+
+\NewDocumentCommand\AnnotatedSection{m m}{
+	\section{#1}
+	\MarginContent{#2}
+}
+\NewDocumentCommand\DatedSection{m m}{
+	\section{#1}
+	\MarginDate{#2}
+}
diff --git a/common/latex/preamble/core/math.tex b/common/latex/preamble/core/math.tex
new file mode 100644
index 0000000..35144df
--- /dev/null
+++ b/common/latex/preamble/core/math.tex
@@ -0,0 +1,25 @@
+\usepackage{amsmath}  % extensive math commands
+\usepackage{amsfonts} % more fonts for math (fracture, boldfaced and so on)
+\usepackage{mathtools} % extension to amsmath, with more sensible defaults (eq numbers only when referenced)
+\usepackage{amssymb} % more symbols, mostly redundant because already loaded by something else
+\usepackage{mathrsfs} % support for the RSFS fonts (through \mathscr command)
+\usepackage{cancel} % allows to cancel a part in math mode, for example to shorten a term
+\usepackage{bm} % bold mode in math, but better than \boldsymbol command from ams. \bm
+
+% number sets
+\NewDocumentCommand\N{}{\ensuremath{\mathbb{N}}}
+\NewDocumentCommand\R{}{\ensuremath{\mathbb{R}}}
+\NewDocumentCommand\Z{}{\ensuremath{\mathbb{Z}}}
+\NewDocumentCommand\Q{}{\ensuremath{\mathbb{Q}}}
+\NewDocumentCommand\C{}{\ensuremath{\mathbb{C}}}
+\NewDocumentCommand\O{}{\ensuremath{\emptyset}} % replaces the Ø
+
+% readable limits
+\let\svlim\lim{}
+\renewcommand\lim{\svlim\limits}
+
+% aliases
+\let\implies\Rightarrow{}
+\let\impliedby\Leftarrow{}
+
+\let\epsilon{\varepsilon} % I like the textual epsilon more
diff --git a/common/latex/preamble/core/mod.tex b/common/latex/preamble/core/mod.tex
new file mode 100644
index 0000000..3a800a1
--- /dev/null
+++ b/common/latex/preamble/core/mod.tex
@@ -0,0 +1,15 @@
+% Core packages (used in the implementation of this preamble)
+\usepackage{ifdraft}
+
+\input{headers/preamble/core/chemistry.tex}
+\input{headers/preamble/core/copyright.tex}
+\input{headers/preamble/core/date_and_time.tex}
+\input{headers/preamble/core/encoding.tex}
+\input{headers/preamble/core/graphics_and_floats.tex}
+\input{headers/preamble/core/index.tex}
+\input{headers/preamble/core/linting.tex}
+\input{headers/preamble/core/margindate.tex}
+\input{headers/preamble/core/math.tex}
+\input{headers/preamble/core/notes.tex}
+\input{headers/preamble/core/references.tex}
+\input{headers/preamble/core/visuals.tex}
diff --git a/common/latex/preamble/core/notes.tex b/common/latex/preamble/core/notes.tex
new file mode 100644
index 0000000..8eab467
--- /dev/null
+++ b/common/latex/preamble/core/notes.tex
@@ -0,0 +1 @@
+\usepackage[obeyFinal,%INIT_BABLE_LANGUAGE]{todonotes}
diff --git a/common/latex/preamble/core/references.tex b/common/latex/preamble/core/references.tex
new file mode 100644
index 0000000..69a6ad6
--- /dev/null
+++ b/common/latex/preamble/core/references.tex
@@ -0,0 +1,37 @@
+\usepackage[%INIT_BABLE_LANGUAGE]{babel} % For language support
+\usepackage{csquotes} % required by biblatex
+
+% \usepackage{biblatex-dw}
+\usepackage[backend=biber,
+	% style=footnote-dw,
+	% pageref=true,
+	% annotation=true,
+	% library=true,
+	%
+	style=numeric,
+	autocite=plain,
+	doi=true,
+	isbn=true,
+	loccittracker=true,
+	opcittracker=true,
+	% No idea what it does, but it was recomended to me
+	defernumbers=true
+]{biblatex} % For bibtex references
+\addbibresource{ref/references.bib}
+% \bibliography{res/reference} % Set the location of the references
+
+\usepackage[nospace,%INIT_BABLE_LANGUAGE]{varioref} % for \vref
+\usepackage[%INIT_BABLE_LANGUAGE, noabbrev, nameinlink]{cleveref}
+\usepackage[pdflang=%INIT_DATE_TIME_LANGUAGE]{hyperref}
+\hypersetup{
+	colorlinks,
+	linkcolor={black},
+	citecolor={black},
+	urlcolor={blue!80!black}
+}
+
+\ifdraft{
+	\usepackage{showlabels}
+} {
+	\message {Draft packages not loaded, showlabels not loaded.}
+}
diff --git a/common/latex/preamble/core/visuals.tex b/common/latex/preamble/core/visuals.tex
new file mode 100644
index 0000000..96a2fd2
--- /dev/null
+++ b/common/latex/preamble/core/visuals.tex
@@ -0,0 +1,10 @@
+\usepackage[disable=ifdraft]{microtype} % makes text better to read
+\usepackage{emptypage} % no page numbers and headings on empty pages
+
+\usepackage{blindtext} % blindtext
+
+
+% horizontal rule
+\NewDocumentCommand{\hr}{}{
+	\par\noindent\rule[0.5ex]{\linewidth}{0.5pt}
+}
diff --git a/common/latex/preamble/mod.tex b/common/latex/preamble/mod.tex
new file mode 100644
index 0000000..f11ff21
--- /dev/null
+++ b/common/latex/preamble/mod.tex
@@ -0,0 +1,3 @@
+\input{headers/preamble/academia/mod.tex}
+\input{headers/preamble/beamer/mod.tex}
+\input{headers/preamble/core/mod.tex}