Skip to content
Snippets Groups Projects
Commit b9bb4bee authored by Philip Bergmann's avatar Philip Bergmann
Browse files

Initial version, based on the design from Info 3

parents
No related branches found
No related tags found
No related merge requests found
# Output pdf
/*.pdf
# JabRef backup files
*.sav
*.sav.tmp
*.bak
################################################################################
# From https://github.com/github/gitignore/blob/master/TeX.gitignore
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
*.lzo
*.lzs
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Comment the next line if you want to keep your tikz graphics files
*.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
################################################################################
# From https://github.com/github/gitignore/blob/master/Global/Linux.gitignore
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
{
"latex-workshop.latex.recipe.default": "latexmk (latexmkrc)"
}
\addchap{Summary}
\section*{Abstract}
This template gives a very rough structure for how to write a thesis.
Currently it only deals with some technical, but not content questions.
\begin{otherlanguage}{ngerman}
\section*{Zusammenfassung}
Für english-sprachige Arbeiten muss auch ein deutscher Abstract vorliegen,
solange hiervon keine Befreihung durch beide Gutachtenden vorliegt
(ASPO 2015 §26, Abs 9, Satz 2) oder die FSB eine Ausnahme vorsehen.
Die deutsche Zusammenfassung dann bitte hier hin.
\end{otherlanguage}
# SCRS LaTeX Thesis Template
This template provides a scaffold for writing your thesis.
While typographical changes are generally possible, you are strongly encouraged to talk to your supervisor before "shipping" such a change - some settings have been chosen deliberately or might evoke strong feelings.
## Usage
- The template is currently setup for only `lualatex`, `biblatex` and `biber`. Other LaTeX engines and bibliography tools should generally work as well, but will probably require adjusting the preamble and/or class file. If you do this, let us know, so we can try to include your word, so that the next person does not have to do it as well ;)
- The compilation is orchestrated by `latexmk`.
### Generic Instructions
- Install a TeX distribution. Development currently happens under Debian / TeXLive
- Debian and probably most Debian-based distributions: `apt install texlive-full` (all-inclusive service, but a big download/install! If you do not have the space, you need to identify the individual packages yourself - but feel free to let us know.)
- If you rename `writeup.tex`, also adjust `@default_files` in `latexmkrc` accordingly.
- To compile, just run `latexmk` in the directory of the main `.tex` file and the `latexmkrc` file. It will automatically compile as often as needed and run `biber` as well, when required.
### VSCodium / VS Code
- James-Yu's LaTex Workshop ([GitHub](https://github.com/James-Yu/LaTeX-Workshop), [Open VSX](https://open-vsx.org/extension/James-Yu/latex-workshop)) works great, to get it to compile with `latexmk` using `latexmkrc`, set `"latex-workshop.latex.recipe.default"` to `"latexmk (latexmkrc)"` (already set in the `.vscode/settings.json` included with the template)
- You might also want to use valentjin's LTeX – LanguageTool grammar/spell checking extension ([GitHub](https://github.com/valentjn/vscode-ltex), [Open VSX](https://open-vsx.org/extension/valentjn/vscode-ltex)) together with LanguageTool for type and grammar checking.
## Common Mistakes & Hints for a Good Thesis
### Graphics
- When referring to a figure, write `Figure 1`, with a capital letter `F` - even in the middle of a sentence. `\autoref{LABEL HERE}` can help you.
- When including drawings, plots, etc., include them as vector graphic (`eps`, `pdf`, ...) if at all possible (and reasonable).
- Exporting a PDF from draw.io is not more complicated than exporting a raster image, but the result looks much better and stays sharp when zoomed in.
- If possible with your plotting toolkit, you can also export your graphic as drawing commands for e.g. *pgf* - then with correct configuration the type face and font size will also match with the rest of the text. *Matplotlib* can do that, see its documentation [here](https://matplotlib.org/stable/users/explain/text/pgf.html). Note: This is typically more work and not strictly necessary.
- A vector graphic is no longer reasonable if a recent computer takes a few seconds to render the resulting page. If the vector graphic is a plot, then with tools like *matplotlib* and *pgf*, it is possible to rasterize the plot lines while still keeping the axis, labels and legend as vector elements. If this is not easily possible, pre-render the graphic to a lossless raster format with sufficient resolution.
- Use raster images with lossless compression (`png`, ...) for screenshots and other images that were rastered in their original form.
- Use raster images with lossy compression (`jpeg`, ...) for pictures taken with a camera.
### Units and Quantities
- When writing quantities, use a package like `siunitx` (if possible) - then you don't have to deal with the typography yourself.
- Prefer quantity equations (equations that remain valid independent of the units, e.g. `\lambda = c / f`) and make sure the units work out. Avoid numerical-value equations (equations that depend on the quantities being expressed in specific units, e.g. `\lambda in m = 300 / f in MHz`). If numerical-value equations are required or very common, give the quantity equation beforehand.
- To label e.g. a column containing numeric values of a symbol, write `SYMBOL / UNIT`, or `SYMBOL in UNIT`, e.g. `SNR / dB`. The square brackets `[]` are used to indicate the unit of a symbol, e.g. `[SNR] = dB`. Ergo, `SNR [dB]` is nonsensical and wrong - even if commonly seen.
- More information about correctly dealing with units and equations can be found in the Rhode & Schwarz Brochure (in german, currently no other language version is known) [Der normgerechte Umgang mit Größen, Einheiten, und Gleichungen](https://scdn.rohde-schwarz.com/ur/pws/dl_downloads/pdm/cl_brochures_and_datasheets/brochure/5214_5061_61/Der_normgerechte_Umgang_mit_bro_de_5214-5061-61_v0600.pdf) ([IA](https://web.archive.org/web/20240304101932/https://scdn.rohde-schwarz.com/ur/pws/dl_downloads/pdm/cl_brochures_and_datasheets/brochure/5214_5061_61/Der_normgerechte_Umgang_mit_bro_de_5214-5061-61_v0600.pdf)) (Source: Search for *Einheiten* in the *Knowledge Center Downloads*)
- Exception: `dBm` and friends are acceptable here, even if this document says these ITU abbreviations are to be avoided.
## Acknowledgements
Based on the Info 3 template - many thanks!
\IfStrEq{de}{\localeinfo{language.tag.bcp47}}{
\foreignlanguage{ngerman}{
\section*{Versicherung zur selbständigen Leistungserbringung}
% ASPO 2015 v2023-03-29 §26 Abs 11 Satz 1 - 2
Ich versichere, dass ich die folgende schriftliche Arbeit selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe. Die benutzte Literatur sowie sonstige Hilfsquellen sind vollständig angegeben. Wörtlich oder dem Sinne nach dem Schrifttum oder dem Internet entnommene Stellen sind unter Angabe der Quelle kenntlich gemacht.
% ASPO 2015 Grundlage unbekannt
Weitere Personen waren an der geistigen Leistung der vorliegenden Arbeit nicht beteiligt. Insbesondere habe ich nicht die Hilfe eines Ghostwriters oder einer Ghostwriting-Agentur in Anspruch genommen. Dritte haben von mir weder unmittelbar noch mittelbar Geld oder geldwerte Leistungen für Arbeiten erhalten, die im Zusammenhang mit dem Inhalt der vorgelegten Arbeit stehen.
% ASPO 2015 Grundlage unbekannt
% Bitte dieses Absatz entfernen, falls nicht zutreffend
Mit dem Prüfungsleiter bzw. der Prüfungsleiterin wurde abgestimmt, dass für die Erstellung der vorgelegten schriftlichen Arbeit Chatbots (insbesondere ChatGPT) bzw. allgemein solche Programme, die anstelle meiner Person die Aufgabenstellung der Prüfung bzw. Teile derselben bearbeiten könnten, entsprechend den Vorgaben der Prüfungsleiterin bzw. des Prüfungsleiters eingesetzt wurden. Die mittels Chatbots erstellten Passagen sind als solche gekennzeichnet.
% Plagiats-Check: ASPO 2015 v2023-03-29 §27a
Der Durchführung einer elektronischen Plagiatsprüfung stimme ich hiermit zu. Die eingereichte elektronische Fassung der Arbeit ist vollständig. Mir ist bewusst, dass nachträgliche Ergänzungen ausgeschlossen sind.
Die Arbeit wurde bisher keiner anderen Prüfungsbehörde vorgelegt und auch nicht veröffentlicht. Ich bin mir bewusst, dass eine unwahre Erklärung zur Versicherung der selbstständigen Leistungserbringung rechtliche Folgen haben kann.
% Quelle: https://www.uni-wuerzburg.de/studium/pruefungsamt/antragsformulare/
% unter "Abschlussarbeiten / Hausarbeiten" (Stand: 2023-11-27)
\hfill\emph{Erklärung übernommen aus dem bereitgestellten Formular des Prüfungsamtes}
% end of german case, begin of english translation
}}{\foreignlanguage{american}{
\section*{Declaration of Authorship}
% ASPO 2015 v2023-03-29 §26 Abs 11 Satz 1 - 2
I confirm that I have written the following thesis independently and have not used any sources or aids other than those stated. The literature used and other sources are listed in full. Any passages taken verbatim or in spirit from the literature or the Internet are marked with the source.
% ASPO 2015 Grundlage unbekannt
No other persons were involved in the intellectual output of this work. In particular, I have not used the help of a ghostwriter or a ghostwriting agency. Third parties have neither directly nor indirectly received money or monetary benefits from me for work related to the content of the submitted work.
% ASPO 2015 Grundlage unbekannt
% Please remove if this paragraph not applicable
Chatbots (in particular ChatGPT or similar programs that can process the examination task or parts thereof instead of me) were used only used in accordance with the instructions of the examination supervisor. The passages created using chatbots are marked as such.
% Plagiats-Check: ASPO 2015 v2023-03-29 §27a
I hereby consent to the use of an electronic plagiarism check. The submitted electronic version of the thesis is complete. I am aware that subsequent additions are excluded.
The thesis has not been submitted to any other examination authority and has not been published. I am aware that an untrue statement regarding the assurance of independent performance may have legal consequences.
% Source: https://www.uni-wuerzburg.de/studium/pruefungsamt/antragsformulare/
% section "Abschlussarbeiten / Hausarbeiten" (Stand: 2023-11-27), then translated
\hfill\emph{Declaration translated from the form provided by the examination office}
}}
\vskip 5em
% Signature
\noindent{Würzburg}, \csname @duedate\endcsname%
\hfill%
\vbox{%
\hbox to 7cm{}%
\kern2pt\hrule%
}%
\vskip 1mm
\hfill\csname @author\endcsname
% Spacer to put the license at the bottom of the page
\vfill
\IfStrEq{de}{\localeinfo{language.tag.bcp47}}{
\foreignlanguage{ngerman}{
\section*{Lizenz}
% Wir würden uns sehr freuen, wenn wir (und andere) auf deiner Arbeit aufbauen können,
% so wie du auch auf den Arbeiten von anderen Wesen aufbaust.
% Dafür ist eine entsprechende Lizenzierung notwendig, da das Urheberrecht
% dem Urheber / der Urheberin (dir!) standardmäßig u.a. das alleinige Recht zur
% Weiterverbreitung garantiert.
% Eine einfache und weit verbreitete Maßnahme ist z.B. die Lizenzierung unter
% Creative Commons, wie es auch bei vielen Open Access Publikation der Fall ist.
% Es gibt mehrere Arten der Creative Commons Lizenz, der License Chooser
% <https://chooser-beta.creativecommons.org/> gibt eine gute Übersicht.
% Bitte passe dann den Text unten entsprechend an.
% Falls du noch Fragen hast, komm gerne auf uns zu!
Diese Arbeit steht, soweit nicht anders angegeben, unter der
\emph{Creative Commons Attribution-ShareAlike Lizenz}:
\url{http://creativecommons.org/licenses/by-sa/4.0/}
\ccbysa.
}}{\foreignlanguage{american}{
\section*{License}
% We would be very happy if we (and others) could build on your work,
% just as you build on the work of other Creatures.
% Appropriate licensing is necessary for this, as copyright grants
% the author (you!) the exclusive right to redistribute your work.
% A simple and widespread measure is, for example, licensing under
% Creative Commons, as is the case with many open access publications.
% There are several types of Creative Commons licenses, the License Chooser
% <https://chooser-beta.creativecommons.org/> gives a good overview.
% Please adapt the text below accordingly.
% If you have any questions, please contact us!
Except otherwise noted, this work is licensed under the
\emph{Creative Commons Attribution-ShareAlike license}:
\url{http://creativecommons.org/licenses/by-sa/4.0/}
\ccbysa.
}}
% The other things begin on a new page
\clearpage
# This file is just a Perl file read by latexmk for defaults.
# For more information, refer to `man latexmk`.
# Default list of files to be processed.
# If nothing is specified and latexmk is invoked without a file it seems
# to default to the lexographic first .tex file
@default_files = ('writeup.tex');
# Change to the directory containing the main source file before processing it.
$do_cd = 1;
# If zero, do NOT generate a pdf version of the document.
# 1 = pdflatex, 4 = lualatex
$pdf_mode = 4;
# Show CPU time used.
$show_time = 1;
# Set default arguments for TeX programs (pdflatex/lualatex/xelatex/...)
# -interaction=nonstopmode
# Print diagnostic error message, do not ask for user input.
# -interaction=batchmode
# Print nothing to the terminal, no not ask for user input.
# -halt-on-error Stop processing at the first error.
# -file-line-error Show file and line in error messages.
# -synctex=1 Enable synctex.
# %O %S Options and Source file.
set_tex_cmds('-interaction=nonstopmode -halt-on-error -file-line-error -synctex=1 %O %S');
# Run bibtex when needed, always delete .bbl files during cleanup
$bibtex_use = 2;
# Also clean up JOBNAME-blx.bib files
$clean_ext .= ' %R-blx.bib';
# biber XML file
$clean_ext .= ' %R.run.xml';
# Delete synctex file on normal clean
push @generated_exts, 'synctex.gz';
# todonotes
push @generated_exts, 'tdo';
# glossaries
push @generated_exts, 'ist';
File added
File added
@Report{Blankenburg2017Normengerechte,
author = {Klaus H. Blankenburg},
date = {2017},
institution = {Rohde \& Schwarz},
title = {Der normengerechte Umgang mit Größen, Einheiten und Gleichungen},
type = {techreport},
language = {german},
url = {https://scdn.rohde-schwarz.com/ur/pws/dl_downloads/pdm/cl_brochures_and_datasheets/brochure/5214_5061_61/Der_normgerechte_Umgang_mit_bro_de_5214-5061-61_v0600.pdf},
urldate = {2024-03-05},
comment = {Source: Search for *Einheiten* in the *Knowledge Center Downloads* on https://www.rohde-schwarz.com/},
keywords = {quick ref},
}
@Comment{jabref-meta: databaseType:biblatex;}
@Comment{jabref-meta: saveOrderConfig:specified;author;false;year;false;title;false;citationkey;false;}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{scrskoma}[2024/03/05 Based on KOMA, loads many other packages]
% The date format should be YYYY/MM/DD :(
% This class originated partially from the Daedalus 2 SED and then my (Philip's) master thesis.
% I do wonder how long it will live on somewhere... Hello to you, future creature :)
%-------------------------------------------------------------------------------
% Short usage information:
% - Specify "superclass" to use with documentclass option
% scls=scrartcl|article|scrreprt|report|scrbook|book
% - Use final as document class option to suppress the various \todo[...]
% - Babel language goes into document options, last language is the main one
%-------------------------------------------------------------------------------
%-------------------------------------------------------------------------------
% Options, Parameters and Superclass
%-------------------------------------------------------------------------------
% Options defining the superclass
% Yes, I am aware that keyval packages exist, but I tired my luck with
% kvoptions and it did not work because to option processing order
% was wrong (i.e. the super call macro still had the default option when
% processing the undeclared options), so I gave up
\newcommand{\scrskoma@scls}{scrartcl}
% article / scrarticle
% - typically for shorter documents documents
% - hightest sectioning level is \section
\DeclareOption{scls=scrartcl}{
\renewcommand{\scrskoma@scls}{scrartcl}
}
\DeclareOption{scls=article}{
\renewcommand{\scrskoma@scls}{scrartcl}
}
% report / scrreprt
% - for longer articles, shorter books or thesis
% - hightest sectioning level is \chaption
\DeclareOption{scls=scrreprt}{
\renewcommand{\scrskoma@scls}{scrreprt}
}
\DeclareOption{scls=report}{
\renewcommand{\scrskoma@scls}{scrreprt}
}
% book / scrbook
% - hightest sectioning level is \part
% - has \frontmatter, \mainmatter, \backmatter commands
% - no built-in abstract environment
\DeclareOption{scls=scrbook}{
\renewcommand{\scrskoma@scls}{scrbook}
}
\DeclareOption{scls=book}{
\renewcommand{\scrskoma@scls}{scrbook}
}
% All unknown parameters get passed to the superclass
% I am not sure why this is needed b/c the documentclass options
% are global options and therefore should also be seen by the superclass.
% But it is required
\DeclareOption*{
\PassOptionsToClass{\CurrentOption}{\scrskoma@scls}
}
% Process options in the order they appear
% (w/o star options are processed in the order declared in the package file)
% https://tex.stackexchange.com/a/82441
\ProcessOptions*
% Default options for superclasses could be specified here with
%\PassOptionsToClass{options}{class}
% these would only get applied when that class is then later actually loaded
% load superclass
\LoadClass{\scrskoma@scls}
% load scrhack which fixes some other packages to work better with KOMAScript
\RequirePackage{scrhack}
%-------------------------------------------------------------------------------
% Language
%-------------------------------------------------------------------------------
% Language should come from the global document class options
% Last language in document class options is the main one
\RequirePackage{babel}
%-------------------------------------------------------------------------------
% General layout
%-------------------------------------------------------------------------------
% Include list of figures and tables in TOC
\KOMAoptions{listof=totoc, listof=flat}
% Include everything down to subsubsections in the TOC
\setcounter{tocdepth}{\subsubsectiontocdepth}
% and number everything down to subsubsections
\setcounter{secnumdepth}{\subsubsectionnumdepth}
% Print chapter titles in the header
\pagestyle{headings}
%-------------------------------------------------------------------------------
% Math
%-------------------------------------------------------------------------------
% \DeclareMathOperator, also required by commath, so load explicitly
\RequirePackage{amsmath}
% For \mathbb (e.g. natural numbers symbol)
\RequirePackage{amssymb}
% commath for \dif (dt in integrals) among others
\RequirePackage{commath}
% \bm for bold italic letters in math
\RequirePackage{bm}
% New math operators
% arctan2(y, x)
\DeclareMathOperator{\arctantwo}{arctan2}
% Shorthands
\newcommand{\logx}{\log_{10}}
\newcommand{\mbeq}{\overset{!}{=}} % "mbeq": must be equal
%-------------------------------------------------------------------------------
% SI Unit Formatting
%-------------------------------------------------------------------------------
% Enables use of \SI{number}[pre-unit]{unit}
\RequirePackage{siunitx}
%\sisetup{locale = US} % locale only, language comes from babel
%\sisetup{per-mode=symbol, per-symbol = p} % for bits per second
\DeclareSIUnit\gauss{G}
\DeclareSIUnit\dBW{dbW}
\DeclareSIUnit\dBm{dBm}
%-------------------------------------------------------------------------------
% General Packages without special config
%-------------------------------------------------------------------------------
% Include and input packages from subfolders with relative input
\RequirePackage{import}
% Request pages (and their content) to be in landscape mode by placing them inside
% \begin{landscape} [... content ...] \end{landscape}
% With scrhack \textheight and \textwidth keep their original values,
% without scrhack \textheight becomes \textwidth, but \textwidth retains
% it's original value (which is inconsistent and confusing).
\RequirePackage{pdflscape}
%-------------------------------------------------------------------------------
% Fonts and Typesetting
%-------------------------------------------------------------------------------
% Makes more beautiful text
\RequirePackage{microtype}
% Smart, context sensitive quotes
% Active Quotes are not enabled, so you will always want to use \enquote and
% friends
% After: babel (so that autostyle works)
\RequirePackage[autostyle]{csquotes}
%-------------------------------------------------------------------------------
% Colors
%-------------------------------------------------------------------------------
% required at least for the linkcolor option to hyperref
\RequirePackage{xcolor}
%-------------------------------------------------------------------------------
% Floats, Figures and Tables, common stuff
%-------------------------------------------------------------------------------
% KOMA option: no hanging indents for captions
\setcapindent{0pt}
% Provides (among probably other things) the capital H placement modifier
% Causes the `\float@addtolists detected!` warning from KOMAScript when
% used without loading scrhack.
% With scrhack it uses KOMA's tocbasic (more infos in scrguide.pdf)
\RequirePackage{float}
% For figures and tables that are placed "on the side"
\RequirePackage{wrapfig}
% Provides subfigure and subtable environments
% Replacement for the deprecated subfigure
\RequirePackage{subcaption}
%-------------------------------------------------------------------------------
% Graphics / Figures
%-------------------------------------------------------------------------------
% For graphics
% Gets later loaded by todonotes anyway, but I figure its good style to load
% it explicitly here.
\RequirePackage{graphicx}
% Fancy command-defined graphics
\RequirePackage{tikz}
% Required for "valign=m, margin=.5em" in \includegraphics
% Basically, this makes it so pictures in tables work as 'floats'
% and not just one big character that makes the line as tall as itself.
\RequirePackage[export]{adjustbox}
%-------------------------------------------------------------------------------
% Tables
%-------------------------------------------------------------------------------
% For fancier tables & \toprule, \midrule and \bottomrule
\RequirePackage{booktabs}
% For tables that are as wide as a page
\RequirePackage{tabularx}
%-------------------------------------------------------------------------------
% hyperref package and PDF metadata
%-------------------------------------------------------------------------------
% Pass hypens option to url, when it later gets loaded by hyperref
% This is required so the line breaks in URLs work properly
\PassOptionsToPackage{hyphens}{url}
\RequirePackage[% Explanations are copy&paste from the hyperref doc
pdfpagemode=UseOutlines, % Determines how the file is opening in Acrobat
pdfdisplaydoctitle=true, % display document title instead of file name in title bar
pdfpagelayout=OneColumn, % set layout of PDF pages
hypertexnames=false, % do not use guessable names for links
% pdfusetitle breaks with \and in the authors list
%pdfusetitle=true, % use \title and \author for PDF metadata
% Bookmark (this is the table of conents displayed in your PDF viewer) config
bookmarks=true,
bookmarksopen=true,
bookmarksopenlevel=2, % levels of bookmarks to expand, not sure what the number exactly means...
bookmarksnumbered=true,
colorlinks=true,
linkcolor={blue!50!black},
citecolor={green!50!black},
urlcolor={magenta!50!black}
]{hyperref}
% Command to override automatic author extraction from \author
% because the automatic extraction will fail quite easily
% \@safepdfauthor b/c \@pdfauthor is already used by hyperref
\newcommand{\@safepdfauthor}{}
\def\@safepdfauthor{} % required or the \ifx\@safepdfauthor\empty is false
\newcommand{\pdfauthor}[1]{\def\@safepdfauthor{#1}}
% Force-Feed hyperref the subject, also custom title
% This needs to happen AtBeginDocument b/c only than are all the @vars
% correctly defined
\AtBeginDocument{
\makeatletter%
\begingroup% to protentially scope the \def\and
% automatic author extraction if \@safepdfauthor is still empty
% Note: if no \author has ever been set, \@author is
% \@latex@warning@no@line {No \noexpand \author given}
% which, when trying to write it to PDF document metadata
% produces strange warnings from hyperref and also an author that is just
% a bunch of chinese characters
\ifx\@safepdfauthor\empty%
% make \and work in the pdf author list
% replace the \and by "and " as is standard in biblatex author lists
% (in \author you must have {a \and b \and c}, so a space before and)
\def\and{and }%
% \edef means expand completely what is in {}
% so replace \and by what we defined it above to be
\edef\@safepdfauthor{\@author}%
\else\fi%
\hypersetup{
pdfsubject={\@subject},
pdftitle={\@title},
pdfauthor={\@safepdfauthor}
}%
\endgroup%
\makeatother%
}
% Add table of contents to pdf bookmarks
\BeforeTOCHead[toc]{%
\if@openright\cleardoublepage\else\clearpage\fi%
\pdfbookmark[0]{\contentsname}{toc}%
}
% Util command
\newcommand{\email}[1]{\href{mailto:#1}{#1}}
%-------------------------------------------------------------------------------
% Bibliography
%-------------------------------------------------------------------------------
% BibLaTeX is responsible for all the bibliography stuff
\RequirePackage[
backend=biber, % unicode support with biber!
%style=alphabetic, % style in bibliograpgy & citations. Format: [Phi99]
style=numeric, % style in bibliograpgy & citations. Format: [1]
maxnames=1000, % give credit to at most 1000 names before resorting to "Author1 et Al"
natbib=true, % provide natbib compatability
sorting=nyt, % sort by name, year, title
autolang=other % cite an entry in the language of its langid
]{biblatex}
%-------------------------------------------------------------------------------
% Glossary and Acronyms
%-------------------------------------------------------------------------------
% hyperref, babel, polyglossia, inputenc and fontenc would need to be loaded
% first, if they are used
\RequirePackage[
acronym, % create acronym glossary
nonumberlist, % no page numbers
toc, % put in toc
sort=def % do not sort, just use the entries in the order they appear
]{glossaries}
% TODO: Sorting with external tools and documentation
%-------------------------------------------------------------------------------
% TODO Notes
%-------------------------------------------------------------------------------
% Todo notes (\todo{Todo note here})
\RequirePackage[obeyFinal, colorinlistoftodos, textsize=tiny]{todonotes}
%\presetkeys{todonotes}{inline}{}
% Create todo page at document begin if todos are enabled
% If final option is given, nothing is printed for \listoftodos,
% so \newpage does nothing
% Note: \listoftodos dies in twocolumn mode
\AtBeginDocument{
\setcounter{page}{-100}
\todototoc
\listoftodos
% The following _should_ normally be handled by \maketitle
% But at least the page counter reset does not happen with scrartcl :/
\newpage
\setcounter{page}{1}
}
% Some help macros for todos that alrady classify the problem
% #1 = Parameter for todo note (optional arg)
% #2 = Content of todo note
% In case content is missing, inline by default
\newcommand{\todoContent}[2][]{\todo[color=pink!40, inline, #1]{#2 (Content missing)}}
% In case there is an (suspected) error
\newcommand{\todoError}[2][]{\todo[color=red!10, #1]{error: #2}}
% In case things are unsure and should be verified again or the source is
% missing
\newcommand{\todoCN}[2][]{\todo[color=lime!40, #1]{#2 (citation needed)}}
\newcommand{\todoRef}[2][]{\todo[color=lime!40, #1]{#2 (reference missing)}}
% Formatting problems
\newcommand{\todoFormat}[2][]{\todo[color=cyan!40, #1]{#2 (formatting needs fixing)}}
% An editor is required here, inline by default
\newcommand{\todoEditor}[2][]{\todo[color=teal!40, inline, #1]{edit required: #2}}
%-------------------------------------------------------------------------------
% Misc
%-------------------------------------------------------------------------------
% For the CC icons
\RequirePackage{ccicons}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{scrsthesis}[2024/02/27 SCRS Thesis Class]
% The date format should be YYYY/MM/DD :(
%-------------------------------------------------------------------------------
% Options, Parameters and Superclass
%-------------------------------------------------------------------------------
% Options defining the superclass
\newcommand{\scrsthesis@scls}{scrskoma}
% Writeup type, the different localisations
\newcommand{\scrsthesis@type@de}{Arbeitstyp via type=bachelor|master|...}
\newcommand{\scrsthesis@type@en}{Set type with type=bachelor|master|...}
\DeclareOption{type=bachelor}{
\renewcommand{\scrsthesis@type@de}{Bachelorarbeit}
\renewcommand{\scrsthesis@type@en}{Bachelor's Thesis}
}
\DeclareOption{type=master}{
\renewcommand{\scrsthesis@type@de}{Masterarbeit}
\renewcommand{\scrsthesis@type@en}{Master's Thesis}
}
% All unknown parameters get passed to the superclass
% I am not sure why this is needed b/c the documentclass options
% are global options and therefore should also be seen by the superclass.
% But it is required
\DeclareOption*{
\PassOptionsToClass{\CurrentOption}{\scrsthesis@scls}
}
% Process options in the order they appear
% (w/o star options are processed in the order declared in the package file)
% https://tex.stackexchange.com/a/82441
\ProcessOptions*
% Default options for superclasses could be specified here with
\PassOptionsToClass{scls=scrreprt}{\scrsthesis@scls}
% load superclass
\LoadClass{\scrsthesis@scls}
%-------------------------------------------------------------------------------
% Packages
%-------------------------------------------------------------------------------
% For \IfStrEq
\RequirePackage{xstring}
%-------------------------------------------------------------------------------
% Thesis specific things
%-------------------------------------------------------------------------------
% Used on the title page, provides the textblock env
% the abolsut and overlay modes are seemingly package options
\RequirePackage[absolute,overlay]{textpos}
\newcommand{\@matrikelnumber}{}
\newcommand{\matrikelnummer}[1]{\renewcommand\@matrikelnumber{#1}}
\newcommand{\scrsthesis@supervisors}{}
\newcommand{\supervisors}[1]{\renewcommand\scrsthesis@supervisors{#1}}
\newcommand{\@duedate}{\today}
\newcommand{\duedate}[1]{\renewcommand\@duedate{#1}}
\definecolor{titleblue}{RGB}{6,61,121}
\definecolor{titlewhite}{RGB}{255,255,255}
% Localized labels for the title page
\newcommand{\scrsthesis@type}{
\IfStrEq{de}{\localeinfo{language.tag.bcp47}}{\scrsthesis@type@de}{\scrsthesis@type@en}
}
\newcommand{\scrsthesis@chairlabel}{%
\IfStrEq{de}{\localeinfo{language.tag.bcp47}}{%
Institut für Informatik\\
Satellite Communication and Radar Systems%
}{%
Institute of Computer Science\\
Satellite Communication and Radar Systems%
}%
}
\newcommand{\scrsthesis@supervisorlabel}{%
\IfStrEq{de}{\localeinfo{language.tag.bcp47}}{Betreuer}{Supervisors}
}
\newcommand{\scrsthesis@submissionlabel}{%
\IfStrEq{de}{\localeinfo{language.tag.bcp47}}{Abgabe der Arbeit}{Submission}
}
\renewcommand\maketitle{
\begin{titlepage}
\begin{tikzpicture}[remember picture,overlay]
% ^ `remember picture, overlay` is required to reference the `current page` node
% see pfgmanual, 17.13.2 Referencing the Current Page Node – Absolute Positioning
% `current page.north west` is the top left corner of the page
% place a box thats shifted 57mm to the right with a minimum width and height of 20 and 30 cm there
% (so larger than the reamining space on the page) to color the whole right side of the paper blue.
% The 57mm shift is taken from the info3 template.
\node [anchor=north west, xshift=57mm, minimum width=20cm, minimum height=30cm, fill=titleblue] (bluebox) at (current page.north west) {};
% place the uni logo relative to the resulting position of the bluebox (that is, top of the page, some mms to the right)
% shifted by 25mm left (this is exactly the width of the blue sideways 'U' thingy), and
% shifted by 65mm down
\node [anchor=north west, xshift=-25mm, yshift=-65mm, inner sep=0pt] (unilogo) at (bluebox.north west) {\includegraphics{logos/unilogo_mit_siegelbalken_Vektor_CMYK.eps}};
% Now place the chair logo vertically centered on the unilogo, 155mm to the right of its beginning
% (the latter number has been found by trial and error)
\node [anchor=west, xshift=155mm, inner sep=0pt] (chairlogo) at (unilogo.west) {\includegraphics[width=2cm]{logos/scrs_logo.pdf}};
\node [anchor=east, xshift=150mm, inner sep=0pt] (chairtext) at (unilogo.west) {%
\textsf{%
\fontsize{12pt}{14pt}\selectfont%
\shortstack[r]{\scrsthesis@chairlabel}%
}%
};
\end{tikzpicture}
\begin{textblock*}{115mm}(70mm,45mm)
\noindent\Large\textsf{\textcolor{titlewhite}{%
\scrsthesis@type%
}}%
\end{textblock*}
\begin{textblock*}{115mm}(70mm,105mm)
\noindent\LARGE\textsf{\textbf{\textcolor{titlewhite}{%
\@title%
}}}%
\end{textblock*}
\begin{textblock*}{115mm}(70mm,205mm)
\noindent\large\textsf{\textcolor{titlewhite}{%
\textbf{\@author}\\%
\@matrikelnumber%
}}%
\end{textblock*}
\begin{textblock*}{115mm}(70mm,230mm)
\noindent\large\textsf{\textcolor{titlewhite}{%
\textbf{\scrsthesis@supervisors}\\%
\scrsthesis@supervisorlabel%
}}%
\end{textblock*}
\begin{textblock*}{60mm}(70mm,270mm)
\noindent\large\textsf{\textcolor{titlewhite}{%
\textbf{\scrsthesis@submissionlabel}\\%
\@duedate%
}}%
\end{textblock*}
\end{titlepage}
}
\documentclass[
% Define the type of your thesis here
%type=bachelor,
type=master,
% Lanuage (last language specifies the main document language)
% Note: If you use an other language (like with the german summary in an
% otherwise english thesis), it must be listed here or biblatex
% together with babel cause "there were undefined references" warnings
ngerman,
american,
%british
% Add final to suppress all todos and the list of todos on the first page
final
]{scrsthesis}
\title{Your thesis topic goes here}
\author{Your name goes here}
\matrikelnummer{Your matriculation number goes here}
\supervisors{Optional research assistant supervisor\\Prof.~Dr.~Guido~Dietl\\Second~Supervisor}
\duedate{Your submission date goes here}
\addbibresource{references-writeup.bib}
% This is only for generating sample text. You should not need it for your writeup.
\usepackage{blindtext}
\begin{document}
\maketitle
% front matter
\pagenumbering{roman}
\input{declaration-license}
\subinputfrom{00-frontmatter/}{abstract}
\tableofcontents
\listoffigures
\listoftables
%\lstlistoflistings
% main matter
\cleardoublepage
\pagenumbering{arabic}
% For your actual chapters, I recommed including them with the import package like so:
% \subincludefrom{10-Intro/}{00-Into}
% This approach enables keeping files that contextually belong together in the same folder.
% Sample chapters to demonstrate formatting
\chapter{Introduction}
And so it begins\ldots{} Even though it is often easiest to write this
chapter at a later point in time\ldots{}
\chapter{Theory}
When writing formulas, please keep \cite{Blankenburg2017Normengerechte} in mind.
\blinddocument{}
\Blinddocument{}
% back matter
\printbibliography[heading=bibintoc, title=References]{}
\appendix
\chapter{Stories from the Appendix}
If you have some things to attach to your thesis that do not belong in the
main part of the thesis, put them here.
\end{document}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment