diff --git a/content/code/Test.java b/content/code/Test.java new file mode 100644 index 0000000..0ad139e --- /dev/null +++ b/content/code/Test.java @@ -0,0 +1,5 @@ +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-styled.tex b/content/code/minted-import-styled.tex new file mode 100644 index 0000000..e32dd63 --- /dev/null +++ b/content/code/minted-import-styled.tex @@ -0,0 +1,6 @@ +\usemintedstyle{monokai} +\definecolor{bg}{rgb}{0.1,0.1,0.2} +\inputminted[ + breaklines=true, + bgcolor=bg +]{java}{content/code/Test.java} \ No newline at end of file diff --git a/content/code/minted-import.tex b/content/code/minted-import.tex new file mode 100644 index 0000000..a8e1414 --- /dev/null +++ b/content/code/minted-import.tex @@ -0,0 +1 @@ +\inputminted{java}{content/code/Test.java} \ No newline at end of file diff --git a/content/code/minted-umgebung.tex b/content/code/minted-umgebung.tex new file mode 100644 index 0000000..38e89b2 --- /dev/null +++ b/content/code/minted-umgebung.tex @@ -0,0 +1,3 @@ +\begin{minted}{haskell} + [x^2 | x <- [1..200], even x] +\end{minted} \ No newline at end of file diff --git a/content/code/minted-varianten.tex b/content/code/minted-varianten.tex new file mode 100644 index 0000000..cc81e32 --- /dev/null +++ b/content/code/minted-varianten.tex @@ -0,0 +1,5 @@ +% Kurzschreibweise +Auch in der Kurzschreibweise erhält \mint{html}|

LaTeX im Studium

| eine eigene Zeile. + +% Inline-Umgebung +Der Methodenaufruf \mintinline{java}{o.doSomething();} erscheint hingegen inline im Fließtext. \ No newline at end of file diff --git a/content/quelltext-listings.tex b/content/quelltext-listings.tex index e69de29..cd42072 100644 --- a/content/quelltext-listings.tex +++ b/content/quelltext-listings.tex @@ -0,0 +1,67 @@ +\section{Quelltext-Listings} + +Um Quelltext in eigenen Arbeiten darzustellen, gibt es in \LaTeX verschiedene Wege. +Wir verwenden hierfür gern das Paket \mintinline{latex}{minted}, das zwar etwas zusätzlichen Installationsaufwand verursacht, dafür aber ansprechende Ergebnisse generiert und gut handzuhaben ist. + +\subsection{Installation} +Für \mintinline{latex}{minted} zu verwenden, ist eine Installation der Programmiersprache Python 3 notwendig. +Die Installationsdateien sind auf der Projekt-Website\footnote{Verfügbar unter \url{https://www.python.org/downloads/}.} zu finden. +Ein ausführlicherer Beitrag zur Installation unter Windows\footnote{Jason FitzpatrickHow to Install Python on Windows. How-To Geek. July 11, 2017. Verfügbar unter \url{https://www.howtogeek.com/197947/how-to-install-python-on-windows/}.} führt euch durch die verschiedenen Schritte, die speziell für dieses Betriebssystem notwendig sind\footnote{Insbesondere das Anpassen des Systempfads sollte nicht vergessen werden.}. + +Nach der erfolgreichen Installation solltet ihr in der Eingabeaufforderung\footnote{Navigation unter Windows: \faWindows\ + R → \enquote{cmd} eingeben → Enter} folgende Eingabe vornehmen können: + +\begin{minted}[]{bash} +$ python3 --version +Python 3.8.5 +\end{minted} + +Sollte die Versionsnummer höher sein, ist alles bestens. +Im gleichen Fenster gebt ihr jetzt den Befehl \mintinline{bash}{pip install Pygments} ein, womit das Pygments-Paket für Python installiert wird. +Ab jetzt könnt ihr das \LaTeX-Paket \mintinline{latex}{minted} über \mintinline{latex}{\usepackage{minted}} verwenden. + +\subsection{Compiler-Befehl ändern} +Bevor es allerdings richtig losgehen kann, müssen wir noch eine Kleinigkeit im Compile-Prozess anpassen. +Normalerweise ruft euer Editor beim Klick auf den grünen Pfeil etwa den folgenden Befehl auf: + +\begin{minted}[]{bash} +$ pdflatex main.tex +\end{minted} + +Welcher Befehl das bei euch genau ist, könnt ihr in \TeX studio unter \enquote{Optionen → \TeX studio konfigurieren → Befehle} einsehen. +Neben Pdf\LaTeX\ seht ihr den Befehl. +Die Datei, die kompiliert werden soll, wird hier durch \mintinline{bash}{%.tex} angegeben. +Außerdem sind üblicherweise noch zwei zusätzliche Angaben enthalten, jeweils mit einem Minus davor (\mintinline{bash}{-synctex=1 -interaction=nonstopmode}). +Diese Angaben heißen Flags und konfigurieren das Programm \mintinline{bash}{pdflatex}. +Eine solche Flag müssen wir ergänzen. +Platziert die Angabe \mintinline{bash}{--shell-escape} vor der Datei-Angabe (\mintinline{bash}{%.tex}): + +\begin{minted}[]{bash} +pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex +\end{minted} + +Nach Klick auf \enquote{Okay} ist der Einrichtungsschritt abgeschlossen. +Auch andere Editoren bieten die Möglichkeit, den Kompilierbefehl anzupassen. +Schaut am besten mal in die Einstellungen oder bemüht eine Suchmaschine. + +\section{Quelltext setzen} +Jetzt kann der eigentliche Spaß losgehen. +Quelltext könnt ihr von nun an unter Angabe der Sprache in einer eigenen Umgebung setzen: + +\example{lst:MintedEnvironment}{code/minted-umgebung}{Beispielhaftes Quelltext-Listing.} + +\noindent Außerdem gibt es eine Kurzschreibweise und eine Inline-Variante des Befehls: + +\example{lst:MintedVariants}{code/minted-varianten}{Kurzschreibweise und Inline-Listing.} + +Um Redundanz zu vermeiden, ist es manchmal praktisch, den Quelltext direkt aus der Quelldatei einzulesen. +Hierzu müssen nur die verwendete Programmiersprache und der Dateipfad an den Befehl \mintinline{latex}{\inputminted} übergeben werden: + +\example{lst:MintedExternal}{code/minted-import}{Einbinden aus einer externen Datei.} + +\subsection{Minted konfigurieren} + +Durch optionale Parameter können Zeilennummerierung, Umbrüche und Farben ausgewählt werden. +Außerdem sind zahlreiche Themes verfügbar. +Einen umfänglichen Überblick geben die Einführung von Overleaf und die Dokumentation\footnote{Verfügbar unter \url{https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted} bzw. \url{https://ctan.kako-dev.de/macros/latex/contrib/minted/minted.pdf}.}. + +\example{lst:MintedExternalStyled}{code/minted-import-styled}{Themes und weitere Optionen.} \ No newline at end of file diff --git a/praeambel.tex b/praeambel.tex index 3903cb3..4a9d77a 100644 --- a/praeambel.tex +++ b/praeambel.tex @@ -26,6 +26,9 @@ \usepackage{csquotes} % für \enquote +\usepackage{fontawesome5} % Icons +% TODO: Ggf. rauswerfen + \newcommand\acro[1]{\textsc{\lowercase{#1}}} \newcommand\widetable[1]{