diff --git a/abarbeit.cls b/abarbeit.cls index bc2168e..53d4b83 100644 --- a/abarbeit.cls +++ b/abarbeit.cls @@ -1,7 +1,7 @@ \NeedsTeXFormat{LaTeX2e}[1994/06/01] -\ProvidesClass{abschlussarbeit}[2024/05/17 abschlussarbeit] +\ProvidesClass{abarbeit}[2024/05/22 abarbeit] %% Author: Erich Schubert -%% Version 0.1, 2024/05/17 +%% Version 0.1.1, 2024/05/22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{ifthen} \RequirePackage{iftex} @@ -143,7 +143,7 @@ \vfill \bgroup \raggedright -Betreuung: \\ +Begutachtung: \\ \erstgutachterIn{} \\ \zweitgutachterIn{} \egroup @@ -156,7 +156,7 @@ Betreuung: \\ % OPTIONAL bei Kooperation mit anderen Lehrstuehlen, falls definiert \ifcsname kooperation\endcsname \begin{minipage}[b]{.49\linewidth}\raggedleft -\kooperation{} +\kooperation{}% \end{minipage} \fi \end{titlepage} diff --git a/abschlussarbeit.tex b/abschlussarbeit.tex index 2f963c8..1381b22 100644 --- a/abschlussarbeit.tex +++ b/abschlussarbeit.tex @@ -46,16 +46,16 @@ Fakultät für Informatik\\ Data Mining Arbeitsgruppe \\ \href{https://dm.cs.tu-dortmund.de/}{https://dm.cs.tu-dortmund.de/}% URL, aber als Text } -%\newcommand{\kooperation}{ % OPTIONAL -%In Kooperation mit:\\ -%Fakultätsname\\ -%Lehrstuhl-/Institutsbezeichnung -%} +\newcommand{\kooperation}{ % OPTIONAL, einfach weglassen +In Kooperation mit:\\ +Fakultätsname\\ +Lehrstuhl-/Institutsbezeichnung +} \begin{document} \maketitle \frontmatter -%%%%%%%%%%%%%%%%%%%%%%%%%%%% ABSTRACT +%%%%%%%%%%%%%%%%%%%%%%%%%%%% ABSTRACT, nicht jede*r Betreuer*in erwartet das \chapter*{Kurzfassung} An dieser Stelle bitte eine kurze Zusammenfassung der Ergebnisse (nicht jedoch der Struktur) des Dokuments. Was erfährt man, wenn man ihr Dokument gelesen hat, @@ -136,8 +136,8 @@ Folgende Hilfsmittel wurden beim Erstellen der Arbeit eingesetzt:\todo{ggf. entf \item Texteditor, Rechtschreibprüfung, Grammatikprüfung im üblichen Umfang müssen nicht erwähnt werden. \item Entwicklungsumgebung, Versionskontrollsystem etc.{} müssen im Normalfall ebenfalls nicht erwähnt werden. \item Programmiersprachen, -Versionen, etc.{} sofern nicht vorne bereits erwähnt können Sie hier natürlich aufzählen, aber es ist viel eleganter wenn Sie den verwendeten Quellcode mit abgeben, inkl.{} README um ihre Ergebnisse zu reproduzieren. -\item ChatGPT möglichst nur in Absprache mit dem Betreuer, den Umfang der Verwendung hier dokumentieren (siehe Eidesstattliche Versicherung!). -\item Im Zweifelsfalle den Betreuer fragen! +\item ChatGPT möglichst nur nach Absprache einsetzen, den Umfang der Verwendung hier dokumentieren (siehe Eidesstattliche Versicherung!). +\item Im Zweifelsfalle die Betreuer*innen fragen! \item Wenn die Liste leer ist, können Sie sie natürlich auch weglassen. \end{itemize} %bspw. \include{anhang.tex} diff --git a/code/macros.tex b/code/macros.tex new file mode 100644 index 0000000..adc30bf --- /dev/null +++ b/code/macros.tex @@ -0,0 +1,4 @@ +\newcommand{\argmin}{\operatorname*{arg\,min}} +\newcommand{\argmax}{\operatorname*{arg\,max}} +\newcommand{\norm}[1]{\lVert {#1}\rVert} +\newcommand{\sprod}[2]{\left<{#1},{#2}\right>} diff --git a/generiert/macros.tex b/generiert/macros.tex new file mode 100644 index 0000000..53eefce --- /dev/null +++ b/generiert/macros.tex @@ -0,0 +1,6 @@ +\begin{Verbatim}[commandchars=\\\{\}] +\PY{k}{\PYZbs{}newcommand}\PY{n+nb}{\PYZob{}}\PY{k}{\PYZbs{}argmin}\PY{n+nb}{\PYZcb{}}\PY{n+nb}{\PYZob{}}\PY{k}{\PYZbs{}operatorname}\PY{k}{*}\PY{n+nb}{\PYZob{}}arg\PY{k}{\PYZbs{},}min\PY{n+nb}{\PYZcb{}}\PY{n+nb}{\PYZcb{}} +\PY{k}{\PYZbs{}newcommand}\PY{n+nb}{\PYZob{}}\PY{k}{\PYZbs{}argmax}\PY{n+nb}{\PYZcb{}}\PY{n+nb}{\PYZob{}}\PY{k}{\PYZbs{}operatorname}\PY{k}{*}\PY{n+nb}{\PYZob{}}arg\PY{k}{\PYZbs{},}max\PY{n+nb}{\PYZcb{}}\PY{n+nb}{\PYZcb{}} +\PY{k}{\PYZbs{}newcommand}\PY{n+nb}{\PYZob{}}\PY{k}{\PYZbs{}norm}\PY{n+nb}{\PYZcb{}}[1]\PY{n+nb}{\PYZob{}}\PY{k}{\PYZbs{}lVert} \PY{n+nb}{\PYZob{}}\PYZsh{}1\PY{n+nb}{\PYZcb{}}\PY{k}{\PYZbs{}rVert}\PY{n+nb}{\PYZcb{}} +\PY{k}{\PYZbs{}newcommand}\PY{n+nb}{\PYZob{}}\PY{k}{\PYZbs{}sprod}\PY{n+nb}{\PYZcb{}}[2]\PY{n+nb}{\PYZob{}}\PY{k}{\PYZbs{}left}\PYZlt{}\PY{n+nb}{\PYZob{}}\PYZsh{}1\PY{n+nb}{\PYZcb{}},\PY{n+nb}{\PYZob{}}\PYZsh{}2\PY{n+nb}{\PYZcb{}}\PY{k}{\PYZbs{}right}\PYZgt{}\PY{n+nb}{\PYZcb{}} +\end{Verbatim} diff --git a/gestaltung.tex b/gestaltung.tex index 8748567..4349ccf 100644 --- a/gestaltung.tex +++ b/gestaltung.tex @@ -10,7 +10,7 @@ Bei Abschlussarbeiten können Sie auch Vertiefungsmodule der Arbeitsgruppe als G dass sie nicht wiederholen müssen. Versuchen Sie ihre Arbeit so zu erstellen, dass sie einen \emph{Mehrwert} für diese Zielgruppe -liefert, und für diese \emph{gut verständlich} ist. Der Betreuer hingegen wird in der Regel die +liefert, und für diese \emph{gut verständlich} ist. Die Betreuer*innen hingegen werden in der Regel die Originalquellen kennen oder bevorzugen. Um den Rückgriff auf diese zu vereinfachen, sollten sie wie üblich zitiert sein. @@ -195,7 +195,7 @@ aber unterhalb. Die Verwendung von \texttt{\textbackslash{}label} und \texttt{\t \begin{figure}[bt!h]\centering \includegraphics[width=.8\textwidth]{bilder/schlechte-qualitaet.png} -\caption{Screenshots sehen eigentlich immer schlecht aus, aber gerade Subpixel-Antialiasing (links) führt zu unschönen Farbschlieren.} +\caption{Screenshots sehen eigentlich immer unscharf aus, aber gerade Subpixel-Antialiasing (links) führt zu unschönen Farbschlieren.} \label{fig:screenshots} \end{figure} @@ -206,7 +206,7 @@ Wenn ihr System dabei Subpixel-Antialiasing einsetzt können unerwünschte Farbs \begin{figure}[bt!]\centering \begin{tikzpicture} -\begin{axis}[axis lines=left,xlabel=$x$,ylabel={$f(x)$}] +\begin{axis}[axis lines=left,xlabel=$x$,ylabel={$f(x)$},ymax=1.8] \addplot[domain=-1.3:1.3, samples=100, color=blue, very thick]{x^2}; \addlegendentry{$x^2$} \end{axis} @@ -238,14 +238,14 @@ Den Qualitätsunterschied können Sie in Abbildung~\ref{fig:pyplot} sehen. Matpl % pygmentize -f latex -S friendly > generiert/friendly.tex \input{generiert/friendly.tex} \begin{subfigure}{\textwidth} -% pygmentize code/pyplot1.py -O full -o generiert/pyplot1.tex +% pygmentize code/pyplot1.py -o generiert/pyplot1.tex % alternativ: paket "minted" verwenden \input{generiert/pyplot1.tex}% \caption{Einfacher Python-Plot}% \end{subfigure} \\ \begin{subfigure}{\textwidth} -% pygmentize code/pyplot2.py -O full -o generiert/pyplot2.tex +% pygmentize code/pyplot2.py -o generiert/pyplot2.tex % alternativ: paket "minted" verwenden \input{generiert/pyplot2.tex}% \caption{Verbesserter Python-Plot}% @@ -265,8 +265,13 @@ Daher kann es elegant sein, Code-Fragmente automatisch mit einer klassischen \te zu übersetzen und lediglich bei \texttt{\textbackslash{}input} einzubinden. Das Paket \texttt{listings} scheint hier etwas einfacher zu nutzen zu sein. +Bei \emph{wissenschaftlichen} Arbeiten ist allerdings meist \emph{Pseudocode} zu bevorzugen, eine Abschlussarbeit +soll eben \emph{keine Softwaredokumentation} sein. Während im Bereich Software-Engineering hier das Einbinden von +echtem Code von Interfaces passend sein kann, wird bei algorithmischen Arbeiten sicherlich ein Pseudocode passender +sein, der die algorithmischen Aspekte sichtbarer macht und Implementierungsdetails abstrahiert. + Für Pseudocode sind auch die Pakete \texttt{algorithmicx}, \texttt{algpseudocode} und \texttt{algorithm2e} populär. -Wählen Sie eine Lösung die ihnen optisch und von der Syntax her gefällt. +Wählen Sie eine Lösung die ihnen optisch und von der Syntax gefällt. \section{Formeln} @@ -286,12 +291,18 @@ Text und Funktionsnamen in Formeln können je nach Kontext mit \texttt{\textback (vgl.{} $funktion_1$, $\text{funktion}_1$, $\mathrm{funktion}_1$, $\operatorname{funktion}_1$ -- der Unterschied zwischen den letzten drei hängt von den eingestellten Schriften sowie dem Kontext ab). Für häufige Notation bietet es sich dabei an, eigene Makros zu definieren: -\begin{verbatim} -\newcommand{\argmin}{\operatorname*{arg\,min}} -\newcommand{\argmax}{\operatorname*{arg\,max}} -\newcommand{\norm}[1]{\lVert {#1}\rVert} -\newcommand{\sprod}[2]{\left<{#1},{#2}\right>} -\end{verbatim} +%\begin{verbatim} +%\newcommand{\argmin}{\operatorname*{arg\,min}} +%\newcommand{\argmax}{\operatorname*{arg\,max}} +%\newcommand{\norm}[1]{\lVert {#1}\rVert} +%\newcommand{\sprod}[2]{\left<{#1},{#2}\right>} +%\end{verbatim} +\bgroup +% Eigentlich an Dokumentanfang, hier nur im Beispiel inline +% pygmentize -f latex -S friendly > generiert/friendly.tex +\input{generiert/friendly.tex} +\input{generiert/macros.tex}% +\egroup um bequemer folgendes Ergebnis zu erhalten: \begin{align*} \operatorname*{arg\,min}_x \, \lVert {x} \rVert