diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-10-03 11:17:29 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-10-03 11:17:29 +0200 |
commit | 1b0d1d4b8f373d9c05996055fb85ea8a2bb949a7 (patch) | |
tree | 93781d3a88a498ec27ea1e3f550e899476f11496 /common | |
parent | fix(templates/latex/{academia,letter}): Share files and update to lpm v2.0 (diff) | |
download | flake-templates-1b0d1d4b8f373d9c05996055fb85ea8a2bb949a7.tar.gz flake-templates-1b0d1d4b8f373d9c05996055fb85ea8a2bb949a7.zip |
refactor(templates/latex): Split the preamble up into multiple files
Diffstat (limited to 'common')
25 files changed, 303 insertions, 0 deletions
diff --git a/common/latex/preamble.tex b/common/latex/preamble.tex new file mode 100644 index 0000000..110e3a0 --- /dev/null +++ b/common/latex/preamble.tex @@ -0,0 +1,2 @@ +\input{headers/preamble/mod.tex} +\input{headers/preamble/preamble_local.tex} 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} |