latex-templates/template-for-your-thesis
Stefan 5f7cfd95fb Redirect To New Repository Address 2023-11-11 09:29:46 +01:00
..
bibs Symbolverzeichnis 2022-09-21 16:45:05 +02:00
einstell Bibliography formatting optimized 2023-01-02 20:15:09 +01:00
figs Complete revision of the template 2022-09-23 20:43:24 +02:00
glossar Complete revision of the template 2022-09-23 20:43:24 +02:00
texs LTeX Grammar And Spelling Support Added 2023-01-24 20:37:57 +01:00
variables Complete revision of the template 2022-09-23 20:43:24 +02:00
Index.ist Index.ist changed 2021-10-04 17:15:55 +02:00
README.md Redirect To New Repository Address 2023-11-11 09:29:46 +01:00
diplomarbeit.pdf LTeX Grammar And Spelling Support Added 2023-01-24 20:37:57 +01:00
diplomarbeit.tex LTeX Grammar And Spelling Support Added 2023-01-24 20:37:57 +01:00

README.md

Vorlage zum Erstellen einer wissenschaftlichen Arbeit mit LaTeX




ACHTUNG! Das Template ist umgezogen!
Die aktuelle Version wird ebenfalls bei Codeberg verwaltet.
👉 https://codeberg.org/sst/latex-templates

Der Umzug erfolgte im Rahmen der Website Neustrukturierung und Umbenennung.

Anleitungen, Beispiele und Hilfe

Eine ausführliche Beschreibung mit umfangreichen Beispielen findest du in der Datei ➡️ diplomarbeit.tex.


Vorlage - Ordnerstruktur

Die Vorlage verwendet die folgende Ordnerstruktur:

  • bibs/- Literaturverzeichnis
  • einstell/ - Einstellungsdatei, hier werden Pakete und die Einstellungen vorgenommen
  • figs/ - enthält alle Bilder
  • glossar/ - Glossar und Abkürzungsverzeichnis
  • tex/ - Unter-Dokumente, Kapitel, Abschnitte, etc.
  • variables/ - Variablen-Datei

Vorlage - Dateien

  • diplomarbeit.tex - Hauptdatei, in der sämtliche Dateien mit dem \include{}-Befehl eingebunden werden.
  • Index.ist - Definition des Index-Layouts

Weitere hilfreiche Informationen zu LaTeX:

🔗 LaTeX Themenseite


LaTeX installieren

LaTeX gibt es für alle gängigen Betriebssysteme.

LaTeX in the (virtual) Box

Die gesamte LaTeX-Umgebung lässt sich sehr einfach in einer virtuellen Box installieren und auf einem externen Speichermedium (nur mit USB-3.0, wegen der Geschwindigkeit) abspeichern.

Dadurch lässt sich Platz auf der Festplatte des eigenen Clients einsparen.
Besonders gut eignet hierfür sich eine Linux-Distribution, wie z.B. Ubuntu oder Kubuntu.

Die LaTeX-Umgebung wird dadurch portabel und lässt sich auf anderen Clients mit unterschiedlichen Betriebssystemen starten.

Es ist nicht unbedingt notwendig, dass in der virtuellen Umgebung gearbeitet wird. Dateien lassen sich über die Funktion "Gemeinsamer Ordner" teilen.
Die LaTeX-Konvertierungsläufe können vom Client mit SSH gestartet und gesteuert werden.

Anleitungen zum Installieren und Konfigurieren einer virtuellen Box:

Linux - LaTeX installieren

Linux-Distributionen bringen meistens in den Repositorys schon eine recht umfangreiche LaTeX-Umgebung mit, die das manuelle Nachinstallieren von Paketen auf ein Minimum reduziert.

Beispiel (K)Ubuntu:

sudo apt install texlive-full

Der Editor Kile, wie auch die anderen Apps, lassen sich ebenfalls aus den Repositorys installieren.

sudo apt install kile kbibtex calibre

