commit f4c225f2947fdaae8142570a697cc28e93c236e0 Author: Marcel Schneider Date: Sun Mar 14 14:46:40 2021 +0100 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..de9c5b0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,287 @@ +## 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 Uncomment the next line if you use knitr and want to ignore its generated tikz 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 + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib +ba.ist +ba.pdf +*.ist diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..81627bb --- /dev/null +++ b/Makefile @@ -0,0 +1,33 @@ +TARGET=ba +COMPILER=xelatex -shell-escape --synctex=1 -output-driver="xdvipdfmx -z 1" +TEX_SOURCES=$(TARGET).tex content/*.tex +VERAPDF=/opt/verapdf/verapdf + +all: fast bibtex + +fast-verify: fast verify + +verify: $(TARGET).pdf + $(VERAPDF) --format text $(TARGET).pdf + +fast: $(TEX_SOURCES) + $(COMPILER) -halt-on-error $(TARGET) + +bibtex: $(TARGET).aux + $(COMPILER) -halt-on-error $(TARGET) + biber $(TARGET) + $(COMPILER) -halt-on-error $(TARGET) + $(COMPILER) -halt-on-error $(TARGET) + makeglossaries $(TARGET) + $(COMPILER) -halt-on-error $(TARGET) + $(COMPILER) -halt-on-error $(TARGET) + +index: $(TARGET).aux + $(COMPILER) -halt-on-error $(TARGET) + makeindex $(TARGET) + $(COMPILER) -halt-on-error $(TARGET) + $(COMPILER) -halt-on-error $(TARGET) + +clean: + rm -f *.log *.toc *.lof *.lot *.out *.pdf *.aux *.bbl *.blg *.idx *.ilg *.ind *.lol *.acn *.bcf *.glo *.ist *.run.xml *.xmpdata *.xmpi *.acr *.alg *.glg *.gls + diff --git a/README.md b/README.md new file mode 100644 index 0000000..e5be145 --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# Template für Abschlussarbeiten + +Das IFI stellt ein offizielles Template bereit, die letzte Änderung daran war +jedoch 2015 und es nutzt viele veraltete Dinge. +In den letzten 6 Jahren hat sich einiges geändert, dieses Template hier ist an +einen (recht) modernen Workflow angepasst. + +So wird vollständig auf KOMAscript gesetzt und als Compiler xelatex genutzt. +Lualatex sollte auch funktionieren. +Damit dieses projekt mit latexmk (automatisch) gebaut werden kann, muss in die +config `~/.config/latexmk/latexmkrc` folgendes eingetragen werden: + +``` +$hash_calc_ignore_pattern{'dat'} = '^'; +$hash_calc_ignore_pattern{'timestamp'} = '^'; +$pdflatex = 'xelatex --shell-escape %O %S'; +``` + +Dadurch werden die Zusatzdateien ignoriert, die für die Erstellung des +PDF/A-kompatiblen Dokuments benötigt werden. Ohne diese Einträge, würde latexmk +ständig neubauen, da diese dateien sich beim build ändern. +In der letzten Zeile wird xelatex als compiler konfiguriert. + +Das Makefile bietet das Kommando `verify` um mit verapdf die Kompatibilität zu +PDF/A zu prüfen. +Dazu muss im Makefile für die Variable `VERAPDF` der korrekte Pfad zur +Executable liegen. + +Für Fragen, Wünsche, Anregungen bitte den issue tracker nutzen. + +Viel Spaß und Erfolg mit eurer Arbeit diff --git a/common/commands.tex b/common/commands.tex new file mode 100644 index 0000000..7d7f800 --- /dev/null +++ b/common/commands.tex @@ -0,0 +1,21 @@ +% +% own commands +% + +%double empty page +\newcommand \myemptypage { + \clearpage + \thispagestyle{empty} + \null + \cleardoublepage +} + +%create abstract environment that is not available in latex book style +\newcommand\abstractname{Abstract} +\newenvironment{abstract}{% + \begin{center}% + \normalfont\Large\bfseries \abstractname + \end{center}% + \it% + } + {} diff --git a/common/config.tex b/common/config.tex new file mode 100644 index 0000000..a9b3914 --- /dev/null +++ b/common/config.tex @@ -0,0 +1,42 @@ +% +% general configuration +% + +\usepackage[draft=false]{scrlayer-scrpage} +\usepackage{ifdraft} +\renewcommand*{\chaptermarkformat}{\MakeUppercase{\chapapp}~\thechapter\autodot\enskip} +\chead{} +%\chead*{Entwicklungsversion \version} +\ihead{\headmark} +\ohead{\pagemark} + +% Use microtype to improve typesetting +\usepackage{microtype} + +%set page margin for DIN A4 +\geometry{a4paper, left=2.5cm, right=2.5cm, top=4cm, + bottom=5cm, bindingoffset=1cm} + +%makes TeX less fussy about line breaking + % but makes it also look like Word +%\sloppy + +% Replacement for changing parskip and parindent directly +%\usepackage{parskip} + +%1.5 spacing +\onehalfspacing +{} + + +%define some colors +\definecolor{darkblue}{rgb}{0.0,0.0,0.5} +\definecolor{grey}{rgb}{0.8,0.8,0.8} +\definecolor{lightgrey}{rgb}{0.95,0.95,0.95} + + +%override reference title and listings title +\renewcommand \bibname{References} +%\renewcommand{\lstlistlistingname}{List of Listings} + +\newtheorem{definition}{Definition} diff --git a/content/abstract.tex b/content/abstract.tex new file mode 100644 index 0000000..34252eb --- /dev/null +++ b/content/abstract.tex @@ -0,0 +1,7 @@ + +\begin{center}\normalfont\textbf{Abstract}\end{center} + +\begin{quotation} + This is the abstract of the document +\end{quotation} + diff --git a/content/acronyms.tex b/content/acronyms.tex new file mode 100644 index 0000000..54229ab --- /dev/null +++ b/content/acronyms.tex @@ -0,0 +1,9 @@ + + +\newglossaryentry{python} +{ + name={Python}, + description={a scripting language} +} + +\newacronym{gau}{GAU}{Geor-Auguts-Universität Göttingen} diff --git a/content/appendix_a.tex b/content/appendix_a.tex new file mode 100644 index 0000000..dd24a29 --- /dev/null +++ b/content/appendix_a.tex @@ -0,0 +1,2 @@ +\chapter{Anhang A}% + diff --git a/content/ch1_introduction.tex b/content/ch1_introduction.tex new file mode 100644 index 0000000..f4bb238 --- /dev/null +++ b/content/ch1_introduction.tex @@ -0,0 +1,4 @@ +\chapter{Einleitung}% +\label{chap:introduction} + +Einleitungstext diff --git a/content/ch2_basics.tex b/content/ch2_basics.tex new file mode 100644 index 0000000..0f3353e --- /dev/null +++ b/content/ch2_basics.tex @@ -0,0 +1,4 @@ +\chapter{Theoretischer Hintergrund}% +\label{chap:theorie} + +Basics und Theorie diff --git a/content/ch3_analysis.tex b/content/ch3_analysis.tex new file mode 100644 index 0000000..70556b7 --- /dev/null +++ b/content/ch3_analysis.tex @@ -0,0 +1,4 @@ +\chapter{Analyse}% +\label{chap:analysis} + +Analyse des status quo diff --git a/content/ch4_design.tex b/content/ch4_design.tex new file mode 100644 index 0000000..08d439f --- /dev/null +++ b/content/ch4_design.tex @@ -0,0 +1,3 @@ +\chapter{Design} + +Desing des neuen Systems, vielleicht mit \gls{python} ? diff --git a/content/ch5_implementation.tex b/content/ch5_implementation.tex new file mode 100644 index 0000000..2b42fbe --- /dev/null +++ b/content/ch5_implementation.tex @@ -0,0 +1,14 @@ +\chapter{Implementation} +\label{chap:implementation} + +Implementation des ganzen, vielleicht nach einem vorherigen Blick in ein Buch +\parencite[vgl.][49]{martin2018}. + +SI-Einheiten können per Befehl geschrieben werden: \SI{43}{\kilo\gram\per\square\metre} + +Für code wird Minted genutzt: +\begin{minted}{python} +def add(a: int, b: int) -> int: + """Really not the best addition function""" + return a + b +\end{minted} diff --git a/content/ch6_conclusion.tex b/content/ch6_conclusion.tex new file mode 100644 index 0000000..d345e88 --- /dev/null +++ b/content/ch6_conclusion.tex @@ -0,0 +1,4 @@ +\chapter{Auswertung}% +\label{chap:fazit} + +Fazit und Ausblick diff --git a/content/coverpage.tex b/content/coverpage.tex new file mode 100644 index 0000000..f603a11 --- /dev/null +++ b/content/coverpage.tex @@ -0,0 +1,71 @@ +% +% title page +% + +\begin{titlepage} + %default settings for the rest + \large + \centering + + \vspace{3cm} + + \textbf{\LARGE \mytype} + + + im Studiengang ``\mycourse'' + + \vspace{2.5cm} + + \textbf{\LARGE \mytitle} + + \vspace{2cm} + + \myauthor + + \vspace{2cm} + + \mydepartment + + \vspace{2cm} + + Bachelor- und Masterarbeiten\\ + des Zentrums für angewandte Informatik\\ + an der Georg-August-Universität Göttingen + + \vspace{0.2cm} + + \mysubmissiondate + + + %--- new page --- + \clearpage + \thispagestyle{empty} + \null + \flushleft + %\onehalfspacing + \normalsize + + \vspace{8cm} + + Georg-August-Universität Göttingen\\ + Institut für Informatik\\[3ex] + Goldschmidtstrasse 7\\ + 37077 Göttingen\\ + Germany\\[3ex] + + \begin{tabular}{@{}ll} + Telefon & +49 (551) 39-172000\\ + Fax & +49 (551) 39-14403\\ + E-Mail & \href{mailto:office@informatik.uni-goettingen.de}{office@informatik.uni-goettingen.de}\\ + Web & \url{www.informatik.uni-goettingen.de}\\ + \end{tabular} + + \vspace{1.0cm} + + \begin{tabular}{@{}ll} + Erstbetreuer: & \myfirstsupervisor\\ + Zweitbetreuer:& \mysecondsupervisor\\ + \end{tabular} + +\end{titlepage} + diff --git a/content/quellen.bib b/content/quellen.bib new file mode 100644 index 0000000..8ec35bc --- /dev/null +++ b/content/quellen.bib @@ -0,0 +1,8 @@ + +@book{martin2018, + title={Clean architecture: a craftsman's guide to software structure and design}, + author={Martin, Robert C}, + year={2018}, + publisher={Prentice Hall} +} + diff --git a/content/statement.tex b/content/statement.tex new file mode 100644 index 0000000..e3574d4 --- /dev/null +++ b/content/statement.tex @@ -0,0 +1,12 @@ +\thispagestyle{empty} + +\null +\vspace{16.0cm} + +\rule{\textwidth}{0.4pt} + +Ich erkläre hiermit, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. + +\vspace{0.2cm} + +Göttingen, den \mysubmissiondate diff --git a/creationdate.lua b/creationdate.lua new file mode 100644 index 0000000..be88818 --- /dev/null +++ b/creationdate.lua @@ -0,0 +1,2 @@ + os.remove("creationdate.timestamp") + io.output("creationdate.timestamp"):write(os.date("\\edef\\tempa{\\string D:%Y%m%d%H%M%S}\n\\def\\tempb{%z}")) diff --git a/creationdate.timestamp b/creationdate.timestamp new file mode 100644 index 0000000..6f8cbae --- /dev/null +++ b/creationdate.timestamp @@ -0,0 +1,2 @@ +\edef\tempa{\string D:20210314143807} +\def\tempb{+0100} \ No newline at end of file diff --git a/template.pdf b/template.pdf new file mode 100644 index 0000000..6e5b203 Binary files /dev/null and b/template.pdf differ diff --git a/template.tex b/template.tex new file mode 100644 index 0000000..79a17bc --- /dev/null +++ b/template.tex @@ -0,0 +1,168 @@ +\documentclass[a4paper, oneside, 10pt,chapterprefix=true,listof=totoc,parskip=half]{scrbook} + +\usepackage{morewrites} +\usepackage{fontspec} +\usepackage{polyglossia} +\setmainlanguage[spelling=new,babelshorthands=true]{german} +\usepackage{geometry} +\usepackage{graphicx} +\usepackage[german,pdfa=true]{hyperref} +\usepackage[sortlocale=auto, style=authoryear, citestyle=authoryear, backend=biber, autopunct=true, dashed=false]{biblatex} +\usepackage[acronym,automake,toc]{glossaries} +\usepackage{float} +\usepackage{siunitx} +\usepackage{multirow} +\usepackage{setspace} +\usepackage{xcolor} +\usepackage{tabularx} +\usepackage{amsmath} +\usepackage{mVersion} +\usepackage{booktabs} +\usepackage{tikz} +\usepackage{listing} +\usepackage{minted} +\usepackage{csquotes} +\usepackage{framed} +\usepackage{marvosym} + +\setmonofont{Fira Code Regular}[Scale=MatchLowercase] + + +\increaseBuild + +%--- basic document configuration --- +\newcommand{\mytype}{Bachelorarbeit} +%\newcommand{\mytype}{Masterarbeit} + +\newcommand{\mycourse}{Angewandte Informatik} +%\newcommand{\mycourse}{Internet Technologies and Information Systems} + +\newcommand{\mytitle}{Ein Template für Abschlussarbeiten im Jahre 2021} +\newcommand{\myauthor}{Fleißiger Studierender} +\newcommand{\mydepartment}{Institut für Informatik} +\newcommand{\mysubmissiondate}{\today} +%\newcommand{\mysubmissiondate}{23. Februar 2021} +%\newcommand{\mythesisid}{201x-xx} %assigned by examination office +\newcommand{\myfirstsupervisor}{Prof. Supervisor} +\newcommand{\mysecondsupervisor}{Dr. Zweitprüfer} + + +%--- pdf/a format ---- +% insert metadata about the document here +%\RequirePackage{filecontents} +\begin{filecontents*}{\jobname.xmpdata} + \Title{\mytitle v\version} + \Author{\myauthor} + \Language{de-DE} + \Subject{\mytitle} + \Keywords{bachelor\sep computer\sep science} +\end{filecontents*} +\usepackage{colorprofiles} +\usepackage[a-1b, mathxmp]{pdfx}[2018/12/22] +\hypersetup{pdfstartview=} + + +\addbibresource{content/quellen.bib} + + +% +% This is based on the official thesis template of +% the Institute of Computer Science at the +% Georg-August-University of Göttingen +% +% originial author: kellner@cs.uni-goettingen.de +% +% If you find any sort of mistake please let me know +% so that it can be fixed in future releases. +% + +%%--- include custom commands --- +\input{common/commands} +% +%%--- include general configuration --- +\input{common/config} + +%--- list of acronyms --- +\makeglossaries +\loadglsentries{content/acronyms} +\clearpage + +\begin{document} + %lower case roman page numbers + \pagenumbering{roman} + \setcounter{page}{1} + + %--- cover page --- + \input{content/coverpage} + \clearpage + + %--- statement page --- + \input{content/statement} + \clearpage + + %--- abstract --- + \clearpage\phantomsection\pdfbookmark{\abstractname}{abstract} + \thispagestyle{empty} + \input{content/abstract} + \clearpage + + %reset acronyms after abstract + \glsresetall{} + + %--- table of contents --- + \clearpage\phantomsection\pdfbookmark{\contentsname}{toc} + \tableofcontents + \printglossary[type=\acronymtype]{} + \printglossary[type=main]{} + \clearpage + + %--- list of figures --- + \listoffigures + \clearpage + + %--- list of tables --- + \listoftables + \clearpage + + %--- list of listings --- + %\renewcommand{\listoflistings}{% + %\cleardoublepage + %%\addcontentsline{toc}{chapter}{\listoflistingscaption}% + %\listof{listing}{\listoflistingscaption}% + %} + %\listoflistings + %\clearpage + + %arabic page numbers + \pagenumbering{arabic} + \setcounter{page}{1} + + %--- chaper 1..n --- + \input{content/ch1_introduction} + \clearpage + + \input{content/ch2_basics} + \clearpage + + \input{content/ch3_analysis} + \clearpage + + \input{content/ch4_design} + \clearpage + + \input{content/ch5_implementation} + \clearpage + + \input{content/ch6_conclusion} + \clearpage + + % References + \printbibliography{} + \addcontentsline{toc}{chapter}{\bibname} + + %--- appendix --- + \appendix + \input{content/appendix_a} + \clearpage +\end{document} + diff --git a/template.xmpdata b/template.xmpdata new file mode 100644 index 0000000..db21226 --- /dev/null +++ b/template.xmpdata @@ -0,0 +1,5 @@ + \Title{\mytitle v\version} + \Author{\myauthor} + \Language{de-DE} + \Subject{\mytitle} + \Keywords{bachelor\sep computer\sep science} diff --git a/version.dat b/version.dat new file mode 100644 index 0000000..983ac6f --- /dev/null +++ b/version.dat @@ -0,0 +1 @@ +0.0;4