texlive[75966] Master: fhj-script (4aug25)

commits+karl at tug.org commits+karl at tug.org
Mon Aug 4 21:42:04 CEST 2025


Revision: 75966
          https://tug.org/svn/texlive?view=revision&revision=75966
Author:   karl
Date:     2025-08-04 21:42:04 +0200 (Mon, 04 Aug 2025)
Log Message:
-----------
fhj-script (4aug25)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/libexec/ctan2tds
    trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/fhj-script/
    trunk/Master/texmf-dist/doc/latex/fhj-script/README.md
    trunk/Master/texmf-dist/doc/latex/fhj-script/fhjDATLogo.img.pdf
    trunk/Master/texmf-dist/doc/latex/fhj-script/fhjIITLogo.img.pdf
    trunk/Master/texmf-dist/doc/latex/fhj-script/fhjbook.pdf
    trunk/Master/texmf-dist/doc/latex/fhj-script/fhjcommon.pdf
    trunk/Master/texmf-dist/doc/latex/fhj-script/fhjpaper.pdf
    trunk/Master/texmf-dist/source/latex/fhj-script/
    trunk/Master/texmf-dist/source/latex/fhj-script/fhj-script.ins
    trunk/Master/texmf-dist/source/latex/fhj-script/fhjbook.dtx
    trunk/Master/texmf-dist/source/latex/fhj-script/fhjcommon.dtx
    trunk/Master/texmf-dist/source/latex/fhj-script/fhjpaper.dtx
    trunk/Master/texmf-dist/tex/latex/fhj-script/
    trunk/Master/texmf-dist/tex/latex/fhj-script/fhjbook.cls
    trunk/Master/texmf-dist/tex/latex/fhj-script/fhjcommon.sty
    trunk/Master/texmf-dist/tex/latex/fhj-script/fhjpaper.cls
    trunk/Master/tlpkg/tlpsrc/fhj-script.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/fhj-script/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fhj-script/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/fhj-script/README.md	2025-08-04 19:42:04 UTC (rev 75966)