Linux - Apps

App Beschreibung Link
Kile LaTeX Editor https://kile.sourceforge.io/
Okular PDF-Viewer https://okular.kde.org/de/
Calibre Literaturverwaltung https://calibre-ebook.com/
KBibTeX Literaturverwaltung https://userbase.kde.org/KBibTeX

macOS - LaTeX installieren

Die Installation einer LaTeX-Umgebung unter macOS wird in diesem Artikel ausführlich beschreiben:

macOS - Apps

App Beschreibung Link Homebrew
TeXShop LaTeX-Editor https://pages.uoregon.edu/koch/texshop/ brew install --cask texshop
Visual Studio Code Quelltext-Editor https://code.visualstudio.com/ brew install --cask visual-studio-code
BibDesk Literaturverwaltung https://bibdesk.sourceforge.io/ brew install --cask bibdesk
Calibre Literaturverwaltung https://calibre-ebook.com/ brew install --cask calibre
Tex Live Utility LaTeX-Paketverwaltung https://amaxwell.github.io/tlutility/ brew install --cask tex-live-utility

Die Homebrew formulae können auf der offiziellen Website nachgeschlagen werden 🔗 https://brew.sh/index_de

Erweiterungen für Visual Studio Code:

Windows - LaTeX und Pakete installieren

MiKTeX ist eine TeX-Distribution für Windows und lässt sich sehr einfach installieren.

Windows - Apps

App Beschreibung Link
Visual Studio Code Quelltext-Editor https://code.visualstudio.com/
Calibre Literaturverwaltung https://calibre-ebook.com/
JabRef Literaturverwaltung https://www.jabref.org/
Adobe Reader PDF-Viewer https://www.adobe.com
Okular PDF-Viewer https://okular.kde.org/download/

Erweiterungen für Visual Studio Code:


Einzelne LaTeX-Pakete nachinstallieren

Linux - Einzelne LaTeX-Pakete nachinstallieren

Linux - Manuelle Nachinstallation

Einzelne Pakete lassen sich manuell nachinstallieren. Das ist notwendig, sollte eine *.sty-Datei fehlen und trotz der Installation von texlive-full nicht auf dem System vorhanden sein.

Download der LaTeX-Pakete von
🔗 https://www.ctan.org/

Beispiel für das Paket picins:

wget https://mirrors.ctan.org/macros/latex209/contrib/picins.zip

unzip picins.zip

cd picins

sudo cp picins.sty /usr/share/texlive/texmf-dist/tex/latex

sudo texhash 

Linux - tmlgr

Für das Nachinstallieren von Paketen kann auch tlmgr (TeX Live package manager) genutzt werden. Voraussetzung dabei ist jedoch, dass das Paket in den offiziellen Paketquellen enthalten ist.
Ist das LeTeX-Paket dort nicht enthalten, muss die manuelle Installation gewählt werden.

sudo tlmgr install biber

macOS - Einzelne LaTeX-Pakete nachinstallieren

macOS - Manuelle Nachinstallation

Die manuelle Installation von LaTeX-Paketen ist bei Linux und macOS sehr ähnlich.

Download von LaTeX-Paketen von
🔗 https://www.ctan.org/

Beispiel für das Paket picins:

wget https://mirrors.ctan.org/macros/latex209/contrib/picins.zip

unzip picins.zip

cd picins

sudo mkdir /usr/local/texlive/2021basic/texmf-dist/tex/latex/picins

sudo cp picins.sty /usr/local/texlive/2021basic/texmf-dist/tex/latex/picins

sudo texhash

macOS - tmlgr

Für das Nachinstallieren von Paketen kann auch tlmgr (TeX Live package manager) genutzt werden. Voraussetzung dabei ist jedoch, dass das Paket in den offiziellen Paketquellen enthalten ist.
Ist das LeTeX-Paket dort nicht enthalten, muss die manuelle Installation gewählt werden.

sudo tlmgr install biber

