Logge Dich auf hopper ein. Öffne den Editor vim mit dem Dateinamen dokument.tex.
$ vim dokument.tex
und gib langsam und mit korrekter Formatierung den folgenden ersten
LaTeX-Code ein:
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\begin{document}
Hello World
\end{document}
Verlasse den Editor, übersetze das Dokument mit latexmk und kopiere das resultierende pdf-Dokument in Dein Webverzeichnis:
$ latexmk dokument.tex && cp dokument.pdf /var/www/html/ACCOUNT/
Mit dem Browser findest Du dann das Dokument unter https://informatik.hs-bremerhaven.de/ACCOUNT/dokument.pdf
Das Dokument strukturierst Du mit \section{..} und \subsection{..}. Ein Inhaltsverzeichnis erzeugst Du mit dem Kommando \tableofcontents
\documentclass[parskip=half]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\begin{document}
\tableofcontents
\section{Ein Abschnitt}
Hello World
\section{Noch ein Abschnitt}
text text text
\subsection{Unterabschnitt}
text text text
\subsection{Noch ein Unterabschnitt}
text text text
\end{document}
Grafiken bindest Du mit dem Paket graphicx ein, das vor dem Dokumentenbeginn importiert wird, und mit dem Befehl \includegraphics[width=\linewidth]{thecircle.png}.
\documentclass[parskip=half]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=\linewidth]{thecircle.png}
\end{document}
Einfache Tabellen kannst Du mit einer tabular-Umgebung einbinden, in der die Einträge mit einem kaufmännischen Und-Zeichen getrennt werden und die Zeilen mit einem doppelten Backslash beendet werden. Als Argument findet sich noch die jeweilige Ausrichtung der Spalten als einzelne Buchstaben (l, c oder r für left, center oder right) in geschweiften Klammern nach dem Öffnen der Umgebung:
\documentclass[parskip=half]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{lmodern}
\usepackage{microtype}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lcr}
Spalte 1 & Spalte 2 & Spalte 3\\
Linksbündig & Zentriert & Rechtsbündig\\
linksbündig & zentriert & rechtsbündig\\
\end{tabular}
\end{document}
Wenn Du dynamisch im Docker-Container ein pdf erzeugen willst, denke daran, dass das der User www-data durchführt. Du solltest also in einem jeweils neuen Verzeichnis arbeiten. Denn es kann durchaus sein, dass mehrere Prozesse gleichzeitig laufen. Um gegenseitige Beeinflussung auszuschließen, ist die Umgebungsvariable $$ - die aktuelle Prozess-ID - hilfreich. Zudem solltest Du dafür sorgen, dass latexmk auch bei Fehlern ohne zu warten durchläuft:
#!/bin/bash
echo "Content-Type: application/pdf"
echo
# Home wird im cgi-Kontext nicht gesetzt,
# daher muss hier TEXMFVAR explizit auf ein
# schreibbares Verzeichnis gesetzt werden
export TEXMFVAR=/var/www/
mkdir -p /tmp/latex-$$ && rm -rf /tmp/latex-$$/*
cp -r /var/www/html/latextemplate/* /tmp/latex-$$
cd /tmp/latex-$$
latexmk -interaction=nonstopmode doc.tex &> latexmk.log
cat doc.pdf
rm -rf /tmp/latex-$$
Aber Achtung: LaTeX ist eine Turing-vollständige Sprache. Es gibt also jede Menge Tricks, um auf Dateien zuzugreifen oder sogar zu schreiben. Wenn Du also Eingaben aus dem Web entgegennimmst, um sie in das LaTeX-Dokument zu integrieren, kommt eine Menge Arbeit auf Dich zu. Unter dem Abschnitt Links findest Du "hacking with latex" - dort solltest Du einmal hineinschauen. Das Zauberwort ist wie so häufig Whitelisting ...
Für die Abgaben in vielen Veranstaltungen wird bei uns an der Hochschule erwartet, dass Ihr mit LaTeX arbeitet. Wir haben gemeinsam mit Fabian Lignitz eine Vorlage erstellt für Abgaben und Poster. In den Links findet Ihr den Verweis auf die aktuelle Version.