Zusätzliche Variante des Example-Befehls zur Anzeige eines anderen Datei.

This commit is contained in:
Kremitzl 2020-11-22 22:08:16 +01:00
parent 09d11f617a
commit 98dc03f803
30 changed files with 124 additions and 37 deletions

View File

@ -1,4 +1,4 @@
default: default: listings
pdflatex --output-directory content/grundstruktur/ content/grundstruktur/hallowelt.tex ./compile_listings
pdflatex --output-directory content/grundstruktur/ content/grundstruktur/titelei.tex
pdflatex --shell-escape main.tex pdflatex --shell-escape main.tex

20
compile_listings Executable file
View File

@ -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

View File

@ -1,5 +0,0 @@
public class Test {
public static void main(/*…*/) {
System.out.println("Welcome, fellow LaTeX learners!");
}
}

View File

@ -1 +0,0 @@
\inputminted{java}{content/code/Test.java}

View File

@ -33,7 +33,7 @@ Ein interessanter Aspekt des What-you-see-is-what-you-mean-Paradigmas ist die Ar
\begin{table}[h!] \begin{table}[h!]
\center \center
\begin{tabular}{ll} \begin{tabular}{cl}
\toprule \toprule
Kürzel & Position \\ Kürzel & Position \\
\midrule \midrule

View File

@ -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. 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. 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} \Example{lst:grundaufbau-latex-dokument}{grundstruktur/hallowelt}{grundstruktur/hallowelt_crop}{Beispielhafter Aufbau eines einfachen \LaTeX-Dokuments mit Präambel und Dokumentumgebung}
\todo{Wirklich? :D \\ Vielleicht lieber auf \cref{lst:titelei} verweisen?}
\subsection{Präambel} \subsection{Präambel}
Beginnen wir mit der 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} \subsubsection{Abschnitte und Kapitel}
Texte werden durch Überschriften in Abschnitte und Kapitel unterteilt. 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 …} 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. 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: 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. Wird kein Datum angegeben, wird per default das aktuelle Datum gesetzt.
Die genaue Gestaltung hängt ab von der verwendeten Dokumentklasse. 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} \subsubsection{Verzeichnisse}\label{subsubsec:inhaltsverzeichnis}

Binary file not shown.

View File

@ -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. 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} \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. 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.

View File

@ -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. 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{table}[h!]
\begin{tabular}{@{}ll@{}} \widebox{
\toprule \begin{tabular}{@{}p{\widefigurewidth}p{\widefigurewidth}@{}}
Befehl & Effekt \\ \toprule
\midrule Befehl & Effekt \\
\mintinline{tex}|\newpage| & fügt eine neue Seite ein \\ \midrule
\mintinline{tex}|\textbf{Text}| & schreibt den übergebenen Text fett \\ \mintinline{tex}|\newpage| & fügt eine neue Seite ein \\
\mintinline{tex}|\usepackage[utf8]{inputenc}| & setzt die Textkodierung auf \acro{UTF-8} \\ \mintinline{tex}|\textbf{Text}| & schreibt den übergebenen Text fett \\
\mintinline{tex}|\documentclass[a4paper,12pt]{article}| & setzt die Dokumentenklasse \\ \mintinline{tex}|\usepackage[utf8]{inputenc}| & setzt die Textkodierung auf \acro{UTF-8} \\
\mintinline{tex}|\frac{3}{4}| & fügt den mathematischen Bruch ein \\ \mintinline{tex}|\documentclass[a4paper,12pt]{article}| & setzt die Dokumentenklasse \\
\bottomrule \mintinline{tex}|\frac{3}{4}| & fügt den mathematischen Bruch ein \\
\end{tabular} \bottomrule
\end{tabular}
}
\caption{Beispiele für \LaTeX-Befehle} \caption{Beispiele für \LaTeX-Befehle}
\label{tbl:latex-commands} \label{tbl:latex-commands}
\end{table} \end{table}

6
listings/code/Test.java Normal file
View File

@ -0,0 +1,6 @@
public class Test {
public static void main(/*…*/) {
System.out.println("Welcome, " +
"fellow LaTeX learners!");
}
}

View File

@ -3,4 +3,4 @@
\inputminted[ \inputminted[
breaklines=true, breaklines=true,
bgcolor=bg bgcolor=bg
]{java}{content/code/Test.java} ]{java}{listings/code/Test.java}

View File

@ -0,0 +1 @@
\inputminted{java}{listings/code/Test.java}

Binary file not shown.

View File

@ -0,0 +1,9 @@
\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\begin{document}
\thispagestyle{empty}
Hallo, Welt!
\end{document}

View File

@ -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}

Binary file not shown.

View File

@ -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}

View File

@ -1,4 +1,4 @@
% \begin{table}[h] \begin{table}[h]
\centering \centering
\begin{tabular}{llr} \begin{tabular}{llr}
\toprule \toprule
@ -10,5 +10,5 @@
\bottomrule \bottomrule
\end{tabular} \end{tabular}
\caption{Bekannte Programmiersprachen} \caption{Bekannte Programmiersprachen}
% \end{table} \end{table}

View File

@ -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}

View File

@ -53,26 +53,37 @@
% Box for example code next to the rendered example. % Box for example code next to the rendered example.
% Arguments: % 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. % 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]{ \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] \begin{figure}[htp]
\widebox{ \widebox{
% Top rules: % Top rules:
\colrules \colrules
% Left content: code listing: % Left content: code listing:
\begin{subfigure}{\widefigurewidth} \begin{subfigure}{\widefigurewidth}
\inputminted[breaklines]{tex}{content/#2.tex} \inputminted[breaklines]{tex}{listings/#2.tex}
\end{subfigure} \end{subfigure}
\hspace{\widefiguregap} \hspace{\widefiguregap}
% Right content: image or rendered example: % Right content: image or rendered example:
\begin{subfigure}{\widefigurewidth} \begin{subfigure}{\widefigurewidth}
\IfFileExists{content/#2.pdf}{ \IfFileExists{listings/#3.pdf}{
\includegraphics[width=\linewidth]{content/#2.pdf} \includegraphics[width=\linewidth]{listings/#3.pdf}
}{ }{
\medskip \medskip
\input{content/#2} \input{listings/#3}
\medskip \medskip
} }
\end{subfigure} \end{subfigure}
@ -91,8 +102,9 @@
\end{subfigure} \end{subfigure}
} }
% General caption: % General caption:
\caption{#3} \caption{#4}
\label{#1} \label{#1}
\end{figure} \end{figure}
} }