diff --git a/01_AbschlussarbeitPraeambel.tex b/01_AbschlussarbeitPraeambel.tex new file mode 100644 index 0000000..de9b590 --- /dev/null +++ b/01_AbschlussarbeitPraeambel.tex @@ -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} diff --git a/02_Abstract.tex b/02_Abstract.tex new file mode 100644 index 0000000..8c6c5a7 --- /dev/null +++ b/02_Abstract.tex @@ -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} diff --git a/10_Einleitung.tex b/10_Einleitung.tex new file mode 100644 index 0000000..1f4d0ea --- /dev/null +++ b/10_Einleitung.tex @@ -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. diff --git a/20_Hauptteil.tex b/20_Hauptteil.tex new file mode 100644 index 0000000..18d40b7 --- /dev/null +++ b/20_Hauptteil.tex @@ -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} diff --git a/30_Schluss.tex b/30_Schluss.tex new file mode 100644 index 0000000..7439cd0 --- /dev/null +++ b/30_Schluss.tex @@ -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. diff --git a/Bilder/ohm_logo_crop.png b/Bilder/ohm_logo_crop.png new file mode 100644 index 0000000..554adf7 Binary files /dev/null and b/Bilder/ohm_logo_crop.png differ diff --git a/LTXKursTitel.sty b/LTXKursTitel.sty new file mode 100644 index 0000000..25cc066 --- /dev/null +++ b/LTXKursTitel.sty @@ -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 +% +% diff --git a/Literatur.bib b/Literatur.bib new file mode 100644 index 0000000..4ea63fd --- /dev/null +++ b/Literatur.bib @@ -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/}} +} diff --git a/abschlussarbeit/.gitignore b/abschlussarbeit/.gitignore new file mode 100644 index 0000000..1147478 --- /dev/null +++ b/abschlussarbeit/.gitignore @@ -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 + diff --git a/abschlussarbeit/00_Abschlussarbeit.pdf b/abschlussarbeit/00_Abschlussarbeit.pdf new file mode 100644 index 0000000..35cdea7 Binary files /dev/null and b/abschlussarbeit/00_Abschlussarbeit.pdf differ diff --git a/abschlussarbeit/00_Abschlussarbeit.tex b/abschlussarbeit/00_Abschlussarbeit.tex new file mode 100644 index 0000000..54d24cb --- /dev/null +++ b/abschlussarbeit/00_Abschlussarbeit.tex @@ -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} \ No newline at end of file diff --git a/abschlussarbeit/01_AbschlussarbeitPraeambel.tex b/abschlussarbeit/01_AbschlussarbeitPraeambel.tex new file mode 100644 index 0000000..de9b590 --- /dev/null +++ b/abschlussarbeit/01_AbschlussarbeitPraeambel.tex @@ -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} diff --git a/abschlussarbeit/02_Abstract.tex b/abschlussarbeit/02_Abstract.tex new file mode 100644 index 0000000..286077b --- /dev/null +++ b/abschlussarbeit/02_Abstract.tex @@ -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} diff --git a/abschlussarbeit/03_Abkuerzungen.tex b/abschlussarbeit/03_Abkuerzungen.tex new file mode 100644 index 0000000..0a9e0d1 --- /dev/null +++ b/abschlussarbeit/03_Abkuerzungen.tex @@ -0,0 +1,4 @@ +%!TeX root=00_Abschlussarbeit.tex + +%\label{sec:abkuerzungsverzeichnis} +\newacronym{USB}{USB}{universal serial bus} diff --git a/abschlussarbeit/10_Einleitung.tex b/abschlussarbeit/10_Einleitung.tex new file mode 100644 index 0000000..8e0c0f0 --- /dev/null +++ b/abschlussarbeit/10_Einleitung.tex @@ -0,0 +1,9 @@ +%!TeX root=00_Abschlussarbeit.tex + +\chapter{Einleitung} + +% TEXT % +\gls{USB}\\ +\gls{USB}\\ +\blindtext +\cite[S. xx]{horowitzArtElectronics2015} \ No newline at end of file diff --git a/abschlussarbeit/20_Hauptteil.tex b/abschlussarbeit/20_Hauptteil.tex new file mode 100644 index 0000000..86a0204 --- /dev/null +++ b/abschlussarbeit/20_Hauptteil.tex @@ -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} \ No newline at end of file diff --git a/abschlussarbeit/21_Grundlagen_Theorie.tex b/abschlussarbeit/21_Grundlagen_Theorie.tex new file mode 100644 index 0000000..051b5f1 --- /dev/null +++ b/abschlussarbeit/21_Grundlagen_Theorie.tex @@ -0,0 +1,5 @@ +%!TeX root=20_Hauptteil.tex + +\chapter{Grundlagen und Theorie} + +% TEXT % \ No newline at end of file diff --git a/abschlussarbeit/22_Stand_der_Technik.tex b/abschlussarbeit/22_Stand_der_Technik.tex new file mode 100644 index 0000000..a12a4cb --- /dev/null +++ b/abschlussarbeit/22_Stand_der_Technik.tex @@ -0,0 +1,5 @@ +%!TeX root=00_Bachelorarbeit_Dippold.tex + +\chapter{Stand der Technik} + +% TEXT % \ No newline at end of file diff --git a/abschlussarbeit/23_Konzeptentwicklung.tex b/abschlussarbeit/23_Konzeptentwicklung.tex new file mode 100644 index 0000000..9619b91 --- /dev/null +++ b/abschlussarbeit/23_Konzeptentwicklung.tex @@ -0,0 +1,5 @@ +%!TeX root=20_Hauptteil.tex + +\chapter{Konzeptentwicklung} + +% TEXT % \ No newline at end of file diff --git a/abschlussarbeit/24_Implementierung.tex b/abschlussarbeit/24_Implementierung.tex new file mode 100644 index 0000000..ac03ebb --- /dev/null +++ b/abschlussarbeit/24_Implementierung.tex @@ -0,0 +1,5 @@ +%!TeX root=20_Hauptteil.tex + +\chapter{Implementierung} + +% TEXT % \ No newline at end of file diff --git a/abschlussarbeit/25_Test.tex b/abschlussarbeit/25_Test.tex new file mode 100644 index 0000000..5c52278 --- /dev/null +++ b/abschlussarbeit/25_Test.tex @@ -0,0 +1,5 @@ +%!TeX root=20_Hauptteil.tex + +\chapter{Test} + +% TEXT % \ No newline at end of file diff --git a/abschlussarbeit/30_Schluss.tex b/abschlussarbeit/30_Schluss.tex new file mode 100644 index 0000000..6ff35db --- /dev/null +++ b/abschlussarbeit/30_Schluss.tex @@ -0,0 +1,5 @@ +%!TeX root=00_Abschlussarbeit.tex + +\chapter{Zusammenfassung und Ausblick} + +% TEXT % \ No newline at end of file diff --git a/abschlussarbeit/40_Anhang.tex b/abschlussarbeit/40_Anhang.tex new file mode 100644 index 0000000..0b07f07 --- /dev/null +++ b/abschlussarbeit/40_Anhang.tex @@ -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 +% int main() { +% int i; +% for (i = 1; i < 11; ++i) +% { +% printf("%d ", i); +% } +% return 0; +% } +% \end{lstlisting} \ No newline at end of file diff --git a/abschlussarbeit/Anhang/anhang.md b/abschlussarbeit/Anhang/anhang.md new file mode 100644 index 0000000..c6abe5c --- /dev/null +++ b/abschlussarbeit/Anhang/anhang.md @@ -0,0 +1 @@ +put your Anhang in this folder \ No newline at end of file diff --git a/abschlussarbeit/Bilder/THN.png b/abschlussarbeit/Bilder/THN.png new file mode 100644 index 0000000..a5021ad Binary files /dev/null and b/abschlussarbeit/Bilder/THN.png differ diff --git a/abschlussarbeit/Bilder/TH_Nuernberg_CMYK.pdf b/abschlussarbeit/Bilder/TH_Nuernberg_CMYK.pdf new file mode 100644 index 0000000..af4ad40 Binary files /dev/null and b/abschlussarbeit/Bilder/TH_Nuernberg_CMYK.pdf differ diff --git a/abschlussarbeit/Bilder/ohm_logo.png b/abschlussarbeit/Bilder/ohm_logo.png new file mode 100644 index 0000000..276bee0 Binary files /dev/null and b/abschlussarbeit/Bilder/ohm_logo.png differ diff --git a/abschlussarbeit/Bilder/ohm_logo_crop.png b/abschlussarbeit/Bilder/ohm_logo_crop.png new file mode 100644 index 0000000..554adf7 Binary files /dev/null and b/abschlussarbeit/Bilder/ohm_logo_crop.png differ diff --git a/abschlussarbeit/LTXKursTitel.sty b/abschlussarbeit/LTXKursTitel.sty new file mode 100644 index 0000000..25cc066 --- /dev/null +++ b/abschlussarbeit/LTXKursTitel.sty @@ -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 +% +% diff --git a/abschlussarbeit/Leitfaden_Merkblatt/efi_leitfaden.pdf b/abschlussarbeit/Leitfaden_Merkblatt/efi_leitfaden.pdf new file mode 100644 index 0000000..73fc544 Binary files /dev/null and b/abschlussarbeit/Leitfaden_Merkblatt/efi_leitfaden.pdf differ diff --git a/abschlussarbeit/Leitfaden_Merkblatt/efi_merkblatt.pdf b/abschlussarbeit/Leitfaden_Merkblatt/efi_merkblatt.pdf new file mode 100644 index 0000000..0d4b12b Binary files /dev/null and b/abschlussarbeit/Leitfaden_Merkblatt/efi_merkblatt.pdf differ diff --git a/abschlussarbeit/Literatur.bib b/abschlussarbeit/Literatur.bib new file mode 100644 index 0000000..6bcbd9e --- /dev/null +++ b/abschlussarbeit/Literatur.bib @@ -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} +} \ No newline at end of file diff --git a/abschlussarbeit/README.md b/abschlussarbeit/README.md new file mode 100644 index 0000000..6040f0f --- /dev/null +++ b/abschlussarbeit/README.md @@ -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 (Strg+,) + \> 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 (Strg+,) + \> 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 diff --git a/paper.tex b/paper.tex index 750ac14..55fc343 100644 --- a/paper.tex +++ b/paper.tex @@ -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} diff --git a/paper.xdy b/paper.xdy new file mode 100644 index 0000000..4349894 --- /dev/null +++ b/paper.xdy @@ -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 + +