132 lines
3.4 KiB
Markdown
132 lines
3.4 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:
|
|
|
|
<code>pdflatex -synctex=1 -interaction=nonstopmode **\-\-shell-escape** %.tex</code>
|
|
|
|
@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
|
|
8
|
|
|
|
@title
|
|
Quelltext einbinden
|
|
|
|
@content
|
|
* Im Ordner `exercises/source-code-listings` findet ihr eine Datei namens `Source.java`. Wir werden diese im Folgenden in unser Dokument einbinden und das Aussehen unseren Wünschen anpassen.
|
|
* ++ **Bindet** den Java-Quelltext in der Datei `task-1.raw.tex` **ein**.
|
|
* ++ Aktiviert das **Syntax-Highlighting** durch Angabe der Sprache Java.
|
|
* ++ Verwendet eine Option, um die Zeilen zu **nummerieren**.
|
|
* ++ Nutzt das **Theme** `native`.
|
|
* ++ Ändert die **Hintergrundfarbe** des Themes zu dunkelblau.
|
|
* ++ Bindet jetzt nur die **Zeilen 5 bis 7** ein.
|
|
* ++ Entfernt die **Leerzeichen** am Anfang der Zeilen durch die passende Option (Tipp: Die Dokumentation spricht hier von `gobble`).
|
|
* ++ Seht bei Fragen in der Dokumentation des Paketes *Minted* nach.
|