Eine LaTeX-Vorlage für den persönlichen Gebrauch für Haus-, Seminar-, Bachelor und Master-Arbeiten an der FOM Hochschule für Oekonomie & Management.
Wie das Ergebnis aussieht, könnt ihr euch in der Datei thesis_main.pdf ansehen.
Diese Vorlage hat weder einen Anspruch auf Richtigkeit, noch auf Vollständigkeit. Verbesserungen sind jederzeit willkommen (siehe Ich möchte mithelfen, diese Vorlage zu verbessern).
- Für die eigene Arbeit nutzen
- Vorlage personalisieren
- Dokumentensprache
- TextCommands
- Zitation
- Inhaltsverzeichnis Latex
- Literaturverzeichnis
- Sperrvermerk
- Quellcode einbinden
- Schriftarten
- PlantUML
- LaTeX zu PDF kompilieren
- LaTeX mit Windows Subsystem for Linux kompilieren
- IDE zur Bearbeitung nutzen
- Wörter zählen
- Ich habe eine Frage oder ein Problem
- Ich möchte mithelfen, diese Vorlage zu verbessern
- Disclaimer
- Lizenz
Aufgrund der gewählten Lizenz MIT Lizenz, darfst du diese Vorlage für den persönlichen oder kommerziellen Gebrauch nutzen und abändern. Um dies zu tun, gibt es mehrere Möglichkeiten, die wir nachfolgend kurz vorstellen.
Generell gilt: Dieses Dokument beschreibt eine ganze Menge Details, die dir beim Erstellen und bearbeiten des Dokuments hilfreich sein könnten. Leider wird es unmöglich sein, jede Frage abzudecken. Solltest du uns kontaktieren wollen, um eine Frage zu stellen, ein Problem mit zuteilen oder um einfach nur mal Danke sagen zu wollen, eröffne doch ein neues Issue in diesem Projekt.
Über den Clone or Download Button in der oberen rechten Ecke kannst du dir diese Vorlage herunterladen (ZIP-Archiv). Danach kannst du, wie gewohnt, die Dateien lokal bearbeiten, deine Arbeit schreiben, Drucken und abgeben.
Die bessere Alternative zum klassischen Download ist ein Fork auf Github. Wie das im Detail funktioniert beschreibt der Artikel Fork A Repo. Das Ganze hat primär zwei Vorteile:
- Du hast automatisch ein Backup deiner Arbeit auf Github
- Andere Personen / Studenten können sich deine Arbeit ansehen, diese verbessern, diese weiter verwenden (und ggf. Zeit sparen) oder daraus lernen (bedenke, all diese Vorteile hast du auch durch dieses Projekt)
- Wenn du es nicht mehr öffentlich zur Verfügung stellen kannst, kannst du das Projekt als privat markieren oder löschen
Wenn du diese Vorlage nutzt, ist der erste Einstiegspunkt die Datei skripte/meta.tex
.
In der Datei haben wir einige Variablen hinterlegt, die im Dokument (u. a. auf dem Deckblatt) genutzt werden.
Ersetze die Muster-Werte durch deine persönlichen Angaben und diese werden automatisch im Dokument verwendet.
Die Vorlage ist sowohl auf Deutsch, als auch auf Englisch umgesetzt. Dadurch wird das Titelblatt, Verzeichnisüberschriften und auch der Inhalt des Literaturverzeichnisses auf die englische Sprache umgestellt. Um die Datei auf Englisch zu kompilieren, muss mit docker-compose folgender Befehl umgesetzt werden:
docker-compose run --service-ports fom ./compile.sh en
Ohne Docker muss die Datei mit der compile.sh folgendermaßen aufgerufen werden:
./compile.sh en
Für die Batch-Datei ist das Kompilieren auf Englisch über folgenden Workaround möglich.
- Suche in der thesis_main.tex nach der Codezeile
%\def\FOMEN{}
- Entkommentiere diese Codezeile, indem du das Prozentzeichen entfernst
- Kompiliere neu
Anmerkung: Der beschriebene Workaround funktioniert auch, wenn du Overleaf oder einen anderen TEX-Editor verwendest und die compile.bat nicht benötigst.
Nach dem kompilieren findet sich das Ergebnis in der Datei thesis_main.pdf
. Die thesis_englisch.pdf
ist nur dazu da auf Github die Möglichkeit aufzuzeigen.
Das Arbeiten mit Commands innerhalb des Textes kann eine schöne Möglichkeit darstellen um:
- Wörter oder Abkürzungen, welche häufig falsch geschrieben werden, einmalig zu definieren
- bestimmte Wörter die z. B. einfach zu lang sind durch ein Kürzel schneller schreiben zu können
- Wörter oder Abkürzungen die häufig verwendet werden nie an der falschen Stelle zu trenen
In meinen Arbeiten haben ich gemerkt, dass es sinnvoll ist verschiedene standard Abkürzungen zu verwenden und diese nur einmalig zu definieren. Beispielsweise habe ich die Abkürzung von "zum Beispiel" --> "z. B." immer ohne Leerzeichen geschrieben. Allerdings ist die Schreibweise mit Leerzeichen wesentlich korrekter. Einmal richtig definiert, lässt sich die Abkürzung "z. B." im Text-File einfach durch folgenden Code aufrufen:
\zb
Man sparrt sich sogar 2 Tastaturanschläge ;-)
Auf der Seite skripte\textcommands.tex befinden sich zwei Bereiche:
- common textCommands
- project individual textCommands
Hier könnt ihr die verschiedenen Commands definieren und dann sind sie auch zentral an einer Stelle verfügbar und pflegbar.
TextCommands können bei Bedarf auch zweisprachig gepflegt werden:
\newcommand{\vglf}{\langde{Vgl.}\langen{compare}}
Es gibt viele Zitationsstile, deshalb schaut ihr am besten in den für euch gültigen Leitfaden und sprecht dann die präferierte/vorgegebene Zitationsweise mit eurem Dozenten ab.
Achtung, nicht für Arbeiten in der Wirtschaftspsychologie
Das Standard-Format kann mit \footcite[Vgl. ][Seite 1]{Balzert.2008}
genutzt werden und gibt Folgendes aus:
Vgl. Balzert et al. (2008), Seite 1.
Es besteht auch die Möglichkeit, den Vornamen des Autors mit auszugeben.
Dazu kann der Custom-Befehl \fullfootcite[Vgl. ][Seite 1]{Balzert.2008}
genutzt werden, der folgendes Resultat liefert:
Vgl. Balzert, Helmut et al. (2008), Seite 1.
Wird die englische Version genutzt, muss "Vgl." durch "compare" und "S." durch "p." ersetzt werden. Beim verwenden von Textcommands müssen "Vgl." und "S." nicht manuell geändert werden. Dies wird automatisch erledigt. Beispiel für die Verwendung von Textcommands (der Output sieht wie oben aus):
\footcite[\vglf][\pagef 1]{Balzert.2008}
Achtung, nur im Hochschulbereich IT-Management
Der IEEE Zitationsstil wird hauptsächlich in technischen Studiengängen verwendet und ist ein sehr einfacher Zitationsstil, da hier nicht auf Dinge wie z.B. "vgl."/"ebd." geachtet werden muss. Ein direktes Zitat steht in Anführungszeichen. Wird ohne Anführungszeichen zitiert weiß man, dass es ein indirektes Zitat ist ("vgl." kann dann weg gelassen werden). Normalerweise müssten auch keine Seitenzahlen angegeben werden, jedoch steht im aktuellen Leitfaden des Hochschulbereichs IT-Management, dass bei jeglicher Zitationsweise die Seitenzahl anzugeben ist, deshalb auch bei IEEE.
Um IEEE zu nutzen, müssen die Optionen des package BibLaTeX (\usepackage[options]{biblatex}
) in der thesis_main.tex
angepasst werden:
\usepackage[
backend=biber,
style=ieee,
maxcitenames=3, % mindestens 3 Namen ausgeben bevor et. al. kommt
maxbibnames=999,
date=iso,
seconds=true, %werden nicht verwendet, so werden aber Warnungen unterdrückt.
urldate=iso,
dashed=false,
autocite=inline,
useprefix=true, % 'von' im Namen beachten (beim Anzeigen)
mincrossrefs = 1
]{biblatex}%iso dateformat für YYYY-MM-DD
Des Weiteren müssen die Modifikationen für BibLaTeX auskommentiert werden:
%\input{skripte/modsBiblatex2018}
Nach dem Auskommentieren der Modifikationen für das Literaturverzeichnis stimmt es leider nicht mehr zu 100% mit den Vorgaben überein, wobei der Leitfaden hier auch sehr vage formuliert ist. Am besten mit dem Dozenten sprechen, ob das BibLaTeX-Format passt.
Durch das Auskommentieren der BibLaTeX Modifikationen müssen im Anschluss folgende Zeilen hinzugefügt werden:
%% et al. anstatt u. a. bei mehr als drei Autoren.
\DefineBibliographyStrings{ngerman}{
andothers = {{et\,al\adddot}},
}
\DefineBibliographyStrings{english}{
andothers = {{et\,al\adddot}},
}
Im Text kann anschließend mit \cite[S.~99]{Kornmeier2018}
oder \cite[S.~99-102]{Kornmeier2018}
oder \cite{Kornmeier2018}
zitiert werden:
Im Text kann anschließend mit [1, S. 99] oder [1, S. 99-102] oder [1] zitiert werden.
Ebene des ausgegebenen Inhaltsverzeichnis einstellen
Bis zu welcher Ebene das Inhaltsverzeichnis aufgelistet wird, kann über tocdepth Parameter eingestellt werden
\setcounter{tocdepth}{4}
Tabellen- und Abbildungsverzeichnis im Inhaltsverzeichnis
Die Anzeige des Tabbellen- und des Abbildungsverzeichnis lässt sich gleich am Anfang in der \documentclass einstellen.
Glossar im Inhaltsverzeichnis
Folgenden Eintrag auskommentieren, damit das Glossar nicht im Inhaltsverzeichnis angezeigt wird
\glstoctrue
Symbolverzeichnis
Damit das Symbolverzeichnis nicht mehr angezeigt wird, folgendes auskommentieren
\addcontentsline{toc}{section}{Symbolverzeichnis}
Abkürzungsverzeichnis
Damit das Symbolverzeichnis nicht mehr angezeigt wird, folgendes auskommentieren
\addcontentsline{toc}{section}{Abkürzungsverzeichnis}
Einige Professoren bevorzugen ein sortiertes (Webseite, Buch, Artikel...) Literaturverzeichnis. Dies kann mit folgender Änderung im Quellcode (thesis_main.tex) erreicht werden:
Zunächst diese Zeile auskommentieren:
%\printbibliography
Und die folgenden Zeilen einkommentieren und ggf. anpassen.
\printbibheading
\printbibliography[type=article,heading=subbibliography,title={Artikel}]
\printbibliography[type=book,heading=subbibliography,title={Bücher}]
\printbibliography[type=online,heading=subbibliography,title={Webseiten}]
Sollte ein Sperrvermerk für die Arbeit notwendig sein, so kann dieser durch Einkommentieren der folgenden Zeile aktiviert werden:
\input{kapitel/anhang/sperrvermerk}
Die Angaben zu Titel der Arbeit und Name der Firma werden dabei aus den Metadaten entnommen.
Um euren Quellcode einzubinden, wurde bereits das Paket listings in der Datei thesis_main.tex eingebunden. Dieses wird dort auch mit den Farben für Kommentare, Strings, etc. konfiguriert. Folgendermaßen könnt ihr Quellcode einbauen:
\lstinputlisting[language=JavaScript]{./Quellcode/Dateiname.js}
Für Javascript wurde eine eigene Definition erstellt und eingebaut. Für eine genauere Beschreibung aller im Standard verfügbaren Sprachen empfehlen wir folgenden Artikel: LaTeX/Source Code Listings @ Wikibooks.
Die voreingestellte Schriftart enthält Serifen. Mit den folgenden Zeilen kann in der Datei thesis_main.tex die Nutzung der Schriftart Helvet erzwungen werden.
% Überschreibe die default Schriftart mit helvet
\usepackage[scaled]{helvet}
\renewcommand\familydefault{\sfdefault}
PlantUML ist ein Open-Source-Tool, mit dem UML-Diagramme aus einfacher Textsprache erstellt werden können.
Um PlantUml benutzen zu können, müssen folgende Voraussetzungen erfüllt sein:
- Das Prozentzeichen muss vor der Zeile
\usepackage{plantuml}
in derthesis_main.tex
entfernt werden - Der PlantUML Code muss von
\begin{plantuml}
\end{plantuml}
umhüllt werden - Die
plantuml.jar
muss vorhanden sein, Download unter PlantUML - Kopiere die
plantuml.jar
zu einem lokalen Ordner (z.B.,mkdir -p ~/bin/plantuml && cp ~/Downloads/plantuml.jar ~/bin/plantuml
) - Installiere Graphviz (PlantUML ist davon abhängig).
Folgendes muss in der ~/.bashrc
oder zshconfig
sein:
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home'
export PLANTUML_JAR='$HOME/bin/plantuml/plantuml.jar'
export GRAPHVIZ_DOT='/usr/local/bin/dot'
Wir empfehlen das Dokument mit Docker (siehe unten) zu kompilieren.
Alternativ kann auch über die Ausführung der Skripte kompiliert werden, dafür müssen aber die unten beschriebenen LaTeX-Pakete installiert sein.
Unter Windows muss dafür die beiliegende compile.bat
ausführen.
Benutzer von macOS und Linux verwenden bitte die compile.sh
.
Wenn das Kompilieren nicht ohne Fehler möglich ist, kontrolliert bitte ganz genau eure LaTeX-Versionen oder nutzt Docker.
Mit Docker wird das Dokument direkt in einem isolierten Container kompiliert. In diesem Container sind alle Vorraussetzungen mit der richtigen Software und den richtigen Versionen gegeben.
Voraussetzung ist eine installierte Docker engine.
Um die PDF-Datei ohne die Installation der LaTeX-Pakete zu kompilieren, muss folgender Befehl in eurem Projekt-Ordner ( da wo die compile.sh bzw compile.bat liegt) ausgeführt werden:
docker-compose up
Den Befehl lasst ihr einfach über eure Kommandozeile bzw. PowerShell laufen (in Windows cmd.exe bzw. powershell.exe, beim Mac ist es das Terminal). Zum Projektordner könnt ihr kommen, indem ihr über den cd Befehl dorthin navigiert oder im Windows-Explorer in diesen Ordner wechselt und dann bei gedrückter Shift-Taste die rechte Maus-Taste klickt. Dort müsst ihr dann im Menü den Eintrag: "Öffne Kommandozeile hier" auswählen.
Falls es hier zu Problemen kommt, wenn ein gecachtes Image verwendet wird, können die folgenden Befehle ausgeführt werden:
docker-compose build --no-cache
docker-compose up
Wird Docker unter Windows 10 verwendet, muss der Daemon wie folgt konfiguriert werden:
Die benötigten Pakete befinden sich in dem Docker-Image, welches auf Docker Hub unter andygrunwald/fom-latex-template zur Verfügung steht. Es wird bei der Ausführung automatisch heruntergeladen.
Für das kompilieren ohne Docker ist LaTeX Grundvoraussetzung. Wenn Du MikTex oder MacTex verwendest, dann brauchst Du keine weiteren LaTeX-Pakete installieren.
Weiterhin wird Biblatex und Biber (>= Version 1.8) für das Literaturverzeichnisses benötigt.
Dem Projekt ist ein Github Workflow beigelegt, mit dem das Projekt nach einem push auf GitHub, sowie täglich je einmal automatisch kompiliert wird. Dieses Skript benötigt zugriff auf die compile.sh Datei, welche manuell gegeben werden muss. Dies erfolgt in der Console mit dem folgenden Befehl:
git update-index --chmod=+x compile.sh
Bei dem nächsten Push auf GitHub funktioniert das Skript dann, da es jetzt auf die Datei zugreifen kann.
Falls unter Windows der folgende Fehler auftritt, checkt git
die Dateien mit Windows Line Endings aus. Dies verursacht im Ubuntu Container einen Fehler.
env: bash\r: No such file or directory
Mit dem folgenden Befehl kann man git
dazu zwingen alle Dateien mit UNIX Zeilenendungen zu laden (siehe stackoverflow):
git config --global core.autocrlf true
Wenn Du das Docker Image selbst bauen möchtest, kannst Du es mit dem nachfolgenden Befehl tun:
docker build -t andygrunwald/fom-latex-template .
Eine mögliche Alternative zu Docker:
- WSL und Distribution installieren und konfigurieren (siehe Microsoft Docs)
- Fork des Repositories erzeugen (siehe oben) und Dein Repository klonen (siehe Github)
- TexLive und benötigte Pakete installieren
sudo apt-get install texlive texlive-lang-german texlive-latex-extra texlive-bibtex-extra texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended texlive-lang-german texlive-luatex biber xz-utils
- Installation überprüfen, durch Erzeugen der PDF-Datei.
./compile.sh
- (optional) Visual Studio Code mit Extension "Remote - WSL" benutzen (siehe Microsoft VS Code Marketplace)
Prinzipiell reicht ein normaler Text-Editor zur Bearbeitung aus. Jedoch kannst du zum Schreiben der Arbeit auch ein IDE verwenden. Hierzu gibt es nachfolgend einige Software:
- TeXstudio (Windows, macOS, Linux)
- Texpad (macOS, iOS)
- Visual Studio Code (macOS, iOS, Linux)
Für die Nutzung von Texpad unter macOS müssen einige Einstellungen beachtet werden. Standardmäßig ist biber nicht aktiviert. Dies führt dazu, dass das Literaturverzeichnis einfach "verschwindet", wenn man mit Texpad kompliliert. Daher musst Du unter Preferences > Typesettings > Bibliography Compilation als Engine biber auswählen.
Wer eine etwas moderne IDE benutzen möchte, kann auch Visual Studio Code verwenden. Folgende Extension ist notwendig:
Mit Hilfe der Extension kann das Projekt kompiliert und als Vorschau angesehen werden. In der settings.json
sind die Einstellungen der compile.sh
für Latex Workshop hinterlegt.
Zusätzlich kann die Extension LTeX hilfreich sein, die eine offline Grammatik- und Rechtschreibprüfung für LaTeX-Dokumente bietet.
Anstatt dir einen TEX-Editor und alle weiteren Pakete selber zu installieren und wie oben beschrieben zu kompilieren etc. kannst du auch Online-Tools wie Overleaf (https://www.overleaf.com/) verwenden. Beides hat seine Vor- und Nachteile auf die hier nicht näher eingegangen wird.
Zum Einbinden dieser Vorlage in Overleaf gibt es zwei Möglichkeiten:
- Der klassische Download wonach du das ZIP-File einfach bei Overleaf wieder hochlädst.
- Du kannst deinen Fork von Github in Overleaf einbinden.
Gerade bei der Verwendung eines Texteditors ist das Zählen der Wörter unter umständen eine mühselige Aufgabe. Mit den folgenden Vorschlägen kann man die Wörter der Arbeit zählen:
Über die Seite TeXcount können Latex Dateien hochgeladen und gezählt werden.
Unter Unix und macOS kann das mitgelieferte Script helfen die Wörter zu zählen. Dafür muss nur detex installiert werden. Unter macOS kann detex
mittels homebrew über den Befehl brew install opendetex
installiert werden.
Das Skript wird einfach über sh ./countwords.sh
gestartet.
Overleaf hat eine integriete Funktion zum Zählen der Wörter. Diese findet man in Overleaf unter Menü -> Aktionen -> Wortanzahl.
Um bestimmte Bereiche von der Wortanzahl auszuschießen, können %TC:ignore
und %TC:endignore
genutzt werden. Diese Vorlage ist so konfiguriert, dass nur Wörter aus den Kapiteln gezählt werden.
Ab und zu kommt es vor, dass es nicht klappt wie beschrieben oder man eine Frage hat. Ich würde euch bitten mir nicht persönlich eine E-Mail zu schreiben, sondern lieber ein neues Issue in diesem Projekt eröffnet. Dies hat folgende Vorteile:
- andere Personen können zur Lösung beitragen (weil sie diese ggf. auch hatten)
- wir haben eine Dokumentation an vorhandenen und gelösten Fehlern / Fragen
- gelöste / wiederkehrende Probleme müssen nicht erneut beantwortet werden
Verbesserungen an dieser Vorlage sind stets erwünscht und willkommen. Github (diese Plattform) selbst ist dafür gemacht, um zusammen an Open Source Projekten zu arbeiten. Deswegen werden Änderungen über Pull Requests sehr gerne entgegen genommen.
Wenn du das erste mal mit Git, Github und Pull Requests arbeitest, können dir folgende zwei Artikel weiter helfen:
Die Nutzung des Projektes ist auf eigene Gefahr und es kann keine Vollständigkeit gewährleistet werden. Bitte überprüfe das Ergebnis erneut anhand der entsprechenden Leitfäden deines Studiengangs. Einzelne Standorte und Professoren stellen abgeänderte Leitfäden bereit.
Dieses Projekt ist unter den Bedingungen der MIT Lizenz öffentlich verfügbar.