Stufe 2: Templates (TH-Nuernberg-Abschlussarbeit-Template)

This commit is contained in:
Cedric Fritzsch 2026-05-03 17:22:03 +02:00
parent 91d148c783
commit 008e1fdfa0
35 changed files with 1796 additions and 58 deletions

View File

@ -0,0 +1,164 @@
%!TeX root=00_Abschlussarbeit.tex
% \pdfcompresslevel=0
% \pdfobjcompresslevel=0
% Pakete für die Darstellung und Eingabemöglichkeit von Umlauten
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
%Für Tabellen
\usepackage{rotating} % Drehen
\usepackage{colortbl} % Farben
\usepackage{booktabs} % dickere Linien
\usepackage{longtable} % für lange Tabellen
\usepackage{tabularx}
\usepackage{array}
\usepackage{multirow}
% Anpassung Seitenränder
\usepackage[left= 3cm, right = 2cm, bottom = 3 cm, top = 2cm]{geometry}
% Verwendung deutscher Begriffe für automatisch generierte Worte wie z.B. "Inhaltsverzeichnis"
\usepackage[ngerman, english]{babel}
% Anführungszeichen/Zitate
\usepackage{csquotes}
% Trennen wenn Latex es nicht richtig macht:
% \hyphenation{}
% Paket um Dummy-Text/Blindtext zu erzeugen
\usepackage{blindtext}
% Eigenes Titelblatt
\usepackage{LTXKursTitel}
% Zeilenabstand auf 1,5 setzen
\usepackage[onehalfspacing]{setspace}
\AfterTOCHead{\singlespacing}
\KOMAoptions{DIV=last} % KOMA Klasse für europ. Layout
\usepackage{scrdate, scrtime} % Zeit und Datumsbefehle
\usepackage{scrlayer-scrpage} % Erweitere Layout-Optionen
\pagestyle{scrheadings} % Seitenlayout selbst definieren
% Belegung von KOMA Variablen für Kopf- und Fußzeilen Gestaltung
\newcommand{\footlinetext}{\footnotesize \textsf{\color{gray} Kapitel \thesection \ \normalsize}}
\KOMAoptions{headsepline = no, footsepline = yes}
\ihead{\headmark}
\chead{}
\ohead{}
\ifoot{\footlinetext}
\cfoot{}
\ofoot{\pagemark}
% Pakete zum Einbinden von Bildern und Farben
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{pdfpages} %PDFs einbinden
% Pakete für Mathematik
\usepackage[free-standing-units,locale = DE]{siunitx} % Befehle für SI-Einheiten
\usepackage{amsmath} % Mathematik Befehle
\usepackage{amsfonts}
% Paket und Spezifikation der Parameter zur Darstellung von Programmcode mit Courier-Schriftart
\usepackage{listings} % Darstellung von Quellcode
\usepackage{courier} % Schriftart laden
\lstset{
language=C++,
basicstyle=\footnotesize\ttfamily, % Standardschrift
numbers=left, % Ort der Zeilennummern
numberstyle=\tiny, % Stil der Zeilennummern
%stepnumber=2, % Abstand zwischen den Zeilennummern
numbersep=5pt, % Abstand der Nummern zum Text
tabsize=2, % Groesse von Tabs
extendedchars=true, %
breaklines=true, % Zeilen werden Umgebrochen
keywordstyle=\color{blue}\bfseries,
frame=b,
% keywordstyle=[1]\textbf, % Stil der Keywords
% keywordstyle=[2]\textbf, %
% keywordstyle=[3]\textbf, %
% keywordstyle=[4]\textbf, \sqrt{\sqrt{}} %
stringstyle=\color{magenta}\ttfamily, % Farbe der String
showspaces=false, % Leerzeichen anzeigen ?
showtabs=false, % Tabs anzeigen ?
%xleftmargin=17pt, % Abstände
%framexleftmargin=17pt,
%framexrightmargin=5pt,
%framexbottommargin=4pt,
commentstyle=\color{green!100!blue}\bfseries,
%backgroundcolor=\color{grey},
showstringspaces=true, % Leerzeichen in Strings anzeigen ?
morekeywords={__global__}, % additional language specific keywords
morecomment=[l]
}
\lstloadlanguages{% Check Dokumentation for further languages ...
%[Visual]Basic
%Pascal
C,
C++,
%XML
%HTML
%Matlab
%Java
}
% Literaturverzeichnis mit BibLaTeX und Biber erstellen
\usepackage[style=ieee, sorting=none, backend=biber]{biblatex}
% bib-Datei einbinden
\addbibresource{Literatur.bib}
\usepackage{abstract}
\usepackage[printonlyused]{acronym} %Abkürzungsverzeichnis
\usepackage{tocbasic}
\usepackage{textcmds}
\usepackage{scrhack} %gets rid of \float@addtolists error
\usepackage{hyperref} % Layout im PDF Viewer. Muss als letztes Paket geladen werden
\hypersetup{%
plainpages=false,
linktocpage=true,
breaklinks=true,
colorlinks=true,
linkcolor=black,%blue,
anchorcolor=black,
citecolor=black,%green,
filecolor=black,%blue,
urlcolor=black,%blue%
pdfstartview={FitV},
pdfview={FitH},
pdfpagelayout={SinglePage},
%pdfpagemode={None}, %unknown value "None"
}
\usepackage[xindy, order=letter, acronym=true]{glossaries} % muss nach hyperref geladen werden
% \usepackage{glossaries-german} % verwendete Sprachen laden, https://www.ctan.org/pkg/glossaries-german, nötig?
\makeglossaries
\setacronymstyle{long-short}
\setglossarystyle{index} %alternativ: tree, list, long3col, weitere: https://www.dickimaw-books.com/gallery/glossaries-styles/#long
\setcounter{tocdepth}{4} %Erweiterung des Inhaltsverzeichnisses um eine weitere Ebene
\setcounter{secnumdepth}{4} %Erweiterung der Kapiteltiefe um eine weitere Ebene
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Variablen zum Belegen %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Variables for title page
\DAAutor{Vorname Name \par Matrikelnummer}
\DATyp{Bachelorarbeit/Masterarbeit}
\DAAutorAdresse{Straße Hausnummer \par PLZ Ort}
\DAFachbereich{efi}
\DATitel{Titel}
\DABetreuerTextA{Betreuer*in}
\DABetreuerTextB{Betreuer*in}
\DABetreuerA{Betreuer*in 1}
\DABetreuerB{Betreuer*in 2}
\DAOrt{Abgabe: Ort}
\DAAbgabedatum{Tag.\,Monat\,Jahr}
\DAAbgabesemester{Wintersemester/Sommersemester Jahr}

10
02_Abstract.tex Normal file
View File

@ -0,0 +1,10 @@
%!TeX root=paper.tex
\selectlanguage{ngerman}
\renewcommand{\abstractname}{Kurzfassung}
\begin{abstract}
Diese Arbeit charakterisiert eine Drehzahl-Regelstrecke durch
Frequenzgangmessung. Die theoretische Knickfrequenz von
\omegaKtheorie\ rad/s wird durch die Messung mit einer Abweichung
von \abweichung\ \% best\"atigt.
\end{abstract}

9
10_Einleitung.tex Normal file
View File

@ -0,0 +1,9 @@
%!TeX root=paper.tex
\chapter{Einleitung}
Diese Arbeit charakterisiert eine Drehzahl-Regelstrecke an der
TH N\"urnberg Georg Simon Ohm. Die theoretische Knickfrequenz der
Strecke betr\"agt \omegaKtheorie\ rad/s [Lutz/Wendt, 2014]. Ziel ist
die Validierung des PT2-Modells durch eine Frequenzgangmessung,
durchgef\"uhrt an der TH N\"urnberg Georg Simon Ohm.

31
20_Hauptteil.tex Normal file
View File

@ -0,0 +1,31 @@
%!TeX root=paper.tex
\chapter{Aufbau und Messung}
\section{Aufbau}
Der Aufbau ist in Abb.~1 dargestellt. Verwendet wurde das
BORIS-Modell mit Sinus-Generator, Drehzahlstrecke und Multiplot.
\begin{figure}[ht]
\centering
\includegraphics[width=0.8\textwidth]{aufbau.png}
\caption{Multiplot der Frequenzgangmessung (BORIS-Screenshot).}
\end{figure}
\section{Messergebnisse}
Das gemessene Bode-Diagramm ist in Abb.~2 dargestellt. Die ermittelte
Knickfrequenz liegt bei \omegaKmess\ rad/s und weicht um
\abweichung\ \% vom theoretischen Wert von \omegaKtheorie\ rad/s ab
[Lutz/Wendt, 2014]. Die Messpunkte zeigt Tabelle~1.
\begin{figure}[ht]
\centering
\includegraphics[width=0.7\textwidth]{plot.pdf}
\caption{Gemessenes Bode-Diagramm.}
\end{figure}
\begin{table}[ht]
\centering
\caption{Frequenzgangmesspunkte.}
\input{tabelle.tex}
\end{table}

