Ein Template für die Transferleistungen an der Nordakademie, basierend auf der Visual Studio Code Erweiterung LaTeX Workshop
- Inhalt
- Voraussetzungen
- Nutzung
- Simple Textformatierung
- Abkürzungen
- Cross referencing
- Anhänge
- Bibliografie
- ChkTeX
- Grafiken
- Tabellen
- Listen
- Code
- Visual Studio Code installieren.
- Die Remote Development Erweiterung für Visual Studio Code installieren (das kann in VSC unter dem "Extensions" Tab erfolgen).
- Docker installieren (FYI man benötigt keinen Account).
- Docker starten, die Docker Engine muss im Hintergrund laufen.
- Visual Studio Code öffnen und den Ordner fürs Template öffnen.
- Ganz unten links auf den Button "Open a Remote Window" klicken.
- Oben die Option "Reopen in Container" anklicken.
Die Kurzreferenz ist eine Sammlung an Informationen, die ich regelmäßig gebraucht und hier abgelegt habe, damit ich sie nicht immer neu recherchieren muss, wenn man nach ein paar Monaten sie wieder vergessen hat. Das hier gezeigte ist auch teilweise in den Beispiel-Dateien bzw. -Code zu finden.
Das ist ein Beispiel für fettgedruckt.
\textbf{<text>}Das ist ein Beispiel für kursiv.
\textit{<text>}Das ist ein Beispiel für Unterstrichen.
\underline{<text>}Das ist ein Beispiel für monospace
\texttt{<text>}Für Abkürzungen wird das Paket acro verwendet, mehr Information dazu gibt es in der Dokumentation.
❗
\printacronymsfunktioniert nicht immer beim ersten durchlauf, das Dokument muss ggf. mehrmals gebaut werden!
Abkürzungen werden in der folgenden Datei abgelegt:
transferleistungs_template/src/internal/acronyms.tex
Eine Abkürzung wird wie folgt angelegt (in der Dokumentation gibt noch weitere Parameter, die aber optional sind):
\DeclareAcronym{<id>}{
short = <short>,
long = <long>
}\ac{<id>} % -> <long> (<short>)\acs{<id>} % -> <short>\acl{<id>} % -> <long>\cref{}Wird durch das Paket
hyperrefermöglicht
| label | type |
|---|---|
| ch | chapter |
| sec | section |
| subsec | subsection |
| fig | figure |
| tab | table |
| eq | equation |
| lst | code listing |
| itm | enumerated list item |
| alg | algorithm |
| app | appendix subsection |
Anhänge werden unter /assets/appendix abgelegt. Anhänge können dann mit folgendem Custom Befehl hinzugefügt werden:
\addAppendix{<tile>}{<filename>}FYI der Befehl ist in /src/internal/config.tex zu finden.
Weiter schnelle Informationen über BibLaTeX sind hier zu finden.
Quellen-Codeblöcke werden in die Datei /src/internal/bibliography.bib eingefügt.
Ein Einzelstück, ein Buch mit einem oder mehreren Autoren, wo die Autoren alle zusammen gearbeitet haben.
@book{<id>,
% pflicht
author = {},
title = {},
date = {},
% optional
editor = {},
editora = {},
editorb = {},
editorc = {},
translator = {},
annotator = {},
commentator = {},
introduction = {},
foreword = {},
afterword = {},
subtitle = {},
titleaddon = {},
maintitle = {},
mainsubtitle = {},
maintitleaddon = {},
language = {},
origlanguage = {},
volume = {},
part = {},
edition = {},
volumes = {},
series = {},
number = {},
note = {},
publisher = {},
location = {},
isbn = {},
eid = {},
chapter = {},
pages = {},
pagetotal = {},
addendum = {},
pubstate = {},
doi = {},
eprint = {},
eprintclass = {},
eprinttype = {},
url = {},
urldate = {},
year = {},
}Ein Artikel in einem Journal, einer Zeitschrift, einer Zeitung oder einem anderem Periodikum, welches einen eigenen Abschnitt mit einem eigenen Titel erhält.
Die Datenfelder sind gleich zu
@bookmit dem Unterschied, dassjournaltitle={}ein Pflichtfeld ist.
@article{<id>,
% pflicht
author={},
title={},
journaltitle={},
date={},
% optional
editor = {},
editora = {},
editorb = {},
editorc = {},
translator = {},
annotator = {},
commentator = {},
introduction = {},
foreword = {},
afterword = {},
subtitle = {},
titleaddon = {},
maintitle = {},
mainsubtitle = {},
maintitleaddon = {},
language = {},
origlanguage = {},
volume = {},
part = {},
edition = {},
volumes = {},
series = {},
number = {},
note = {},
publisher = {},
location = {},
isbn = {},
eid = {},
chapter = {},
pages = {},
pagetotal = {},
addendum = {},
pubstate = {},
doi = {},
eprint = {},
eprintclass = {},
eprinttype = {},
url = {},
urldate = {},
year = {},
}Dieser Eingabetyp ist für reine Onlinequellen wie Websites gedacht. Zu beachten ist, dass alle Eingabetypen das url-Feld unterstützen. Zum Beispiel, beim Zitieren eines Artikels aus einer Zeitschrift, die online verfügbar ist, ist der @article-Typ und dessen url-Feld zu verweden.
@online{<id>,
% plficht
author = {},
title = {},
date = {},
url = {},
urldate = {},
% optional
doi = {},
eprint = {},
editor = {},
subtitle = {},
titleaddon = {},
language = {},
version = {},
note = {},
organization = {},
month = {},
addendum = {},
pubstate = {},
eprintclass = {},
eprinttype = {},
year = {},
}Eine Fallbacklösung für Quellen, die sonst in keine Kategorie passen. Das Feld
howpublished kann hilfreich sein für eine Klarifizierung wo die Quelle herkommt.
Ein Augenmerk sei auch auf type zu legen um zu klären, was die Quelle überhaupt
darstellt.
Es sollte auch unpublished erwähnt werden, jedoch fehlt da das organization Feld, welches jedoch bei internen Quellen benötigt wird.
@misc{<id>,
% pflicht
author/editor = {},
title = {},
date = {},
% optional
subtitle = {},
titleaddon = {},
language = {},
howpublished = {},
type = {},
version = {},
note = {},
organization = {},
location = {},
month = {},
addendum = {},
pubstate = {},
doi = {},
eprint = {},
eprintclass = {},
eprinttype = {},
url = {},
urldate = {}
}Im Gegensatz zu \cite sind bei \parencite die Klammern vorhanden
\parencite{<id>}\parencite[vgl.][<seite>]{<id>}Direkte Zitate sollten zwar möglichst vermieden werden, jedoch sind sie ab und zu
nötig oder nützlich. Das Paket csqoutes bietet eine große Auswahl an Möglichkeiten. Mit dem folgenden Befehl wird eine ansehnliche weise des Zitierens verwendet, welche sich aus dem Text hervorhebt.
(Die Klammern werden schon von der Umgebung displayquotes gesetzt, daher kann \cite verwendet werden.)
\begin{displayquote}[\cite{<bibid>}]
\emph{<text>}
\end{displayquote}Pro Zeile:
% chktex <cktex_warning_number>Mehrere Warnungen in einer Zeile (für jede Warnung muss mit einem neuen chktex angekündigt werden):
% chktex <cktex_warning_number> chktex <cktex_warning_number>Für das ganze Projekt können Regeln in der .chktexrc unterdrückt werden mit:
-n<cktex_warning_number>Zum Beispiel
-n44
# 44: User Regex: -2:Use \toprule, midrule, or \bottomrule from booktabs.
# Because: booktabs my have a better handeling of tables but the difference in linethickness is very offputting with smaller tables and \hline is sufficient.Ein Kommentar um welche Regel es sich handelt und warum sie deaktiviert ist kann hier sehr hilfreich sein!
Grafiken werden in /assets/images/ abgelegt.
| Verfügbare Dateiformate |
|---|
| .png .jpg .pdf |
\begin{figure}[H] % Grafik soll hier im Text stehen.
\centering
\includegraphics[width=.8\linewidth]{<graphics name>} % importiere Grafik
\caption{<caption text>} % Bildbeschreibung
\label{<label>} % das lable um auf die Grafik zu referieren
\end{figure}Anstelle von \includegraphics[]{} verwenden:
\adjincludegraphics[%
width=\linewidth,
trim={{.125\width} 0 {.125\width} 0},
% <left> <lower> <right> <upper>
clip%
]{<file name>}\begin{figure}[H]
\centering
\begin{subfigure}{.4\textwidth}
\centering
\includegraphics[width=.8\linewidth]{<subfig filename 1>}
\caption{<suvfig caption 1>}
\label{<subfig label 1>}
\end{subfigure}
\begin{subfigure}{.4\textwidth}
\centering
\includegraphics[width=.8\linewidth]{<subfig filename 2>}
\caption{<suvfig caption 2>}
\label{<subfig label 2>}
\end{subfigure}
\caption{<caption>}
\label{<fig label>}
\end{figure}❗Wenn es keinen Text gibt, der die Grafik einschließt beeinflusst die Grafik die Überschriften des Dokuments auf unkontrollierbare Weise!
| location | Description |
|---|---|
| r R | right side of the text |
| l L | left side of the text |
| i I | inside edge–near the binding (in a twoside document) |
| o O | outside edge–far from the binding |
\begin{wrapfigure}{<location>}{.3\textwidth}
\centering
\includegraphics[width=.8\linewidth]{<file name>}
\def\captionValue{<caption>}
\caption[\captionValue]{\captionValue{} <reference>}
\label{<label>}
\end{wrapfigure}\ref{fig:<label>}TBD
\begin{itemize}
\item Item 1
\item Item 2
\item Item 3
\end{itemize}\renewcommand{\labelitemi}{<symbol>}Codeblöcke werden mit dem Paket minted realisiert.
\begin{listing}[H]
\begin{minted}{c} % sprache festlegen (hier c)
int main() {
// print hello world
printf("hello, world!");
return 0;
}
\end{minted}
\caption{Hello world in C}
\label{lst:listing}
\end{listing}\mintinline{c}|int i = 1|.Festgelegt in src/transferleinstung/transferleistung.tex
% list of code
\renewcommand{\headingValue}{Quelltext}
\renewcommand\listoflistingscaption{\headingValue} % Name ändern (original List of Listings)
\listoflistings
\addcontentsline{toc}{section}{\headingValue}
\newpageFestgelegt in config/config.tex
\renewcommand{\listingscaption}{Quelltext}Festgelegt in config/config.tex
\usemintedstyle{vs}Festgelegt in config/config.tex
\setminted{%
autogobble,
linenos, % enable line numbers
% numbers = left, % default none
% numbes is essentially the same as linenos exceot the side can be specified
tabsize = 4 % default 8
}Festgelegt in config/config.tex
Muss separat über das Makro \theFancyVerbLine angepasst werden.
\renewcommand{\theFancyVerbLine}{%
\textcolor{gray}{%
\ttfamily
\scriptsize
\oldstylenums{\arabic{FancyVerbLine}}
}
}