Windows - Einzelne LaTeX-Pakete nachinstallieren

Download des Pakets von
🔗 https://ctan.org/

sty-Datei in das Installationsverzeichnis von MiKTeX kopieren

C:\Users\benutzername\AppData\Local\Programs\MiKTeX\tex\latex\

Texhash in der Eingabeaufforderung oder der PowerShell oder Git Bash eingeben, um das neue Paket einzulesen.

texhash

Das Literaturverzeichnis

Literaturverzeichnis erstellen

Für das Literaturverzeichnis wird biblatex und biber verwendet.

sudo apt update && sudo apt dist-upgrade && sudo apt install biber texlive-bibtex-extra

In der Präambel muss das Paket biblatex mit der Option backend=biber aufgerufen werden. (siehe Datei einstell.tex)

\usepackage[backend=biber]{biblatex} % biblatex mit biber laden
\ExecuteBibliographyOptions{sorting=nyt, bibwarn=true, isbn=false, url=false}
\addbibresource{bibs/literatur.bib}

Im Text ist an der Stelle wo das Literaturverzeichnis eingefügt werden soll die folgenden Zeilen einzusetzen. (siehe Datei diplomarbeit.tex)

... 
% --- Literaturverzeichnisses einfügen ---
\printbibliography[heading=bibintoc,title=Literaturverzeichnis]
\clearpage
% ------------------------------------------
...
  • *.bcf= biber control file und enthält Anweisungen
  • *.blg = Logdatei von Biber
  • *.bbl = Ausgabe von Biber --> Literaturverzeichnis

Der Verweis auf den Eintrag im Literaturverzeichnis wird z.B. im Fließtext mit footfullcite gesetzt. (Weitere Möglichkeiten siehe Abschnitt "Das Literaturverzeichnis")

\footfullcite{wiki01}

Das Literaturverzeichnis wird erstellt mit:

pdflatex diplomarbeit.tex
biber diplomarbeit.bcf
pdflatex diplomarbeit.tex
pdflatex diplomarbeit.tex

Zur Verwaltung der Literatur kann z.B. Calibre verwendet werden. Der Vorteil von Calibre gegenüber Programmen wie KBibTeX, JabRef, etc., ihr könnt darin die PDF-Dateien eurer Literaturverweise abspeichern, einfach verwalten und mit Schlagwörtern und Beschreibungen versehen.

Calibre legt die Dateien sortiert in einer Ordnerstruktur ab, die es euch ermöglicht die Literatur schnell zu finden und zu öffnen.

Zusätzlich kann KBibTeX, BibDesk, JabRef für die Literaturverwaltung genutzt werden. In diesen Programmen werden nur die Metadaten verwaltet, um das Management der Dateien müsst ihr euch selber kümmern.

Es hat sich bewährt, die beiden Programme Calibre und KBibTeX, BibDesk, JabRef für das Literaturverzeichnis parallel zu verwenden. Es werden also zwei bib-Dateien in der Hauptdatei diplomarbeit.tex eingebunden, eine Datei aus jedem Verwaltungsprogramm.

  • Calibre = Verwaltung von Dateien, z.B. PDF-Dateien und eBooks, alle Formate mit @book
  • KBibTeX = Verwaltung von Quellen aus dem Internet @miscund sämtliche anderen Formate

🔗 Literaturverzeichnis aus Calibre für eine wissenschaftliche Arbeit erstellen

In der Beispieldatei ➡️ "kapitel-literaturverzeichnis-glossar.tex" gibt es einige Beispiele zum Thema.


Der Index

Indexerstellung mit makeindex und Anpassung der Formatierung

In der Präambel des Dokuments müssen zwei Befehle eingetragen werden:

\usepackage{makeidx}

und

\makeindex

An der Stelle im Text, an der das Indexverzeichnis später ausgegeben werden soll, muss ein weiterer Befehl eingetragen werden. In der Vorlage ist das in der Hauptdatei diplomarbeit.tex.