11
30_Schluss.tex Normal file
View File

@ -0,0 +1,11 @@
%!TeX root=paper.tex
\chapter{Zusammenfassung}
Die Frequenzgangmessung best\"atigt das PT2-Modell der
Drehzahl-Regelstrecke. Die Abweichung zwischen gemessener und
theoretischer Knickfrequenz liegt im Bereich der Messunsicherheit.
\section*{Quellen}
[Lutz/Wendt, 2014] Lutz, H. \& Wendt, W. \emph{Taschenbuch der
Regelungstechnik}. Europa-Lehrmittel, 10.~Auflage, 2014.

BIN
Bilder/ohm_logo_crop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

170
LTXKursTitel.sty Normal file
View File

@ -0,0 +1,170 @@
% Muster-Stylefile, LaTeX-Kurs GSO Nürnberg, SS 2008
% Dieses Package stellt eine Titelseite für eine Diplomarbeit
% zur Verfügung. Das Design ist hierbei an die Vorgaben
% der GSO angelehnt. Für die Vorgaben Ihres Fachbereiches
% müssen evtl. Anpassungen unternommen werden!
% Dieses Musterfile stellt weder Anspruch auf Vollständigkeit, noch ist es als Beispiel
% für besonders gute TeX-Programmierung zu verstehen. Es soll lediglich eine Möglichkeit
% aufzeigen, wie ein eigenes Stylefile aussehen kann.
% Versionshistorie:
% 1.0 2006/12/04(HB) Erstausgabe für WS 2006/07
% 2.0 2007/04/21(HB) Überarbeitung und Designanpassung, SS 2007
% 2.1 2008/05/25(HB) Initialisierung der Variablen statisch, Fehlerabfrage bei Pflichtangaben
%
% Dieses File darf frei zur Gestaltung von akademischen Arbeiten an der GSO Nürnberg
% verwendet werden. Eine Garantie für Übereinstimmung mit eventuellen Vorgaben
% einzelner Fachbereiche wird nicht gegeben.
% Kopieren und Modifikationen ausdrücklich gestattet.
%
%
\NeedsTeXFormat{LaTeX2e} % Kompatibilität sicherstellen.
\ProvidesPackage{LTXKursTitel}[2014/07/07 v2.2 Titelblatt LaTeX-Kurs GSO Nbg.]
% Identifikation eines packages. Die Versionsinformation wird im logfile ausgegeben.
% Der Dateiname und der obige Identifikationstext müssen übereinstimmen!
\RequirePackage{calc}
% Aufruf von anderen Packages in eigenen .sty-Files nicht mit usepackage.
% \RequirePackage stellt sicher, dass das angefordere Package nicht bereits vorher u. U. mit anderen Optionen geladen wurde.
\RequirePackage{ifthen} % für vereinfachte Konditionale
\RequirePackage[absolute]{textpos} % Absolute Positionierung auf Seite
\RequirePackage{graphicx,xcolor}
% Layout
% ------
\newlength{\RandLinks} % Initialisierung der Längen
\newlength{\RandRechts}
\newlength{\RandOben}
\newlength{\TitelBreite}
%
\setlength{\RandLinks}{3cm}
\setlength{\RandRechts}{2cm}
% Berechnung der Breite des Titels aus den Randeinstellungen
\setlength{\TitelBreite}{\paperwidth-\RandLinks-\RandRechts}
%
\setlength{\RandOben}{2cm}
%
% Die Werte können durch \setlength... im Dokument umdefiniert werden.
% Statische Texte:
% ----------------
% Diese Variablen stellen statische Textelemente
% der Titelei zur Verfügung. Vorbelegung mit den deutschen Begriffen
\newcommand{\@DAFH}{Technische Hochschule Nürnberg Georg Simon Ohm}
\newcommand{\@DAFB}{in~der~Fakultät}
% Falls Englisch als Dokumentensprache gewählt ist:
%\renewcommand{\@DAFH}{Georg-Simon-Ohm-University of Applied Sciences Nuremberg}
%\renewcommand{\@DAFB}{at~the Faculty~of}
%\renewcommand{\@DABetreuerTextA}{Advisor}
%\renewcommand{\@DABetreuerTextB}{Advisor}
%
%Dynamische Texte :
%------------------
% Diese Texte werden zur Aufrufzeit verändert. Hierzu möchten
% wir die gleiche Syntax wie in den Standardklassen verwenden
% können, d. h. vor dem \maketitle im Dokument sollen mittels
% \DAAutor{Max Mustermann} etc. die Werte gesetzt werden können.
%
% Die Definition der Kommandos passiert in 2 Schritten:
% 1) Vorbelegung der Variablen mit "nix" = \relax
\newcommand{\@DAAutor}{\relax}
% 2) Beim Aufruf des Benutzerkommandos: Re-Definition des
% Platzhalters mit dem Argument des Benutzerbefehls.
% Achtung:
% \newcommand wirkt nur innerhalb der Gruppe,
% wir wollen aber ein globales Kommando definieren!
% LaTeX-Syntax funktioniert hier wenn dann nur zufällig!
% \newcommand{\Autor}[1]{\global\renewcommand\DAAutor[1]{#1}}
% => TeX-Syntax - handle with care!
%\newcommand{\DAAutor}[1]{\global\def\@DAAutor{#1}}
\newcommand{\DAAutor}[1]{\gdef\@DAAutor{#1}}
% \gdef macht (fast) dasselbe wie \newcommand, nur wirkt es 'g'lobal
% Nur verwenden, wenn Sie sich sicher sind, was Sie tun!
%
% Analog werden die anderen Platzhalter definiert:
\newcommand{\@DATyp}{Diplomarbeit} % hier mit Voreinstellung
\newcommand{\DATyp}[1]{\gdef\@DATyp{#1}}
\newcommand{\@DAAutorAdresse}{- Meine Adresse - }
\newcommand{\DAAutorAdresse}[1]{\gdef\@DAAutorAdresse{#1}}
%
\newcommand{\@DAFachbereich}{AW}
\newcommand{\DAFachbereich}[1]{\gdef\@DAFachbereich{#1}}
%
\newcommand{\@DATitel}{\relax}
\newcommand{\DATitel}[1]{\gdef\@DATitel{#1}}
%
\newcommand{\@DABetreuerA}{Musterbetreuer 1}
\newcommand{\DABetreuerA}[1]{\gdef\@DABetreuerA{#1}}
%
\newcommand{\@DABetreuerB}{Musterbetreuer 2}
\newcommand{\DABetreuerB}[1]{\gdef\@DABetreuerB{#1}}
%
\newcommand{\@DABetreuerTextA}{Betreuer}
\newcommand{\DABetreuerTextA}[1]{\gdef\@DABetreuerTextA{#1}}
%
\newcommand{\@DABetreuerTextB}{Betreuer}
\newcommand{\DABetreuerTextB}[1]{\gdef\@DABetreuerTextB{#1}}
%
\newcommand{\@DAOrt}{Nürnberg}
\newcommand{\DAOrt}[1]{\gdef\@DAOrt{#1}}
%
\newcommand{\@DAAbgabedatum}{\today}
\newcommand{\DAAbgabedatum}[1]{\gdef\@DAAbgabedatum{#1}}
%
\newcommand{\@DAAbgabesemester}{Sommersemester 2022}
\newcommand{\DAAbgabesemester}[1]{\gdef\@DAAbgabesemester{#1}}
%
\renewcommand{\maketitle}{% Neudefinition des \maketitle-Befehls:
%
% --------------------------------Für TeXperten!--------------------------------
% Fehlerbehandlung: bei undefiniertem \@DAAutor wird ein Fehler mit einer
% hoffentlich hilfreichen Beschreibung ausgegeben und die Erstellung ggf. abgebrochen.
\ifthenelse{\equal{\@DAAutor}{\relax}}{% Fehler: kein Autor
\PackageError {LTXKursTitel}{Fehler beim Erstellen des Titelblatts - kein Autor definiert!\MessageBreak Bitte mit \noexpand\DAAutor\space vor \noexpand\maketitle\space definieren!}{Es wurde kein Autor definiert, bevor \noexpand\maketitle\space aufgerufen wurde.}%
} % Abbrechen mit Fehlermeldung
{\relax}% kein Fehler: mach gar nix
%
%% Gleiches Spiel mit dem Titel:
\ifthenelse{\equal{\@DATitel}{\relax}}{% Fehler: kein Autor
\PackageError {LTXKursTitel}{Fehler beim Erstellen des Titelblatts - kein Titel definiert!\MessageBreak Bitte mit \noexpand\DATitel\space vor \noexpand\maketitle\space definieren!}{Es wurde kein Titel definiert, bevor \noexpand\maketitle\space aufgerufen wurde.}%
} % Abbrechen mit Fehlermeldung
{\relax}% kein Fehler: mach gar nix
% -------------------------------\Für TeXperten!--------------------------------
%
%
%
\thispagestyle{empty} % nötig, da sonst eine Seitenzahl ausgegeben wird
%
\definecolor{th_blau}{HTML}{1D60A8} % oder 0046A0
\definecolor{ohm_rot}{HTML}{C72426}
\begin{textblock*}{\TitelBreite}(\RandLinks,\RandOben)% Textblock mit Breite \TitelBreite
% Auswahl nur Ohm-Logo oder Firmenlogo + Ohm-Logo
% \par\vspace{5mm}~\includegraphics[width=0.3\textwidth]{Bilder/firmenlogo.jpg}\hfill\includegraphics[width=0.4\textwidth]{Bilder/ohm_logo_crop.png}\\[2mm] % Ohm-Logo
\par\vspace{5mm}~\hfill\includegraphics[width=0.4\textwidth]{Bilder/ohm_logo_crop.png}\\[2mm] % Ohm-Logo
{\color{ohm_rot}\rule{\TitelBreite}{2mm}}\\[2cm] % Linie
{\centering
\sffamily\Large
\@DAFH\\ % Einsetzen der
\@DATyp{} \@DAFB{} \@DAFachbereich\\[\baselineskip] % einzelnen
{\Huge\@DATitel}\\[\baselineskip] % Textbausteine
\@DAAutor\\[\baselineskip]
\@DAAutorAdresse\\[2\baselineskip]
\begin{center}%
\begin{tabular}{ll}
\@DABetreuerTextA:&~\@DABetreuerA\\
\@DABetreuerTextB:&~\@DABetreuerB\\ \\
\end{tabular}%
\end{center}
\@DAOrt, \@DAAbgabedatum \\
\@DAAbgabesemester
\par
}%
\end{textblock*}
% ~\clearpage % Seitenumbruch, das geschützte Leerzeichen ist notwendig,
% da außer dem textblock* nichts auf der Seite steht und somit
% die Seite als "`leer"' angesehen wird.
} % Ende der Definition von \maketitle
%
% </package>

22
Literatur.bib Normal file
View File

@ -0,0 +1,22 @@
@book{lutzWendt2014,
author = {Lutz, Holger and Wendt, Wolfgang},
title = {Taschenbuch der Regelungstechnik},
edition = {10},
publisher = {Europa-Lehrmittel},
year = {2014},
address = {Haan-Gruiten}
}
@misc{wagner2025,
author = {Wagner, B.},
title = {Praktikum Regelungstechnik f\"ur BEI/BMEI: Praktikumsanleitung Versuch 4},
year = {2025},
howpublished = {Technische Hochschule N\"urnberg Georg Simon Ohm}
}
@misc{python2024,
author = {{Python Software Foundation}},
title = {Python Language Reference, version 3.12},
year = {2024},
howpublished = {\url{https://docs.python.org/3/}}
}

257
abschlussarbeit/.gitignore vendored Normal file
View File

@ -0,0 +1,257 @@
# ---> TeX
## 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
# 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
# makeidx
*.idx
*.ilg
*.ind
*.ist
# 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
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices
*.xyc
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# KBibTeX
*~[0-9]*
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta

Binary file not shown.

View File

@ -0,0 +1,82 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% CC BY-NC-SA 4.0
%
% Template für die Erstellung einer Abschlussarbeit an der TH Nürnberg
% Author: Prof. Dr. Christine Niebler, TH Nürnberg
% Überarbeitung: Hannes Dippold, Fachschaft EFI
%
% Das Template muss mit pdflatex und biber kompiliert werden
% Für Fragen stehe ich gerne zur Verfügung
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Definition des Dokumentenlayouts
\documentclass[a4paper, parskip=half, titlepage=yes, 11pt, BCOR=12mm, toc=flat]{scrreprt} %toc=flat statt tocleft, macht das Inhaltsverzeichnis linksbündig
% Einbinden der Präambel
\input{01_AbschlussarbeitPraeambel}
\pagenumbering{roman}
%% Hier startet der Dokumenteninhalt
\begin{document}
% Deckblatt einbinden
\maketitle
% Eigenständigkeitserklärung einbinden, auskommentiert lassen solange noch nicht existent
\begin{center}
%\includepdf[scale=0.8,page=1]{Eigenstaendigkeitserklaerung.pdf}
\thispagestyle{empty}
\end{center}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Hier Abstract einfügen %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Abstract einbinden
\input{02_Abstract}
\selectlanguage{ngerman}
%Inhaltsverzeichnis
\tableofcontents
\clearpage
% Abkürzungsverzeichnis einbinden, das glossaries-Paket ist sehr umfangreich, eignet sich auch gut für ein Formelverzeichnis
\input{03_Abkuerzungen}
\printglossary[type=acronym, title=Abkürzungsverzeichnis]
\newpage
\pagenumbering{arabic}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Text %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Inhaltsdateien einbinden
\input{10_Einleitung}
\input{20_Hauptteil}
\input{30_Schluss}
% Literaturverzeichnis
\printbibliography
% Abbildungsverzeichnis
\listoffigures
% Tabellenverzeichnis
\listoftables
% Quellcodeverzeichnis
% \renewcommand*{\lstlistingname}{Quellcodeverzeichnis}
\renewcommand*{\lstlistlistingname}{Quellcodeverzeichnis}
\lstlistoflistings
% Anhang einbinden
\input{40_Anhang}
\end{document}

View File

@ -0,0 +1,164 @@
%!TeX root=00_Abschlussarbeit.tex
% \pdfcompresslevel=0
% \pdfobjcompresslevel=0
% Pakete für die Darstellung und Eingabemöglichkeit von Umlauten
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
%Für Tabellen
\usepackage{rotating} % Drehen
\usepackage{colortbl} % Farben
\usepackage{booktabs} % dickere Linien
\usepackage{longtable} % für lange Tabellen
\usepackage{tabularx}
\usepackage{array}
\usepackage{multirow}
% Anpassung Seitenränder
\usepackage[left= 3cm, right = 2cm, bottom = 3 cm, top = 2cm]{geometry}
% Verwendung deutscher Begriffe für automatisch generierte Worte wie z.B. "Inhaltsverzeichnis"
\usepackage[ngerman, english]{babel}
% Anführungszeichen/Zitate
\usepackage{csquotes}
% Trennen wenn Latex es nicht richtig macht:
% \hyphenation{}
% Paket um Dummy-Text/Blindtext zu erzeugen
\usepackage{blindtext}
% Eigenes Titelblatt
\usepackage{LTXKursTitel}
% Zeilenabstand auf 1,5 setzen
\usepackage[onehalfspacing]{setspace}
\AfterTOCHead{\singlespacing}
\KOMAoptions{DIV=last} % KOMA Klasse für europ. Layout
\usepackage{scrdate, scrtime} % Zeit und Datumsbefehle
\usepackage{scrlayer-scrpage} % Erweitere Layout-Optionen
\pagestyle{scrheadings} % Seitenlayout selbst definieren
% Belegung von KOMA Variablen für Kopf- und Fußzeilen Gestaltung
\newcommand{\footlinetext}{\footnotesize \textsf{\color{gray} Kapitel \thesection \ \normalsize}}
\KOMAoptions{headsepline = no, footsepline = yes}
\ihead{\headmark}
\chead{}
\ohead{}
\ifoot{\footlinetext}
\cfoot{}
\ofoot{\pagemark}
% Pakete zum Einbinden von Bildern und Farben
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{pdfpages} %PDFs einbinden
% Pakete für Mathematik
\usepackage[free-standing-units,locale = DE]{siunitx} % Befehle für SI-Einheiten
\usepackage{amsmath} % Mathematik Befehle
\usepackage{amsfonts}
% Paket und Spezifikation der Parameter zur Darstellung von Programmcode mit Courier-Schriftart
\usepackage{listings} % Darstellung von Quellcode
\usepackage{courier} % Schriftart laden
\lstset{
language=C++,
basicstyle=\footnotesize\ttfamily, % Standardschrift
numbers=left, % Ort der Zeilennummern
numberstyle=\tiny, % Stil der Zeilennummern
%stepnumber=2, % Abstand zwischen den Zeilennummern
numbersep=5pt, % Abstand der Nummern zum Text
tabsize=2, % Groesse von Tabs
extendedchars=true, %
breaklines=true, % Zeilen werden Umgebrochen
keywordstyle=\color{blue}\bfseries,
frame=b,
% keywordstyle=[1]\textbf, % Stil der Keywords
% keywordstyle=[2]\textbf, %
% keywordstyle=[3]\textbf, %
% keywordstyle=[4]\textbf, \sqrt{\sqrt{}} %
stringstyle=\color{magenta}\ttfamily, % Farbe der String
showspaces=false, % Leerzeichen anzeigen ?
showtabs=false, % Tabs anzeigen ?
%xleftmargin=17pt, % Abstände
%framexleftmargin=17pt,
%framexrightmargin=5pt,
%framexbottommargin=4pt,
commentstyle=\color{green!100!blue}\bfseries,
%backgroundcolor=\color{grey},
showstringspaces=true, % Leerzeichen in Strings anzeigen ?
morekeywords={__global__}, % additional language specific keywords
morecomment=[l]
}
\lstloadlanguages{% Check Dokumentation for further languages ...
%[Visual]Basic
%Pascal
C,
C++,
%XML
%HTML
%Matlab
%Java
}
% Literaturverzeichnis mit BibLaTeX und Biber erstellen
\usepackage[style=ieee, sorting=none, backend=biber]{biblatex}
% bib-Datei einbinden
\addbibresource{Literatur.bib}
\usepackage{abstract}
\usepackage[printonlyused]{acronym} %Abkürzungsverzeichnis
\usepackage{tocbasic}
\usepackage{textcmds}
\usepackage{scrhack} %gets rid of \float@addtolists error
\usepackage{hyperref} % Layout im PDF Viewer. Muss als letztes Paket geladen werden
\hypersetup{%
plainpages=false,
linktocpage=true,
breaklinks=true,
colorlinks=true,
linkcolor=black,%blue,
anchorcolor=black,
citecolor=black,%green,
filecolor=black,%blue,
urlcolor=black,%blue%
pdfstartview={FitV},
pdfview={FitH},
pdfpagelayout={SinglePage},
%pdfpagemode={None}, %unknown value "None"
}
\usepackage[xindy, order=letter, acronym=true]{glossaries} % muss nach hyperref geladen werden
% \usepackage{glossaries-german} % verwendete Sprachen laden, https://www.ctan.org/pkg/glossaries-german, nötig?
\makeglossaries
\setacronymstyle{long-short}
\setglossarystyle{index} %alternativ: tree, list, long3col, weitere: https://www.dickimaw-books.com/gallery/glossaries-styles/#long
\setcounter{tocdepth}{4} %Erweiterung des Inhaltsverzeichnisses um eine weitere Ebene
\setcounter{secnumdepth}{4} %Erweiterung der Kapiteltiefe um eine weitere Ebene
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Variablen zum Belegen %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Variables for title page
\DAAutor{Vorname Name \par Matrikelnummer}
\DATyp{Bachelorarbeit/Masterarbeit}
\DAAutorAdresse{Straße Hausnummer \par PLZ Ort}
\DAFachbereich{efi}
\DATitel{Titel}
\DABetreuerTextA{Betreuer*in}
\DABetreuerTextB{Betreuer*in}
\DABetreuerA{Betreuer*in 1}
\DABetreuerB{Betreuer*in 2}
\DAOrt{Abgabe: Ort}
\DAAbgabedatum{Tag.\,Monat\,Jahr}
\DAAbgabesemester{Wintersemester/Sommersemester Jahr}

View File

@ -0,0 +1,19 @@
%!TeX root=00_Abschlussarbeit.tex
\selectlanguage{ngerman}
\renewcommand{\abstractname}{Kurzfassung}
\begin{abstract}
% TEXT DEUTSCH %
\blindtext
\end{abstract}
\selectlanguage{english}
\renewcommand{\abstractname}{Abstract}
\begin{abstract}
% TEXT ENGLISCH %
\blindtext
\end{abstract}

View File

@ -0,0 +1,4 @@
%!TeX root=00_Abschlussarbeit.tex
%\label{sec:abkuerzungsverzeichnis}
\newacronym{USB}{USB}{universal serial bus}

View File

@ -0,0 +1,9 @@
%!TeX root=00_Abschlussarbeit.tex
\chapter{Einleitung}
% TEXT %
\gls{USB}\\
\gls{USB}\\
\blindtext
\cite[S. xx]{horowitzArtElectronics2015}

View File

@ -0,0 +1,12 @@
%!TeX root=00_Abschlussarbeit.tex
% Kapitel des Hauptteils einbinden
\input{21_Grundlagen_Theorie}
\input{22_Stand_der_Technik}
\input{23_Konzeptentwicklung}
\input{24_Implementierung}
\input{25_Test}

View File

@ -0,0 +1,5 @@
%!TeX root=20_Hauptteil.tex
\chapter{Grundlagen und Theorie}
% TEXT %

View File

@ -0,0 +1,5 @@
%!TeX root=00_Bachelorarbeit_Dippold.tex
\chapter{Stand der Technik}
% TEXT %

View File

@ -0,0 +1,5 @@
%!TeX root=20_Hauptteil.tex
\chapter{Konzeptentwicklung}
% TEXT %

View File

@ -0,0 +1,5 @@
%!TeX root=20_Hauptteil.tex
\chapter{Implementierung}
% TEXT %

View File

@ -0,0 +1,5 @@
%!TeX root=20_Hauptteil.tex
\chapter{Test}
% TEXT %

View File

@ -0,0 +1,5 @@
%!TeX root=00_Abschlussarbeit.tex
\chapter{Zusammenfassung und Ausblick}
% TEXT %

View File

@ -0,0 +1,25 @@
%!TeX root=00_Abschlussarbeit.tex
\chapter{Anhang}
% \section{Code}
% Anhang mit Quellcode
%\lstset{language=C++,
% basicstyle=\ttfamily,
% keywordstyle=\color{blue}\ttfamily,
% stringstyle=\color{red}\ttfamily,
% commentstyle=\color{green}\ttfamily,
% morecomment=[l][\color{magenta}]{\#}
%}
% \begin{lstlisting}[caption={[For-Schleife] For-Schleife die die Zahlen von 1 bis 10 ausgiebt}]
% // Print numbers from 1 to 10
% #include <stdio.h>
% int main() {
% int i;
% for (i = 1; i < 11; ++i)
% {
% printf("%d ", i);
% }
% return 0;
% }
% \end{lstlisting}

View File

@ -0,0 +1 @@
put your Anhang in this folder

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,170 @@
% Muster-Stylefile, LaTeX-Kurs GSO Nürnberg, SS 2008
% Dieses Package stellt eine Titelseite für eine Diplomarbeit
% zur Verfügung. Das Design ist hierbei an die Vorgaben
% der GSO angelehnt. Für die Vorgaben Ihres Fachbereiches
% müssen evtl. Anpassungen unternommen werden!
% Dieses Musterfile stellt weder Anspruch auf Vollständigkeit, noch ist es als Beispiel
% für besonders gute TeX-Programmierung zu verstehen. Es soll lediglich eine Möglichkeit
% aufzeigen, wie ein eigenes Stylefile aussehen kann.
% Versionshistorie:
% 1.0 2006/12/04(HB) Erstausgabe für WS 2006/07
% 2.0 2007/04/21(HB) Überarbeitung und Designanpassung, SS 2007
% 2.1 2008/05/25(HB) Initialisierung der Variablen statisch, Fehlerabfrage bei Pflichtangaben
%
% Dieses File darf frei zur Gestaltung von akademischen Arbeiten an der GSO Nürnberg
% verwendet werden. Eine Garantie für Übereinstimmung mit eventuellen Vorgaben
% einzelner Fachbereiche wird nicht gegeben.
% Kopieren und Modifikationen ausdrücklich gestattet.
%
%
\NeedsTeXFormat{LaTeX2e} % Kompatibilität sicherstellen.
\ProvidesPackage{LTXKursTitel}[2014/07/07 v2.2 Titelblatt LaTeX-Kurs GSO Nbg.]
% Identifikation eines packages. Die Versionsinformation wird im logfile ausgegeben.
% Der Dateiname und der obige Identifikationstext müssen übereinstimmen!
\RequirePackage{calc}
% Aufruf von anderen Packages in eigenen .sty-Files nicht mit usepackage.
% \RequirePackage stellt sicher, dass das angefordere Package nicht bereits vorher u. U. mit anderen Optionen geladen wurde.
\RequirePackage{ifthen} % für vereinfachte Konditionale
\RequirePackage[absolute]{textpos} % Absolute Positionierung auf Seite
\RequirePackage{graphicx,xcolor}
% Layout
% ------
\newlength{\RandLinks} % Initialisierung der Längen
\newlength{\RandRechts}
\newlength{\RandOben}
\newlength{\TitelBreite}
%
\setlength{\RandLinks}{3cm}
\setlength{\RandRechts}{2cm}
% Berechnung der Breite des Titels aus den Randeinstellungen
\setlength{\TitelBreite}{\paperwidth-\RandLinks-\RandRechts}
%
\setlength{\RandOben}{2cm}
%
% Die Werte können durch \setlength... im Dokument umdefiniert werden.
% Statische Texte:
% ----------------
% Diese Variablen stellen statische Textelemente
% der Titelei zur Verfügung. Vorbelegung mit den deutschen Begriffen
\newcommand{\@DAFH}{Technische Hochschule Nürnberg Georg Simon Ohm}
\newcommand{\@DAFB}{in~der~Fakultät}
% Falls Englisch als Dokumentensprache gewählt ist:
%\renewcommand{\@DAFH}{Georg-Simon-Ohm-University of Applied Sciences Nuremberg}
%\renewcommand{\@DAFB}{at~the Faculty~of}
%\renewcommand{\@DABetreuerTextA}{Advisor}
%\renewcommand{\@DABetreuerTextB}{Advisor}
%
%Dynamische Texte :
%------------------
% Diese Texte werden zur Aufrufzeit verändert. Hierzu möchten
% wir die gleiche Syntax wie in den Standardklassen verwenden
% können, d. h. vor dem \maketitle im Dokument sollen mittels
% \DAAutor{Max Mustermann} etc. die Werte gesetzt werden können.
%
% Die Definition der Kommandos passiert in 2 Schritten:
% 1) Vorbelegung der Variablen mit "nix" = \relax
\newcommand{\@DAAutor}{\relax}
% 2) Beim Aufruf des Benutzerkommandos: Re-Definition des
% Platzhalters mit dem Argument des Benutzerbefehls.
% Achtung:
% \newcommand wirkt nur innerhalb der Gruppe,
% wir wollen aber ein globales Kommando definieren!
% LaTeX-Syntax funktioniert hier wenn dann nur zufällig!
% \newcommand{\Autor}[1]{\global\renewcommand\DAAutor[1]{#1}}
% => TeX-Syntax - handle with care!
%\newcommand{\DAAutor}[1]{\global\def\@DAAutor{#1}}
\newcommand{\DAAutor}[1]{\gdef\@DAAutor{#1}}
% \gdef macht (fast) dasselbe wie \newcommand, nur wirkt es 'g'lobal
% Nur verwenden, wenn Sie sich sicher sind, was Sie tun!
%
% Analog werden die anderen Platzhalter definiert:
\newcommand{\@DATyp}{Diplomarbeit} % hier mit Voreinstellung
\newcommand{\DATyp}[1]{\gdef\@DATyp{#1}}
\newcommand{\@DAAutorAdresse}{- Meine Adresse - }
\newcommand{\DAAutorAdresse}[1]{\gdef\@DAAutorAdresse{#1}}
%
\newcommand{\@DAFachbereich}{AW}
\newcommand{\DAFachbereich}[1]{\gdef\@DAFachbereich{#1}}
%
\newcommand{\@DATitel}{\relax}
\newcommand{\DATitel}[1]{\gdef\@DATitel{#1}}
%
\newcommand{\@DABetreuerA}{Musterbetreuer 1}
\newcommand{\DABetreuerA}[1]{\gdef\@DABetreuerA{#1}}
%
\newcommand{\@DABetreuerB}{Musterbetreuer 2}
\newcommand{\DABetreuerB}[1]{\gdef\@DABetreuerB{#1}}
%
\newcommand{\@DABetreuerTextA}{Betreuer}
\newcommand{\DABetreuerTextA}[1]{\gdef\@DABetreuerTextA{#1}}
%
\newcommand{\@DABetreuerTextB}{Betreuer}
\newcommand{\DABetreuerTextB}[1]{\gdef\@DABetreuerTextB{#1}}
%
\newcommand{\@DAOrt}{Nürnberg}
\newcommand{\DAOrt}[1]{\gdef\@DAOrt{#1}}
%
\newcommand{\@DAAbgabedatum}{\today}
\newcommand{\DAAbgabedatum}[1]{\gdef\@DAAbgabedatum{#1}}
%
\newcommand{\@DAAbgabesemester}{Sommersemester 2022}
\newcommand{\DAAbgabesemester}[1]{\gdef\@DAAbgabesemester{#1}}
%
\renewcommand{\maketitle}{% Neudefinition des \maketitle-Befehls:
%
% --------------------------------Für TeXperten!--------------------------------
% Fehlerbehandlung: bei undefiniertem \@DAAutor wird ein Fehler mit einer
% hoffentlich hilfreichen Beschreibung ausgegeben und die Erstellung ggf. abgebrochen.
\ifthenelse{\equal{\@DAAutor}{\relax}}{% Fehler: kein Autor
\PackageError {LTXKursTitel}{Fehler beim Erstellen des Titelblatts - kein Autor definiert!\MessageBreak Bitte mit \noexpand\DAAutor\space vor \noexpand\maketitle\space definieren!}{Es wurde kein Autor definiert, bevor \noexpand\maketitle\space aufgerufen wurde.}%
} % Abbrechen mit Fehlermeldung
{\relax}% kein Fehler: mach gar nix
%
%% Gleiches Spiel mit dem Titel:
\ifthenelse{\equal{\@DATitel}{\relax}}{% Fehler: kein Autor
\PackageError {LTXKursTitel}{Fehler beim Erstellen des Titelblatts - kein Titel definiert!\MessageBreak Bitte mit \noexpand\DATitel\space vor \noexpand\maketitle\space definieren!}{Es wurde kein Titel definiert, bevor \noexpand\maketitle\space aufgerufen wurde.}%
} % Abbrechen mit Fehlermeldung
{\relax}% kein Fehler: mach gar nix
% -------------------------------\Für TeXperten!--------------------------------
%
%
%
\thispagestyle{empty} % nötig, da sonst eine Seitenzahl ausgegeben wird
%
\definecolor{th_blau}{HTML}{1D60A8} % oder 0046A0
\definecolor{ohm_rot}{HTML}{C72426}
\begin{textblock*}{\TitelBreite}(\RandLinks,\RandOben)% Textblock mit Breite \TitelBreite
% Auswahl nur Ohm-Logo oder Firmenlogo + Ohm-Logo
% \par\vspace{5mm}~\includegraphics[width=0.3\textwidth]{Bilder/firmenlogo.jpg}\hfill\includegraphics[width=0.4\textwidth]{Bilder/ohm_logo_crop.png}\\[2mm] % Ohm-Logo
\par\vspace{5mm}~\hfill\includegraphics[width=0.4\textwidth]{Bilder/ohm_logo_crop.png}\\[2mm] % Ohm-Logo
{\color{ohm_rot}\rule{\TitelBreite}{2mm}}\\[2cm] % Linie
{\centering
\sffamily\Large
\@DAFH\\ % Einsetzen der
\@DATyp{} \@DAFB{} \@DAFachbereich\\[\baselineskip] % einzelnen
{\Huge\@DATitel}\\[\baselineskip] % Textbausteine
\@DAAutor\\[\baselineskip]
\@DAAutorAdresse\\[2\baselineskip]
\begin{center}%
\begin{tabular}{ll}
\@DABetreuerTextA:&~\@DABetreuerA\\
\@DABetreuerTextB:&~\@DABetreuerB\\ \\
\end{tabular}%
\end{center}
\@DAOrt, \@DAAbgabedatum \\
\@DAAbgabesemester
\par
}%
\end{textblock*}
% ~\clearpage % Seitenumbruch, das geschützte Leerzeichen ist notwendig,
% da außer dem textblock* nichts auf der Seite steht und somit
% die Seite als "`leer"' angesehen wird.
} % Ende der Definition von \maketitle
%
% </package>

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,11 @@
@book{horowitzArtElectronics2015,
title = {The {{Art}} of {{Electronics}}},
author = {Horowitz, Paul and Hill, Winfield},
date = {2015},
edition = {Third edition},
publisher = {{Cambridge University Press}},
location = {{New York, NY}},
isbn = {978-0-521-80926-9},
pagetotal = {xxxi, 1230 Seiten},
file = {C\:\\Users\\ddh1sc\\Documents\\Bachelorarbeit\\Zotero\\storage\\LNMYHH77\\singleHit.html}
}

102
abschlussarbeit/README.md Normal file
View File

@ -0,0 +1,102 @@
# LaTeX-Template Abschlussarbeit
Hier findet Ihr ein LaTeX-Template für eure Abschlussarbeit an der Fakultät efi.
Das Template basiert auf der Vorlage von Frau Prof. Dr. Niebler und wurde aktualisiert und ergänzt.
Die Fachschaft ist nicht dafür verantwortlich, ob das Template die aktuell gültigen formalen Bestimmungen einhält!
## Nutzung
Das Repository entweder in der Weboberfläche oder über die Kommandozeile kopieren:
git clone --branch main https://git.efi.th-nuernberg.de/gitea/efi-fachschaft/Abschlussarbeit.git
Die Dateistruktur und Kapitelstruktur sowie die Benennung ist natürlich nicht fest und sollte so angepasst werden, wie es für eure Arbeit am Besten passt. Dazu steht im Leitfaden mehr.
Für eine bessere Übersichtlichkeit (und evtl. Debugging) ist es definitiv ratsam, den Text logisch in verschiedene Dateien aufzuteilen.
Das Dokument wird über `00_Abschlussarbeit.tex`, `01_AbschlussarbeitPraeambel.tex` und `LTXKursTitel.sty` angepasst. Viele Optionen sind kommentiert und sollten relativ selbsterklärend sein.
Diese Dateien daher unbedingt sorgfältig anschauen!
### LaTeX-Distribution
Ich nutze [TeX Live](https://tug.org/texlive/) als LaTeX-Distribution und Ubuntu als Betriebssystem.
### Editor
Als Editor kann ich VS Code bzw. [VS Codium](https://vscodium.com/) empfehlen (= VS Code ohne Microsoft-Binaries).
Dazu die Erweiterungen:
- LaTeX Workshop (viele nützliche Funktionen)
- LTeX (sehr gute Rechtschreib- und Grammatikprüfung)
### Kompilieren
>Kompilierreihenfolge: pdflatex > biber > makeglossaries > pdflatex > pdflatex
In VS Code müssen dazu die Tools `biber` und `makeglossaries` ergänzt werden.
Dazu:
\> Einstellungen (<kbd>Strg</kbd>+<kbd>,</kbd>)
\> Latex-workshop>Latex:Tools (nach "tools" suchen)
\> Edit in settings.json
Diesen Code am Ende des Abschnitts "latex-workshop.latex.tools" einfügen:
{
"name": "biber",
"command": "biber",
"args": [
"%DOCFILE%"
],
"env": {}
},
{
"name": "makeglossaries",
"command": "makeglossaries",
"args": [
"%DOC%"
],
"env": {}
}
Anschließend muss ein entsprechendes `recipe` angelegt werden.
Dazu:
\> Einstellungen (<kbd>Strg</kbd>+<kbd>,</kbd>)
\> Latex-workshop>Latex:Recipes (nach "recipes" suchen)
\> Edit in settings.json
Diesen Code am Ende des Abschnitts "latex-workshop.latex.recipes" einfügen:
{
"name": "Abschlussarbeit",
"tools": [
"pdflatex",
"biber",
"makeglossaries",
"pdflatex",
"pdflatex"
]
}
Anschließend kann man das Recipe wie andere auch normal zum Kompilieren auswählen.
Damit das verwendete Paket `glossaries` funktioniert muss außerdem [Perl](https://www.perl.org/get.html) installiert sein.
### Literatur
Literaturverwaltung funktioniert gut über [Zotero](https://www.zotero.org/), ergänzend dazu das Zotero-Plugin BetterBibTeX (automatisiert das Exportieren des Literaturverzeichnis in die .bib-Datei) und das Zotero Browser-Plugin.
### Backups
Zum Sichern und Versionieren der Arbeit bietet sich der [efi-eigene git-Server](https://git.efi.th-nuernberg.de/gitea/) an.
Der Login erfolgt über die üblichen TH-Anmeldedaten.
## Infos, Tipps und Hilfe
Weitere Infos finden sich u.a. auf den Seiten des [Schreibzentrums](https://www.th-nuernberg.de/einrichtungen-gesamt/administration-und-service/lehr-und-kompetenzentwicklung/ueberfachliche-kompetenzen/schreibzentrum/) und der [Bibliothek](https://www.th-nuernberg.de/einrichtungen-gesamt/administration-und-service/bibliothek/).
Feedback, Hinweise, Verbesserungsvorschläge und weitere nützliche Tools/Extensions/Plugins gerne direkt an mich:
- Hannes Dippold: dippoldha78415@th-nuernberg.de
oder die Fachschaft
- Fachschaft efi: efi-fachschaft@th-nuernberg.de

115
paper.tex
View File

@ -1,77 +1,76 @@
% =====================================================================
% STUFE 1 -- Single Source of Truth
% STUFE 2 -- Template anwenden
% --------------------------------------------------------------------
% Was sich gegenueber Stufe 0 geaendert hat:
% + messwerte.csv ist die EINE Quelle der Wahrheit
% + plot.py erzeugt plot.pdf, tabelle.tex und werte.tex
% + paper.tex enthaelt KEINE hand-getippte Messzahl mehr
% Was sich gegenueber Stufe 1 geaendert hat:
% + Offizielles TH-Nuernberg-Abschlussarbeit-Template (Fakultaet efi)
% -> 01_AbschlussarbeitPraeambel.tex (Layout, Pakete, Einstellungen)
% -> LTXKursTitel.sty (Deckblatt mit Ohm-Logo)
% + scrreprt + KOMA-Script Layout statt selbstgebautes article
% + Inhalt logisch in Dateien aufgeteilt:
% 02_Abstract.tex
% 10_Einleitung.tex
% 20_Hauptteil.tex
% 30_Schluss.tex
% + Title page, Abstract, Inhaltsverzeichnis,
% Abbildungs- und Tabellenverzeichnis kommen aus dem Template
% + Pakete wie siunitx, biblatex, hyperref sind in der Praeambel
% bereits geladen -- die spaeteren Stufen nutzen sie
%
% Was noch unschoen ist (kommt in den naechsten Stufen):
% - Hand-formatierter Header (Regel 2)
% - "TH N\"urnberg Georg Simon Ohm" 2x getippt (Regel 3)
% Was noch unschoen ist:
% - "TH N\"urnberg Georg Simon Ohm" 2x im Text getippt (Regel 3)
% - Zitat [Lutz/Wendt, 2014] hand-getippt (Regel 4)
% - "Abb.~1", "Tabelle~1" hart codiert (Regel 5)
% - kein Versionsverlauf (Regel 6)
% - "Abb.~1", "Abb.~2", "Tabelle~1" hart codiert (Regel 5)
% - aufbau.png noch pixelig (Regel 7)
% =====================================================================
\documentclass[a4paper, 11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{booktabs}
\input{werte.tex} % \omegaKtheorie, \omegaKmess, \abweichung -- erzeugt von plot.py
\documentclass[a4paper, parskip=half, titlepage=yes, 11pt, BCOR=12mm, toc=flat]{scrreprt}
\input{01_AbschlussarbeitPraeambel}
\input{werte.tex}
% --- Variablen fuer das Deckblatt (aus LTXKursTitel.sty) ---
\DAAutor{Tom Ne\ss \par Cedric Fritzsch \par Lukas Klausen \par Gruppe 10.4}
\DATyp{Praktikumsbericht Regelungstechnik V4}
\DAAutorAdresse{Wassertorstra\ss e 10 \par 90489 N\"urnberg}
\DAFachbereich{efi}
\DATitel{Frequenzgangmessung einer Drehzahl-Regelstrecke}
\DABetreuerTextA{Betreuer}
\DABetreuerTextB{}
\DABetreuerA{Ullrich Zahner}
\DABetreuerB{}
\DAOrt{Abgabe: N\"urnberg}
\DAAbgabedatum{22.\,Juni\,2025}
\DAAbgabesemester{Sommersemester 2025}
\pagenumbering{roman}
\begin{document}
% --- Hand-formatierter Header (Regel 2 wird das fixen) ---
\begin{center}
{\Huge\bfseries Frequenzgangmessung einer Drehzahl-Regelstrecke}\\[6pt]
{\large Tom Ne\ss , Cedric Fritzsch, Lukas Klausen}\\[2pt]
TH N\"urnberg Georg Simon Ohm\\
\today
\end{center}
\vspace{1cm}
\noindent{\Large\bfseries 1. Einleitung}\\[6pt]
Diese Arbeit charakterisiert eine Drehzahl-Regelstrecke an der
TH N\"urnberg Georg Simon Ohm. Die theoretische Knickfrequenz
betr\"agt \omegaKtheorie\ rad/s [Lutz/Wendt, 2014]. Ziel ist die
Validierung des PT2-Modells durch eine Frequenzgangmessung,
durchgef\"uhrt an der TH N\"urnberg Georg Simon Ohm.
\bigskip
\noindent{\Large\bfseries 2. Aufbau}\\[6pt]
Der Aufbau ist in Abb.~1 dargestellt. Verwendet wurde das
BORIS-Modell mit Sinus-Generator, Drehzahlstrecke und Multiplot.
\maketitle
\begin{center}
\includegraphics[width=0.8\textwidth]{aufbau.png}\\[4pt]
{\bfseries Abb.~1:} Multiplot der Frequenzgangmessung (BORIS-Screenshot).
\thispagestyle{empty}
\end{center}
\bigskip
\noindent{\Large\bfseries 3. Messergebnisse}\\[6pt]
Das gemessene Bode-Diagramm ist in Abb.~2 dargestellt. Die ermittelte
Knickfrequenz liegt bei \omegaKmess\ rad/s und weicht um
\abweichung\ \% vom theoretischen Wert von \omegaKtheorie\ rad/s ab
[Lutz/Wendt, 2014]. Die Messpunkte zeigt Tabelle~1.
\input{02_Abstract}
\begin{center}
\includegraphics[width=0.7\textwidth]{plot.pdf}\\[4pt]
{\bfseries Abb.~2:} Gemessenes Bode-Diagramm.
\end{center}
\selectlanguage{ngerman}
\begin{center}
{\bfseries Tabelle~1:} Frequenzgangmesspunkte.\\[4pt]
\input{tabelle.tex}
\end{center}
\tableofcontents
\clearpage
\bigskip
\noindent{\bfseries Quellen:}\\[2pt]
[Lutz/Wendt, 2014] Lutz, H. \& Wendt, W. \emph{Taschenbuch der
Regelungstechnik}. Europa-Lehrmittel, 10.~Auflage, 2014.
\newpage
\pagenumbering{arabic}
\input{10_Einleitung}
\input{20_Hauptteil}
\input{30_Schluss}
\listoffigures
\listoftables
% Hinweis: Literaturverzeichnis kommt in Stufe 4 (\printbibliography).
\end{document}

436
paper.xdy Normal file
View File

@ -0,0 +1,436 @@
;; xindy style file created by the glossaries package
;; for document 'paper' on 2026-5-3
; required styles
(require "tex.xdy")
; list of allowed attributes (number formats)
(define-attributes (("default"
"glsnumberformat"
"pageglsnumberformat"
"textrm"
"pagetextrm"
"textsf"
"pagetextsf"
"texttt"
"pagetexttt"
"textbf"
"pagetextbf"
"textmd"
"pagetextmd"
"textit"
"pagetextit"
"textup"
"pagetextup"
"textsl"
"pagetextsl"
"textsc"
"pagetextsc"
"emph"
"pageemph"
"glshypernumber"
"pageglshypernumber"
"hyperrm"
"pagehyperrm"
"hypersf"
"pagehypersf"
"hypertt"
"pagehypertt"
"hyperbf"
"pagehyperbf"
"hypermd"
"pagehypermd"
"hyperit"
"pagehyperit"
"hyperup"
"pagehyperup"
"hypersl"
"pagehypersl"
"hypersc"
"pagehypersc"
"hyperemph"
"pagehyperemph"
"glsignore"
"pageglsignore")))
; user defined alphabets
; location class definitions
(define-location-class "roman-page-numbers"
( :sep "{}{" "roman-numbers-lowercase" :sep "}" )
:min-range-length 2
)
(define-location-class "roman-page-numbers-roman-page-numbers"
( :sep "{" "roman-numbers-lowercase" :sep "}{" "roman-numbers-lowercase" :sep "}" )
:min-range-length 2
)
(define-location-class "Roman-page-numbers-roman-page-numbers"
( :sep "{" "roman-numbers-uppercase" :sep "}{" "roman-numbers-lowercase" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-page-numbers-roman-page-numbers"
( :sep "{" "arabic-numbers" :sep "}{" "roman-numbers-lowercase" :sep "}" )
:min-range-length 2
)
(define-location-class "alpha-page-numbers-roman-page-numbers"
( :sep "{" "alpha" :sep "}{" "roman-numbers-lowercase" :sep "}" )
:min-range-length 2
)
(define-location-class "Alpha-page-numbers-roman-page-numbers"
( :sep "{" "ALPHA" :sep "}{" "roman-numbers-lowercase" :sep "}" )
:min-range-length 2
)
(define-location-class "Appendix-page-numbers-roman-page-numbers"
( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "roman-numbers-lowercase" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-section-numbers-roman-page-numbers"
( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "roman-numbers-lowercase" :sep "}" )
:min-range-length 2
)
(define-location-class "Roman-page-numbers"
( :sep "{}{" "roman-numbers-uppercase" :sep "}" )
:min-range-length 2
)
(define-location-class "roman-page-numbers-Roman-page-numbers"
( :sep "{" "roman-numbers-lowercase" :sep "}{" "roman-numbers-uppercase" :sep "}" )
:min-range-length 2
)
(define-location-class "Roman-page-numbers-Roman-page-numbers"
( :sep "{" "roman-numbers-uppercase" :sep "}{" "roman-numbers-uppercase" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-page-numbers-Roman-page-numbers"
( :sep "{" "arabic-numbers" :sep "}{" "roman-numbers-uppercase" :sep "}" )
:min-range-length 2
)
(define-location-class "alpha-page-numbers-Roman-page-numbers"
( :sep "{" "alpha" :sep "}{" "roman-numbers-uppercase" :sep "}" )
:min-range-length 2
)
(define-location-class "Alpha-page-numbers-Roman-page-numbers"
( :sep "{" "ALPHA" :sep "}{" "roman-numbers-uppercase" :sep "}" )
:min-range-length 2
)
(define-location-class "Appendix-page-numbers-Roman-page-numbers"
( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "roman-numbers-uppercase" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-section-numbers-Roman-page-numbers"
( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "roman-numbers-uppercase" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-page-numbers"
( :sep "{}{" "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "roman-page-numbers-arabic-page-numbers"
( :sep "{" "roman-numbers-lowercase" :sep "}{" "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "Roman-page-numbers-arabic-page-numbers"
( :sep "{" "roman-numbers-uppercase" :sep "}{" "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-page-numbers-arabic-page-numbers"
( :sep "{" "arabic-numbers" :sep "}{" "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "alpha-page-numbers-arabic-page-numbers"
( :sep "{" "alpha" :sep "}{" "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "Alpha-page-numbers-arabic-page-numbers"
( :sep "{" "ALPHA" :sep "}{" "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "Appendix-page-numbers-arabic-page-numbers"
( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-section-numbers-arabic-page-numbers"
( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "alpha-page-numbers"
( :sep "{}{" "alpha" :sep "}" )
:min-range-length 2
)
(define-location-class "roman-page-numbers-alpha-page-numbers"
( :sep "{" "roman-numbers-lowercase" :sep "}{" "alpha" :sep "}" )
:min-range-length 2
)
(define-location-class "Roman-page-numbers-alpha-page-numbers"
( :sep "{" "roman-numbers-uppercase" :sep "}{" "alpha" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-page-numbers-alpha-page-numbers"
( :sep "{" "arabic-numbers" :sep "}{" "alpha" :sep "}" )
:min-range-length 2
)
(define-location-class "alpha-page-numbers-alpha-page-numbers"
( :sep "{" "alpha" :sep "}{" "alpha" :sep "}" )
:min-range-length 2
)
(define-location-class "Alpha-page-numbers-alpha-page-numbers"
( :sep "{" "ALPHA" :sep "}{" "alpha" :sep "}" )
:min-range-length 2
)
(define-location-class "Appendix-page-numbers-alpha-page-numbers"
( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "alpha" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-section-numbers-alpha-page-numbers"
( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "alpha" :sep "}" )
:min-range-length 2
)
(define-location-class "Alpha-page-numbers"
( :sep "{}{" "ALPHA" :sep "}" )
:min-range-length 2
)
(define-location-class "roman-page-numbers-Alpha-page-numbers"
( :sep "{" "roman-numbers-lowercase" :sep "}{" "ALPHA" :sep "}" )
:min-range-length 2
)
(define-location-class "Roman-page-numbers-Alpha-page-numbers"
( :sep "{" "roman-numbers-uppercase" :sep "}{" "ALPHA" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-page-numbers-Alpha-page-numbers"
( :sep "{" "arabic-numbers" :sep "}{" "ALPHA" :sep "}" )
:min-range-length 2
)
(define-location-class "alpha-page-numbers-Alpha-page-numbers"
( :sep "{" "alpha" :sep "}{" "ALPHA" :sep "}" )
:min-range-length 2
)
(define-location-class "Alpha-page-numbers-Alpha-page-numbers"
( :sep "{" "ALPHA" :sep "}{" "ALPHA" :sep "}" )
:min-range-length 2
)
(define-location-class "Appendix-page-numbers-Alpha-page-numbers"
( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "ALPHA" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-section-numbers-Alpha-page-numbers"
( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "ALPHA" :sep "}" )
:min-range-length 2
)
(define-location-class "Appendix-page-numbers"
( :sep "{}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "roman-page-numbers-Appendix-page-numbers"
( :sep "{" "roman-numbers-lowercase" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "Roman-page-numbers-Appendix-page-numbers"
( :sep "{" "roman-numbers-uppercase" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-page-numbers-Appendix-page-numbers"
( :sep "{" "arabic-numbers" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "alpha-page-numbers-Appendix-page-numbers"
( :sep "{" "alpha" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "Alpha-page-numbers-Appendix-page-numbers"
( :sep "{" "ALPHA" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "Appendix-page-numbers-Appendix-page-numbers"
( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-section-numbers-Appendix-page-numbers"
( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "ALPHA" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-section-numbers"
( :sep "{}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "roman-page-numbers-arabic-section-numbers"
( :sep "{" "roman-numbers-lowercase" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "Roman-page-numbers-arabic-section-numbers"
( :sep "{" "roman-numbers-uppercase" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-page-numbers-arabic-section-numbers"
( :sep "{" "arabic-numbers" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "alpha-page-numbers-arabic-section-numbers"
( :sep "{" "alpha" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "Alpha-page-numbers-arabic-section-numbers"
( :sep "{" "ALPHA" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "Appendix-page-numbers-arabic-section-numbers"
( :sep "{" "ALPHA" :sep "." "arabic-numbers" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
(define-location-class "arabic-section-numbers-arabic-section-numbers"
( :sep "{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}{" "arabic-numbers" :sep "." "arabic-numbers" :sep "}" )
:min-range-length 2
)
; user defined location classes
; define cross-reference class
(define-crossref-class "see" :unverified )
(markup-crossref-list :class "see"
:open "\glsseeformat" :close "{}")
; define the order of the location classes
(define-location-class-order (
"roman-page-numbers"
"arabic-page-numbers"
"arabic-section-numbers"
"alpha-page-numbers"
"Roman-page-numbers"
"Alpha-page-numbers"
"Appendix-page-numbers"
"see" ))
; define the glossary markup
(markup-index
:open "\glossarysection[\glossarytoctitle]{\glossarytitle}\glossarypreamble
\providecommand*\glsXpageXglsnumberformat[2]{\setentrycounter[#1]{page}\glsnumberformat{#2}}
\providecommand*\glsXpageXtextrm[2]{\setentrycounter[#1]{page}\textrm{#2}}
\providecommand*\glsXpageXtextsf[2]{\setentrycounter[#1]{page}\textsf{#2}}
\providecommand*\glsXpageXtexttt[2]{\setentrycounter[#1]{page}\texttt{#2}}
\providecommand*\glsXpageXtextbf[2]{\setentrycounter[#1]{page}\textbf{#2}}
\providecommand*\glsXpageXtextmd[2]{\setentrycounter[#1]{page}\textmd{#2}}
\providecommand*\glsXpageXtextit[2]{\setentrycounter[#1]{page}\textit{#2}}
\providecommand*\glsXpageXtextup[2]{\setentrycounter[#1]{page}\textup{#2}}
\providecommand*\glsXpageXtextsl[2]{\setentrycounter[#1]{page}\textsl{#2}}
\providecommand*\glsXpageXtextsc[2]{\setentrycounter[#1]{page}\textsc{#2}}
\providecommand*\glsXpageXemph[2]{\setentrycounter[#1]{page}\emph{#2}}
\providecommand*\glsXpageXglshypernumber[2]{\setentrycounter[#1]{page}\glshypernumber{#2}}
\providecommand*\glsXpageXhyperrm[2]{\setentrycounter[#1]{page}\hyperrm{#2}}
\providecommand*\glsXpageXhypersf[2]{\setentrycounter[#1]{page}\hypersf{#2}}
\providecommand*\glsXpageXhypertt[2]{\setentrycounter[#1]{page}\hypertt{#2}}
\providecommand*\glsXpageXhyperbf[2]{\setentrycounter[#1]{page}\hyperbf{#2}}
\providecommand*\glsXpageXhypermd[2]{\setentrycounter[#1]{page}\hypermd{#2}}
\providecommand*\glsXpageXhyperit[2]{\setentrycounter[#1]{page}\hyperit{#2}}
\providecommand*\glsXpageXhyperup[2]{\setentrycounter[#1]{page}\hyperup{#2}}
\providecommand*\glsXpageXhypersl[2]{\setentrycounter[#1]{page}\hypersl{#2}}
\providecommand*\glsXpageXhypersc[2]{\setentrycounter[#1]{page}\hypersc{#2}}
\providecommand*\glsXpageXhyperemph[2]{\setentrycounter[#1]{page}\hyperemph{#2}}
\providecommand*\glsXpageXglsignore[2]{\setentrycounter[#1]{page}\glsignore{#2}}
\begin{theglossary}\glossaryheader~n"
:close "%~n\end{theglossary}\glossarypostamble~n"
:tree)
(markup-letter-group-list :sep "\glsgroupskip~n")
(markup-indexentry :open "\relax\glsresetentrylist~n")
(markup-locclass-list :open "{\glossaryentrynumbers{\relax "
:sep ", " :close "}}")
(markup-locref-list :sep "\delimN ")
(markup-range :sep "\delimR ")
; define format to use for locations
(markup-locref :open "~n\glsXpageXglsnumberformat"
:close ""
:attr "pageglsnumberformat")
(markup-locref :open "~n\glsXpageXtextrm"
:close ""
:attr "pagetextrm")
(markup-locref :open "~n\glsXpageXtextsf"
:close ""
:attr "pagetextsf")
(markup-locref :open "~n\glsXpageXtexttt"
:close ""
:attr "pagetexttt")
(markup-locref :open "~n\glsXpageXtextbf"
:close ""
:attr "pagetextbf")
(markup-locref :open "~n\glsXpageXtextmd"
:close ""
:attr "pagetextmd")
(markup-locref :open "~n\glsXpageXtextit"
:close ""
:attr "pagetextit")
(markup-locref :open "~n\glsXpageXtextup"
:close ""
:attr "pagetextup")
(markup-locref :open "~n\glsXpageXtextsl"
:close ""
:attr "pagetextsl")
(markup-locref :open "~n\glsXpageXtextsc"
:close ""
:attr "pagetextsc")
(markup-locref :open "~n\glsXpageXemph"
:close ""
:attr "pageemph")
(markup-locref :open "~n\glsXpageXglshypernumber"
:close ""
:attr "pageglshypernumber")
(markup-locref :open "~n\glsXpageXhyperrm"
:close ""
:attr "pagehyperrm")
(markup-locref :open "~n\glsXpageXhypersf"
:close ""
:attr "pagehypersf")
(markup-locref :open "~n\glsXpageXhypertt"
:close ""
:attr "pagehypertt")
(markup-locref :open "~n\glsXpageXhyperbf"
:close ""
:attr "pagehyperbf")
(markup-locref :open "~n\glsXpageXhypermd"
:close ""
:attr "pagehypermd")
(markup-locref :open "~n\glsXpageXhyperit"
:close ""
:attr "pagehyperit")
(markup-locref :open "~n\glsXpageXhyperup"
:close ""
:attr "pagehyperup")
(markup-locref :open "~n\glsXpageXhypersl"
:close ""
:attr "pagehypersl")
(markup-locref :open "~n\glsXpageXhypersc"
:close ""
:attr "pagehypersc")
(markup-locref :open "~n\glsXpageXhyperemph"
:close ""
:attr "pagehyperemph")
(markup-locref :open "~n\glsXpageXglsignore"
:close ""
:attr "pageglsignore")
; define letter group list format
(markup-letter-group-list :sep "\glsgroupskip~n")
; letter group headings
(markup-letter-group :open-head "\glsgroupheading{"
:close-head "}")
; additional letter groups
(define-letter-group "glsnumbers"
:prefixes ("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")
:before "A")
; additional sort rules