diff --git a/Makefile b/Makefile index 1d0fd02..b5bb3d6 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -default: - pdflatex --output-directory content/grundstruktur/ content/grundstruktur/hallowelt.tex - pdflatex --output-directory content/grundstruktur/ content/grundstruktur/titelei.tex +default: listings + ./compile_listings pdflatex --shell-escape main.tex + diff --git a/compile_listings b/compile_listings new file mode 100755 index 0000000..38852d7 --- /dev/null +++ b/compile_listings @@ -0,0 +1,20 @@ +#!/bin/bash +for D in listings/*; do + if [ -d "${D}" ]; then + for F in ${D}/*_page.tex; do + if [ -f "${F}" ]; then + echo "###### Compiling ${F} ######" + pdflatex --output-directory "${D}" "${F}" + fi + done + for F in ${D}/*_crop.tex; do + if [ -f "${F}" ]; then + echo "###### Compiling and cropping ${F} ######" + pdflatex --output-directory "${D}" "${F}" + pdfcrop "${D}/$(basename -s .tex ${F}).pdf" \ + "${D}/$(basename -s .tex ${F}).pdf" + fi + done + fi +done + diff --git a/content/code/Test.java b/content/code/Test.java deleted file mode 100644 index 0ad139e..0000000 --- a/content/code/Test.java +++ /dev/null @@ -1,5 +0,0 @@ -public class Test { - public static void main(/*…*/) { - System.out.println("Welcome, fellow LaTeX learners!"); - } -} \ No newline at end of file diff --git a/content/code/minted-import.tex b/content/code/minted-import.tex deleted file mode 100644 index a8e1414..0000000 --- a/content/code/minted-import.tex +++ /dev/null @@ -1 +0,0 @@ -\inputminted{java}{content/code/Test.java} \ No newline at end of file diff --git a/content/grafiken.tex b/content/grafiken.tex index 1cf1130..3aa64bc 100644 --- a/content/grafiken.tex +++ b/content/grafiken.tex @@ -33,7 +33,7 @@ Ein interessanter Aspekt des What-you-see-is-what-you-mean-Paradigmas ist die Ar \begin{table}[h!] \center - \begin{tabular}{ll} + \begin{tabular}{cl} \toprule Kürzel & Position \\ \midrule diff --git a/content/grundstruktur.tex b/content/grundstruktur.tex index ea2514f..730dd6d 100644 --- a/content/grundstruktur.tex +++ b/content/grundstruktur.tex @@ -5,9 +5,7 @@ Im Kern besteht es immer aus zwei Teilen: einer Präambel zu Beginn sowie der un Als \emph{Präambel} bezeichnen wir die ersten Befehle eines \LaTeX-Dokumentes, mit denen globale Einstellungen wie die Dokumentklasse, die Zeichenkodierung, die Sprache und das Seitenformat festgelegt werden. Die \emph{Dokumentumgebung} hingegen enthält den Inhalt, der später in der fertigen \acro{PDF}-Datei erscheinen soll. -\example{lst:grundaufbau-latex-dokument}{grundstruktur/hallowelt}{Beispielhafter Aufbau eines einfachen \LaTeX-Dokuments mit Präambel und Dokumentumgebung} - -\todo{Wirklich? :D \\ Vielleicht lieber auf \cref{lst:titelei} verweisen?} +\Example{lst:grundaufbau-latex-dokument}{grundstruktur/hallowelt}{grundstruktur/hallowelt_crop}{Beispielhafter Aufbau eines einfachen \LaTeX-Dokuments mit Präambel und Dokumentumgebung} \subsection{Präambel} Beginnen wir mit der Präambel. @@ -101,7 +99,7 @@ Für den Backslash muss der Befehl \mintinline{latex}{\textbackslash} verwendet \subsubsection{Abschnitte und Kapitel} Texte werden durch Überschriften in Abschnitte und Kapitel unterteilt. Immer nutzbar sind die in \cref{lst:ueberschriften} dargestellten Befehle.\todo{So gehts natürlich nicht, das zerschießt uns alle Counter …} -\example{lst:ueberschriften}{grundstruktur/ueberschriften}{Überschriftenebenen} +\Example{lst:ueberschriften}{grundstruktur/ueberschriften}{grundstruktur/ueberschriften_crop}{Überschriftenebenen} Je nach Dokumentenklasse sind außerdem \mintinline{latex}{\chapter{Kapitel}} und \mintinline{latex}{\part{Teil}} verfügbar -- beispielsweise in Büchern. Mit Sternchen fallen bei allen diesen Befehlen die Nummerierung und der Eintrag im Inhaltsverzeichnis\footnote{Vgl. \cref{subsubsec:inhaltsverzeichnis}} weg: @@ -122,7 +120,7 @@ Mehrere Autoren werden dabei mit \mintinline{latex}{\and} verbunden. Wird kein Datum angegeben, wird per default das aktuelle Datum gesetzt. Die genaue Gestaltung hängt ab von der verwendeten Dokumentklasse. -\example{lst:titelei}{grundstruktur/titelei}{Die Titelei} +\Example{lst:titelei}{grundstruktur/titelei}{grundstruktur/titelei_crop}{Die Titelei} \subsubsection{Verzeichnisse}\label{subsubsec:inhaltsverzeichnis} diff --git a/content/grundstruktur/hallowelt.pdf b/content/grundstruktur/hallowelt.pdf deleted file mode 100644 index 03e0e45..0000000 Binary files a/content/grundstruktur/hallowelt.pdf and /dev/null differ diff --git a/content/tabellen.tex b/content/tabellen.tex index 10761f9..4453e1b 100644 --- a/content/tabellen.tex +++ b/content/tabellen.tex @@ -22,7 +22,7 @@ Wenn ihr den zusätzlichen Weißraum entfernen möchtet, der standardmäßig die Die komplette Tabelle kann dann beispielsweise so aussehen wie in \cref{lst:tabelle} abgebildet. -\example{lst:tabelle}{tabellen/beispieltabelle}{Eine komplette Tabelle} +\Example{lst:tabelle}{tabellen/beispieltabelle}{tabellen/beispieltabelle_renderbar}{Eine komplette Tabelle} \paragraph{Überlänge} Für Tabellen, die über eine Seite hinausgehen, oder die Zeilenumbrüche innerhalb einzelner Tabellenzellen erfordern, kann zusätzlich das Paket \texttt{longtable} eingebunden werden, mit dem \texttt{booktabs} ebenfalls kompatibel ist. diff --git a/content/wie-funktioniert-latex.tex b/content/wie-funktioniert-latex.tex index 7afcbed..a1b2da4 100644 --- a/content/wie-funktioniert-latex.tex +++ b/content/wie-funktioniert-latex.tex @@ -20,17 +20,19 @@ Die in Quelltext verwendeten Befehle folgen einem allgemeinen Aufbau: Ein Befehl kann mehrere optionale und/oder obligatorische Parameter verwenden. Manche Befehle besitzen keine obligatorischen Parameter. Einige werden in \cref{tbl:latex-commands} dargestellt. \begin{table}[h!] - \begin{tabular}{@{}ll@{}} - \toprule - Befehl & Effekt \\ - \midrule - \mintinline{tex}|\newpage| & fügt eine neue Seite ein \\ - \mintinline{tex}|\textbf{Text}| & schreibt den übergebenen Text fett \\ - \mintinline{tex}|\usepackage[utf8]{inputenc}| & setzt die Textkodierung auf \acro{UTF-8} \\ - \mintinline{tex}|\documentclass[a4paper,12pt]{article}| & setzt die Dokumentenklasse \\ - \mintinline{tex}|\frac{3}{4}| & fügt den mathematischen Bruch ein \\ - \bottomrule - \end{tabular} + \widebox{ + \begin{tabular}{@{}p{\widefigurewidth}p{\widefigurewidth}@{}} + \toprule + Befehl & Effekt \\ + \midrule + \mintinline{tex}|\newpage| & fügt eine neue Seite ein \\ + \mintinline{tex}|\textbf{Text}| & schreibt den übergebenen Text fett \\ + \mintinline{tex}|\usepackage[utf8]{inputenc}| & setzt die Textkodierung auf \acro{UTF-8} \\ + \mintinline{tex}|\documentclass[a4paper,12pt]{article}| & setzt die Dokumentenklasse \\ + \mintinline{tex}|\frac{3}{4}| & fügt den mathematischen Bruch ein \\ + \bottomrule + \end{tabular} + } \caption{Beispiele für \LaTeX-Befehle} \label{tbl:latex-commands} \end{table} diff --git a/content/absatzformatierung/flattersatz.tex b/listings/absatzformatierung/flattersatz.tex similarity index 100% rename from content/absatzformatierung/flattersatz.tex rename to listings/absatzformatierung/flattersatz.tex diff --git a/content/aufzaehlungen/definition.tex b/listings/aufzaehlungen/definition.tex similarity index 100% rename from content/aufzaehlungen/definition.tex rename to listings/aufzaehlungen/definition.tex diff --git a/content/aufzaehlungen/verschachtelt.tex b/listings/aufzaehlungen/verschachtelt.tex similarity index 100% rename from content/aufzaehlungen/verschachtelt.tex rename to listings/aufzaehlungen/verschachtelt.tex diff --git a/listings/code/Test.java b/listings/code/Test.java new file mode 100644 index 0000000..79b7c35 --- /dev/null +++ b/listings/code/Test.java @@ -0,0 +1,6 @@ +public class Test { + public static void main(/*…*/) { + System.out.println("Welcome, " + + "fellow LaTeX learners!"); + } +} diff --git a/content/code/minted-import-styled.tex b/listings/code/minted-import-styled.tex similarity index 76% rename from content/code/minted-import-styled.tex rename to listings/code/minted-import-styled.tex index e32dd63..5368e59 100644 --- a/content/code/minted-import-styled.tex +++ b/listings/code/minted-import-styled.tex @@ -3,4 +3,4 @@ \inputminted[ breaklines=true, bgcolor=bg -]{java}{content/code/Test.java} \ No newline at end of file +]{java}{listings/code/Test.java} diff --git a/listings/code/minted-import.tex b/listings/code/minted-import.tex new file mode 100644 index 0000000..13792e3 --- /dev/null +++ b/listings/code/minted-import.tex @@ -0,0 +1 @@ +\inputminted{java}{listings/code/Test.java} diff --git a/content/code/minted-umgebung.tex b/listings/code/minted-umgebung.tex similarity index 100% rename from content/code/minted-umgebung.tex rename to listings/code/minted-umgebung.tex diff --git a/content/code/minted-varianten.tex b/listings/code/minted-varianten.tex similarity index 100% rename from content/code/minted-varianten.tex rename to listings/code/minted-varianten.tex diff --git a/content/grundstruktur/hallowelt.tex b/listings/grundstruktur/hallowelt.tex similarity index 100% rename from content/grundstruktur/hallowelt.tex rename to listings/grundstruktur/hallowelt.tex diff --git a/listings/grundstruktur/hallowelt_crop.pdf b/listings/grundstruktur/hallowelt_crop.pdf new file mode 100644 index 0000000..1ad5aa0 Binary files /dev/null and b/listings/grundstruktur/hallowelt_crop.pdf differ diff --git a/listings/grundstruktur/hallowelt_crop.tex b/listings/grundstruktur/hallowelt_crop.tex new file mode 100644 index 0000000..0d5ee7f --- /dev/null +++ b/listings/grundstruktur/hallowelt_crop.tex @@ -0,0 +1,9 @@ +\documentclass[ngerman]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[ngerman]{babel} + +\begin{document} +\thispagestyle{empty} +Hallo, Welt! +\end{document} diff --git a/content/grundstruktur/titelei.tex b/listings/grundstruktur/titelei.tex similarity index 100% rename from content/grundstruktur/titelei.tex rename to listings/grundstruktur/titelei.tex diff --git a/content/grundstruktur/titelei.pdf b/listings/grundstruktur/titelei_crop.pdf similarity index 87% rename from content/grundstruktur/titelei.pdf rename to listings/grundstruktur/titelei_crop.pdf index 8a147e0..e03beb3 100644 Binary files a/content/grundstruktur/titelei.pdf and b/listings/grundstruktur/titelei_crop.pdf differ diff --git a/listings/grundstruktur/titelei_crop.tex b/listings/grundstruktur/titelei_crop.tex new file mode 100644 index 0000000..879d39f --- /dev/null +++ b/listings/grundstruktur/titelei_crop.tex @@ -0,0 +1,14 @@ +\documentclass[ngerman]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[ngerman]{babel} + +\title{Die Welt der Trüffel} +\author{Fooboar Rüssel \and Fachschaft WIAI} +\date{\today} + +\begin{document} +\pagenumbering{gobble} +\maketitle +\end{document} + diff --git a/content/grundstruktur/ueberschriften.tex b/listings/grundstruktur/ueberschriften.tex similarity index 100% rename from content/grundstruktur/ueberschriften.tex rename to listings/grundstruktur/ueberschriften.tex diff --git a/listings/grundstruktur/ueberschriften_crop.pdf b/listings/grundstruktur/ueberschriften_crop.pdf new file mode 100644 index 0000000..22790f8 Binary files /dev/null and b/listings/grundstruktur/ueberschriften_crop.pdf differ diff --git a/listings/grundstruktur/ueberschriften_crop.tex b/listings/grundstruktur/ueberschriften_crop.tex new file mode 100644 index 0000000..5773e40 --- /dev/null +++ b/listings/grundstruktur/ueberschriften_crop.tex @@ -0,0 +1,20 @@ +\documentclass[ngerman]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[ngerman]{babel} + +\begin{document} +\thispagestyle{empty} +\section{Ebene 1} +Lorem ipsum dolor sit amet, consectetur adipisici elit. +\subsection{Ebene 2} +Lorem ipsum dolor sit amet, consectetur adipisici elit. +\subsubsection{Ebene 3} +Lorem ipsum dolor sit amet, consectetur adipisici elit. +\paragraph{Ebene 4} +Lorem ipsum dolor sit amet, consectetur adipisici elit. +\subparagraph{Ebene 5} +Lorem ipsum dolor sit amet, consectetur adipisici elit. +\end{document} + + diff --git a/content/sonderzeichen/leerzeichen.tex b/listings/sonderzeichen/leerzeichen.tex similarity index 100% rename from content/sonderzeichen/leerzeichen.tex rename to listings/sonderzeichen/leerzeichen.tex diff --git a/content/tabellen/beispieltabelle.tex b/listings/tabellen/beispieltabelle.tex similarity index 91% rename from content/tabellen/beispieltabelle.tex rename to listings/tabellen/beispieltabelle.tex index 806cad9..64babf8 100644 --- a/content/tabellen/beispieltabelle.tex +++ b/listings/tabellen/beispieltabelle.tex @@ -1,4 +1,4 @@ -% \begin{table}[h] +\begin{table}[h] \centering \begin{tabular}{llr} \toprule @@ -10,5 +10,5 @@ \bottomrule \end{tabular} \caption{Bekannte Programmiersprachen} -% \end{table} +\end{table} diff --git a/listings/tabellen/beispieltabelle_renderbar.tex b/listings/tabellen/beispieltabelle_renderbar.tex new file mode 100644 index 0000000..bcb2613 --- /dev/null +++ b/listings/tabellen/beispieltabelle_renderbar.tex @@ -0,0 +1,11 @@ +\centering +\begin{tabular}{llr} + \toprule + Sprache & Autor & Jahr \\ + \midrule + C++ & Bjarne Stroustrup & 1985 \\ + Java & James Gosling & 1998 \\ + Python & Guido van Rossum & 1991 \\ + \bottomrule +\end{tabular} +\caption*{Bekannte Programmiersprachen} diff --git a/praeambel.tex b/praeambel.tex index 7638848..ce77554 100644 --- a/praeambel.tex +++ b/praeambel.tex @@ -53,26 +53,37 @@ % Box for example code next to the rendered example. % Arguments: -% 1. Label +% 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 +% 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}{content/#2.tex} + \inputminted[breaklines]{tex}{listings/#2.tex} \end{subfigure} \hspace{\widefiguregap} % Right content: image or rendered example: \begin{subfigure}{\widefigurewidth} - \IfFileExists{content/#2.pdf}{ - \includegraphics[width=\linewidth]{content/#2.pdf} + \IfFileExists{listings/#3.pdf}{ + \includegraphics[width=\linewidth]{listings/#3.pdf} }{ \medskip - \input{content/#2} + \input{listings/#3} \medskip } \end{subfigure} @@ -91,8 +102,9 @@ \end{subfigure} } % General caption: - \caption{#3} + \caption{#4} \label{#1} \end{figure} } +