Vorlage für eine wissenschaftliche Arbeit & Formelsammlung Wirtschaftsmathematik Template for your thesis - Formulary for Business Arithmetics https://strobelstefan.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
latex-templates/template-for-your-thesis
Stefan 73bb81d106 pdfpages - PDF-Dateien einbinden 1 week ago
..
bibs Symbolverzeichnis 2 weeks ago
einstell pdfpages - PDF-Dateien einbinden 1 week ago
figs Complete revision of the template 2 weeks ago
glossar Complete revision of the template 2 weeks ago
texs pdfpages - PDF-Dateien einbinden 1 week ago
variables Complete revision of the template 2 weeks ago
Index.ist Index.ist changed 1 year ago
README.md Complete revision of the template 2 weeks ago
diplomarbeit.ist pdfpages - PDF-Dateien einbinden 1 week ago
diplomarbeit.pdf pdfpages - PDF-Dateien einbinden 1 week ago
diplomarbeit.tex Complete revision of the template 2 weeks ago

README.md

Vorlage zum Erstellen einer wissenschaftlichen Arbeit mit LaTeX

Anleitungen, Beispiele und Hilfe

Eine ausführliche Beschreibung mit umfangreichen Beispielen findest du in der Datei :arrow: 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 Repositories 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 Repositories 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:

  • LaTeX Workshop

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:

  • LaTeX Workshop

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.

Ebenfalls 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

URLs im Literaturverzeichnis

Beispiel: Wikipedia-Eintrag zu Open-source software (https://en.wikipedia.org/wiki/Open-source_software)

@misc{wiki01,
    author = {wikipedia},
    howpublished = {\url{https://en.wikipedia.org/wiki/Open-source_software}},
    publisher = {en.wikipedia.org},
    title = {Open-source software},
    year = {2021}
}

Die Quellenangaben aus dem Internet passen bei der Literaturverwaltung in keine der vorhandenen Kategorien, deshalb landen sie alle in @misc.

Wie ihr seht, wird die URL auf den Wikipedia-Artikel in das Feld howpublished geschrieben. Innerhalb der eigentlichen geschweiften Klammer wird noch einmal ein LaTeX-Befehl erstellt und zwar mit dem Paket url.

Öffnet ihr nun die bib-Datei mit KBibTeX dann wird der Eintrag dort angezeigt und die Felder entsprechend zugeordnet.

Eine kleine Besonderheit ist im Feld Art der Veröffentlichung zu finden, wenn die Beispieldatei geladen wird. Es wird auch dort der LaTeX-Befehl für die URL direkt im Feld angezeigt. (Zuordnung: howpublished <> Art der Veröffentlichung)

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 Haupdatei 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

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.

\input{glossar/glossar} % Bindet die Glossardatei ein

\begin{document}

...

% --- Glosar erzeugen ---------------------
\printglossary
%\addcontentsline{toc}{chapter}{Glossar}
\clearpage
% -----------------------------------------

...

\end{document}

Der Verweis auf den Eintrag im Glossar glossar/glossar/.tex wird gesetzt durch:

\newglossaryentry{Code}{name={Name},description={Beschreibung}}

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 auf den Eintrag im Abkürzungsverzeichnis wird gesetzt durch:

\gls{Code}

In der Beispieldatei glossar.tex wird der Glossar-Eintrag mit \newglossaryentry{glos:glossar} erstellt.
Es wird glos: als eine Art Label verwendet, um den Eintrag direkt als Glossar identifizieren zu können.

Der Aufruf im Text erfolgt dann mit \gls{glos:glossar}. Welche Form verwendet wird, ist abhängig von euren Vorlieben. Es funktionieren auf jeden Fall beide Optionen.

Glossar und Abkürzungsverzeichnis erstellen

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

🕊 Twitter🐘 MastodonRSS


Kaffeespende

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

😊 😎 bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj 😄

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