@@ -0,0 +1,54 @@
+# FHJ-Script 2025-08-04 v4.0b
+
+Copyright [Michael Hammer](mailto:michael.hammer at fh-joanneum.at) 2025
+
+This material is subject to the LaTeX Project Public License, either version 1.3 of this
+license or (at your option) any later version. See
+[`lppl.txt`](https://ctan.org/pkg/README.md/lppl.txt) for the details of that license.
+
+This bundle was created and is currently maintained by Michael E. Hammer
+<michael.hammer at fh-joanneum.at>.
+
+## Abstract
+
+This is a collection of classes and packages for the university of applied sciences (FH
+JOANNEUM, Graz AUSTRIA). It is used by the institute for applied informatics. Mainly for
+creation of the master thesis and expose. It could be also the base for other academic
+work related to the study programs. We are building on top of
+[koma-script](http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-de.pdf)
+classes and packages.
+
+## Content
+
+It contains the following classes:
+
+- `fhjpaper`: Writing shorter two column papers (like to expose)
+- `fhjbook`: Mainly used for writing the master thesis
+
+In addition there are the following packages available:
+
+- `fhjcommon`: A common collection of macros and definitions which are either used in
+  the classes above or for any other LaTeX document.
+
+## Installation
+
+The bundle is using [l3build] for build and publishing of the bundle
+
+## Links
+
+For anyone who is willing to contribute here the collection of the most important
+documentation used for creating this bundle
+
+- [l3build]
+- [Tutorial](https://mirrors.ctan.org/info/dtxtut/dtxtut.pdf) on writing .dtx and .ins
+  files
+- [Documentation of LaTeX class and package
+  writing](https://mirrors.ctan.org/macros/latex/base/clsguide.pdf)
+
+## Acknowledgements
+
+Parts of this work are inspired by [APA7] -- especially the
+handling of authors and affiliations contains code fragments from [APA7].
+
+[l3build]: https://mirrors.ctan.org/macros/latex/contrib/l3build/l3build.pdf
+[APA7]: https://ctan.org/pkg/apa7


Property changes on: trunk/Master/texmf-dist/doc/latex/fhj-script/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjDATLogo.img.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjDATLogo.img.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fhj-script/fhjDATLogo.img.pdf	2025-08-03 23:41:49 UTC (rev 75965)
+++ trunk/Master/texmf-dist/doc/latex/fhj-script/fhjDATLogo.img.pdf	2025-08-04 19:42:04 UTC (rev 75966)

Property changes on: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjDATLogo.img.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjIITLogo.img.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjIITLogo.img.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fhj-script/fhjIITLogo.img.pdf	2025-08-03 23:41:49 UTC (rev 75965)
+++ trunk/Master/texmf-dist/doc/latex/fhj-script/fhjIITLogo.img.pdf	2025-08-04 19:42:04 UTC (rev 75966)

Property changes on: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjIITLogo.img.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjbook.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjbook.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fhj-script/fhjbook.pdf	2025-08-03 23:41:49 UTC (rev 75965)
+++ trunk/Master/texmf-dist/doc/latex/fhj-script/fhjbook.pdf	2025-08-04 19:42:04 UTC (rev 75966)

Property changes on: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjbook.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjcommon.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjcommon.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fhj-script/fhjcommon.pdf	2025-08-03 23:41:49 UTC (rev 75965)
+++ trunk/Master/texmf-dist/doc/latex/fhj-script/fhjcommon.pdf	2025-08-04 19:42:04 UTC (rev 75966)

Property changes on: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjcommon.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjpaper.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjpaper.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fhj-script/fhjpaper.pdf	2025-08-03 23:41:49 UTC (rev 75965)
+++ trunk/Master/texmf-dist/doc/latex/fhj-script/fhjpaper.pdf	2025-08-04 19:42:04 UTC (rev 75966)

Property changes on: trunk/Master/texmf-dist/doc/latex/fhj-script/fhjpaper.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/fhj-script/fhj-script.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/fhj-script/fhj-script.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/fhj-script/fhj-script.ins	2025-08-04 19:42:04 UTC (rev 75966)
@@ -0,0 +1,50 @@
+%% Copyright 2025 Michael E. Hammer
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Michael E. Hammer.
+%%
+%% This file is part of the "fhj-script bundle" and all files in that
+%% bundle must be distributed together.
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/fhj-script}
+
+\askforoverwritefalse
+
+\preamble
+
+Copyright 2025 Michael E. Hammer
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+  http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+ 
+The Current Maintainer of this work is Michael E. Hammer.
+
+This file is part of the "fhj-script bundle" and all files in that
+bundle must be distributed together.
+
+\endpreamble
+
+\generate{\file{fhjcommon.sty}{\from{fhjcommon.dtx}{package}}}
+\generate{\file{fhjpaper.cls}{\from{fhjpaper.dtx}{class}}}
+\generate{\file{fhjbook.cls}{\from{fhjbook.dtx}{class}}}
+
+\endbatchfile
\ No newline at end of file

Added: trunk/Master/texmf-dist/source/latex/fhj-script/fhjbook.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fhj-script/fhjbook.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/fhj-script/fhjbook.dtx	2025-08-04 19:42:04 UTC (rev 75966)
@@ -0,0 +1,497 @@
+% \iffalse meta-comment
+%
+% Copyright 2025 Michael E. Hammer
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Michael E. Hammer.
+%
+% This file is part of the "fhj-script bundle" and all files in that
+% bundle must be distributed together.
+%
+% \fi
+% \iffalse
+%<*driver>
+\ProvidesFile{fhjbook.dtx}
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}[2023-11-01]
+%<class>\ProvidesClass{fhjbook}
+%<*class>
+    [2025-08-04 v4.0b A class for formatting books/thesis in the FHJ style]
+%</class>
+%
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+\usepackage{fhjcommon}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\OnlyDescription % We only want the description
+\begin{document}
+    \DocInput{fhjbook.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{fhjbook.dtx}
+%
+% \changes{v4.0}{2025/08/03}{Initial package version}
+%
+% \title{The \textsf{fhjbook} class\thanks{This document
+% corresponds to \textsf{fhjbook}~\fileversion,
+% dated \filedate.}}
+% \author{Michael E. Hammer \\ \texttt{michael.hammer at fh-joanneum.at}}
+%
+% \maketitle
+% 
+% \begin{abstract}
+% This class is intended to be used for formatting books and thesis in the FHJ style.
+% It is based on the \textsf{scrbook} class and provides a set of
+% macros and commands to simplify the formatting of thesis and books.
+% \end{abstract}
+%
+% \tableofcontents
+% 
+% \section{Configuration and styling}
+%
+% It is important to note that this class is based on the \textsf{scrbook} class and we 
+% support forwarding options to it.
+%
+%    \begin{macrocode}
+\newcommand{\@ClassName}{fhjbook}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrbook}}
+\ProcessOptions\relax
+%    \end{macrocode}
+%
+% We load the \textsf{scrbook} class with the following options:
+%
+% \begin{itemize}
+%     \item \texttt{a4paper}: We want to use A4 paper size
+%     \item \texttt{DIV=14}: The DIV parameter should be set to 14 to ensure a good
+%           balance between text width and height
+%     \item \texttt{BCOR=10mm}: The binding correction should be set to 10mm to ensure
+%           proper binding of the printed document
+% \end{itemize}
+% 
+% \textit{Remark}: Feel free to switch to \verb|twoside| which we clearly recommend!
+%    
+%    \begin{macrocode}
+\LoadClass[a4paper,DIV=14,BCOR=10mm]{scrbook}
+%    \end{macrocode}
+%
+% For styling of the document headers we rely on the predefined stylings from 
+% KOMA-Script.
+% 
+%    \begin{macrocode}
+\pagestyle{headings}
+%    \end{macrocode}
+%  
+% \subsection{Used packages}
+% 
+% For the styling of the document we use the following packages and therefore they are 
+% preloaded and you might not load them again in your document:
+% 
+%    \begin{macrocode}
+\RequirePackage{fhjcommon}
+\PassOptionsToPackage{hidelinks}{hyperref}
+\RequirePackage{hyperref}
+\RequirePackage{array}
+\RequirePackage{supertabular}
+\RequirePackage{xstring}
+%    \end{macrocode}
+% 
+% \section{Preamble}
+% 
+% For using the class you need to define a few macros (preferably in your preamble).
+% 
+% \subsection{Multlilingual support}
+% 
+% This class supports multilingual documents and therefore we recommend to load the 
+% \texttt{babel} package and set one of two supported languages -- either \texttt{ngerman} 
+% or \texttt{english}. A possible boilerplate for the preamble could look like this:
+% 
+% \begin{quote}
+%   |\newcommand{\mylanguage}|\marg{language}\\
+%   |\usepackage[T1]{fontenc}|\\
+%   |\usepackage[\mylanguage]{babel}|\\
+%   |\selectlanguage{\mylanguage}|
+% \end{quote}
+% 
+% The definition of the macro \cs{mylanguage} is optional, but it has the advantage that
+% you might want to use it in other packages as well.
+% 
+% \subsection{Title page}
+%
+% To have the correct icon and name for the study program typeset on the title page, you
+% need to define it with the macro from \texttt{fhjcommon} package (see the according 
+% documentation):
+% 
+% \begin{quote}
+%  |\FHJProgram{DAT}|
+% \end{quote}
+%
+% \DescribeMacro{\title}
+% This command defines the title of your master thesis and is placed on the title page
+% on the according position. It is supported to use line breaks in the title, so you can
+% have up to three lines in the title.
+% 
+% \DescribeMacro{\subtitle}
+% This command defines the subtitle of your master thesis and is placed on the title 
+% page on the according position. The subtitle is optional and it is expected to be a 
+% single line.
+%
+% \DescribeMacro{\author} \DescribeMacro{\authorinfo}
+% On the title page it is mandatory to define the author of the thesis. The command
+% \cs{author} is used for this purpose and must be followed by the author's name in the
+% following format -- make sure to use first name first and the last name second in all
+% capital letters:
+% 
+% \begin{quote}
+%  |\author{Lisa MUSTERFRAU}|
+% \end{quote}
+%
+% Besides the name of the author, you need to provide some additional information with
+% the macro \cs{authorinfo}\marg{gender}\marg{mat-nr}\marg{year} which may look as 
+% follows:
+%
+% \begin{quote}
+%  |\authorinfo{f}{0130508}{2024}|
+% \end{quote}
+%
+% Currently we support the following values for the gender -- \texttt{m}, \texttt{f} and 
+% \texttt{o} (for other). The matrikel number is the student's ID number and the year 
+% is the cohort of the student.
+% 
+% \DescribeMacro{\supervisor}
+% Finally it is mandatory to define the supervisor of the thesis with the help of 
+% \cs{supervisor}\marg{name}\marg{gender} macro:
+%
+% \begin{quote}
+%   |\supervisor{MMMMag. DDr. Wolfgang GRANIGG}{m}|
+% \end{quote}
+%
+% \DescribeMacro{\cosupervisor}
+% It may be the case that you have a second supervisor, which is optional and can be 
+% defined with the help of \cs{cosupervisor}\marg{name}\marg{gender} macro in the same
+% way as for \cs{supervisor}.
+% 
+% \DescribeMacro{\date}
+% The date of submission is defined with the \cs{date} macro and it is expected to be
+% a single line in the following format:
+%
+% \begin{quote}
+%   |\date{YYYY-MM-DD}|
+% \end{quote}
+%
+% \subsection{Abstract and keywords}
+% 
+% All master thesis must contain an abstract in both German and English. The abstract
+% should provide a brief summary of the research question, methodology, and key 
+% findings. To support you in typesetting the abstract, we provide macros for defining
+% the abstract itself and the keywords.
+% 
+% \DescribeMacro{\FHJAbstractDE} \DescribeMacro{\FHJAbstractEN}
+% These macros are used to define the abstract in German and English respectively. Both
+% commands follow the same syntax:
+% 
+% \begin{quote}
+%  |\FHJAbstractDE|\marg{abstract text}\marg{keyword1,keyword2,$\dots$}\\
+%  |\FHJAbstractEN|\marg{abstract text}\marg{keyword1,keyword2,$\dots$}
+% \end{quote}
+% 
+% \textbf{Note:} The keywords are expected to be a comma-separated list of keywords
+% whithout spaces before or after the commas. Do not forget to define the abstract and 
+% keywords in both languages!
+%
+% \section{Thesis document}
+% 
+% \subsection{Front matter}
+% 
+% If you have defined all necessary macros in the preamble, you can start with the
+% document itself. In most cases you will want to use the following boilerplate at the
+% beginning:
+% 
+% \begin{quote}
+% |\begin{document}|\\
+% \hspace*{2em}|\frontmatter|\\
+% \hspace*{2em}|\FHJThesisFrontMatter|\\
+% \hspace*{2em}|\tableofcontents|\\
+% \hspace*{2em}|\listoftables|\\
+% \hspace*{2em}|\listoffigures|\\
+% \hspace*{2em}|\mainmatter|\\
+% \hspace*{2em}$\dots$\\
+% |\end{document}|
+% \end{quote}
+% 
+% The macros \cs{frontmatter}, \cs{mainmatter} are special macros from KOMA-Script which
+% seperate the front matter from the main content of the thesis -- one consequence for 
+% example is roman numbering of the pages in the front matter and arabic numbering in 
+% the main matter.
+% 
+% \DescribeMacro{\FHJThesisFrontMatter}
+% The macro \cs{FHJThesisFrontMatter} is used to typeset the front matter of the thesis.
+% It will take care of all
+% necessary formatting for you (for title page, abstract and declarations). 
+% Nevertheless, we also export the individual macros for the title page, abstract and
+% declarations.
+%
+% \DescribeMacro{\FHJMakeTitlePage}
+% The macro \cs{FHJMakeTitlePage} is used to typeset the title page of the thesis. 
+% It is expected to be
+% called in the document body and will take care of all necessary formatting for you. 
+% It generates an empty page and should be the first page of the document.
+% 
+% \DescribeMacro{\FHJMakeDeclaration}
+% The macro \cs{FHJDeclaration} is used to typeset the declaration page of the thesis.
+% It is actually contained in package \texttt{fhjcommon}.
+% 
+% \DescribeMacro{\FHJMakeAbstract}
+% The macro \cs{FHJMakeAbstract} is used to typeset the abstract of the thesis including
+% keywords in both languages.
+%
+% \subsection{Appendix}
+%
+% The appendix is a section at the end of the thesis where you can include additional
+% material that is not essential to the main text but may be helpful for the reader. 
+% This can include supplementary data, detailed explanations of methods or source code,
+% or other relevant information.
+% 
+% We at least recommend to include the list of abbreviations.
+% 
+% \begin{quote}
+% |\appendix|\\
+% |\chapter{Appendix}|\\
+% |\section{Source Code}|\\
+% $\cdots$\\
+% |\section{|$\cdots$|}|\\
+% $\cdots$\\
+% |% Will create its own section in the table of contents|\\
+% |\printacronyms[template=supertabular,heading=section]|\\
+% \end{quote}
+% 
+% \subsection{Bibliography}
+% 
+% The bibliography is an essential part of any thesis, as it provides a list of all the
+% sources that were cited or consulted during the research process. It is important to
+% follow a consistent citation style throughout the thesis and to include all necessary
+% information for each source (see \verb|fhj_guide.pdf| for further information on 
+% writing a thesis in {\LaTeX}).
+% 
+% A possible boilerplate for printing the bibliography in the document could look like
+% this (|heading=bibnumbered| ensures that the bibliography is listed and numbered in 
+% the table of contents):
+% 
+% \begin{quote}
+% |\printbibliography[heading=bibnumbered]|
+% \end{quote}
+% 
+% \MaybeStop{\PrintChanges}
+% 
+% \section{Implementation}
+% 
+%    \begin{macrocode}
+\renewcommand*{\title}[1]{\renewcommand*{\@title}{{#1}}}
+\newcommand{\check at title}{%
+  \@ifundefined{@author}{
+    \ClassWarningNoLine{fhjbook}{Author not defined}\author{first SECOND}
+  }{}
+  \@ifundefined{@title}{
+    \ClassWarningNoLine{fhjbook}{Title not defined}\title{Title}
+  }{}
+  \@ifundefined{@supervisor}{
+    \ClassWarningNoLine{fhjbook}{Supervisor not defined}\supervisor{Supervisor}{m}
+  }{}
+}
+\newcommand{\check at abstract}{%
+  \@ifundefined{@abstractDE}{
+    \ClassWarningNoLine{fhjbook}{German ``Kurzfassung'' not defined!}\FHJAbstractDE{Eine Beispielkurzfassung...}{kw1,kw2}
+  }{}
+  \@ifundefined{@abstractEN}{
+    \ClassWarningNoLine{fhjbook}{English abstract not defined!}\def\@abstractDE{An example abstract...}{kw1,kw2}
+  }{}
+}
+% Handhabung von Untertiteln:
+\newif\ifsubtitlepresent\subtitlepresentfalse
+\renewcommand{\subtitle}[1]
+{\subtitlepresenttrue
+  \def\thesissubtitle{#1}}
+
+% Autoren- und Betreuerinformationen:
+\newif\ifauthormale\authormalefalse
+\newif\ifauthorfemale\authorfemalefalse
+\newcommand{\authorinfo}[3]{
+  \if#1m \authormaletrue \fi
+  \if#1f \authorfemaletrue \fi
+  \def\personenkennzahl{#2}
+  \def\jahrgang{#3}
+}
+
+\newif\ifsupervisormale\supervisormalefalse
+\newif\ifsupervisorfemale\supervisorfemalefalse
+\newcommand{\supervisor}[2]{
+  \def\@supervisor{#1}
+  \if#2m \supervisormaletrue \fi
+  \if#2f \supervisorfemaletrue \fi
+}
+
+\newif\ifcosupervisorpresent\cosupervisorpresentfalse
+\newif\ifcosupervisormale\cosupervisormalefalse
+\newif\ifcosupervisorfemale\cosupervisorfemalefalse
+\newcommand{\cosupervisor}[2]{
+  \cosupervisorpresenttrue
+  \def\thesiscosupervisor{#1}
+  \if#2m \cosupervisormaletrue \fi
+  \if#2f \cosupervisorfemaletrue \fi
+}
+
+% Main title page
+\newcommand{\FHJMakeTitlePage}{
+\check at title
+\thispagestyle{empty}
+\begin{center}
+
+  \IfStrEqCase{\FHJProgramShort}{
+  {DAT}{%
+    \includegraphics[width=70mm]{fhjDATLogo.img.pdf}
+  }{IMS}{%
+    \includegraphics[width=70mm]{fhjIITLogo.img.pdf}
+  }
+}\\[10mm]
+
+% Masterarbeit, Titel, Untertitel
+\iflanguage{ngerman}{\textbf{MASTERARBEIT}}{}
+\iflanguage{english}{\textbf{MASTER'S THESIS}}{}
+\\[10mm]
+
+\begin{minipage}{\textwidth}\begin{center}
+  \fontsize{16}{20}\selectfont
+  \textbf{\@title}
+\end{center}\end{minipage}\\[5mm]
+
+\ifsubtitlepresent
+  {\large\thesissubtitle}\\[10mm]
+\else
+  \vspace*{15mm}
+\fi
+
+\iflanguage{ngerman}{
+  {\footnotesize
+  Eingereicht bei
+  }\\[2mm]
+  \FHJ\\
+  Masterstudiengang\\
+  ``\FHJProgramLong''
+}{}
+\iflanguage{english}{
+  { \footnotesize
+  Submitted at
+  }\\[2mm]
+  \FHJ\\
+  Master's Degree Programme\\
+  ``\FHJProgramLong''
+}{}
+\vspace*{10mm}
+
+{ \footnotesize
+\iflanguage{ngerman}{\ifauthormale Autor \else \ifauthorfemale Autorin \else Autor:in \fi \fi}{}
+\iflanguage{english}{Author}{}\\[2mm]
+}
+\@author\\
+\personenkennzahl\\
+\iflanguage{english}{Cohort}{}\iflanguage{ngerman}{Jahrgang}{} \FHJProgramShort\ \jahrgang\\[10mm]
+
+{\footnotesize
+\iflanguage{ngerman}{\ifsupervisormale Betreuer \else \ifsupervisorfemale Betreuerin \else Betreuer:in \fi \fi}{}
+\iflanguage{english}{Supervisor}{}\\[2mm]
+}
+\@supervisor\\[10mm]
+
+\ifcosupervisorpresent
+  {\footnotesize
+  \iflanguage{ngerman}{\ifcosupervisormale Zweiter Betreuer \else \ifcosupervisorfemale Zweite Betreuerin \else Zweite:r Betreuer:in \fi \fi}{}
+  \iflanguage{english}{Second Supervisor}{}\\[2mm]
+  }
+  \thesiscosupervisor
+\fi
+
+\end{center}
+
+\vfill
+
+Graz, \@date \hfill   
+\iflanguage{ngerman}{Unterschrift}{}
+\iflanguage{english}{Signature}{}
+\par\vspace*{1cm}
+}
+
+\newcommand{\FHJAbstractDE}[2]{%
+  \newcommand{\@abstractDE}{#1}
+  \newcommand*{\@keywordsDE}{#2}
+}
+
+\newcommand{\FHJAbstractEN}[2]{%
+  \newcommand{\@abstractEN}{#1}
+  \newcommand*{\@keywordsEN}{#2}
+}
+
+\newcommand*{\@lastkeyword}{}%
+\newcommand*{\@kwseparator}{\space$\vert$\space}%
+\newcommand{\@printkeyword}[1]{%
+  \expandafter\ifblank\expandafter{\@lastkeyword}{}%
+    {\@kwseparator}%
+  {#1}%
+  \renewcommand*{\@lastkeyword}{#1}%
+}
+
+\newcommand{\@printkeywords}[1]{%
+\renewcommand*{\@lastkeyword}{}%
+  \textit{Schlüsselwörter: }%
+  \expandafter\forcsvlist\expandafter\@printkeyword\expandafter{#1}%
+}
+
+\newcommand{\FHJMakeAbstract}{%
+\check at abstract
+\cleardoublepage
+\begingroup % to make sure we change parindent only in this group
+  \setlength{\parindent}{0pt}
+  \textbf{\Large Kurzfassung:}\\[5mm]
+  \@abstractDE
+  \vfill
+  \@printkeywords{\@keywordsDE}
+  \clearpage
+  \textbf{\Large Abstract:}\\[5mm]
+  \@abstractEN
+  \vfill
+  \@printkeywords{\@keywordsEN}
+\endgroup
+\cleardoublepage
+}
+
+%% Compile all title pages together
+\newcommand{\FHJThesisFrontMatter}{%
+% Main title page
+\FHJMakeTitlePage%
+% Declaration
+\FHJMakeDeclaration%
+% Abstract
+\FHJMakeAbstract%
+}
+%    \end{macrocode}
+% 
+% \Finale
+% 
+% \section{Acknowledgements}
+% 
+% The original work for creating a base class for the study program ``\FHJDATLong'' was
+% done by \textbf{Klaus Lichtenegger}. All appreciation goes to him for creating the
+% first version of this class.
+%  
+\endinput


Property changes on: trunk/Master/texmf-dist/source/latex/fhj-script/fhjbook.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/fhj-script/fhjcommon.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fhj-script/fhjcommon.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/fhj-script/fhjcommon.dtx	2025-08-04 19:42:04 UTC (rev 75966)
@@ -0,0 +1,288 @@
+% \iffalse meta-comment
+%
+% Copyright 2025 Michael E. Hammer
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Michael E. Hammer.
+%
+% This file is part of the "fhj-script bundle" and all files in that
+% bundle must be distributed together.
+%
+% \fi
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}[2023-11-01]
+%<package>\ProvidesPackage{fhjcommon}
+%<package>[2025-08-04 v4.0b Common macros for the FHJ bundle]
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{fhjcommon}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\OnlyDescription % We only want the description
+\begin{document}
+    \DocInput{fhjcommon.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{fhjcommon.sty}
+% 
+% \changes{v4.0}{2025/08/03}{Initial package version}
+%
+% \title{The \textsf{fhjcommon} package\thanks{This document corresponds to 
+%       \textsf{fhjcommon}~\fileversion, dated \filedate.}}
+% \author{Michael E. Hammer \\ \texttt{michael.hammer at fh-joanneum.at}}
+%
+% \maketitle
+% 
+% \begin{abstract}
+% Collection of common macros for the FHJ bundle independent of a chosen
+% document class.
+% \end{abstract}
+% 
+% \tableofcontents
+% 
+% \section{Naming definitions}
+% 
+% \DescribeMacro{\FHJ}
+% One goal of this package is to provide common naming definitions which can and should 
+% be used in all documents which are created in the context of \textit{\FHJ}. This 
+% includes the naming of the university (\cs{FHJ}), the study programs and their long 
+% and short names.
+% 
+% \subsection{Study program specifics}
+%
+% \DescribeMacro{\FHJProgram}
+% It is assumed that the documents which are generated are created in the context of
+% a given study program \textit{\FHJDATLong{}} or \textit{\FHJIMSLong}. To set the 
+% study program for the given document us the macro as following:
+% 
+% \begin{quote}
+%   \cs{FHJProgram}\marg{program-stem}
+% \end{quote}
+% 
+% We currently support \texttt{DAT} and \texttt{IMS} for \marg{program-stem}.
+% \DescribeMacro{\FHJProgramLong} and \DescribeMacro{\FHJProgramShort}
+% After setting the study program you can use macros which refer to \cs{FHJProgramLong} 
+% and \cs{FHJProgramShort} to get the long and short name of the study program.
+% 
+% \DescribeMacro{\FHJDATLong} \DescribeMacro{\FHJDATShort} 
+% \DescribeMacro{\FHJIMSLong} \DescribeMacro{\FHJIMSShort}
+% For convenience, the macros \cs{FHJDATLong}, \cs{FHJDATShort}, \cs{FHJIMSLong} and
+% \cs{FHJIMSShort} are provided as direct shortcuts if you ever need to name a study 
+% program or its abbreviation which does not belong to the current document.
+%
+% \section{Legal declarations}
+%
+% Further important macros are the legal declarations which are required to be included
+% in the master thesis. These declarations ensure compliance with the legal requirements
+% of \FHJ. 
+% 
+% \DescribeMacro{\FHJMakeDeclaration}
+% Normally these declarations should be placed on a single page -- therefore we run a 
+% \cs{cleardoublepage} before and after the declaration. The macro \cs{FHJDeclaration} 
+% is also taking care of the language and will automatically switch to the
+% appropriate language based on the current language setting of the document. We 
+% currently support \textit{ngerman} and \textit{english} as languages.
+% \DescribeMacro{\FHJDeclarationDE} \DescribeMacro{\FHJDeclarationEN}
+% The declaration text itself is defined in both German and English and could be typeset 
+% with \cs{FHJDeclarationDE} or \cs{FHJDeclarationEN} respectively without any page 
+% clearing.
+%
+% \MaybeStop{\PrintChanges}
+% 
+% \section{Implementation}
+% 
+%    \begin{macrocode}
+%<*package>
+\newcommand{\PackageName}{fhjcommon}
+\RequirePackage{xstring}
+\newcommand{\FHJ}{FH JOANNEUM}
+\newcommand{\FHJInstitute}{IT+}
+\newcommand{\FHJDATLong}{Data Science and Artificial Intelligence}
+\newcommand{\FHJDATShort}{DAT}
+\newcommand{\FHJIMSLong}{IT and Mobile Security}
+\newcommand{\FHJIMSShort}{IMS}
+\newcommand{\FHJProgram}[1]{
+    \IfStrEqCase{#1}{
+      {DAT}{%
+        \newcommand{\FHJProgramLong}{\FHJDATLong}
+        \newcommand{\FHJProgramShort}{\FHJDATShort}
+      }{IMS}{%
+        \newcommand{\FHJProgramLong}{\FHJIMSLong}
+        \newcommand{\FHJProgramShort}{\FHJIMSShort}
+      }{ITP}{%
+        \newcommand{\FHJProgramLong}{Institute for Information Technology+}
+        \newcommand{\FHJProgramShort}{\FHJInstitute}
+      }
+    }[\PackageError{\PackageName}{Unknown study program option: #1}{}]
+}
+\newcommand{\FHJDeclarationDE}{
+\noindent
+\underline{\textbf{Eidesstattliche Erklärung:}}\\
+
+Ich erkläre hiermit an Eides statt, 
+
+\begin{itemize}
+    \item dass ich die vorliegende Bachelorarbeit/Masterarbeit selbstständig angefertigt
+    und die mit ihr verbundenen Tätigkeiten selbst erbracht habe und keine anderen als
+    die angegebenen Quellen und Hilfsmittel benutzt habe;
+    \item dass ich mich bei der Erstellung der Arbeit an die Richtlinie der FH JOANNEUM
+    zur Sicherung Guter Wissenschaftlicher Praxis und zur Vermeidung von Fehlverhalten
+    (kurz Richtlinie GWP) gehalten habe;
+    \item dass ich alle aus gedruckten oder ungedruckten Werken sowie aus dem Internet
+    im Wortlaut oder im wesentlichen Inhalt übernommenen Formulierungen und Konzepte
+    gemäß den Regeln für gutes wissenschaftliches Arbeiten (Richtlinie GWP) zitiert und
+    durch genaue Quellenangaben gekennzeichnet habe;
+    \item dass ich in der Methodendarstellung oder einem Verzeichnis alle verwendeten
+    Hilfsmittel (Assistenzsysteme der Künstlichen Intelligenz wie Chatbots [z.B.
+    ChatGPT], Übersetzungsapplikationen [z.B. DeepL], Paraphrasierapplikationen [z.B.
+    Quill bot]), Bildgeneratorapplikationen [z.B. Dall-E] oder Programmierapplikationen
+    [z.B. Github Copilot] deklariert und ihre Verwendung bei den entsprechenden
+    Textstellen angegeben habe;
+    \item dass die vorliegende Originalarbeit in dieser Form zur Erreichung eines
+    akademischen Grades noch keiner anderen Hochschule vorgelegt worden ist.
+\end{itemize}
+
+Ich wurde darüber aufgeklärt, dass meine Arbeit auf Plagiate und auf
+Drittautor:innenschaft menschlichen (Ghostwriting) oder technischen Ursprungs
+(Assistenzsysteme der künstlichen Intelligenz) überprüft werden kann.\\
+
+Ich bin mir darüber im Klaren, dass eine wahrheitswidrige Erklärung rechtliche Folgen
+wie eine negative Beurteilung meiner Arbeit, die nachträgliche Aberkennung des dadurch
+erlangten Titels und Strafverfolgung nach sich ziehen kann.\\
+
+\vfill
+(Unterschrift) \hfill (Ort, Datum)
+}
+\newcommand{\FHJDeclarationEN}{
+\noindent
+\underline{\textbf{Declaration of Honour:}}\\
+
+I hereby declare under oath,
+
+\begin{itemize}
+    \item that I have independently prepared this Bachelor/Master thesis and have
+    performed all associated tasks myself, using no other sources or aids than those
+    indicated.
+    \item that in preparing the thesis I have adhered to the guidelines of FH JOANNEUM
+    for ensuring good scientific practice and for avoiding misconduct during the
+    preparation of this work,
+    \item that I have properly cited all formulations and concepts taken over from
+    printed, unprinted works as well as from the Internet in wording or in the essential
+    content in accordance with the rules of Good Scientific Practice (guideline GSP) and
+    have marked them by precise references,
+    \item that I have declared in the method presentation or an index all aids used
+    (artificial intelligence assistance systems such as chatbots [e.g., ChatGPT],
+    translation applications [e.g., DeepL], paraphrasing applications [e.g., Quill bot],
+    image generator applications [e.g., Dall-E], or programming applications [e.g.,
+    Github Copilot]) and indicated their usage at the corresponding text passages.
+    \item that this original thesis, in its current form, has not been submitted to any
+    other academic institution for the purpose of obtaining an academic degree
+\end{itemize}
+
+I have been informed that my work may be checked for plagiarism and for third-party
+authorship of human (ghostwriting) or technical origin (artificial intelligence
+assistance systems).\\
+
+I am aware that a false statement may result in legal consequences
+such as a negative assessment of my work, the subsequent revocation of any obtained
+degree, and legal prosecution.\\
+
+\vfill
+(Signature) \hfill (Place, Date)
+}
+\newcommand{\FHJMakeDeclaration}{
+  \cleardoublepage
+  \begingroup % to make sure we change parindent only in this group
+    \setlength{\parindent}{0pt}
+    \iflanguage{ngerman}{\FHJDeclarationDE}{}%
+    \iflanguage{english}{\FHJDeclarationEN}{}
+  \endgroup
+  \cleardoublepage
+}
+
+\newcommand{\FHJExampleFigDE}{
+\begin{figure}[!ht]
+  \centerline{
+    \begin{tikzpicture}
+       \draw[->] (-pi,0) -- (3.3,0) node[anchor=west] {$x$};
+       \draw[->] (0,-1.5) -- (0,1.5) node[anchor=south] {$y$};
+       \draw[gray, thick] (-pi,-1) -- (0,-1); \draw[gray, thick] (0,1) -- (pi,1);
+       \draw[thick,color=BrickRed] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*sin(180*\x/pi)});
+       \draw[thick,color=Purple] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*(sin(180*\x/pi)+(1/3)*sin(180*3*\x/pi))});
+       \draw[thick,color=NavyBlue] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*(sin(180*\x/pi)+(1/3)*sin(180*3*\x/pi))+(1/5)*sin(180*5*\x/pi))});
+       \draw[<-, BrickRed] (pi/2, 1.35) -- +(0, .2) node[anchor=south]{\color{BrickRed}1.};
+       \draw[<-, Purple] (3*pi/4, 1.25) -- +(0, .3) node[anchor=south]{\color{Purple}2.};
+       \draw[<-, NavyBlue] (7*pi/8, 1.25) -- +(0, .3) node[anchor=south]{\color{NavyBlue}3.};
+    \end{tikzpicture}
+  } \medskip
+  \caption{{\color{BrickRed}Erste}, {\color{Purple}zweite} and {\color{NavyBlue}dritte} 
+  Fourier-Näherungen einer Rechtecksschwingung als Beispiel für eine Grafik\label{fig:tikz_fn}}
+\end{figure}
+}
+\newcommand{\FHJExampleFigEN}{
+\begin{figure}[!ht]
+  \centerline{
+    \begin{tikzpicture}
+       \draw[->] (-pi,0) -- (3.3,0) node[anchor=west] {$x$};
+       \draw[->] (0,-1.5) -- (0,1.5) node[anchor=south] {$y$};
+       \draw[gray, thick] (-pi,-1) -- (0,-1); \draw[gray, thick] (0,1) -- (pi,1);
+       \draw[thick, BrickRed] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*sin(180*\x/pi)});
+       \draw[thick, Purple] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*(sin(180*\x/pi)+(1/3)*sin(180*3*\x/pi))});
+       \draw[thick, NavyBlue] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*(sin(180*\x/pi)+(1/3)*sin(180*3*\x/pi))+(1/5)*sin(180*5*\x/pi))});
+       \draw[<-, BrickRed] (pi/2, 1.35) -- +(0, .2) node[anchor=south]{\color{BrickRed}1.};
+       \draw[<-, Purple] (3*pi/4, 1.25) -- +(0, .3) node[anchor=south]{\color{Purple}2.};
+       \draw[<-, NavyBlue] (7*pi/8, 1.25) -- +(0, .3) node[anchor=south]{\color{NavyBlue}3.};
+    \end{tikzpicture}
+  } \medskip
+  \caption{{\color{BrickRed}First}, {\color{Purple}second} and {\color{NavyBlue}third} nontrivial Fourier
+    approximation of a square wave as an example for function plotting\label{fig:tikz_fn}}
+\end{figure}
+}
+\newcommand{\FHJExampleTabDE}{
+  \begin{table}[!ht]
+    \centerline{
+      \begin{tabular}{ll}
+        \textbf{Zahl} & \textbf{Symbol/Wert} \\
+        neutrales Element der Addition & $0$ \\
+        neutrales Element der Multiplication & $1$ \\
+        Euler'sche Zahl & $\mathrm e = 2.71828\,18284\,\ldots$ \\
+        Verhältnis von Kreisumfang zu Durchmesser & $\pi = 3.14159\,26535\,\ldots$ \\
+        imaginäre Einheit & $\mathrm i$ \hspace{5mm}with\hspace{5mm}$\mathrm i^2=-1$
+      \end{tabular}
+    }
+    \caption{Einige bemerkenswerte Zahlen\label{tab:numbers}}
+  \end{table}
+}
+\newcommand{\FHJExampleTabEN}{
+  \begin{table}[!ht]
+    \medskip
+    \centerline{\begin{tabular}{ll}
+      \textbf{number} & \textbf{symbol/value} \\
+      neutral element of addition & $0$ \\
+      neutral element of multiplication & $1$ \\
+      Euler's number, related to growth & $\mathrm e = 2.71828\,18284\,\ldots$ \\
+      ratio of circumference to diameter & $\pi = 3.14159\,26535\,\ldots$ \\
+      imaginary unit & $\mathrm i$ \hspace{5mm}with\hspace{5mm}$\mathrm i^2=-1$
+    \end{tabular}}
+    \caption{Some notable numbers\label{tab:numbers}}
+  \end{table}
+}
+%</package>
+%    \end{macrocode}
+% 
+% \Finale
+% 
+\endinput


Property changes on: trunk/Master/texmf-dist/source/latex/fhj-script/fhjcommon.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/fhj-script/fhjpaper.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fhj-script/fhjpaper.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/fhj-script/fhjpaper.dtx	2025-08-04 19:42:04 UTC (rev 75966)
@@ -0,0 +1,354 @@
+% \iffalse meta-comment
+%
+% Copyright 2025 Michael E. Hammer
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Michael E. Hammer.
+%
+% This file is part of the "fhj-script bundle" and all files in that
+% bundle must be distributed together.
+%
+% \fi
+% \iffalse
+%<*driver>
+\ProvidesFile{fhjpaper.dtx}
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}[2023-11-01]
+%<class>\ProvidesClass{fhjpaper}
+%<*class>
+    [2025-08-04 v4.0b A class for formatting papers in the FHJ style]
+%</class>
+%
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\OnlyDescription % We only want the description
+\begin{document}
+    \DocInput{fhjpaper.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{fhjpaper.dtx}
+%
+% \changes{v4.0}{2025/08/03}{Initial package version}
+%
+% \title{The \textsf{fhjpaper} class\thanks{This document
+% corresponds to \textsf{fhjpaper}~\fileversion,
+% dated \filedate.}}
+% \author{Michael E. Hammer \\ \texttt{michael.hammer at fh-joanneum.at}}
+%
+% \maketitle
+% 
+% \begin{abstract}
+% This class is used to format papers in the FH Joanneum style.
+% It is based on the \textsf{scrartcl} class and provides a set of
+% commands to define the title, author, and other information.
+% It is mainly used to create the expose for a master thesis.
+% \end{abstract}
+%
+% \tableofcontents
+% 
+% \section{Configuration and styling}
+% 
+% This class is based on the \textsf{scrartcl} class and we support forwarding 
+% options to the base class (except the hardcoded options from below).
+%
+%    \begin{macrocode}
+\newcommand{\@ClassName}{fhjpaper}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
+\ProcessOptions\relax
+%    \end{macrocode}
+%
+% We load the \textsf{scrartcl} class with the following options:
+%
+% \begin{itemize}
+%     \item \texttt{a4paper}: We want to use A4 paper size
+%     \item \texttt{twocolumn}: The document should be typeset in two columns
+%     \item \texttt{fontsize=9pt}: The font size should be 9pt to increase density for 
+%           shorter papers and abstracts
+%     \item \texttt{DIV=16}: The DIV parameter should be set to 16 to ensure a good
+%           balance between text width and height
+% \end{itemize}
+%    
+%    \begin{macrocode}
+\LoadClass[a4paper,twocolumn,fontsize=9pt,DIV=16]{scrartcl}
+%    \end{macrocode}
+%
+% \subsection{Used packages}
+% 
+% For the styling of the document we use the following packages and therefore they are 
+% preloaded and you might not load them again in your document:
+%
+%    \begin{macrocode}
+\RequirePackage{fhjcommon}
+\RequirePackage{etoolbox}
+\PassOptionsToPackage{pagestyleset=standard}{scrlayer-scrpage}
+\RequirePackage{scrlayer-scrpage}
+\PassOptionsToPackage{hidelinks}{hyperref}
+\RequirePackage{hyperref}
+%    \end{macrocode}
+% 
+% \subsection{Page style}
+% 
+% The footer contains the short title of the document and the header contains the
+% long title of the study program. The section counter is limited to two levels 
+% (|subsection| maximum).
+%
+%    \begin{macrocode}
+\ofoot{\@shorttitle}
+\ifoot{\FHJProgramLong}
+\setcounter{secnumdepth}{2}
+%    \end{macrocode}
+% 
+% \section{Title}
+% 
+% To support in the creation of the title and abstract on the first page we provide a
+% set of macros.To have the correct name for the study program typeset on the document, you
+% need to define it with the macro from \texttt{fhjcommon} package (see the according 
+% documentation):
+% 
+% \begin{quote}
+%  |\FHJProgram{DAT}|
+% \end{quote}
+% 
+% \DescribeMacro{\title}
+% This command defines the title of your document and is placed on top of the first page.
+% on the according position. It is supported to use line breaks in the title, so you can
+% have multiple lines but we clearly recommend to limit it to three lines maximum.
+%
+% \DescribeMacro{\shorttitle}
+% This command defines the short title of your document which is used in the footer. 
+% This supports the reader if multiple documents are printed together in a single
+% collection.
+% 
+% \subsection{Authors and Affiliations}
+%  
+% This code is based on APA 7th edition style guide without including the deprecated 
+% commands. \par
+% 
+% \begin{itemize}
+% \item \DescribeMacro{\authorsnames}|\authorsnames|
+%       \oarg{comma separated list of superscripts}
+%       \marg{comma separated list of authors name(s)}: Authors names
+% \end{itemize}
+%
+% Where \marg{authors names} is a comma separated list of authors in display order
+% and \oarg{superscripts} is an optional comma separated list of affiliation superscripts. 
+% If there are multiple superscripts for one author, put the set of superscripts within |{ }|.
+%
+% \begin{itemize}
+% \item
+%   \DescribeMacro{\authorsaffiliations}|\authorsaffiliations|\marg{comma separated list
+%   of affiliation(s)}: Author affiliation(s). Put each affiliation within |{ }| and 
+%   separate each affiliation with a comma.
+% \end{itemize}
+%
+% \noindent \textbf{Examples:} \par
+% \noindent One author, one affiliation \par
+% |\authorsnames{Maggie C. Leonard}| \par
+% |\authorsaffiliations{{Department of Psychology,%| \par
+% \hspace*{2em}|George Mason University}}| \par
+% \noindent One author, two affiliations \par
+% |\authorsnames{Andrew K. Jones-Willoughby}| \par
+% |\authorsaffiliations{{School of Psychology,%| \par
+% \hspace*{2em}|University of Sydney},| \par
+% \hspace*{2em}|{Center for Behavioral Neuroscience, American University}}| \par
+% \noindent Two authors, shared affiliation \par
+% |\authorsnames{Mackenzie J. Clement,Talia R. Cummings}| \par
+% |\authorsaffiliations{{College of Nursing,%| \par
+% \hspace*{2em}|Michigan State University}}| \par
+% \noindent Two authors, different affiliations \par
+% |\authorsnames[1,2]{Wilhelm T. Webber,Latasha P. Jackson}| \par
+% |\authorsaffiliations{%| \par
+% \hspace*{2em}|{Max Planck Institute for Human Development, Berlin, Germany},%| \par
+% \hspace*{2em}|{College of Education, University of Georgia}}| \par
+% \noindent Three or more authors, different affiliations \par
+% |\authorsnames[1,{2,3},1]{%| \par
+% \hspace{2em}|Savannah C. St. John,%| \par
+% \hspace{2em}|Fen-Lei Chang,%| \par
+% \hspace{2em}|Carlos O. Vásquez III}| \par
+% |\authorsaffiliations{%| \par
+% \hspace{2em}|{Education Testing Service, Princeton, New Jersey, ...},| \par
+% \hspace{2em}|{MRC Cognition and Brain Science Unit, Cambridge, England},| \par
+% \hspace{2em}|{Department of Psychology, University of Cambridge}}| \par
+%
+% \MaybeStop{\PrintChanges}
+% 
+% \section{Implementation}
+% 
+%    \begin{macrocode}
+\renewcommand*{\title}[1]{\renewcommand*{\@title}{{#1}}}
+\newcommand{\shorttitle}[1]{\newcommand{\@shorttitle}{{#1}}}
+
+%%-------------------------------------------------------------------------------------
+%% authors handling
+%% Taken von apa7 class --> See: https://ctan.org/tex-archive/macros/latex/contrib/apa7
+
+%% German and English!
+\newcommand*{\lastauthorseparator}{UNDEF}
+\iflanguage{english}{\renewcommand*{\lastauthorseparator}{and}}{}
+\iflanguage{ngerman}{\renewcommand*{\lastauthorseparator}{und}}{}
+
+
+\newcommand*\listauthors{}
+\newcommand*\listsuperscripts{}
+\newcommand*\listaffiliations{}
+
+\newcommand*{\authorsnames}[2][]{
+  \def\def at multipleauthors{\@multipleauthorsmode} %
+  \renewcommand*\listauthors{}
+  \renewcommand*\listsuperscripts{}
+  \newcounter{NumberOfAuthors}
+  \newcounter{NumberOfSuperscripts}
+  \forcsvlist{\stepcounter{NumberOfAuthors}\listadd\listauthors}{#2}
+  \forcsvlist{\stepcounter{NumberOfSuperscripts}\listadd\listsuperscripts}{#1}
+  }
+  
+  \newcommand*{\authorsaffiliations}[1]{
+  \def\def at multipleaffils{\@multipleaffilsmode} %
+  \renewcommand*\listaffiliations{}
+  \newcounter{NumberOfAffiliations}
+  \forcsvlist{\stepcounter{NumberOfAffiliations}\listadd\listaffiliations}{#1}
+  }
+
+\makeatletter
+  \catcode`\|=3
+  
+\def\looptwo#1#2{%
+    \edef\tmp{\noexpand\xtwo%
+      \unexpanded\expandafter{#1}\relax  % no added delimiter here
+      \unexpanded\expandafter{#2}\relax  % no added delimiter here
+    } \tmp%
+  }%
+  
+\def\xtwo#1|#2\relax#3|#4\relax{%
+    \dotwo{#1}{#3}%
+    \def\tmp{#2}%
+    \ifx\empty\tmp%
+      \expandafter\@gobble%
+    \else%
+      \expandafter\@firstofone%
+    \fi%
+    {\xtwo#2\relax#4\relax}%
+  }%
+
+  \catcode`\|=12
+\makeatother
+
+\newcommand*{\dotwo}[2]{}
+
+\newcommand*{\authorsep}{}%
+\newcommand*{\lastauthor}{}%
+\newcommand*{\prelastauthor}{}%
+\newcommand*{\prelastauthorsep}{}%
+
+\newcommand{\displayauthors}{%
+  \renewcommand*{\authorsep}{}%
+  \renewcommand*{\lastauthor}{}%
+  \renewcommand*{\prelastauthor}{}%
+  \renewcommand*{\prelastauthorsep}{}%
+  \ifnum\value{NumberOfSuperscripts}=0% If no superscripts are specified, print authors without superscripts.
+	\renewcommand*{\do}[1]{%
+      \authorsep%
+    \lastauthor%
+    \renewcommand{\lastauthor}{%
+      \renewcommand{\authorsep}{, 
+        \renewcommand*{\prelastauthorsep}{,}}%
+      \renewcommand{\prelastauthor}{\prelastauthorsep\ \lastauthorseparator\ }% Terminated commands with \ to preserve following space
+      ##1%
+    }%
+      }%
+    \dolistloop{\listauthors}%
+  \else
+    \renewcommand*{\dotwo}[2]{%
+    \authorsep%
+    \lastauthor%
+    \renewcommand{\lastauthor}{%
+      \renewcommand{\authorsep}{, 
+        \renewcommand*{\prelastauthorsep}{,}}%
+      \renewcommand{\prelastauthor}{\prelastauthorsep\ \lastauthorseparator\ }% Terminated commands with \ to preserve following space
+      ##1\textsuperscript{##2}%
+    }%
+  }%
+  \looptwo\listauthors\listsuperscripts%
+  \fi
+  \prelastauthor \lastauthor%
+}
+
+\newcommand{\displayaffiliations}{%
+  \ifnum\value{NumberOfSuperscripts}=0% If no superscripts are specified, print affiliations without superscripts.
+  \renewcommand*{\do}[1]{%
+      ##1\\%
+  }%
+  \else
+  \newcounter{AffiliationNumber}
+  \renewcommand*{\do}[1]{%
+      \stepcounter{AffiliationNumber}
+      \textsuperscript{\arabic{AffiliationNumber}}##1\\%
+  }%
+  \fi
+  \dolistloop{\listaffiliations}%
+}
+
+\makeatletter
+
+\def\check at author{%
+  \@ifundefined{def at multipleauthors}{%
+    \ClassWarningNoLine{apa7}{Author not defined}\authorsnames{Author}}{}
+  \@ifundefined{@title}{%
+    \ClassWarningNoLine{apa7}{Title not defined}\def\@title{Title}}{}
+  \@ifundefined{def at multipleaffils}{%
+    \ClassWarningNoLine{apa7}{Affiliation not defined}\authorsaffiliations{Affiliation}}{}
+  \@ifundefined{def at multipleauthors}{}{%
+	   \ifnum\value{NumberOfSuperscripts}=0%
+	   	% do nothing. If no superscripts are specified, print authors and affiliations without superscripts.
+	   \else%
+      \ifnum\value{NumberOfAuthors}=\value{NumberOfSuperscripts}%
+        % do nothing
+      \else 
+        \ClassError{apa7}{Number of Authors does not match number of Superscripts}%
+          {Please provide an equal number of authors and superscripts.}%
+		  \fi
+	   \fi
+  }%
+}
+
+%%-------------------------------------------------------------------------------------
+%% Make title
+\renewcommand*{\@maketitle}{
+  \cleardoublepage
+  \check at author
+  % title
+  \begin{minipage}{\textwidth}\begin{center}
+    \fontsize{14}{18}\selectfont
+    \textbf{\@title}
+    \vspace{1em}
+  \end{center}\end{minipage}
+  % authors
+  \begin{minipage}{\textwidth}\begin{center}
+    \displayauthors
+    \vspace{1em}
+  \end{center}\end{minipage}
+  % affiliations
+  \begin{minipage}{\textwidth}\begin{center}
+    \displayaffiliations
+    \vspace{2em}
+  \end{center}\end{minipage}
+}
+%    \end{macrocode}
+% 
+% \Finale
+% 
+\endinput


Property changes on: trunk/Master/texmf-dist/source/latex/fhj-script/fhjpaper.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/fhj-script/fhjbook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fhj-script/fhjbook.cls	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/fhj-script/fhjbook.cls	2025-08-04 19:42:04 UTC (rev 75966)
@@ -0,0 +1,221 @@
+%%
+%% This is file `fhjbook.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fhjbook.dtx  (with options: `class')
+%% 
+%% Copyright 2025 Michael E. Hammer
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Michael E. Hammer.
+%% 
+%% This file is part of the "fhj-script bundle" and all files in that
+%% bundle must be distributed together.
+%% 
+\NeedsTeXFormat{LaTeX2e}[2023-11-01]
+\ProvidesClass{fhjbook}
+    [2025-08-04 v4.0b A class for formatting books/thesis in the FHJ style]
+\newcommand{\@ClassName}{fhjbook}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrbook}}
+\ProcessOptions\relax
+\LoadClass[a4paper,DIV=14,BCOR=10mm]{scrbook}
+\pagestyle{headings}
+\RequirePackage{fhjcommon}
+\PassOptionsToPackage{hidelinks}{hyperref}
+\RequirePackage{hyperref}
+\RequirePackage{array}
+\RequirePackage{supertabular}
+\RequirePackage{xstring}
+\renewcommand*{\title}[1]{\renewcommand*{\@title}{{#1}}}
+\newcommand{\check at title}{%
+  \@ifundefined{@author}{
+    \ClassWarningNoLine{fhjbook}{Author not defined}\author{first SECOND}
+  }{}
+  \@ifundefined{@title}{
+    \ClassWarningNoLine{fhjbook}{Title not defined}\title{Title}
+  }{}
+  \@ifundefined{@supervisor}{
+    \ClassWarningNoLine{fhjbook}{Supervisor not defined}\supervisor{Supervisor}{m}
+  }{}
+}
+\newcommand{\check at abstract}{%
+  \@ifundefined{@abstractDE}{
+    \ClassWarningNoLine{fhjbook}{German ``Kurzfassung'' not defined!}\FHJAbstractDE{Eine Beispielkurzfassung...}{kw1,kw2}
+  }{}
+  \@ifundefined{@abstractEN}{
+    \ClassWarningNoLine{fhjbook}{English abstract not defined!}\def\@abstractDE{An example abstract...}{kw1,kw2}
+  }{}
+}
+\newif\ifsubtitlepresent\subtitlepresentfalse
+\renewcommand{\subtitle}[1]
+{\subtitlepresenttrue
+  \def\thesissubtitle{#1}}
+
+\newif\ifauthormale\authormalefalse
+\newif\ifauthorfemale\authorfemalefalse
+\newcommand{\authorinfo}[3]{
+  \if#1m \authormaletrue \fi
+  \if#1f \authorfemaletrue \fi
+  \def\personenkennzahl{#2}
+  \def\jahrgang{#3}
+}
+
+\newif\ifsupervisormale\supervisormalefalse
+\newif\ifsupervisorfemale\supervisorfemalefalse
+\newcommand{\supervisor}[2]{
+  \def\@supervisor{#1}
+  \if#2m \supervisormaletrue \fi
+  \if#2f \supervisorfemaletrue \fi
+}
+
+\newif\ifcosupervisorpresent\cosupervisorpresentfalse
+\newif\ifcosupervisormale\cosupervisormalefalse
+\newif\ifcosupervisorfemale\cosupervisorfemalefalse
+\newcommand{\cosupervisor}[2]{
+  \cosupervisorpresenttrue
+  \def\thesiscosupervisor{#1}
+  \if#2m \cosupervisormaletrue \fi
+  \if#2f \cosupervisorfemaletrue \fi
+}
+
+\newcommand{\FHJMakeTitlePage}{
+\check at title
+\thispagestyle{empty}
+\begin{center}
+
+  \IfStrEqCase{\FHJProgramShort}{
+  {DAT}{%
+    \includegraphics[width=70mm]{fhjDATLogo.img.pdf}
+  }{IMS}{%
+    \includegraphics[width=70mm]{fhjIITLogo.img.pdf}
+  }
+}\\[10mm]
+
+\iflanguage{ngerman}{\textbf{MASTERARBEIT}}{}
+\iflanguage{english}{\textbf{MASTER'S THESIS}}{}
+\\[10mm]
+
+\begin{minipage}{\textwidth}\begin{center}
+  \fontsize{16}{20}\selectfont
+  \textbf{\@title}
+\end{center}\end{minipage}\\[5mm]
+
+\ifsubtitlepresent
+  {\large\thesissubtitle}\\[10mm]
+\else
+  \vspace*{15mm}
+\fi
+
+\iflanguage{ngerman}{
+  {\footnotesize
+  Eingereicht bei
+  }\\[2mm]
+  \FHJ\\
+  Masterstudiengang\\
+  ``\FHJProgramLong''
+}{}
+\iflanguage{english}{
+  { \footnotesize
+  Submitted at
+  }\\[2mm]
+  \FHJ\\
+  Master's Degree Programme\\
+  ``\FHJProgramLong''
+}{}
+\vspace*{10mm}
+
+{ \footnotesize
+\iflanguage{ngerman}{\ifauthormale Autor \else \ifauthorfemale Autorin \else Autor:in \fi \fi}{}
+\iflanguage{english}{Author}{}\\[2mm]
+}
+\@author\\
+\personenkennzahl\\
+\iflanguage{english}{Cohort}{}\iflanguage{ngerman}{Jahrgang}{} \FHJProgramShort\ \jahrgang\\[10mm]
+
+{\footnotesize
+\iflanguage{ngerman}{\ifsupervisormale Betreuer \else \ifsupervisorfemale Betreuerin \else Betreuer:in \fi \fi}{}
+\iflanguage{english}{Supervisor}{}\\[2mm]
+}
+\@supervisor\\[10mm]
+
+\ifcosupervisorpresent
+  {\footnotesize
+  \iflanguage{ngerman}{\ifcosupervisormale Zweiter Betreuer \else \ifcosupervisorfemale Zweite Betreuerin \else Zweite:r Betreuer:in \fi \fi}{}
+  \iflanguage{english}{Second Supervisor}{}\\[2mm]
+  }
+  \thesiscosupervisor
+\fi
+
+\end{center}
+
+\vfill
+
+Graz, \@date \hfill
+\iflanguage{ngerman}{Unterschrift}{}
+\iflanguage{english}{Signature}{}
+\par\vspace*{1cm}
+}
+
+\newcommand{\FHJAbstractDE}[2]{%
+  \newcommand{\@abstractDE}{#1}
+  \newcommand*{\@keywordsDE}{#2}
+}
+
+\newcommand{\FHJAbstractEN}[2]{%
+  \newcommand{\@abstractEN}{#1}
+  \newcommand*{\@keywordsEN}{#2}
+}
+
+\newcommand*{\@lastkeyword}{}%
+\newcommand*{\@kwseparator}{\space$\vert$\space}%
+\newcommand{\@printkeyword}[1]{%
+  \expandafter\ifblank\expandafter{\@lastkeyword}{}%
+    {\@kwseparator}%
+  {#1}%
+  \renewcommand*{\@lastkeyword}{#1}%
+}
+
+\newcommand{\@printkeywords}[1]{%
+\renewcommand*{\@lastkeyword}{}%
+  \textit{Schlüsselwörter: }%
+  \expandafter\forcsvlist\expandafter\@printkeyword\expandafter{#1}%
+}
+
+\newcommand{\FHJMakeAbstract}{%
+\check at abstract
+\cleardoublepage
+\begingroup % to make sure we change parindent only in this group
+  \setlength{\parindent}{0pt}
+  \textbf{\Large Kurzfassung:}\\[5mm]
+  \@abstractDE
+  \vfill
+  \@printkeywords{\@keywordsDE}
+  \clearpage
+  \textbf{\Large Abstract:}\\[5mm]
+  \@abstractEN
+  \vfill
+  \@printkeywords{\@keywordsEN}
+\endgroup
+\cleardoublepage
+}
+
+%% Compile all title pages together
+\newcommand{\FHJThesisFrontMatter}{%
+\FHJMakeTitlePage%
+\FHJMakeDeclaration%
+\FHJMakeAbstract%
+}
+\endinput
+%%
+%% End of file `fhjbook.cls'.


Property changes on: trunk/Master/texmf-dist/tex/latex/fhj-script/fhjbook.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/fhj-script/fhjcommon.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fhj-script/fhjcommon.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/fhj-script/fhjcommon.sty	2025-08-04 19:42:04 UTC (rev 75966)
@@ -0,0 +1,205 @@
+%%
+%% This is file `fhjcommon.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fhjcommon.dtx  (with options: `package')
+%% 
+%% Copyright 2025 Michael E. Hammer
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Michael E. Hammer.
+%% 
+%% This file is part of the "fhj-script bundle" and all files in that
+%% bundle must be distributed together.
+%% 
+\NeedsTeXFormat{LaTeX2e}[2023-11-01]
+\ProvidesPackage{fhjcommon}
+[2025-08-04 v4.0b Common macros for the FHJ bundle]
+\newcommand{\PackageName}{fhjcommon}
+\RequirePackage{xstring}
+\newcommand{\FHJ}{FH JOANNEUM}
+\newcommand{\FHJInstitute}{IT+}
+\newcommand{\FHJDATLong}{Data Science and Artificial Intelligence}
+\newcommand{\FHJDATShort}{DAT}
+\newcommand{\FHJIMSLong}{IT and Mobile Security}
+\newcommand{\FHJIMSShort}{IMS}
+\newcommand{\FHJProgram}[1]{
+    \IfStrEqCase{#1}{
+      {DAT}{%
+        \newcommand{\FHJProgramLong}{\FHJDATLong}
+        \newcommand{\FHJProgramShort}{\FHJDATShort}
+      }{IMS}{%
+        \newcommand{\FHJProgramLong}{\FHJIMSLong}
+        \newcommand{\FHJProgramShort}{\FHJIMSShort}
+      }{ITP}{%
+        \newcommand{\FHJProgramLong}{Institute for Information Technology+}
+        \newcommand{\FHJProgramShort}{\FHJInstitute}
+      }
+    }[\PackageError{\PackageName}{Unknown study program option: #1}{}]
+}
+\newcommand{\FHJDeclarationDE}{
+\noindent
+\underline{\textbf{Eidesstattliche Erklärung:}}\\
+
+Ich erkläre hiermit an Eides statt,
+
+\begin{itemize}
+    \item dass ich die vorliegende Bachelorarbeit/Masterarbeit selbstständig angefertigt
+    und die mit ihr verbundenen Tätigkeiten selbst erbracht habe und keine anderen als
+    die angegebenen Quellen und Hilfsmittel benutzt habe;
+    \item dass ich mich bei der Erstellung der Arbeit an die Richtlinie der FH JOANNEUM
+    zur Sicherung Guter Wissenschaftlicher Praxis und zur Vermeidung von Fehlverhalten
+    (kurz Richtlinie GWP) gehalten habe;
+    \item dass ich alle aus gedruckten oder ungedruckten Werken sowie aus dem Internet
+    im Wortlaut oder im wesentlichen Inhalt übernommenen Formulierungen und Konzepte
+    gemäß den Regeln für gutes wissenschaftliches Arbeiten (Richtlinie GWP) zitiert und
+    durch genaue Quellenangaben gekennzeichnet habe;
+    \item dass ich in der Methodendarstellung oder einem Verzeichnis alle verwendeten
+    Hilfsmittel (Assistenzsysteme der Künstlichen Intelligenz wie Chatbots [z.B.
+    ChatGPT], Übersetzungsapplikationen [z.B. DeepL], Paraphrasierapplikationen [z.B.
+    Quill bot]), Bildgeneratorapplikationen [z.B. Dall-E] oder Programmierapplikationen
+    [z.B. Github Copilot] deklariert und ihre Verwendung bei den entsprechenden
+    Textstellen angegeben habe;
+    \item dass die vorliegende Originalarbeit in dieser Form zur Erreichung eines
+    akademischen Grades noch keiner anderen Hochschule vorgelegt worden ist.
+\end{itemize}
+
+Ich wurde darüber aufgeklärt, dass meine Arbeit auf Plagiate und auf
+Drittautor:innenschaft menschlichen (Ghostwriting) oder technischen Ursprungs
+(Assistenzsysteme der künstlichen Intelligenz) überprüft werden kann.\\
+
+Ich bin mir darüber im Klaren, dass eine wahrheitswidrige Erklärung rechtliche Folgen
+wie eine negative Beurteilung meiner Arbeit, die nachträgliche Aberkennung des dadurch
+erlangten Titels und Strafverfolgung nach sich ziehen kann.\\
+
+\vfill
+(Unterschrift) \hfill (Ort, Datum)
+}
+\newcommand{\FHJDeclarationEN}{
+\noindent
+\underline{\textbf{Declaration of Honour:}}\\
+
+I hereby declare under oath,
+
+\begin{itemize}
+    \item that I have independently prepared this Bachelor/Master thesis and have
+    performed all associated tasks myself, using no other sources or aids than those
+    indicated.
+    \item that in preparing the thesis I have adhered to the guidelines of FH JOANNEUM
+    for ensuring good scientific practice and for avoiding misconduct during the
+    preparation of this work,
+    \item that I have properly cited all formulations and concepts taken over from
+    printed, unprinted works as well as from the Internet in wording or in the essential
+    content in accordance with the rules of Good Scientific Practice (guideline GSP) and
+    have marked them by precise references,
+    \item that I have declared in the method presentation or an index all aids used
+    (artificial intelligence assistance systems such as chatbots [e.g., ChatGPT],
+    translation applications [e.g., DeepL], paraphrasing applications [e.g., Quill bot],
+    image generator applications [e.g., Dall-E], or programming applications [e.g.,
+    Github Copilot]) and indicated their usage at the corresponding text passages.
+    \item that this original thesis, in its current form, has not been submitted to any
+    other academic institution for the purpose of obtaining an academic degree
+\end{itemize}
+
+I have been informed that my work may be checked for plagiarism and for third-party
+authorship of human (ghostwriting) or technical origin (artificial intelligence
+assistance systems).\\
+
+I am aware that a false statement may result in legal consequences
+such as a negative assessment of my work, the subsequent revocation of any obtained
+degree, and legal prosecution.\\
+
+\vfill
+(Signature) \hfill (Place, Date)
+}
+\newcommand{\FHJMakeDeclaration}{
+  \cleardoublepage
+  \begingroup % to make sure we change parindent only in this group
+    \setlength{\parindent}{0pt}
+    \iflanguage{ngerman}{\FHJDeclarationDE}{}%
+    \iflanguage{english}{\FHJDeclarationEN}{}
+  \endgroup
+  \cleardoublepage
+}
+
+\newcommand{\FHJExampleFigDE}{
+\begin{figure}[!ht]
+  \centerline{
+    \begin{tikzpicture}
+       \draw[->] (-pi,0) -- (3.3,0) node[anchor=west] {$x$};
+       \draw[->] (0,-1.5) -- (0,1.5) node[anchor=south] {$y$};
+       \draw[gray, thick] (-pi,-1) -- (0,-1); \draw[gray, thick] (0,1) -- (pi,1);
+       \draw[thick,color=BrickRed] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*sin(180*\x/pi)});
+       \draw[thick,color=Purple] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*(sin(180*\x/pi)+(1/3)*sin(180*3*\x/pi))});
+       \draw[thick,color=NavyBlue] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*(sin(180*\x/pi)+(1/3)*sin(180*3*\x/pi))+(1/5)*sin(180*5*\x/pi))});
+       \draw[<-, BrickRed] (pi/2, 1.35) -- +(0, .2) node[anchor=south]{\color{BrickRed}1.};
+       \draw[<-, Purple] (3*pi/4, 1.25) -- +(0, .3) node[anchor=south]{\color{Purple}2.};
+       \draw[<-, NavyBlue] (7*pi/8, 1.25) -- +(0, .3) node[anchor=south]{\color{NavyBlue}3.};
+    \end{tikzpicture}
+  } \medskip
+  \caption{{\color{BrickRed}Erste}, {\color{Purple}zweite} and {\color{NavyBlue}dritte}
+  Fourier-Näherungen einer Rechtecksschwingung als Beispiel für eine Grafik\label{fig:tikz_fn}}
+\end{figure}
+}
+\newcommand{\FHJExampleFigEN}{
+\begin{figure}[!ht]
+  \centerline{
+    \begin{tikzpicture}
+       \draw[->] (-pi,0) -- (3.3,0) node[anchor=west] {$x$};
+       \draw[->] (0,-1.5) -- (0,1.5) node[anchor=south] {$y$};
+       \draw[gray, thick] (-pi,-1) -- (0,-1); \draw[gray, thick] (0,1) -- (pi,1);
+       \draw[thick, BrickRed] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*sin(180*\x/pi)});
+       \draw[thick, Purple] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*(sin(180*\x/pi)+(1/3)*sin(180*3*\x/pi))});
+       \draw[thick, NavyBlue] plot[domain=-pi:pi, samples=629] (\x, {(4/pi)*(sin(180*\x/pi)+(1/3)*sin(180*3*\x/pi))+(1/5)*sin(180*5*\x/pi))});
+       \draw[<-, BrickRed] (pi/2, 1.35) -- +(0, .2) node[anchor=south]{\color{BrickRed}1.};
+       \draw[<-, Purple] (3*pi/4, 1.25) -- +(0, .3) node[anchor=south]{\color{Purple}2.};
+       \draw[<-, NavyBlue] (7*pi/8, 1.25) -- +(0, .3) node[anchor=south]{\color{NavyBlue}3.};
+    \end{tikzpicture}
+  } \medskip
+  \caption{{\color{BrickRed}First}, {\color{Purple}second} and {\color{NavyBlue}third} nontrivial Fourier
+    approximation of a square wave as an example for function plotting\label{fig:tikz_fn}}
+\end{figure}
+}
+\newcommand{\FHJExampleTabDE}{
+  \begin{table}[!ht]
+    \centerline{
+      \begin{tabular}{ll}
+        \textbf{Zahl} & \textbf{Symbol/Wert} \\
+        neutrales Element der Addition & $0$ \\
+        neutrales Element der Multiplication & $1$ \\
+        Euler'sche Zahl & $\mathrm e = 2.71828\,18284\,\ldots$ \\
+        Verhältnis von Kreisumfang zu Durchmesser & $\pi = 3.14159\,26535\,\ldots$ \\
+        imaginäre Einheit & $\mathrm i$ \hspace{5mm}with\hspace{5mm}$\mathrm i^2=-1$
+      \end{tabular}
+    }
+    \caption{Einige bemerkenswerte Zahlen\label{tab:numbers}}
+  \end{table}
+}
+\newcommand{\FHJExampleTabEN}{
+  \begin{table}[!ht]
+    \medskip
+    \centerline{\begin{tabular}{ll}
+      \textbf{number} & \textbf{symbol/value} \\
+      neutral element of addition & $0$ \\
+      neutral element of multiplication & $1$ \\
+      Euler's number, related to growth & $\mathrm e = 2.71828\,18284\,\ldots$ \\
+      ratio of circumference to diameter & $\pi = 3.14159\,26535\,\ldots$ \\
+      imaginary unit & $\mathrm i$ \hspace{5mm}with\hspace{5mm}$\mathrm i^2=-1$
+    \end{tabular}}
+    \caption{Some notable numbers\label{tab:numbers}}
+  \end{table}
+}
+\endinput
+%%
+%% End of file `fhjcommon.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/fhj-script/fhjcommon.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/fhj-script/fhjpaper.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fhj-script/fhjpaper.cls	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/fhj-script/fhjpaper.cls	2025-08-04 19:42:04 UTC (rev 75966)
@@ -0,0 +1,201 @@
+%%
+%% This is file `fhjpaper.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fhjpaper.dtx  (with options: `class')
+%% 
+%% Copyright 2025 Michael E. Hammer
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Michael E. Hammer.
+%% 
+%% This file is part of the "fhj-script bundle" and all files in that
+%% bundle must be distributed together.
+%% 
+\NeedsTeXFormat{LaTeX2e}[2023-11-01]
+\ProvidesClass{fhjpaper}
+    [2025-08-04 v4.0b A class for formatting papers in the FHJ style]
+\newcommand{\@ClassName}{fhjpaper}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
+\ProcessOptions\relax
+\LoadClass[a4paper,twocolumn,fontsize=9pt,DIV=16]{scrartcl}
+\RequirePackage{fhjcommon}
+\RequirePackage{etoolbox}
+\PassOptionsToPackage{pagestyleset=standard}{scrlayer-scrpage}
+\RequirePackage{scrlayer-scrpage}
+\PassOptionsToPackage{hidelinks}{hyperref}
+\RequirePackage{hyperref}
+\ofoot{\@shorttitle}
+\ifoot{\FHJProgramLong}
+\setcounter{secnumdepth}{2}
+\renewcommand*{\title}[1]{\renewcommand*{\@title}{{#1}}}
+\newcommand{\shorttitle}[1]{\newcommand{\@shorttitle}{{#1}}}
+
+%%-------------------------------------------------------------------------------------
+%% authors handling
+%% Taken von apa7 class --> See: https://ctan.org/tex-archive/macros/latex/contrib/apa7
+
+%% German and English!
+\newcommand*{\lastauthorseparator}{UNDEF}
+\iflanguage{english}{\renewcommand*{\lastauthorseparator}{and}}{}
+\iflanguage{ngerman}{\renewcommand*{\lastauthorseparator}{und}}{}
+
+\newcommand*\listauthors{}
+\newcommand*\listsuperscripts{}
+\newcommand*\listaffiliations{}
+
+\newcommand*{\authorsnames}[2][]{
+  \def\def at multipleauthors{\@multipleauthorsmode} %
+  \renewcommand*\listauthors{}
+  \renewcommand*\listsuperscripts{}
+  \newcounter{NumberOfAuthors}
+  \newcounter{NumberOfSuperscripts}
+  \forcsvlist{\stepcounter{NumberOfAuthors}\listadd\listauthors}{#2}
+  \forcsvlist{\stepcounter{NumberOfSuperscripts}\listadd\listsuperscripts}{#1}
+  }
+
+  \newcommand*{\authorsaffiliations}[1]{
+  \def\def at multipleaffils{\@multipleaffilsmode} %
+  \renewcommand*\listaffiliations{}
+  \newcounter{NumberOfAffiliations}
+  \forcsvlist{\stepcounter{NumberOfAffiliations}\listadd\listaffiliations}{#1}
+  }
+
+\makeatletter
+  \catcode`\|=3
+
+\def\looptwo#1#2{%
+    \edef\tmp{\noexpand\xtwo%
+      \unexpanded\expandafter{#1}\relax  % no added delimiter here
+      \unexpanded\expandafter{#2}\relax  % no added delimiter here
+    } \tmp%
+  }%
+
+\def\xtwo#1|#2\relax#3|#4\relax{%
+    \dotwo{#1}{#3}%
+    \def\tmp{#2}%
+    \ifx\empty\tmp%
+      \expandafter\@gobble%
+    \else%
+      \expandafter\@firstofone%
+    \fi%
+    {\xtwo#2\relax#4\relax}%
+  }%
+
+  \catcode`\|=12
+\makeatother
+
+\newcommand*{\dotwo}[2]{}
+
+\newcommand*{\authorsep}{}%
+\newcommand*{\lastauthor}{}%
+\newcommand*{\prelastauthor}{}%
+\newcommand*{\prelastauthorsep}{}%
+
+\newcommand{\displayauthors}{%
+  \renewcommand*{\authorsep}{}%
+  \renewcommand*{\lastauthor}{}%
+  \renewcommand*{\prelastauthor}{}%
+  \renewcommand*{\prelastauthorsep}{}%
+  \ifnum\value{NumberOfSuperscripts}=0% If no superscripts are specified, print authors without superscripts.
+\renewcommand*{\do}[1]{%
+      \authorsep%
+    \lastauthor%
+    \renewcommand{\lastauthor}{%
+      \renewcommand{\authorsep}{,
+        \renewcommand*{\prelastauthorsep}{,}}%
+      \renewcommand{\prelastauthor}{\prelastauthorsep\ \lastauthorseparator\ }% Terminated commands with \ to preserve following space
+      ##1%
+    }%
+      }%
+    \dolistloop{\listauthors}%
+  \else
+    \renewcommand*{\dotwo}[2]{%
+    \authorsep%
+    \lastauthor%
+    \renewcommand{\lastauthor}{%
+      \renewcommand{\authorsep}{,
+        \renewcommand*{\prelastauthorsep}{,}}%
+      \renewcommand{\prelastauthor}{\prelastauthorsep\ \lastauthorseparator\ }% Terminated commands with \ to preserve following space
+      ##1\textsuperscript{##2}%
+    }%
+  }%
+  \looptwo\listauthors\listsuperscripts%
+  \fi
+  \prelastauthor \lastauthor%
+}
+
+\newcommand{\displayaffiliations}{%
+  \ifnum\value{NumberOfSuperscripts}=0% If no superscripts are specified, print affiliations without superscripts.
+  \renewcommand*{\do}[1]{%
+      ##1\\%
+  }%
+  \else
+  \newcounter{AffiliationNumber}
+  \renewcommand*{\do}[1]{%
+      \stepcounter{AffiliationNumber}
+      \textsuperscript{\arabic{AffiliationNumber}}##1\\%
+  }%
+  \fi
+  \dolistloop{\listaffiliations}%
+}
+
+\makeatletter
+
+\def\check at author{%
+  \@ifundefined{def at multipleauthors}{%
+    \ClassWarningNoLine{apa7}{Author not defined}\authorsnames{Author}}{}
+  \@ifundefined{@title}{%
+    \ClassWarningNoLine{apa7}{Title not defined}\def\@title{Title}}{}
+  \@ifundefined{def at multipleaffils}{%
+    \ClassWarningNoLine{apa7}{Affiliation not defined}\authorsaffiliations{Affiliation}}{}
+  \@ifundefined{def at multipleauthors}{}{%
+   \ifnum\value{NumberOfSuperscripts}=0%
+    % do nothing. If no superscripts are specified, print authors and affiliations without superscripts.
+   \else%
+      \ifnum\value{NumberOfAuthors}=\value{NumberOfSuperscripts}%
+        % do nothing
+      \else
+        \ClassError{apa7}{Number of Authors does not match number of Superscripts}%
+          {Please provide an equal number of authors and superscripts.}%
+  \fi
+   \fi
+  }%
+}
+
+%%-------------------------------------------------------------------------------------
+%% Make title
+\renewcommand*{\@maketitle}{
+  \cleardoublepage
+  \check at author
+  % title
+  \begin{minipage}{\textwidth}\begin{center}
+    \fontsize{14}{18}\selectfont
+    \textbf{\@title}
+    \vspace{1em}
+  \end{center}\end{minipage}
+  % authors
+  \begin{minipage}{\textwidth}\begin{center}
+    \displayauthors
+    \vspace{1em}
+  \end{center}\end{minipage}
+  % affiliations
+  \begin{minipage}{\textwidth}\begin{center}
+    \displayaffiliations
+    \vspace{2em}
+  \end{center}\end{minipage}
+}
+\endinput
+%%
+%% End of file `fhjpaper.cls'.


Property changes on: trunk/Master/texmf-dist/tex/latex/fhj-script/fhjpaper.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2025-08-03 23:41:49 UTC (rev 75965)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2025-08-04 19:42:04 UTC (rev 75966)
@@ -348,7 +348,7 @@
     fenetrecas fenixpar
     fetamont fetchcls
     feupphdteses fewerfloatpages feyn feynmf feynmp-auto
-    ffcode ffslides fge fgruler
+    ffcode ffslides fge fgruler fhj-script
     fifinddo-info fifo-stack
     fig4latex figbas figbib figchild figflow figput figsize figureversions
     filecontents filecontentsdef filedate filehook fileinfo filemod

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2025-08-03 23:41:49 UTC (rev 75965)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2025-08-04 19:42:04 UTC (rev 75966)
@@ -1541,6 +1541,7 @@
  'upmethodology',"&MAKEflatten",
  'uppunctlm',	"&MAKEflatten",
  'urcls',	"&MAKEflatten",
+ 'urw',		"die 'skipping, use specific font names'",
  'urwchancal',  "&MAKEcopy",
  'uspatent',    "&MAKEflatten",
  'utfsym',      "&MAKEflatten",

Modified: trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc	2025-08-03 23:41:49 UTC (rev 75965)
+++ trunk/Master/tlpkg/tlpsrc/collection-publishers.tlpsrc	2025-08-04 19:42:04 UTC (rev 75966)
@@ -83,6 +83,7 @@
 depend fcavtex
 depend fcltxdoc
 depend fei
+depend fhj-script
 depend ftc-notebook
 depend gaceta
 depend gammas

Added: trunk/Master/tlpkg/tlpsrc/fhj-script.tlpsrc
===================================================================


More information about the tex-live-commits mailing list.