127 lines
3.0 KiB
Markdown
127 lines
3.0 KiB
Markdown
@slide(layout=chapter-slide)
|
|
|
|
@title
|
|
Quelltext-Listings
|
|
|
|
@slide(layout=content-and-preview)
|
|
|
|
@title
|
|
Installation <span class="emoji">🖥️</span>
|
|
|
|
@content
|
|
Mit dem Paket `minted` lässt sich Quelltext gut darstellen. Dafür wird die Programmiersprache Python benötigt.
|
|
|
|
Nach der **[Installation von Python](https://www.python.org/)** kann das zugehörige Paket **[`Pygments`](http://pygments.org/)** in der Eingabeaufforderung installiert werden durch:
|
|
|
|
``` {.lang-sh .hljs}
|
|
pip install Pygments
|
|
```
|
|
|
|
Anschließend muss das LaTeX-Paket nur noch eingebunden werden:
|
|
|
|
``` {.lang-tex .hljs}
|
|
\usepackage{minted}
|
|
```
|
|
|
|
@preview
|
|
{ .thin-padding }
|
|
|
|
@slide(layout=content-only)
|
|
|
|
@title
|
|
Anpassungen beim Kompilieren
|
|
|
|
@content
|
|
<div class="box warning">
|
|
Um Dokumente mit Quelltext-Listings kompilieren zu können, muss die Flag `--shell-escape` an den Compiler übergeben werden.
|
|
</div>
|
|
|
|
In TeXstudio muss diese unter **`Optionen > TeXstudio konfigurieren > Befehle`** bei PdfLaTeX vor `%.tex` ergänzt werden:
|
|
|
|
pdflatex -syntex=1 -interaction=nonstopmode **--shell-escape** %.tex
|
|
|
|
@slide(layout=content-and-preview)
|
|
|
|
@title
|
|
Code im LaTeX-Quelltext
|
|
|
|
@content
|
|
++ In einer eigenen Umgebung:
|
|
|
|
``` {.lang-tex .hljs .fragment}
|
|
\section*{Haskell-Magie}
|
|
Quadrate aller geraden % …
|
|
\begin{minted}{haskell}
|
|
[x^2 | x <- [1..200], even x]
|
|
\end{minted}
|
|
```
|
|
|
|
++ Inline im Quelltext:
|
|
|
|
``` {.lang-tex .hljs .fragment}
|
|
\section*{Ein HTML-Beispiel}
|
|
Eine Überschrift wird so ausgezeichnet:
|
|
\mint{html}|<h2>LaTeX im Studium</h2>|.
|
|
```
|
|
|
|
@preview
|
|

|
|
|
|
@slide(layout=content-and-preview)
|
|
|
|
@title
|
|
Code aus externen Dateien
|
|
|
|
@content
|
|
Um Redundanz zu vermeiden, ist es manchmal praktisch, den Quelltext direkt aus der Quelldatei einzulesen.
|
|
|
|
``` {.lang-tex .hljs}
|
|
\section*{Einfache Java-Anwendung}
|
|
\inputminted{java}{Test.java}
|
|
```
|
|
|
|
``` {.lang-java .hljs data-sourcefile="Test.java"}
|
|
public class HelloWorld {
|
|
public static void main(/*…*/) {
|
|
System.out.println(/*…*/);
|
|
}
|
|
}
|
|
```
|
|
|
|
@preview
|
|

|
|
|
|
@slide(layout=content-only)
|
|
|
|
@title
|
|
`Minted` konfigurieren
|
|
|
|
@content
|
|
Durch optionale Parameter können Zeilennummerierung, Umbrüche und Farben ausgewählt werden. Außerdem sind zahlreiche Themes verfügbar.
|
|
|
|
``` {.lang-tex .hljs}
|
|
\usemintedstyle{monokai}
|
|
\begin{minted}[
|
|
linenos=true,
|
|
breaklines=true,
|
|
]{javascript}
|
|
% ...
|
|
\end{minted}
|
|
```
|
|
|
|
<span class="emoji">🔗</span> **[Einführung](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted)** und **[offizielle Dokumentation](https://ctan.kako-dev.de/macros/latex/contrib/minted/minted.pdf)**
|
|
|
|
@slide(layout=task)
|
|
|
|
@task-number
|
|
9
|
|
|
|
@title
|
|
Quelltext einbinden
|
|
|
|
@content
|
|
* Abschnitt 2.4 enthält zwei auskommentierte **Listings**.
|
|
* ++ Bindet zunächst das **Paket `minted`** an der richtigen Stelle ein.
|
|
* ++ Nutzt die **`minted`-Umgebung**, um das erste Listing mit Syntax Highlighting zu versehen.
|
|
* ++ Lagert das zweite Listing in eine **neue Datei** aus und bindet sie mit `\inputminted` ein.
|
|
* ++ Ändert das **Farbschema** zu `borland`. |