\printindex

Datei "Index.ist" erstellen

Die Datei Index.ist kann bei Problemen auch manuell mit einem Editor im Hauptverzeichnis als eigenes Dokuments angelegt werden!

Beispieleintrag von Index.ist

preamble "\\begin{theindex}"
postamble "\n\\end{theindex}\n"
headings_flag 1
heading_prefix "{\\bf "
heading_suffix "}\\nopagebreak%\n \\indexspace\\nopagebreak%"
\page_preference "rRnaA"
item_0 "\n\\item "
item_1 "\n\\subitem "
item_2 "\n\\subsubitem "
delim_0 "\\dotfill "
delim_1 "\\dotfill "
delim_2 "\\dotfill "
delim_r "~--~"
suffix_2p "\\,f."
suffix_3p "\\,ff."

Index erstellen

makeindex [-ciglqr] [-o ind] [-p nr] [-s stil] [-t log] [idx...]

Optionen des makeindex-Befehls

Befehl Beschreibung
-c Komprimierung von Leerzeichen; ignoriert führende und angehängte Leerzeichen sowie Tabulatoren
-i Standardeingabe wird verwendet
-g deutsche Sortierreihenfolge wird verwendet. Durch die geladenen Pakete in der einstell.tex nicht erforderlich.
-l Sortierreihenfolge nach Buchstaben
-q stiller Modus
-r deaktiviert die Seitenbereichserzeugung
-o ind siehe Dokumentation https://ctan.org/search?phrase=index & http://www.moesgen.de/pdf/makeidx
-p nr siehe Dokumentation https://ctan.org/search?phrase=index & http://www.moesgen.de/pdf/makeidx
-s stil Es wird eine benutzerdefinierte Stildatei verwendet, in diesem Fall unsere Index.ist
-t log Logdatei, standardmäßig wird die Dateiendung .ilg verwendet

Das Paket makeidx wird benötigt und der allgemeine Aufruf lautet:

\index{<Stichwort>}
\index{<Stichwort>!<Unterstichwort>}
\index{<Stichwort>!<Unterstichwort>!Unterunterstichwort>}

Der Index ist manuell zu erstellen.

makeindex -s Index.ist diplomarbeit.idx

Funktioniert der oben beschriebene Lösungsweg nicht, hilft evtl. dieser Befehl.

makeindex diplomarbeit.idx 
makeindex -g -s Index.ist diplomarbeit.idx

🔗 Indexerstellung mit Makeindex und Anpassung der Formatierung

In der Beispieldatei ➡️ "kapitel-literaturverzeichnis-glossar.tex" gibt es einige Beispiele zum Thema.


Der Glossar

Glossar erstellen

In der Präambel ist der Abschnitt einzufügen.

%\usepackage{glossaries-extra}
\usepackage[
nonumberlist,  % keine Seitenzahlen anzeigen
acronym,  % ein Abkürzungsverzeichnis erstellen
toc,  % Einträge im Inhaltsverzeichnis
section]  % im Inhaltsverzeichnis auf section-Ebene erscheinen
{glossaries}  % zum Erzeugen eines Glossars
\makeglossaries 

Glossar in Dokument einfügen

Bindet die Glossardatei aus dem Verzeichnis glossar/glossar ein und schreibt es an der richtigen Stelle ins Dokument.
Die Zeile wird in das Hauptdokument diplomarbeit.tex eingefügt.

In der Datei ➡️ "dimploarbeit.tex" wird das aufgezeigt, wie der Glossar eingefügt wird.

Abkürzungsverzeichnis

In der Präambel muss für das Paket glossaries die Option acronym mitgegeben werden, um das Abkürzungsverzeichnis zu erstellen.

An beliebiger Stelle im Dokument diplomarbeit.tex einfügen:

\begin{document}

...

% Abkürzungsverzeichnis
\printglossary[type=acronym,title=Abkürzungsverzeichnis,toctitle=Abkürzungsverzeichnis]
    \clearpage

