diff --git a/befehle.tex b/befehle.tex new file mode 100644 index 0000000..37aa867 --- /dev/null +++ b/befehle.tex @@ -0,0 +1,94 @@ + +% Acronyms +% ======== +% The argument appears in small caps. +\newcommand\acro[1]{\textsc{\lowercase{#1}}} + +% Variables +% ========= +\newcommand\widefiguremargin{-.22\textwidth} +\newcommand\widefigurewidth{.49\textwidth} +\newcommand\widefiguregap{.02\textwidth} +\newcommand\widefiguresum{1.4\textwidth} + +% Wide box +% ======== +% Box that runs into both margins. To be used inside a floating environment like figure or table. +\newcommand\widebox[1]{ + \hspace{\widefiguremargin} + \begin{minipage}{\widefiguresum} + #1 + \end{minipage} +} + +% Column rules +% ============ +% Adds two rules each spanning approximately half of the available textwidth (as defined by \widefigurewidth). +\newcommand\colrules{ + \rule{\widefigurewidth}{0.4pt} + \hspace{\widefiguregap} + \rule{\widefigurewidth}{0.4pt} +} + +% Simple code examples +% ==================== +% Box for example code next to the rendered example. +% +% Arguments: +% 1. Label. +% 2. Content path without extension. If a corresponding PDF file exists, it gets included as an image. Otherwise, the LaTeX code gets rendered directly. +% 3. Caption. +\newcommand\example[3]{ + \Example{#1}{#2}{#2}{#3} +} + +% Extended code examples +% ====================== +% Box for example code next to the rendered example. +% Depending on the third argument, the source path for the right-side rendering can differ from the source path of the left-side listing. +% Useful if only an excerpt of the document to be rendered affects the entire output. +% +% Arguments: +% 1. Label. +% 2. Content path without extension. If a corresponding PDF file exists, it gets included as an image. Otherwise, the LaTeX code gets rendered directly. +% 3. Alternative path for Rendering (c.f. 2.) +% 4. Caption. +\newcommand\Example[4]{ + \begin{figure}[htp] + \widebox{ + % Top rules: + \colrules + % Left content: code listing: + \begin{subfigure}{\widefigurewidth} + \inputminted[breaklines]{tex}{listings/#2.tex} + \end{subfigure} + \hspace{\widefiguregap} + % Right content: image or rendered example: + \begin{subfigure}{\widefigurewidth} + \IfFileExists{listings/#3.pdf}{ + \includegraphics[width=\linewidth]{listings/#3.pdf} + }{ + \medskip + \input{listings/#3} + \medskip + } + \end{subfigure} + % Bottom rules: + \colrules + % Left caption: + \begin{subfigure}[t]{\widefigurewidth} + \caption{\LaTeX-Code} + \label{#1-code} + \end{subfigure} + \hspace{\widefiguregap} + % Right caption: + \begin{subfigure}[t]{\widefigurewidth} + \caption{Ergebnis} + \label{#1-result} + \end{subfigure} + } + % General caption: + \caption{#4} + \label{#1} + \end{figure} +} \ No newline at end of file diff --git a/main.tex b/main.tex index 3a2ad1c..553c252 100644 --- a/main.tex +++ b/main.tex @@ -1,20 +1,20 @@ -\input{praeambel.tex} % Präambel +\input{praeambel.tex} % Preamble +\input{befehle.tex} % Custom commands % \addbibresource{literature.bib} - \title{\LaTeX-Skript} \author{Bernhard Luedtke \and Christian Kremitzl \and Florian Knoch \and Anika Amma} \begin{document} -% Titelseite +% Title page \input{content/titelseite.tex} -% oder einfach -%\maketitle +% or simply +% \maketitle \thispagestyle{empty} \newpage -\setcounter{page}{1} % Titelseite soll nicht mitgezählt werden +\setcounter{page}{1} % Don't count title page. \tableofcontents \newpage @@ -37,6 +37,6 @@ \input{content/hilfe-und-informationen.tex} -% Literaturverzeichnis +% References \end{document} diff --git a/praeambel.tex b/praeambel.tex index ce77554..bbb898e 100644 --- a/praeambel.tex +++ b/praeambel.tex @@ -1,110 +1,41 @@ \documentclass[a4paper, ngerman]{article} +% Language and font encoding \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{babel} -\usepackage{eurosym, tipa, textcomp, textgreek, upgreek} % Sonderzeichen +% Special characters +\usepackage{eurosym, tipa, textcomp, textgreek, upgreek} -\usepackage{amssymb, amsfonts, amsmath} % Mathezeug +% Mathematical symbols +\usepackage{amssymb, amsfonts, amsmath} -\usepackage[hidelinks]{hyperref} % Referenzen als Links - -\usepackage{cleveref} % mehr mit Referenzen +% References and URLs +\usepackage[hidelinks]{hyperref} +\usepackage{cleveref} +% Images \usepackage{graphicx} \graphicspath{graphics/} + +% Multiple captions in one figure \usepackage{subcaption} -%\usepackage{floatrow} -\usepackage{paralist} % kompakte Listen +% Compact lists +\usepackage{paralist} -\usepackage{longtable, array, tabularx, booktabs, colortbl} % Tabellenzeug +% Tables +\usepackage{longtable, array, tabularx, booktabs, colortbl} +% ToDos \usepackage{todonotes} -\usepackage{minted} % Quelltext-Listings - -\usepackage{csquotes} % für \enquote - -\usepackage{fontawesome5} % Icons -% TODO: Ggf. rauswerfen - -\newcommand\acro[1]{\textsc{\lowercase{#1}}} - -\newcommand\widefiguremargin{-.22\textwidth} -\newcommand\widefigurewidth{.49\textwidth} -\newcommand\widefiguregap{.02\textwidth} -\newcommand\widefiguresum{1.4\textwidth} - -% Box that runs into both margins. To be used inside a floating environment like figure or table. -\newcommand\widebox[1]{ - \hspace{\widefiguremargin} - \begin{minipage}{\widefiguresum} - #1 - \end{minipage} -} - -\newcommand\colrules{ - \rule{\widefigurewidth}{0.4pt} - \hspace{\widefiguregap} - \rule{\widefigurewidth}{0.4pt} -} - -% Box for example code next to the rendered example. -% Arguments: -% 1. Label. -% 2. Content path without extension. If a corresponding PDF file exists, it gets included as an image. Otherwise, the LaTeX code gets rendered directly. -% 3. Caption. -\newcommand\example[3]{ - \Example{#1}{#2}{#2}{#3} -} - - -% Box for example code next to the rendered example. -% Arguments: -% 1. Label. -% 2. Content path without extension. If a corresponding PDF file exists, it gets included as an image. Otherwise, the LaTeX code gets rendered directly. -% 3. Alternative path for Rendering (c.f. 2.) -% 4. Caption. -\newcommand\Example[4]{ - \begin{figure}[htp] - \widebox{ - % Top rules: - \colrules - % Left content: code listing: - \begin{subfigure}{\widefigurewidth} - \inputminted[breaklines]{tex}{listings/#2.tex} - \end{subfigure} - \hspace{\widefiguregap} - % Right content: image or rendered example: - \begin{subfigure}{\widefigurewidth} - \IfFileExists{listings/#3.pdf}{ - \includegraphics[width=\linewidth]{listings/#3.pdf} - }{ - \medskip - \input{listings/#3} - \medskip - } - \end{subfigure} - % Bottom rules: - \colrules - % Left caption: - \begin{subfigure}[t]{\widefigurewidth} - \caption{\LaTeX-Code} - \label{#1-code} - \end{subfigure} - \hspace{\widefiguregap} - % Right caption: - \begin{subfigure}[t]{\widefigurewidth} - \caption{Ergebnis} - \label{#1-result} - \end{subfigure} - } - % General caption: - \caption{#4} - \label{#1} - \end{figure} -} +% Sourcecode listings +\usepackage{minted} +% Quotes (\enquote) +\usepackage{csquotes} +% Icons +\usepackage{fontawesome5}