...

\end{document}

Der Verweis im Fließtext auf den Eintrag im Abkürzungsverzeichnis wird gesetzt durch:

\gls{Code}

In der Datei ➡️ "dimploarbeit.tex" wird das aufgezeigt, wie das Abkürzungsverzeichnis eingefügt wird.

Glossar und Abkürzungsverzeichnis erstellen

Der Glossar und das Abkürzungsverzeichnis werden erstellt mit den folgenden Befehlen:

pdflatex diplomarbeit.tex
makeglossaries diplomarbeit
pdflatex diplomarbeit.tex
pdflatex diplomarbeit.tex

Git Infos im LaTeX-Dokument verwenden

Da es durchaus sinnvoll ist bei der Erstellung von (großen) und wichtigen Dokumenten eine Versionsverwaltung, wie z.B. Git, zu verwenden, können diese Informationen auch auf das PDF-Dokument gedruckt werden.

Das ermöglicht eine zuverlässigen Audit Trail und jede Änderung lässt sich einfach nachvollziehen

Bei den hier vorgestellten Lösungen ist zu beachten, dass der .git-Ordner im gleichen Verzeichnis wie die LaTeX-Datei diplomarbeit.tex liegt.

Für dieses LaTeX-Dokument können die Git-Informationen über diesen Weg nicht ausgelesen werden, da .git Ordner oberhalb in latex-templates zu finden ist.

Fehlerhafte Ordnerstruktur in diesem Repo:

| .git
|
|latex-templates/template-for-your-thesis
|
| latex-templates/letter-simple
|
| latex-templates/letter-serial

Korrekte Anordnung der Ordner:

|.git
|bibs/
|einstell/
|figs/
|glossar/
|texs/
|variables/
|diplomarbeit.tex
|...

Option 1: Ohne zusätzliche Pakete

Option 1: einstell.tex

In die Datei einstell.tex wurde der Abschnitt eingefügt. Dadurch werden ein paar neue Befehle erstellt und die Informationen aus den Dateien im Order .git abgerufen.

Es werden die Git-Informationen abgerufen:

  • Branch
  • Tags
  • Commit Message
  • Commit ID
\usepackage{ifthen}

% --- Git Information
% Inspired by 
% https://tex.stackexchange.com/questions/455396/how-to-include-the-current-git-commit-id-and-branch-in-my-document

\newcommand{\dotGitHEAD}{}
\newcommand{\branch}{}
\newcommand{\commit}{}
\newcommand{\commitmessage}{}

\makeatletter\let\myfilehandle\@inputcheck\makeatother

\openin\myfilehandle=.git/HEAD\relax

\begingroup\endlinechar-1
  \global\read\myfilehandle to \dotGitHEAD
\endgroup
\closein\myfilehandle

\newcommand\GetBranch{}
\def\GetBranch ref: refs/heads/#1\relax{\renewcommand{\branch}{#1}}

\expandafter\GetBranch\dotGitHEAD\relax

\openin\myfilehandle=.git/refs/heads/\branch\relax

\begingroup\endlinechar-1
  \global\read\myfilehandle to \commit
\endgroup
\closein\myfilehandle

%Commit Message
\openin\myfilehandle=.git/COMMIT_EDITMSG

\begingroup\endlinechar-1
  \global\read\myfilehandle to \commitmessage
\endgroup
\closein\myfilehandle
% ------------------

Option 1: titel.tex

In der Datei titel.tex werden die Variablen eingefügt, um die Git-Informationen dort anzuzeigen.

Es wird eine ifthenelse-Prüfung durchgeführt:

Wenn Git-Branch = main
dann drucke "FINALE VERSION"
sonst drucke "DRAFT"

...
  % Fusstext

  {\bf GIT INFORMATION} \\[5mm]
  {Branch: \branch \: - \: Version: \tags \: - \: Commit Message ID: \commitmessage \: - \: Commit ID: \commit} \\[5mm]

  {\ifthenelse{\equal{\mainbranch}{\branch}}%
  {\LARGE{FINAL VERSION}}%
  {\LARGE{DRAFT}}} \\[5mm]

\orterstellung, den \tagerstellung. \monaterstellung \  \jahrerstellung
...

Option 1: variables.tex

Die Variable \mainbranch für die ifthenelse-Prüfung kommt aus der Datei variables/variables.tex.

Im Standard wird der Name main verwendet. Wenn du einen anderen Namen verwendest, musst du das dort ändern.

\newcommand{\mainbranch}{main}

Option 2: Mit dem Paket gitinfo2

Das Paket gitinfo2 stellt eine Vielzahl an Optionen zur Verfügung, um Git-Informationen in das eigene Dokument zu überführen.

Bevor es aber losgeht, sind nach der Installation des Pakets noch ein paar Skripte im Ordner .git/hooks anzulegen.

Die hooks-Skripte erstellen eine neue Datei .git/gitHeadInfo.gin und aktualisieren bei einem neuen commit, checkout, merge automatisch die Metadaten.

Auf diese Datei greift dann das Paket gitinfo2 zu, um die Daten abzurufen und in das LaTeX-Dokument zu überführen.

Eine Vorlage (post-xxx-sample.txt) für die Skript-Datei ist im Ordner von gitinfo2 zu finden, oder es kann von der ctan-Website heruntergeladen werden.

Die Datei post-xxx-sample.txt ist dreimal zu kopieren und umzubenennen in

  • post-checkout
  • post-commit
  • post-merge

und gesammelt in das Verzeichnis .git/hook zu kopieren.

Die Rechte für die drei Skripte ist so anzupassen, dass sie auf -rwxr-x-r-x gestellt sind.

chmod +x post-checkout post-commit post-merge

Damit die Datei .git/gitHeadInfo.gin befüllt wird, kannst du z.B einfach einen Wechsel in deinen Hauptbranch durchführen

git checkout main

Danach können die Befehle von gitinfo2 genutzt werden und die entsprechenden Abschnitte in den Dateien ergänzt werden.


ACHTUNG!
Ich verwende eine Kombination aus beiden Optionen.

Die Abschnitte in den Dateien sind kommentiert.

  • diplomarbeit.tex
  • einstell/einstell.tex
  • tex/titel.tex
  • variables/variablen.tex

Alle LaTeX-Befehle auf einen Blick

Mit den folgenden Befehlen werden Literaturverzeichnis, Index und Glossar erstellt und alles fertig konvertiert und die fertige Datei diplomarbeit.pdf erstellt.

pdflatex diplomarbeit.tex
biber diplomarbeit.bcf
makeindex -s Index.ist diplomarbeit.idx

# Symbolverzeichnis erstellen
makeindex diplomarbeit.nlo -s nomencl.ist -o diplomarbeit.nls

makeglossaries diplomarbeit
pdflatex diplomarbeit.tex
pdflatex diplomarbeit.tex

Sollen mehrere Indizes mit dem Paket splitidx erzeugt werden, dann ist der Konvertierungslauf für den Index anstatt mit makeindex mit splitindex aufzurufen.

pdflatex diplomarbeit.tex
biber diplomarbeit.bcf
splitindex -- diplomarbeit -s Index.ist

# Symbolverzeichnis erstellen
makeindex diplomarbeit.nlo -s nomencl.ist -o diplomarbeit.nls

makeglossaries diplomarbeit
pdflatex diplomarbeit.tex
pdflatex diplomarbeit.tex

Follow Me

🐘 MastodonRSS


Kaffeespende

Du findest meine Vorlage hilfreich, dann kannst du mir gerne einen Kaffee ausgeben.

PayPal 😊 Liberapay 😎 Bitcoin bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj 😄

You like the template, then feel free to buy me a coffee.