texlive[74267] branches/branch2024.final/Master/texmf-dist:
commits+karl at tug.org
commits+karl at tug.org
Mon Feb 24 21:31:09 CET 2025
Revision: 74267
https://tug.org/svn/texlive?view=revision&revision=74267
Author: karl
Date: 2025-02-24 21:31:09 +0100 (Mon, 24 Feb 2025)
Log Message:
-----------
hagenberg-thesis (branch) (24feb25)
Modified Paths:
--------------
branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/README.md
branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hagenberg-thesis-tutorial-de.pdf
branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hagenberg-thesis-tutorial-en.pdf
branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hagenberg-thesis.pdf
branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hagenberg-thesis.tex
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbabbrev.sty
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbalgo.sty
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbarticle.cls
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbbib.sty
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbheadings.sty
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgblistings.sty
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbmath.sty
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbreport.cls
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbthesis.cls
Added Paths:
-----------
branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/bibtex/
branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/bibtex/references.bib
branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-default-logo.pdf
branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-fhooe24-coverbackground.pdf
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbdict.sty
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbpdfa.sty
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-custom.sty
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-default.sty
branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-fhooe24.sty
Modified: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/README.md
===================================================================
--- branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/README.md 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/README.md 2025-02-24 20:31:09 UTC (rev 74267)
@@ -6,7 +6,7 @@
## Package information
-### Version: 2023/02/13
+### Version: 2025/02/24
### Authors:
W. Burger, W. Hochleitner
Added: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/bibtex/references.bib
===================================================================
--- branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/bibtex/references.bib (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/bibtex/references.bib 2025-02-24 20:31:09 UTC (rev 74267)
@@ -0,0 +1,544 @@
+%%% Version[2025/02/24]%%AUTO
+
+ at book{BachBWV988,
+ author={Bach, Johann Sebastian},
+ title={Goldberg-Variationen für Streichquartett, BWV 988},
+ editor={Anka, Dana},
+ publisher={Musikverlag Hans Sikorski},
+ location={Hamburg},
+ date={2017},
+ langid={ngerman}
+}
+
+ at thesis{Bacher2004,
+ author={Bacher, Florian},
+ title={Interaktionsmöglichkeiten mit Bildschirmen und großflächigen Projektionen},
+ type={bathesis},
+ date={2004-06},
+ institution={University of Applied Sciences Upper Austria, Medientechnik und {-design}},
+ location={Hagenberg, Austria},
+ langid={ngerman}
+}
+
+ at manual{Bezos2025,
+ author={Bezos, Javier and Braams, Johannes L.},
+ title={Babel},
+ subtitle={Localization and internationalization},
+ date={2025-02-14},
+ version={25.4},
+ url={https://mirrors.ctan.org/macros/latex/required/babel/base/babel.pdf},
+ langid={english}
+}
+
+ at incollection{BurgeBurger1999,
+ author={Burge, Mark and Burger, Wilhelm},
+ title={Ear Biometrics},
+ booktitle={Biometrics},
+ booksubtitle={Personal Identification in Networked Society},
+ publisher={Kluwer Academic Publishers},
+ date={1999},
+ location={Boston},
+ editor={Jain, Anil K. and Bolle, Ruud and Pankanti, Sharath},
+ chapter={13},
+ pages={273-285},
+ doi={10.1007/0-306-47044-6_13},
+ langid={english}
+}
+
+ at inproceedings{Burger1987,
+ author={Burger, Wilhelm and Bhanu, Bir},
+ title={Qualitative Motion Understanding},
+ booktitle={Proceedings of the Tenth International Joint Conference on Artificial Intelligence},
+ date={1987-08},
+ editor={McDermott, John P.},
+ eventdate={1987-08-23/1987-08-28},
+ venue={Milano},
+ publisher={Morgan Kaufmann Publishers},
+ location={San Francisco},
+ pages={819-821},
+ doi={10.1007/978-1-4615-3566-9},
+ langid={english}
+}
+
+ at book{BurgerBurge2022,
+ author={Burger, Wilhelm and Burge, Mark James},
+ title={Digital Image Processing},
+ subtitle={An Algorithmic Introduction},
+ publisher={Springer},
+ location={Cham},
+ edition={3},
+ date={2022},
+ doi={10.1007/978-3-031-05744-1},
+ langid={english}
+}
+
+ at manual{Carlisle2024,
+ author={Carlisle, David P.},
+ title={Packages in the {`graphics'} bundle},
+ date={2024-05-22},
+ url={https://mirrors.ctan.org/macros/latex/required/graphics/grfguide.pdf},
+ langid={english}
+}
+
+ at image{CocaCola1940,
+ author={Wolcott, Marion Post},
+ title={Natchez, Miss.},
+ note={Library of Congress Prints and Photographs Division Washington, Farm Security Administration/Office of War Information Color Photographs},
+ date={1940-08},
+ url={https://www.loc.gov/pictures/item/2017877479/},
+ langid={english}
+}
+
+ at unpublished{Dai2016,
+ author={Dai, Jifeng and Li,Yi and He, Kaiming and Sun, Jian},
+ title={{R-FCN:} Object Detection via Region-Based Fully Convolutional Networks},
+ date={2016},
+ pubstate={prepublished},
+ doi={10.48550/arXiv.1605.06409},
+ langid={english}
+}
+
+ at manual{Daniel2018,
+ author={Daniel, Marco and Gundlach, Patrick and Schmidt, Walter and Knappen, Jörg and Partl, Hubert and Hyna, Irene},
+ title={\LaTeX2e-Kurzbeschreibung},
+ date={2018-04-08},
+ version={3.0c},
+ url={https://mirrors.ctan.org/info/lshort/german/l2kurz.pdf},
+ langid={ngerman}
+}
+
+ at report{Drake1948,
+ author={Drake, Hubert M. and McLaughlin, Milton D. and Goodman, Harold R.},
+ title={Results obtained during accelerated transonic tests of the {Bell} {XS-1} airplane in flights to a {MACH} number of 0.92},
+ type={techreport},
+ institution={NASA Dryden Flight Research Center},
+ date={1948-04-19},
+ location={Edwards, CA},
+ number={NACA-RM-L8A05A},
+ url={https://ntrs.nasa.gov/api/citations/19930085320/downloads/19930085320.pdf},
+ langid={english}
+}
+
+ at book{Duden1997,
+ author={Friedrich, Christoph},
+ title={Schriftliche Arbeiten im technisch-natur\-wissen\-schaft\-lichen Studium},
+ subtitle={Ein Leitfaden zur effektiven Erstellung und zum Einsatz moderner Arbeitsmethoden},
+ publisher={Bibliographisches Institut},
+ series={Duden Taschenbücher},
+ volume={27},
+ location={Mannheim},
+ date={1997},
+ langid={ngerman}
+}
+
+ at thesis{Eberl1987,
+ author={Eberl, Gerhard},
+ title={Automatischer Landeanflug durch Rechnersehen},
+ type={phdthesis},
+ date={1987-08},
+ institution={Universität der Bundeswehr, Fakultät für Raum- und Luftfahrttechnik},
+ location={München},
+ langid={ngerman}
+}
+
+ at legislation{EuRichtlinie2000,
+ author={{Europäische Union}},
+ title={Richtline 2000/14/EG des Europäischen Parlaments und des Rates vom 8.\ Mai 2000 zur
+ Angleichung der Rechtsvorschriften der Mitgliedstaaten über umweltbelastende Geräuschemissionen
+ von zur Verwendung im Freien vorgesehenen Geräten und Maschinen},
+ howpublished={Amtsblatt der Europäischen Gemeinschaften, L 162},
+ date={2000-05-08},
+ url={https://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CONSLEG:2000L0014:20051227:de:PDF},
+ langid={ngerman}
+}
+
+ at manual{Fear2020,
+ author={Fear, Simon},
+ title={Publication quality tables in \LaTeX},
+ date={2020-01-14},
+ version={v1.61803398},
+ url={https://mirrors.ctan.org/macros/latex/contrib/booktabs/booktabs.pdf},
+ langid={english}
+}
+
+ at book{Faires1934,
+ author={Faires, Virgil Moring},
+ title={Design of Machine Elements},
+ publisher={The Macmillan Company},
+ date={1934},
+ origdate={1920},
+ note={Originalausgabe 1920},
+ langid={english}
+}
+
+ at online{Feder2006,
+ author={Feder, Alexander},
+ title={{BibTeX.org}},
+ date={2006},
+ url={https://www.bibtex.org/},
+ urldate={2025-02-18},
+ langid={english}
+}
+
+ at legislation{FhStG1993,
+ title={Bundesgesetz über Fachhochschulen},
+ titleaddon={Fachhochschulgesetz – FHG},
+ howpublished={BGBl.\ Nr.\ 340/1993, zuletzt geändert mit Bundesgesetz BGBl.\ I Nr.\ 50/2024},
+ date={1993-05-28},
+ url={https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10009895},
+ langid={ngerman}
+}
+
+ at video{Futurama1999,
+ author={Groening, Matt},
+ title={Futurama},
+ titleaddon={Season 1 Collection},
+ howpublished={DVD},
+ date={2002-02},
+ organization={Twentieth Century Fox Home Entertainment},
+ langid={english}
+}
+
+ at incollection{GershwinSummertime,
+ author={Gershwin, George and Heyward, DuBose},
+ title={Summertime},
+ booktitle={The Greatest Songs of George Gershwin},
+ publisher={Chappel Music},
+ location={London},
+ pages={40-43},
+ date={1979},
+ langid={english}
+}
+
+ at book{HaydnCelloConcerto2,
+ author={Haydn, Josef},
+ title={Konzert für Violoncello No.\ 2 in D-Dur, Hob.VIIb:2},
+ editor={Soldan,Kurt},
+ publisher={C. F. Peters},
+ location={Leipzig},
+ date={1920},
+ langid={ngerman}
+}
+
+ at book{Hemleben1969,
+ author={Hemleben, Johannes},
+ title={Galilei, Galileo},
+ publisher={rororo},
+ date={1969},
+ edition={20},
+ langid={ngerman}
+}
+
+ at book{Higham2020,
+ author={Higham, Nicholas J.},
+ title={Handbook of Writing for the Mathematical Sciences},
+ publisher={Society for Industrial and Applied Mathematics (SIAM)},
+ location={Philadelphia},
+ edition={3},
+ date={2020},
+ url={https://nhigham.com/handbook-of-writing-for-the-mathematical-sciences/},
+ langid={english}
+}
+
+ at video{HistoryOfComputers2008,
+ title={History of Computers},
+ date={2008-09-24},
+ url={https://www.youtube.com/watch?v=LvKxJ3bQRKE},
+ langid={english}
+}
+
+ at online{IBM360,
+ author={IBM},
+ title={The IBM System/360},
+ subtitle={The 5-billion-dollar gamble that changed the trajectory of IBM},
+ date={2024-01-05},
+ url={https://www.ibm.com/history/system-360},
+ urldate={2025-02-18},
+ langid={english}
+}
+
+ at manual{Kime2024,
+ author={Kime, Philip and Wemheuer, Moritz and Lehman, Philipp},
+ title={The \texttt{biblatex} Package},
+ subtitle={Programmable Bibliographies and Citations},
+ date={2024-03-21},
+ version={3.20},
+ url={https://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf},
+ langid={english}
+}
+
+ at book{Kopka2003,
+ author={Kopka, Helmut and Daly, Patrick William},
+ title={Guide to \LaTeX},
+ series={Tools and Techniques for Computer Typesetting},
+ publisher={Addison-Wesley},
+ location={Reading, MA},
+ date={2003},
+ edition={4},
+ langid={english}
+}
+
+ at book{Lamport1994,
+ author={Lamport, Leslie},
+ title={{LaTeX}, A Document Preparation System},
+ subtitle={User's Guide and Reference Manual},
+ publisher={Addison-Wesley},
+ location={Reading, MA},
+ date={1994},
+ edition={2},
+ langid={english}
+}
+
+ at book{Lamport1995,
+ author={Lamport, Leslie},
+ title={Das {LaTeX}-Handbuch},
+ publisher={Addison-Wesley},
+ location={Reading, MA},
+ date={1995},
+ edition={3},
+ langid={ngerman}
+}
+
+ at software{LegendOfZelda1998,
+ author={Miyamoto, Shigeru and Aonuma, Eiji and Koizumi, Yoshiaki},
+ title={The Legend of Zelda: Ocarina of Time},
+ howpublished={N64 Cartridge},
+ publisher={Nintendo},
+ date={1998-11},
+ langid={english}
+}
+
+ at thesis{Loimayr2019,
+ author={Loimayr, Nora},
+ title={Utilization of GPU-Based Smoothed Particle Hydrodynamics for Immersive Audiovisal Experiences},
+ type={mathesis},
+ date={2019-11-26},
+ institution={University of Applied Sciences Upper Austria, Interactive Media},
+ location={Hagenberg, Austria},
+ url={https://theses.fh-hagenberg.at/thesis/Loimayr19},
+ langid={english}
+}
+
+ at article{Mermin1989,
+ author={Mermin, Nathaniel David},
+ title={What's Wrong with these Equations?},
+ journaltitle={Physics Today},
+ volume={42},
+ number={10},
+ date={1989},
+ pages={9-11},
+ doi={10.1063/1.2811173},
+ langid={english}
+}
+
+ at manual{Mittelbach2024,
+ author={Mittelbach, Frank and Schöpf, Rainer and Downes, Michael and Jones, David M. and Carlisle, David},
+ title={The \texttt{amsmath} package},
+ date={2024-11-05},
+ version={2.17t},
+ url={https://mirrors.ctan.org/macros/latex/required/amsmath/amsmath.pdf},
+ langid={english}
+}
+
+ at movie{Nosferatu1922,
+ title={Nosferatu -- A Symphony of Horrors},
+ howpublished={Film},
+ date={1922},
+ note={Drehbuch/Regie: F.\ W.\ Murnau. Mit Max Schreck, Gustav von Wangenheim, Greta Schröder.},
+ langid={english}
+}
+
+ at manual{Oetiker2021,
+ author={Oetiker, Tobias and Partl, Hubert and Hyna, Irene and Schlegl, Elisabeth},
+ title={The Not So Short Introduction to \LaTeXe},
+ subtitle={Or \LaTeXe in 139 minutes},
+ date={2021-03-09},
+ version={6.4},
+ url={https://mirrors.ctan.org/info/lshort/english/lshort.pdf},
+ langid={english}
+}
+
+ at legislation{OoeRaumordnungsgesetz1994,
+ title={Landesgesetz vom 6. Oktober 1993 über die Raumordnung im Land Oberösterreich},
+ titleaddon={Oö. Raumordnungsgesetz 1994 - Oö. ROG 1994},
+ howpublished={LGBl.Nr. 114/1993 zuletzt geändert durch LGBl.Nr. 14/2025},
+ date={1993-12-23},
+ url={https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=LrOO&Gesetzesnummer=10000370},
+ langid={ngerman}
+}
+
+ at manual{Oostrum2025,
+ author={Oostrum, {Pieter van}},
+ title={The \textrm{fancyhdr} and \textrm{extramarks} packages},
+ date={2025-02-07},
+ version={5.2},
+ url={https://mirrors.ctan.org/macros/latex/contrib/fancyhdr/fancyhdr.pdf},
+ langid={english}
+}
+
+ at manual{Pakin2024,
+ author={Pakin, Scott},
+ title={The Comprehensive {\LaTeX} Symbol List},
+ date={2024-01-03},
+ url={https://mirrors.ctan.org/info/symbols/comprehensive/symbols-a4.pdf},
+ langid={english}
+}
+
+ at manual{Patashnik1988,
+ author={Patashnik, Oren},
+ title={{BiBTeXing}},
+ date={1988-02-08},
+ url={https://mirrors.ctan.org/biblio/bibtex/base/btxdoc.pdf},
+ langid={english}
+}
+
+ at patent{Pike2008,
+ author={Pike, Dion},
+ title={Master-slave communications system and method for a network element},
+ type={US Patent},
+ holder={Alcatel-Lucent SAS},
+ number={7,460,482},
+ date={2008-12-02},
+ url={https://patents.google.com/patent/US7460482},
+ langid={english}
+}
+
+ at movie{Psycho1960,
+ title={Psycho},
+ howpublished={Film},
+ date={1960},
+ note={Regie: Alfred Hitchcock,
+ Drehbuch: Joseph Stefano.
+ Nach dem Roman von Robert Bloch.
+ Mit Anthony Perkins, Vera Miles, Janet Leigh.},
+ langid={english}
+}
+
+ at book{Sedgewick2011,
+ author={Sedgewick, Robert and Wayne, Kevin},
+ title={Algorithms},
+ publisher={Addison-Wesley},
+ location={Reading, MA},
+ date={2011},
+ edition={4},
+ langid={english}
+}
+
+ at book{ShostakovichOp110,
+ author={Shostakovich, Dimitri},
+ title={Streichquartett Nr.\ 8 in c-Moll, Op.\ 110},
+ editor={Hans Sikorski},
+ publisher={G. Schirmer},
+ location={New York},
+ date={1960},
+ langid={ngerman}
+}
+
+ at manual{Sommerfeldt2023,
+ author={Sommerfeldt, Axel},
+ title={Customizing captions of floating environments},
+ date={2023-07-10},
+ version={3.6},
+ url={https://mirrors.ctan.org/macros/latex/contrib/caption/caption.pdf},
+ langid={english}
+}
+
+ at software{SpringFramework,
+ title={Spring Framework},
+ url={https://github.com/spring-projects/spring-framework},
+ langid={english}
+}
+
+ at article{Vardavoulia2001,
+ author={Vardavoulia, Maria I. and Andreadis, Ioannis and Tsalides, Phillipos},
+ title={A new vector median filter for colour image processing},
+ journaltitle={Pattern Recognition Letters},
+ volume={22},
+ number={6-7},
+ pages={675-689},
+ date={2001},
+ doi={10.1016/S0167-8655(00)00141-0},
+ langid={english}
+}
+
+ at manual{Voss2014,
+ author={Voß, Herbert},
+ title={Math mode},
+ date={2014-01-30},
+ version={2.47},
+ url={https://mirrors.ctan.org/obsolete/info/math/voss/mathmode/Mathmode.pdf},
+ langid={english}
+}
+
+ at standard{WHATWGHTMLLivingStandard,
+ author={{Web Hypertext Application Technology Working Group}},
+ shortauthor={WHATWG},
+ title={HTML},
+ titleaddon={Living Standard},
+ date={2025-02-17},
+ url={https://html.spec.whatwg.org/multipage/},
+ langid={english}
+}
+
+ at online{WikiReliquienschrein2023,
+ title={Reliquienschrein},
+ url={https://de.wikipedia.org/wiki/Reliquienschrein},
+ date={2023-12-20},
+ urldate={2025-02-18},
+ langid={ngerman}
+}
+
+ at online{WikibooksLaTeXLengths2018,
+ title={LaTeX/Lengths},
+ url={https://en.wikibooks.org/wiki/LaTeX/Lengths},
+ date={2018-08-04},
+ urldate={2025-02-18},
+ langid={english}
+}
+
+ at audio{Zappa1995,
+ author={Zappa, Frank},
+ title={Freak Out!},
+ type={audiocd},
+ date={1995-05},
+ organization={Rykodisc, New York},
+ langid={english}
+}
+
+%% used in thesis proposal example:
+
+ at inproceedings{Finke2008,
+ author={Finke, Matthias and Tang, Anthony and Leung, Rock and Blackstock, Michael},
+ title={Lessons Learned: Game Design for Large Public Displays},
+ booktitle={Proceedings of the 3rd International Conference on Digital Interactive Media in Entertainment and Arts},
+ series={DIMEA '08},
+ pages={26-33},
+ date={2008},
+ publisher={ACM},
+ location={New York, NY, USA},
+ doi={10.1145/1413634.1413644},
+ langid={english}
+}
+
+ at inproceedings{Hochleitner2013,
+ author={Hochleitner, Wolfgang and Lankes, Michael and Diephuis, Jeremiah and Hochleitner, Christina},
+ title={Limelight -- Fostering Sociability in a Co-located Game},
+ booktitle={Proceedings of the CHI 2013 Workshop on Designing and Evaluating Sociability in Online Video Games},
+ series={CHI '13},
+ pages={23-28},
+ date={2013},
+ location={Paris, France},
+ langid={english}
+}
+
+ at book{Schell2019,
+ author={Schell, Jesse},
+ title={The Art of Game Design},
+ subtitle={A Book of Lenses},
+ publisher={CRC Press},
+ date={2019},
+ edition={3},
+ location={Boca Raton, FL, USA},
+ doi={10.1201/b22101},
+ langid={english}
+}
Property changes on: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/bibtex/references.bib
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hagenberg-thesis-tutorial-de.pdf
===================================================================
(Binary files differ)
Modified: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hagenberg-thesis-tutorial-en.pdf
===================================================================
(Binary files differ)
Modified: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hagenberg-thesis.pdf
===================================================================
(Binary files differ)
Modified: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hagenberg-thesis.tex
===================================================================
--- branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hagenberg-thesis.tex 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hagenberg-thesis.tex 2025-02-24 20:31:09 UTC (rev 74267)
@@ -1,8 +1,12 @@
+\RequirePackage[utf8]{inputenc} % remove when using lualatex oder xelatex!
+\RequirePackage{hgbpdfa} % Creates a PDF/A-2b compliant document
+
\documentclass[english]{hgbarticle}
-\RequirePackage[utf8]{inputenc} % remove when using lualatex oder xelatex!
+%%%----------------------------------------------------------
+\begin{document}
+%%%----------------------------------------------------------
-
\title{The \textsf{hagenberg-thesis} Package}
\date{\hgbDate}
@@ -10,21 +14,22 @@
University of Applied Sciences Upper Austria\\
Department of Digital Media, Hagenberg (Austria)}
-
%%%----------------------------------------------------------
-\begin{document}
-%%%----------------------------------------------------------
\maketitle
%%%----------------------------------------------------------
\begin{abstract}\noindent
The \textsf{hagenberg-thesis} package is a collection of modern LaTeX
-templates for university theses (bachelor, master, or diploma programs) and
-related documents. This manual describes the main features of this package.
+templates for university theses (bachelor, master, diploma or PhD programs) and
+related documents. This manual describes the main features of this package
+and how they may be customized.
Pre-configured document templates for English and German manuscripts and a
complete tutorial are available on the package's home repository.
\end{abstract}
+\clearpage
+\tableofcontents
+\clearpage
\section{Introduction}
@@ -46,9 +51,9 @@
%
\begin{itemize}
\item \textbf{\texttt{hgbthesis}} (\texttt{book}):
- for bachelor's, master's, and diploma theses;
+ for bachelor's, master's, diploma, and PhD theses,
\item \textbf{\texttt{hgbreport}} (\texttt{report}):
- for project and term reports;
+ for project and term reports,
\item \textbf{\texttt{hgbarticle}} (\texttt{article}):
for drafting journal articles.
\end{itemize}
@@ -61,8 +66,10 @@
All document classes accept the following general options:
%
\begin{itemize}
- \item \texttt{english} or \texttt{german} (select the primary language),
- \item \texttt{smartquotes} (use smart quotes replacement),
+ \item \texttt{english}|\texttt{german}: specifies the main document language,%
+ \footnote{With class \texttt{hgbthesis} this is equivalent to \texttt{language=english|german}.}
+ \item \texttt{oneside}|\texttt{twoside}: document layout (default is \texttt{oneside}),
+ \item \texttt{smartquotes}: use smart quotes replacement (\verb!"!...\verb!"! $\rightarrow$ ``...''),
\item \texttt{apa} (use \texttt{apa} bibliography style instead of
\texttt{numeric-comp}),
\item \texttt{noUpdateCheck} (suppress check of package release date).
@@ -72,48 +79,71 @@
\subsubsection{Class-specific options}
In addition, the following class-specific options are accepted:
-%
-\begin{itemize}
- \item \textbf{\texttt{hgbthesis}}:
- \texttt{master}, \texttt{diploma}, \texttt{bachelor}, \texttt{internship}, \texttt{proposal};
- \item \textbf{\texttt{hgbreport}}: \texttt{notitlepage};
- \item \textbf{\texttt{hgbarticle}}: \texttt{twocolumn}.
-\end{itemize}
-%
+
+\noindent\textbf{\texttt{hgbthesis}}:
+ \begin{itemize}
+ \item \texttt{type=}%
+ \{\texttt{bachelor}|\texttt{master}|\texttt{diploma}|\texttt{phd}|\texttt{internship}|\texttt{custom}\}:
+ thesis type,
+ \item \texttt{language=}\{\texttt{english}|\texttt{german}\}: main document language,%
+ \footnote{Note: The \texttt{german} option implicitly loads Babel's \texttt{ngerman} setup.
+ When switching languages (see Sec.~\ref{sec:LanguageSwitchingCommands}) only \texttt{german}
+ should be used.}
+ \item \texttt{titlelanguage=}\{\texttt{english}|\texttt{german}\}:
+ language on title pages, defaults to main document language if omitted,
+ \item \texttt{proposal}: flag to indicate proposal documents.
+ \end{itemize}
+
+\noindent\textbf{\texttt{hgbreport}}:
+ \begin{itemize}
+ \item \texttt{notitlepage}: no separate title page.
+ \end{itemize}
+
+\noindent\textbf{\texttt{hgbarticle}}:
+ \begin{itemize}
+ \item \texttt{twocolumn}: two-column page layout,
+ \item \texttt{review}: review mode with line numbers.
+ \end{itemize}
+
+\noindent
For example, to start a master's thesis in German, simply place
%
\begin{LaTeXCode}[numbers=none]
-\documentclass[master,german,smartquotes]{hgbthesis}
+\documentclass[type=master,language=german,smartquotes]{hgbthesis}
\end{LaTeXCode}
%
at the beginning of the document.
-The \texttt{proposal} option is intended for a \emph{thesis proposal} (``Exposé'') and is
-only effective in \emph{conjunction} with the \texttt{bachelor} and \texttt{master}
-options, \eg,
+The \texttt{proposal} option is intended for a \emph{thesis proposal} (``Exposé'' or ``Proposal'' ) and is
+only effective in \emph{conjunction} with the main thesis types, \eg,
%
\begin{LaTeXCode}[numbers=none]
-\documentclass[bachelor,proposal,german,smartquotes]{hgbthesis}
+\documentclass[type=bachelor,language=english,titlelanguage=german,proposal]{hgbthesis}
\end{LaTeXCode}
%
-This option is meant for a short exposé, containing only one chapter. Thus,
+The result is a short exposé that contains only one chapter. Thus,
chapter numbers are not displayed. Remove the \texttt{proposal} option to
-migrate a proposal document to the final thesis (and restore the usual
+migrate a proposal document straight to the final thesis (and restore the usual
numbering scheme).
-\subsection{Thesis parameters (class \texttt{hgbthesis})}
+The example also shows that the main document language (\texttt{language=english}) and the
+language on the title page (\texttt{titlelanguage=german}) can be set independently.
+\subsection{Thesis settings (class \texttt{hgbthesis})}
+
\texttt{hgbthesis} supports several types of thesis documents. The following
-parameters must be specified for \emph{all} types:
+parameters must be specified at the beginning of the main document:
%
\begin{itemize}
\item \verb!\title{...}!,
+ \item \verb!\subtitle{...}! (optional),
\item \verb!\author{...}!,
- \item \verb!\programtype{...}!,
+ \item \verb!\programtype{...}! (optional),
\item \verb!\programname{...}!,
+ \item \verb!\institution{...}!,
\item \verb!\placeofstudy{...}!,
\item \verb!\dateofsubmission{yyyy}{mm}{dd}!,
- \item \verb!\advisor{...}! (optional).
+ \item \verb!\advisor[]{...}! (optional, multiple \verb!\advisor! statements allowed),
\end{itemize}
%
Note that \texttt{hgbthesis} only supports a \emph{single author} inside the
@@ -120,37 +150,83 @@
\verb!\author{...}! macro argument (commands \verb!\and! and
\verb!\thanks{...}! are deactivated)!
+The command \verb!\advisor[role]{name}! accepts an optional argument to associate a \emph{role}
+with the advisor's \emph{name}, \eg, \verb!\advisor[Supervisor]{Prof.~Marie Curie, PhD}!.
+Multiple advisors can be specified, for example
+%
+\begin{LaTeXCode}[numbers=none]
+ \advisor[1.~Betreuerin]{Professor Frida K.~Putnik, PhD}
+ \advisor[2.~Betreuer]{Franz Grillparzer, TU Wien}
+ \advisor[Gutachter]{Dr.~B.\,Rutal, MIT}
+\end{LaTeXCode}
+\noindent
+Other (optional) settings for \texttt{hgbthesis} include:
+\begin{itemize}
+ \item \verb!\license{cc|strict}!:
+ Use the \emph{Creative Commons License} (\texttt{cc} = default) or strict license terms
+ (``all rights reserved'').
+ \item \verb!\logofile{xxx.pdf}!:
+ %Specifies a custom logo image for the title page, to be placed in \verb!images/xxx.pdf!
+ %(default is \texttt{logo.pdf}).
+ This command is \textbf{deprecated} -- the thesis logo
+ should be specified in the associated \emph{theme} file instead (see Sec.~\ref{sec:Themes}).
+\end{itemize}
+
\section{Style files and user commands}
The package comes with a set of style (\texttt{*.sty}) files that can be used
independently of the document classes listed above:
-\texttt{hgb.sty},
-\texttt{hgbabbrev.sty},
-\texttt{hgbbib.sty},
-\texttt{hgbheadings.sty},
-\texttt{hgblistings.sty},
-\texttt{hgbmath.sty}.
+\begin{itemize}
+ \item \texttt{hgb.sty}: language and date setup, custom commands;
+ \item \texttt{hgbabbrev.sty}: various abbreviation macros;
+ \item \texttt{hgbalgo.sty}: additions to \texttt{algpseudocodex} package;
+ \item \texttt{hgbbib.sty}: bibliography setup;
+ \item \texttt{hgbdict.sty}: language dictionary functions;
+ \item \texttt{hgbheadings.sty}: definition of page headers;
+ \item \texttt{hgblistings.sty}: setup for code listings;
+ \item \texttt{hgbmath.sty}: setup and commands for math typesetting;
+ \item \texttt{hgbpdfa.sty}: setup for PDF/A generation.
+\end{itemize}
-
\subsection{General user commands and environments (\texttt{hgb.sty})}
+\label{sec:GeneralUserCommands}
\begin{itemize}
- \item \texttt{{\bs}hgbDate}: Outputs the package version date,
+ \item \textbf{\texttt{{\bs}hgbDate}}: Outputs the package version date,
\eg, ``\texttt{\hgbDate}''.
- \item \texttt{{\bs}getcurrentlabel}: Yields the most recently assigned
- label number.
- \item \verb!\calibrationbox{width}{height}!: Inserts a test box for
- checking the final print size (in millimeters).
- \item \verb!\begin{block}...\end{block}!: Dummy environment, provides
- a limited scope for variable/command redefinitions.
- \item \verb!\begin{english}...\end{english}!: Temporarily switches
- to English language settings.
- \item \verb!\begin{german}...\end{german}!: Temporarily switches
- to German language settings.
+ \item \textbf{\texttt{{\bs}getcurrentlabel}}:
+ Yields the most recently assigned label number.
+ \item \textbf{\texttt{{\bs}calibrationbox}}\verb!{width}{height}!:
+ Inserts a test box for checking the final print size (in millimeters).
+ \item \verb!\begin{block}...\end{block}!:
+ Dummy environment, provides a limited scope for variable/command redefinitions.
\end{itemize}
+\subsection{Language switching commands and smart quotes (\texttt{hgb.sty})}
+\label{sec:LanguageSwitchingCommands}
+
+\begin{itemize}
+ \item \verb!\SetLanguage{<language>}!:
+ Switches to the specified language.
+ This and the other language switching commands listed below
+ also refresh the \texttt{smartquotes} settings (if activated).
+ \item \verb!\begin{SwitchLanguage}{<language>}...\end{SwitchLanguage}!:
+ Temporarily switches to the specified language and reverts to the current language
+ afterwards.
+ \item \verb!\begin{english}...\end{english}!:
+ Temporarily switches to English language settings, short for
+ \verb!\begin{SwitchLanguage}{english}..!.
+ \item \verb!\begin{german}...\end{german}!:
+ Temporarily switches to German language settings, short for
+ \verb!\begin{SwitchLanguage}{german}..!.
+ \item \verb!\SmartquotesActive!:
+ For debugging only. Returns \texttt{true}/\texttt{false} if smart quotes are activated in
+ the current context (or an appropriate message if the \texttt{csquotes} package was not loaded at all).
+\end{itemize}
+
+
\subsection{Text commands (\texttt{hgbabbrev.sty})}
\subsubsection*{Special characters:}
@@ -166,37 +242,38 @@
\subsubsection*{German abbreviations:}
\begin{itemize}
- \item \textbf{\texttt{{\bs}bzgl}}: bzgl.
- \item \textbf{\texttt{{\bs}bzw}}: bzw.
- \item \textbf{\texttt{{\bs}ca}}: ca.
- \item \textbf{\texttt{{\bs}dah}}: d.\thinspace{}h.
- \item \textbf{\texttt{{\bs}Dah}}: D.\thinspace{}h.
- \item \textbf{\texttt{{\bs}ds}}: d.\thinspace{}sind
- \item \textbf{\texttt{{\bs}etc}}: etc.
- \item \textbf{\texttt{{\bs}evtl}}: evtl.
- \item \textbf{\texttt{{\bs}ia}}: i.\thinspace{}Allg.
- \item \textbf{\texttt{{\bs}sa}}: s.\ auch
- \item \textbf{\texttt{{\bs}so}}: s.\ oben
- \item \textbf{\texttt{{\bs}su}}: s.\ unten
- \item \textbf{\texttt{{\bs}ua}}: u.\thinspace{}a.
- \item \textbf{\texttt{{\bs}Ua}}: U.\thinspace{}a.
- \item \textbf{\texttt{{\bs}uae}}: u.\thinspace{}\"A.
- \item \textbf{\texttt{{\bs}usw}}: usw.
- \item \textbf{\texttt{{\bs}uva}}: u.\thinspace{}v.\thinspace{}a.
- \item \textbf{\texttt{{\bs}uvm}}: u.\thinspace{}v.\thinspace{}m.
- \item \textbf{\texttt{{\bs}va}}: vor allem
- \item \textbf{\texttt{{\bs}vgl}}: vgl.
- \item \textbf{\texttt{{\bs}zB}}: z.\thinspace{}B.
- \item \textbf{\texttt{{\bs}ZB}}: Zum Beispiel
+ \item \textbf{\texttt{{\bs}bzgl}}: \bzgl
+ \item \textbf{\texttt{{\bs}bzw}}: \bzw
+ \item \textbf{\texttt{{\bs}ca}}: \ca
+ \item \textbf{\texttt{{\bs}dah}}: \dah
+ \item \textbf{\texttt{{\bs}Dah}}: \Dah
+ \item \textbf{\texttt{{\bs}ds}}: \ds
+ \item \textbf{\texttt{{\bs}etc}}: \etc
+ \item \textbf{\texttt{{\bs}evtl}}: \evtl
+ \item \textbf{\texttt{{\bs}ia}}: \ia
+ \item \textbf{\texttt{{\bs}oa}}: \oa
+ \item \textbf{\texttt{{\bs}sa}}: \sa
+ \item \textbf{\texttt{{\bs}so}}: \so
+ \item \textbf{\texttt{{\bs}su}}: \su
+ \item \textbf{\texttt{{\bs}ua}}: \ua
+ \item \textbf{\texttt{{\bs}Ua}}: \Ua
+ \item \textbf{\texttt{{\bs}uae}}: \uae
+ \item \textbf{\texttt{{\bs}usw}}: \usw
+ \item \textbf{\texttt{{\bs}uva}}: \uva
+ \item \textbf{\texttt{{\bs}uvm}}: \uvm
+ \item \textbf{\texttt{{\bs}va}}: \va
+ \item \textbf{\texttt{{\bs}vgl}}: \vgl
+ \item \textbf{\texttt{{\bs}zB}}: \zB
+ \item \textbf{\texttt{{\bs}ZB}}: \ZB
\end{itemize}
\subsubsection*{English abbreviations:}
\begin{itemize}
- \item \textbf{\texttt{{\bs}ie}}: \ie
- \item \textbf{\texttt{{\bs}eg}}: \eg
- \item \textbf{\texttt{{\bs}etc}}: etc.
- \item \textbf{\texttt{{\bs}Eg}}: \Eg
+ \item \textbf{\texttt{{\bs}ie}}: \ie
+ \item \textbf{\texttt{{\bs}eg}}: \eg
+ \item \textbf{\texttt{{\bs}etc}}: \etc
+ \item \textbf{\texttt{{\bs}Eg}}: \Eg
\item \textbf{\texttt{{\bs}wrt}}: \wrt
\end{itemize}
@@ -208,11 +285,13 @@
\subsection{Bibliography commands (\texttt{hgbbib.sty})}
\begin{itemize}
+ \item
+ \textbf{\texttt{{\bs}AddBibFile}}\newline
+ A wrapper to \texttt{biblatex}'s \verb!\addbibresource! macro (for backward compatibility only).
\item
- \texttt{{\bs}AddBibFile}: A wrapper to \texttt{biblatex}'s
- \verb!\addbibresource! macro (for backward compatibility only).
- \item
- \texttt{{\bs}MakeBibliography[\emph{options}]}: Inserts the
+ \textbf{\texttt{{\bs}MakeBibliography}}[\emph{options}]
+ \newline
+ Inserts the
reference section or chapter. By default, references are automatically
split into category subsections.%
\footnote{Predefined reference categories are \texttt{literature},
@@ -220,12 +299,12 @@
Use the option \texttt{nosplit} to produce a traditional (\ie,
contiguous) list of references.
\item
- \texttt{{\bs}mcite%
+ \textbf{\texttt{{\bs}mcite}}%
[\emph{text1}]\{\emph{key1}\}%
[\emph{text2}]\{\emph{key2}\}%
\ldots
[\emph{textN}]\{\emph{keyN}\}%
- }:
+ \newline
Analogous to \texttt{bib\-la\-tex}'s \texttt{{\bs}cites} command%
\footnote{%
\url{http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf}
@@ -254,6 +333,7 @@
\item \textbf{\texttt{ObjCCode}}: for ObjectiveC,
\item \textbf{\texttt{PhpCode}}: for PHP,
\item \textbf{\texttt{PythonCode}}: for Python,
+ \item \textbf{\texttt{ScalaCode}}: for Scala,
\item \textbf{\texttt{Swift}}: for Swift,
\item \textbf{\texttt{XmlCode}}: for XML.
\end{itemize}
@@ -264,6 +344,7 @@
\footnote{\url{https://ctan.org/pkg/listings}}
option may be used; for example, the option \texttt{numbers=none} to suppress
line numbers:
+%
\begin{LaTeXCode}[numbers=none]
\begin{JavaCode}[numbers=none]
... // Java code comes here
@@ -341,9 +422,8 @@
\paragraph{Defined algorithm colors:}
\begin{itemize}
- \item \textbf{\texttt{AlgKeywordColor}} (for algorithm keywords),
- \item \textbf{\texttt{AlgProcedureColor}} (for procedure and function
- names).
+ \item \textbf{\texttt{AlgKeywordColor}}: for algorithm keywords,
+ \item \textbf{\texttt{AlgProcedureColor}}: for procedure and function names.
\end{itemize}
These colors can be redefined at any time (see the \texttt{xcolor}%
\footnote{\url{https://ctan.org/pkg/xcolor}}
@@ -354,13 +434,192 @@
\end{LaTeXCode}
+\subsection{PDF/A generation (\texttt{hgbpdfa.sty})}
+Package \texttt{hgbpdfa} contains definitions for generating PDF/A-compliant
+(PDF/A-2b) output files. It is based on the \texttt{pdfmanagement-testphase}
+package (requires version 0.95s or higher) and must be loaded before the
+\verb!\documentclass! statement in the main document, for example, by
+\begin{LaTeXCode}[numbers=none]
+\RequirePackage{hgbpdfa}
+\end{LaTeXCode}
+If omitted, a plain PDF (non-PDF/A-compliant) file is generated.
+
+
+\section{Custom front pages using \emph{themes}}
+\label{sec:Themes}
+
+The content and structure of the front pages generated for the various thesis types
+(\texttt{bachelor}, \texttt{master} \etc) may be easily customized to meet the specific
+requirements of different institutions or departments.
+Note that this kind of customization is typically done at the institutional level and not
+by the individual author (student).
+
+
+\subsection{Preconfigured themes}
+
+The various front page arrangements are called \emph{themes} in the following.
+Each theme is identified by a unique \texttt{\textit{themeID}} and associated with a
+particular style file (\latex\ package) named
+\texttt{hgbtheme-\textit{themeID}.sty}.
+For example, the theme with \texttt{\textit{themeID}} = \texttt{default} is defined
+by the associated file
+\begin{itemize}
+ \item[] \texttt{hgbtheme-default.sty}.
+\end{itemize}
+%
+Additional resources required by a theme (such as graphics files) must be named with the
+complete \emph{theme name} (\texttt{hgbtheme-\textit{themeID}})
+as a prefix, for example,%
+\footnote{This is to avoid file name conflicts since themes are part of the
+CTAN distribution and thus all theme-related files will eventually end up in a single,
+flat directory.}
+\begin{itemize}
+ \item[] \texttt{hgbtheme-default-logo.pdf}
+\end{itemize}
+%
+which contains the logo graphics used by that theme.
+
+To \emph{use} a specific theme, option \texttt{theme=\textit{themeID}}
+is added to the \verb!\documentclass! command, for example,
+\begin{itemize}
+ \item[] \verb!\documentclass[theme=default,...]{hgbthesis}!
+\end{itemize}
+
+
+\subsection{Customizing themes}
+\label{sec:CustomizingThemes}
+
+To customize the title page setup to their needs, authors (or administrators) should
+\emph{not} modify any of the standard theme files, since these may not be local but loaded
+from a package distribution.
+There are two recommended ways instead:
+
+\subsubsection{Option 1: Adapt \texttt{hgbtheme-custom.sty}}
+
+Copy the theme file \texttt{hgbtheme-custom.sty} (which is part of this distribution) to the
+\emph{main document directory} (if not there already) and open it in your LaTeX editor.
+It defines \texttt{hgbtheme-default.sty} as the parent theme by the initial command
+\begin{LaTeXCode}[numbers=none]
+\hgb at UseTheme{default}
+\end{LaTeXCode}
+%
+All commands defined in the parent theme are visible and may be redefined,
+typically by \verb!\renewcommand! (see Sec.\ \ref{sec:ThemeStyleCommands}
+for available commands).
+To activate the associated theme simply use \texttt{custom} as the \texttt{\textit{themeID}}
+in the associated document option, \ie,
+%
+\begin{LaTeXCode}[numbers=none]
+\documentclass[theme=custom,...]{hgbthesis}
+\end{LaTeXCode}
+%
+This is the simplest approach if only a \emph{single} custom theme is needed.
+
+\subsubsection{Option 2: Create multiple custom themes}
+
+Thesis administrators may find it useful to define \emph{multiple} custom themes for their
+institution or department(s).
+For this purpose, simply copy file \texttt{hgbtheme-default.sty} or \texttt{hgbtheme-custom.sty}
+to a new file, \eg, \texttt{hgbtheme-physics.sty},%
+\footnote{To be placed in the main document directory. Note the naming conventions!}
+and modify it accordingly. The associated theme can then be invoked by
+%
+\begin{LaTeXCode}[numbers=none]
+\documentclass[theme=physics,...]{hgbthesis}
+\end{LaTeXCode}
+%
+An error will be raised if the associated \texttt{.sty} file cannot be found.
+
+
+
+\subsection{Commands and variables available to custom theme styles}
+\label{sec:ThemeStyleCommands}
+
+Any theme style must at least define the command
+\begin{itemize}
+ \item[] \verb!\hgb at MakeFrontPages{..}!
+\end{itemize}
+which is pre-defined (as throwing an error) in \texttt{hgbthesis.cls}
+and invoked by \verb!\maketitle!.
+If \texttt{default} is used as the parent theme, \verb!\hgb at MakeFrontPages!
+is already set up properly and redefinition is optional, \ie,
+%
+\begin{LaTeXCode}[numbers=none]
+\hgb at UseTheme{default} % parent theme
+\renewcommand{\hgb at MakeFrontPages}{..} % optional
+\end{LaTeXCode}
+%
+
+\noindent
+Moreover, the following macros and variables are assured to be available for defining custom themes
+(see \texttt{hgbtheme-default.sty} for their typical usage).
+These are defined in \texttt{hgbthesis.cls} and should \emph{not} be redefined:
+%
+\begin{itemize}
+ \item[] \verb!\hgb at Author!
+ \item[] \verb!\hgb at Title!
+ \item[] \verb!\hgb at SubTitle!
+ \item[] \verb!\hgb at Institution!
+ \item[] \verb!\hgb at ProgramType!
+ \item[] \verb!\hgb at ProgramName!
+ \item[] \verb!\hgb at PlaceOfStudy!
+\medskip
+ \item[] \verb!\hgb at ThesisName!
+ \item[] \verb!\hgb at ProposalName!
+\medskip
+ \item[] \verb!\hgb at AdvisorCount!
+ \item[] \verb!\hgb at getAdvisorRole{<number>}!
+ \item[] \verb!\hgb at getAdvisorName{<number>}!
+\medskip
+ \item[] \verb!\hgb at MainLanguage!
+ \item[] \verb!\hgb at TitleLanguage!
+ \item[] \verb!\hgb at TitlePageFont!
+ %\item[] \verb!\hgb at LogoFile!
+\medskip
+ %\item[] \verb!\hgb at Advisor!
+ \item[] \verb!\hgb at SubmissionYear!
+ \item[] \verb!\hgb at SubmissionMonth!
+ \item[] \verb!\hgb at SubmissionDay!
+ \item[] \verb!\hgb at GetMonthName{<language>}{<monthnumber>}!
+\medskip
+ \item[] \verb!\hgb at License!
+\medskip
+ \item[] \verb!hgb at IsProposal! (\emph{boolean}, without \verb!\!)
+\end{itemize}
+
+\noindent
+Class \texttt{hgbthesis.cls} also defines a special \emph{hook}
+\begin{itemize}
+\item[] \verb!hgb at InitThemeHook!
+\end{itemize}
+for adding custom initialization code for the current theme in the form
+%
+\begin{LaTeXCode}[numbers=none]
+\AddToHook{hgb at InitThemeHook}{<initialization code>},
+\end{LaTeXCode}
+%
+typically placed at the beginning of the theme file. The collected code for
+this hook is executed immediately \emph{before} \verb!\maketitle!.
+
+
+In addition, theme \texttt{hgbtheme-default.sty} defines the following
+commands for generating individual title pages:
+%
+\begin{itemize}
+ \item[] \verb!\hgb at MakeTitlePage!
+ \item[] \verb!\hgb at MakeAdvisorPage!
+ \item[] \verb!\hgb at MakeCopyrightPage!
+ \item[] \verb!\hgb at MakeDeclarationPage!
+\end{itemize}
+%
+Each of these may be redefined by inheriting themes.
+
\section{Package dependencies}
\begin{sloppypar}
-The \texttt{hagenberg-thesis} package builds on the following \latex\
-packages:\newline
+The \texttt{hagenberg-thesis} package builds on the following \latex\ packages:\newline
\texttt{abstract},
\texttt{algorithm},
\texttt{algorithmicx},
@@ -378,11 +637,12 @@
\texttt{datetime2},
\texttt{enumitem},
\texttt{epstopdf},
-\texttt{eurosym},
-\texttt{exscale},
+\texttt{exscale},
+\texttt{extramarks},
\texttt{fancyhdr},
\texttt{float},
-\texttt{fontenc},
+\texttt{fontenc},
+\texttt{forloop},
\texttt{geometry},
\texttt{graphicx},
\texttt{hypcap},
@@ -390,10 +650,13 @@
\texttt{ifpdf},
\texttt{inputenc},
\texttt{lengthconvert},
+\texttt{lineno},
\texttt{listingsutf8},
-\texttt{lmodern},
+\texttt{lmodern},
+\texttt{marvosym},
\texttt{moreverb},
\texttt{overpic},
+\texttt{pdfmanagement-testphase},
\texttt{pdfpages},
\texttt{pict2e},
\texttt{subdepth},
Added: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-default-logo.pdf
===================================================================
(Binary files differ)
Index: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-default-logo.pdf
===================================================================
--- branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-default-logo.pdf 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-default-logo.pdf 2025-02-24 20:31:09 UTC (rev 74267)
Property changes on: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-default-logo.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-fhooe24-coverbackground.pdf
===================================================================
(Binary files differ)
Index: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-fhooe24-coverbackground.pdf
===================================================================
--- branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-fhooe24-coverbackground.pdf 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-fhooe24-coverbackground.pdf 2025-02-24 20:31:09 UTC (rev 74267)
Property changes on: branches/branch2024.final/Master/texmf-dist/doc/latex/hagenberg-thesis/hgbtheme-fhooe24-coverbackground.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -2,35 +2,39 @@
%% This file is part of the Hagenberg Thesis package for creating bachelors's and masters's theses
%% Author: Wilhelm Burger (wilbur at ieee.org)
%% GitHub: https://github.com/Digital-Media/HagenbergThesis
-%% File encoding: ASCII
+%% File encoding: UTF-8
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{hgb}[2023/02/13]%%AUTO
+\ProvidesPackage{hgb}[2025/02/24]%%AUTO
\typeout{******************* hgb.sty (options=\@nameuse{opt at hgb.sty}) ***********************}
% Create a default/fallback main language so it is set no matter what
-\providecommand{\hgb at MainLanguage}{german}
+\providecommand{\hgb at MainLanguage}{german} % also defined in hgbthesis.cls
+\providecommand{\hgb at TitleLanguage}{} % also defined in hgbthesis.cls
+
\RequirePackage{xifthen}
+\RequirePackage{hgbdict}
\newboolean{hgb at SmartQuotesOn}
\setboolean{hgb at SmartQuotesOn}{false} % smart quotes are turned off by default
-\newboolean{hgb at noUpdateCheck}
-\setboolean{hgb at noUpdateCheck}{false} % update check is perfomed by default
+\newboolean{hgb at NoUpdateCheck}
+\setboolean{hgb at NoUpdateCheck}{false} % update check is perfomed by default
% Handle package options passed from the class file
-\DeclareOption{english}{\renewcommand{\hgb at MainLanguage}{english}}
-\DeclareOption{german}{\renewcommand{\hgb at MainLanguage}{german}}
-\DeclareOption{ngerman}{\renewcommand{\hgb at MainLanguage}{german}}
-\DeclareOption{smartquotes}{\setboolean{hgb at SmartQuotesOn}{true}}
-\DeclareOption{noUpdateCheck}{\setboolean{hgb at noUpdateCheck}{true}}
-\DeclareOption*{\ClassWarning{hgb}{Unknown option '\CurrentOption'.}}
+% Language options are not passed through by hgbthesis.cls!
+\DeclareOption{english}{\renewcommand{\hgb at MainLanguage}{english}\typeout{hgb.sty: option 'english' used}}
+\DeclareOption{german}{\renewcommand{\hgb at MainLanguage}{german}\typeout{hgb.sty: option 'german' used}}
+\DeclareOption{ngerman}{\renewcommand{\hgb at MainLanguage}{german}\typeout{hgb.sty: option 'ngerman' used}}
+
+\DeclareOption{smartquotes}{\setboolean{hgb at SmartQuotesOn}{true}\typeout{hgb.sty: option 'smartquotes' used}}
+\DeclareOption{noUpdateCheck}{\setboolean{hgb at NoUpdateCheck}{true}}
+\DeclareOption*{\PackageWarning{hgb}{Unknown option '\CurrentOption'.}}
\ProcessOptions*
%% Required Packages ----------------------------------------------------------
-
\RequirePackage{lmodern} % use Latin Modern Fonts
\RequirePackage{cmap} % make generated PDF files "searchable and copyable"
\RequirePackage[utf8]{inputenc}
@@ -38,31 +42,63 @@
% Set main language by selectively loading babel with the 'main' parameter (babel 3.9+)
\ifthenelse{\equal{\hgb at MainLanguage}{german}}%
- {\RequirePackage[english,main=ngerman]{babel}}{}
+ {\RequirePackage[main=ngerman,english]{babel}}{}
\ifthenelse{\equal{\hgb at MainLanguage}{english}}%
{\RequirePackage[main=english,ngerman]{babel}}{}
-%% Setup for smart quotes (csquotes package) -- experimental! ----------------------------------
-
-\ifthenelse{\boolean{hgb at SmartQuotesOn}}{
+% If title language has not been set make it the same as main language:
+\ifthenelse{\equal{\hgb at TitleLanguage}{}}%
+ {\renewcommand{\hgb at TitleLanguage}{\hgb at MainLanguage}}{}%
+
+%% Setup for smart quotes (csquotes package) ----------------------------------
+
+\newcommand{\SmartQuotesActive}{'csquotes' not loaded}
+
+% Turn smartquotes on depending on document settings:
+\newcommand{\@SmartQuotesRefresh}{%
+ \ifthenelse{\boolean{hgb at SmartQuotesOn}}{\@enablequotes}{}% instead of '\EnableQuotes' to allow smartquotes in preamble
+}
+
+\ifthenelse{\boolean{hgb at SmartQuotesOn}}{%
\languageshorthands{none}% %% turn off babel's shorthands (permanently)
\usepackage[autostyle=true,german=quotes]{csquotes}%
\MakeOuterQuote{"}%
- \EnableQuotes}{}
+ \renewcommand{\SmartQuotesActive}{\iftoggle{csq at active}{true}{false}}%
+ \@SmartQuotesRefresh}%
+{}%
-%% Language environments ------------------------------------------------------
-% Switch from German to English (babel)
+%% Language setting commands and environments (babel) -------------------------
+
+% Switch to the specified language. This is only a wrapper around babel's \selectlanguage{} command,
+% replacing 'german' by 'ngerman'.
+\newcommand{\SetLanguage}[1]{% usage example: \SetLanguage{english}
+ \edef\@tmpLang{#1}% must expand argument!
+ \ifthenelse{\equal{\@tmpLang}{german}}{\def\@tmpLang{ngerman}}{}% needed to make babel treat 'german' as 'ngerman'
+ \selectlanguage{\@tmpLang}%
+ %\ifthenelse{\boolean{hgb at SmartQuotesOn}}{\@enablequotes}{}
+ \@SmartQuotesRefresh\ignorespaces% needed!
+}
+
+% Temporarily switch to another language
+\newenvironment{SwitchLanguage}[1]{% usage example: \begin{SwitchLanguage}{english} ... \end{SwitchLanguage}
+ \edef\@tmpLang{#1}% must expand argument!
+ \ifthenelse{\equal{\@tmpLang}{german}}{\def\@tmpLang{ngerman}}{}% needed to make babel treat 'german' as 'ngerman'
+ \begin{otherlanguage}{\@tmpLang}%
+ %\ifthenelse{\boolean{hgb at SmartQuotesOn}}{\@enablequotes}{}%
+ \@SmartQuotesRefresh\ignorespaces% needed!
+}%
+{\end{otherlanguage}\ignorespacesafterend}%
+
+% Temporarily switch to English (short for '\begin{SwitchLanguage}{english} ... \end{SwitchLanguage}')
\newenvironment{english}%
-{\begin{otherlanguage}{english}%
- \ifthenelse{\boolean{hgb at SmartQuotesOn}}{\EnableQuotes}{}}%
-{\end{otherlanguage}\ignorespacesafterend}%
+ {\begin{SwitchLanguage}{english}}%
+ {\end{SwitchLanguage}\ignorespacesafterend}%
-% Switch from English to German (babel)
+% Temporarily switch to German (short for '\begin{SwitchLanguage}{german} ... \end{SwitchLanguage}')
\newenvironment{german}%
-{\begin{otherlanguage}{ngerman}%
- \ifthenelse{\boolean{hgb at SmartQuotesOn}}{\EnableQuotes}{}}%
-{\end{otherlanguage}}%
+ {\begin{SwitchLanguage}{german}}%
+ {\end{SwitchLanguage}\ignorespacesafterend}%
%% Date-related stuff ---------------------------------------------------------
@@ -81,14 +117,16 @@
%\DTMdate{\myYear-\myMonth-\myDay}%
}
-\PackageToDTMdate{\hgbDate}{hgbPackageDate} % converts package date to DTM format: \DTMusedate{hgbPackageDate}
-\DTMsavenoparsedate{hgbToday}{\the\year}{\the\month}{\the\day}{-1} % today's date in DTM format: \DTMusedate{hgbToday}
+\PackageToDTMdate{\hgbDate}{hgb at PackageDate} % converts package date to DTM format: \DTMusedate{hgbPackageDate}
+\DTMsavenow{hgb at Today} % today's date in DTM format: \DTMusedate{hgbToday}
-\newcounter{hgbAgeLimit}\setcounter{hgbAgeLimit}{365} % warn if package is older than 1 year
+\newcounter{hgb at AgeLimit}
+\setcounter{hgb at AgeLimit}{365} % warn if package is older than 1 year
+
\newcount\hgbAge
-\DTMsaveddatediff{hgbToday}{hgbPackageDate}{\hgbAge}
+\DTMsaveddatediff{hgb at Today}{hgb at PackageDate}{\hgbAge}
-\newcommand{\hgbWarnOldPackage}[1]{\PackageWarning{hagenberg-thesis}{%
+\newcommand{\hgb at WarnOldPackage}[1]{\PackageWarning{hagenberg-thesis}{%
^^J****************************************************************
^^JNOTE: 'hagenberg-thesis' is #1 days old - pls. check for updates
^^Jat https://github.com/Digital-Media/HagenbergThesis
@@ -96,15 +134,20 @@
^^J} % https://tex.stackexchange.com/questions/6529/newline-linebreak-in-message
}
-\ifthenelse{\hgbAge>\value{hgbAgeLimit} \AND \NOT \boolean{hgb at noUpdateCheck}}%
- {\hgbWarnOldPackage{\the\hgbAge}}{}
+\ifthenelse{\hgbAge>\value{hgb at AgeLimit} \AND \NOT \boolean{hgb at NoUpdateCheck}}%
+ {\hgb at WarnOldPackage{\the\hgbAge}}{}
%% ------------------------------------------------------
\RequirePackage{upquote} % uses "right" quotes in the verbatim environment
-\RequirePackage{eurosym} % provides \euro - conflict with marvosym on \EUR!
+\RequirePackage{marvosym}
+\providecommand{\euro}[0]{\EUR\xspace} % for compatibility with 'eurosym' macro
+\RequirePackage{soul} % for inserting additional space between letters
+ \let\@addspaces\so % rename soul's \so command to @addspaces
+ \let\so\relax % shadow \so command (already defined in hgbabbrev.sty)
+
\RequirePackage{graphicx}
\RequirePackage[percent]{overpic} % to allow text/graphics overlays on pictures
\RequirePackage{pict2e} % extends the LaTeX 'picture' environment
@@ -130,15 +173,14 @@
%% hyperref Setup -------------------------------------------------------------
-
\RequirePackage[unicode]{hyperref} % utf8-change
\hypersetup{
- linktocpage = true, % make page number, not text, be link on TOC, LOF and LOT
- colorlinks = false, % don't uses colored links (because this shows up in printing!)
- pdfborder = {0 0 0.5}, % use a thinner (0.5pt) border around all PDF links
- allbordercolors = {0 0 0.8}, % dark blue border for all types of links
- breaklinks = true % allow links to break over lines by making links over multiple lines
-} %see https://www.tug.org/applications/hyperref/manual.html
+ linktocpage=true, % make page number, not text, be link on TOC, LOF and LOT
+ colorlinks=false, % don't uses colored links (because this shows up in printing!)
+ pdfborder={0 0 0.5}, % use a thinner (0.5pt) border around all PDF links
+ allbordercolors={blue}, % this only works with a named color, any effect?
+ %breaklinks = true % allow links to break over lines by making links over multiple lines (obsolete)
+}
% Redefine certain commands for bookmarks and meta-data
\let\oldand\and
@@ -188,6 +230,17 @@
\newcommand{\ShowParameter}[1]{\the#1\showthe#1} % to display TeX parameters
%Beispiel: clubpenalty = \ShowParameter{\clubpenalty}
+% The supplied text is formatted either justified or centered, depending on its length
+% (modeled after internal \@makecaption macro).
+\newcommand{\hgbJustifyOrCenter}[1]{
+ \sbox\@tempboxa{#1}%
+ \ifdim \wd\@tempboxa >\hsize
+ \begin{sloppypar}\noindent#1\end{sloppypar} % long text, format as block
+ \else
+ \global \@minipagefalse
+ \hb at xt@\hsize{\hfil\box\@tempboxa\hfil}% % short text, format centered
+ \fi
+}
%% Layout Settings ------------------------------------------------------------
@@ -213,7 +266,6 @@
\renewcommand{\footnote}[1]{\@WarnFootnoteInCaption\relax}#1}
\captionsetup{textformat=nofootnotes}
-
% Make float placement easier
\renewcommand{\floatpagefraction}{.9} % previously: .5
\renewcommand{\textfraction}{.1} % previously: .2
@@ -246,9 +298,6 @@
% Setup for Table of Contents (ToC)
-%\RequirePackage[tocgraduated,tocbreaksstrict]{tocstyle}% %% Note: tocstyle is unsupported!
-%\usetocstyle{classic}%
-
\RequirePackage{tocbasic}% %% tocbasic is part of koma script
\DeclareTOCStyleEntry[entryformat=\bfseries\textsf]{tocline}{chapter}%
@@ -261,13 +310,36 @@
\floatstyle{plain}
\restylefloat*{program}
-
-\ifthenelse{\equal{\bbl at main@language}{german} \or \equal{\bbl at main@language}{ngerman}}%
- {\floatname{program}{Programm}}{}%
-\ifthenelse{\equal{\bbl at main@language}{english}}%
- {\floatname{program}{Program}}{}%
+\hgbDictionarySet{program-env-name}{english}{Program}
+\hgbDictionarySet{program-env-name}{german}{Programm}
+
+%% Add \DocumentMetadata settings ---------------------------------------
+
+\hgbDictionarySet{iso-language-code}{english}{en}
+\hgbDictionarySet{iso-language-code}{german}{de}
+\hgbDictionarySet{iso-language-code}{ngerman}{de}
+\hgbDictionarySet{iso-language-code}{french}{fr}
+% ... etc.
+
+\newcommand{\hgb at SetDocumentMetadata}{%
+ \def\theLang{\hgbDictionaryGet{iso-language-code}{\hgb at MainLanguage}}%
+ \ifthenelse{\equal{\theLang}{\hgbDictionaryUndefined}}%
+ {\PackageWarning{hgb}{Unknown main document language '\hgb at MainLanguage' (set to 'en').}%
+ \DocumentMetadata{lang=en}}% use en as default
+ {\DocumentMetadata{lang=\theLang}}%
+ % there may be more settings to come ...
+}
+
+\AtBeginDocument{%
+ \hgb at SetDocumentMetadata% This may only be called in the document preamble!
+}%
+
+\AtBeginDocument{%
+ \floatname{program}{\hgbDictionaryGet{program-env-name}{\hgb at MainLanguage}}%
+}%
+
%% Experimental items ---------------------------------------------------------
\newenvironment{NarrowList}%
@@ -331,7 +403,6 @@
\RequirePackage{longtable}
\RequirePackage{multirow}
-
%% Prevent subfigure package from being loaded -------------------------------
% The subfigure package is DEPRECATED (see https://ctan.org/pkg/subfigure)!
Modified: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbabbrev.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbabbrev.sty 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbabbrev.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -4,12 +4,12 @@
%% GitHub: https://github.com/Digital-Media/HagenbergThesis
%% File encoding: ASCII
-\ProvidesPackage{hgbabbrev}[2023/02/13]%%AUTO
+\ProvidesPackage{hgbabbrev}[2025/02/24]%%AUTO
\newcommand{\latex}{La\-TeX\xspace} % no ornamental LaTeX anymore
-\newcommand{\tex}{TeX\xspace} % no ornamental LaTeX anymore
-\newcommand{\bs}{\textbackslash} % backslash character
-\newcommand{\obnh}{\hskip 0pt } %optional break without hyphen: e.g. PlugIn{\obnh}Filter
+\newcommand{\tex}{TeX\xspace} % no ornamental LaTeX anymore
+\newcommand{\bs}{\textbackslash} % backslash character
+\newcommand{\obnh}{\hskip 0pt} % optional break without hyphen: e.g. PlugIn{\obnh}Filter
%\newcommand{\optbreaknh}{\hskip 0pt } %obsolete, replaced by above
% Miscellaneous abbreviations (in dependance on Jochen Kuepper, jkthesis):
@@ -26,6 +26,7 @@
\newcommand{\etc}{etc.\@\xspace}
\newcommand{\evtl}{evtl.\@\xspace}
\newcommand{\ia}{i.\thinspace{}Allg.\@\xspace}
+\newcommand{\oa}{o.a.\@\xspace}
\newcommand{\sa}{s.\ auch\@\xspace}
\newcommand{\so}{s.\ oben\xspace}
\newcommand{\su}{s.\ unten\@\xspace}
Modified: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbalgo.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbalgo.sty 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbalgo.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -11,7 +11,7 @@
%% GitHub: https://github.com/Digital-Media/HagenbergThesis
%% File encoding: ASCII
-\ProvidesPackage{hgbalgo}[2023/02/13]%%AUTO
+\ProvidesPackage{hgbalgo}[2025/02/24]%%AUTO
\RequirePackage[noEnd=true,indLines=true,italicComments=false]{algpseudocodex} % https://ctan.org/pkg/algpseudocodex
\RequirePackage{calc} % for numeric calculations
Modified: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbarticle.cls
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbarticle.cls 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbarticle.cls 2025-02-24 20:31:09 UTC (rev 74267)
@@ -8,7 +8,7 @@
%% Package Information --------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{hgbarticle}[2023/02/13]%%AUTO
+\ProvidesClass{hgbarticle}[2025/02/24]%%AUTO
\RequirePackage{xifthen}
@@ -17,10 +17,18 @@
\else{\errmessage{hgbarticle: *** LaTeX NOT running in PDF mode ***}}
\fi
+%% Variable definitions -------------------------------------------------------
+
+\newboolean{reviewmode}
+\setboolean{reviewmode}{false}
+
%% Handling class options --------------------------------------------------------------
+\DeclareOption{oneside}{\PassOptionsToClass{\CurrentOption}{article}} % default
+\DeclareOption{twoside}{\PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{twocolumn}{\PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{apa}{\PassOptionsToPackage{\CurrentOption}{hgbbib}}
+\DeclareOption{review}{\setboolean{reviewmode}{true}}
% pass all other options to hgb.sty
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{hgb}}
\ProcessOptions*
@@ -35,12 +43,37 @@
\RequirePackage[top=36mm,bottom=40mm,left=32mm,right=32mm]{geometry} %showframe
\fi%
-\RequirePackage{hgb} % load style file hgb.sty with options registered above
+%% Review mode with line numbers ----------------------------------------------
+\ifthenelse{\boolean{reviewmode}}%
+ {%
+ \if at twocolumn%
+ % When in two-column mode, use switch to display line numbers right of the second column
+ \RequirePackage[mathlines,switch]{lineno}%
+ \else%
+ \RequirePackage[mathlines]{lineno}%
+ \fi%
+ \renewcommand{\linenumberfont}{\sffamily\tiny\color{gray}}%
+ \linenumbers%
+ }%
+ {}%
-%% Set title font to SF
+% load style file hgb.sty with options registered above
+\RequirePackage{hgb}
+
+%% Set title font to SF and inject PDF meta-data
\RequirePackage{titling}
-\renewcommand{\maketitlehooka}{\sffamily}
+\renewcommand{\maketitlehooka}{%
+ \sffamily%
+ \hypersetup{
+ pdftitle={\thetitle}, % \thetitle is defined by titling package (instead of \@title)
+ pdfauthor={\theauthor}, % \theauthor is defined by titling package (instead of \@author)
+ pdfsubject={},
+ pdfcreator={LaTeX using class hgbreport [\hgbDate]},
+ pdfproducer={pdflatex},
+ pdfkeywords={}
+ }%
+}
%% Set abstract name to bold (single column format only)
\if at twocolumn%
@@ -49,20 +82,6 @@
\renewcommand{\abstractnamefont}{\sffamily\small\bfseries}
\fi%
-% Add PDF meta data
-
-\AtBeginDocument{%
- \hypersetup{
- pdftitle={\@title},
- pdfauthor={\@author},
- pdfsubject={},
- pdfcreator={LaTeX using class hgbarticle [\hgbDate]},
- pdfproducer={pdflatex},
- pdfkeywords={}
- }%
-}%
-
-
%% Additional Hagenberg packages ----------------------------------------------
\RequirePackage{hgbmath}
Modified: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbbib.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbbib.sty 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbbib.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -5,7 +5,7 @@
%% GitHub: https://github.com/Digital-Media/HagenbergThesis
%% File encoding: ASCII
-\ProvidesPackage{hgbbib}[2023/02/13]%%AUTO
+\ProvidesPackage{hgbbib}[2025/02/24]%%AUTO
\newcommand{\@bibstyle}{numeric-comp} %% default bibliography style is 'numeric-comp'
\DeclareOption{apa}{\renewcommand{\@bibstyle}{apa}}
@@ -27,20 +27,32 @@
\RequirePackage{csquotes} % recommended for biblatex
+%% set up dictionary terms
+
+\RequirePackage{hgbdict}
+
+\hgbDictionarySet{bibtitle}{english}{References}
+\hgbDictionarySet{bibtitle}{german}{Quellenverzeichnis}
+
+\hgbDictionarySet{bibtitleLiterature}{english}{Literature}
+\hgbDictionarySet{bibtitleLiterature}{german}{Literatur}
+
+\hgbDictionarySet{bibtitleMedia}{english}{Media}
+\hgbDictionarySet{bibtitleMedia}{german}{Medien}
+
+\hgbDictionarySet{bibtitleOnline}{english}{Online sources}
+\hgbDictionarySet{bibtitleOnline}{german}{Online-Quellen}
+
+\hgbDictionarySet{bibtitleSoftware}{english}{Software}
+\hgbDictionarySet{bibtitleSoftware}{german}{Software}
+
%% titles of reference section + 3 categories of references:
-\newcommand{\@bibtitle}{Quellenverzeichnis}
-\newcommand{\@bibtitleLiteratur}{Literatur}
-\newcommand{\@bibtitleMedia}{Medien}
-\newcommand{\@bibtitleOnline}{Online-Quellen}
-\newcommand{\@bibtitleSoftware}{Software}
-\ifthenelse{\equal{\hgb at MainLanguage}{english}}{%
- \renewcommand{\@bibtitle}{References}
- \renewcommand{\@bibtitleLiteratur}{Literature}
- \renewcommand{\@bibtitleMedia}{Media}
- \renewcommand{\@bibtitleOnline}{Online sources}
- \renewcommand{\@bibtitleSoftware}{Software}
-}{}
+\newcommand{\@bibtitle}{\hgbDictionaryGet{bibtitle}{\hgb at MainLanguage}}
+\newcommand{\@bibtitleLiterature}{\hgbDictionaryGet{bibtitleLiterature}{\hgb at MainLanguage}}
+\newcommand{\@bibtitleMedia}{\hgbDictionaryGet{bibtitleMedia}{\hgb at MainLanguage}}
+\newcommand{\@bibtitleOnline}{\hgbDictionaryGet{bibtitleOnline}{\hgb at MainLanguage}}
+\newcommand{\@bibtitleSoftware}{\hgbDictionaryGet{bibtitleSoftware}{\hgb at MainLanguage}}
%% categories for a split bibliography (order of declaration is important!)
\DeclareBibliographyCategory{literature}
@@ -51,8 +63,8 @@
%% headings for the bibliography categories
\defbibheading{literature}{%
\phantomsection%
- \section*{\@bibtitleLiteratur}%
- \addcontentsline{toc}{section}{\@bibtitleLiteratur}%
+ \section*{\@bibtitleLiterature}%
+ \addcontentsline{toc}{section}{\@bibtitleLiterature}%
}
\defbibheading{media}{%
@@ -107,41 +119,70 @@
\addbibresource{#1}%
}
-% Declare a source map so the sorting in \cite commands works across the bib categories
-% The maps need to correspond to the entry types in the bib categories (which can't unfortunately used)
+% Declare a source map so the sorting in \cite commands works across the bib
+% categories. % The maps need to correspond to the entry types in the bib
+% categories (which unfortunately can't be used directly). The source map adds
+% the presort field with values from A to D that is responsible for sorting in
+% the four categories.
\DeclareSourcemap{
- \maps[datatype=bibtex]{
- \map{ % All entry types except for media, software and online
- \pernottype{movie}
- \pernottype{video}
- \pernottype{music}
- \pernottype{audio}
- \pernottype{image}
- \pernottype{software}
- \pernottype{electronic}
- \pernottype{online}
- \pernottype{www}
- \step[fieldset=presort, fieldvalue = {A}]
+ \maps[datatype=bibtex]{
+ \map{ % All entry types except for media, software and online
+ \pernottype{movie}
+ \pernottype{video}
+ \pernottype{music}
+ \pernottype{audio}
+ \pernottype{image}
+ \pernottype{software}
+ \pernottype{electronic}
+ \pernottype{online}
+ \pernottype{www}
+ \step[fieldset=presort, fieldvalue = {A}]
+ }
+ \map{ % media entry types
+ \pertype{movie}
+ \pertype{video}
+ \pertype{music}
+ \pertype{audio}
+ \pertype{image}
+ \step[fieldset=presort, fieldvalue = {B}]
+ }
+ \map{ % software entry types
+ \pertype{software}
+ \pertype{electronic}
+ \step[fieldset=presort, fieldvalue = {C}]
+ }
+ \map{ % online entry types
+ \pertype{online}
+ \pertype{www}
+ \step[fieldset=presort, fieldvalue = {D}]
+ }
}
- \map{ % media entry types
- \pertype{movie}
- \pertype{video}
- \pertype{music}
- \pertype{audio}
- \pertype{image}
- \step[fieldset=presort, fieldvalue = {B}]
+}
+
+% Defines a sorting template for the nosplit option.
+% This is based on Biblatex's nty sorting template but disregards the presort
+% field which is generated by the source map and used to sort the bibliography
+% into the four categories. See Biblatex manual section 4.5.6.
+\DeclareSortingTemplate{nosplit}{
+ \sort[final]{
+ \field{sortkey}
}
- \map{ % software entry types
- \pertype{software}
- \pertype{electronic}
- \step[fieldset=presort, fieldvalue = {C}]
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ \field{sorttitle}
+ \field{title}
}
- \map{ % online entry types
- \pertype{online}
- \pertype{www}
- \step[fieldset=presort, fieldvalue = {D}]
+ \sort{
+ \field{sorttitle}
+ \field{title}
}
- }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
}
%See http://www.jr-x.de/publikationen/latex/tipps/zeilenumbruch.html
@@ -168,13 +209,15 @@
{% create a single bibliography with all entries:
\printbibheading[heading=bibintoc,title={\@bibtitle}]
\begin{bibhyphenation}
- \printbibliography[heading=noheader]
+ \begin{refcontext}[sorting=nosplit]
+ \printbibliography[heading=noheader]
+ \end{refcontext}
\end{bibhyphenation}
- }
+ }%
{% split the bibliography using the predefined categories:
\printbibheading[heading=bibintoc,title={\@bibtitle}]
\begin{bibhyphenation}
- \bibbycategory
+ \bibbycategory
\end{bibhyphenation}
}%
}
Added: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbdict.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbdict.sty (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbdict.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -0,0 +1,110 @@
+%% hgbmath.sty
+%% This file is part of the Hagenberg Thesis package for creating bachelors's and masters's theses
+%% Author: Wilhelm Burger (wilbur at ieee.org)
+%% GitHub: https://github.com/Digital-Media/HagenbergThesis
+%% File encoding: ASCII
+
+%% This package defines a simple dictionary mechanism for terms used in title pages.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{hgbdict}[2025/02/24]%%AUTO
+
+\newcommand{\hgbDictionaryUndefined}{undefined}%
+
+% Usage: \hgbDictionarySet{bachelor-thesis}{english}{Bachelor Thesis}
+% Note: previously existing entry for the same key are replaced!
+\newcommand{\hgbDictionarySet}[3]{% #1=key, #2=lang, #3=term
+ \expandafter\def\csname hgb at dict-#1-#2\endcsname{#3}
+}
+
+% Usage: \hgbDictionaryGet{bachelor-thesis}{english}
+\newcommand{\hgbDictionaryGet}[2]{% #1=key, #2=lang
+\ifcsname hgb at dict-#1-#2\endcsname% \ifdefined, \@ifundefined
+ \csname hgb at dict-#1-#2\endcsname%
+ \else \hgbDictionaryUndefined% Term '#1' is undefined for language '#2'!%
+ \fi
+}
+
+%% ----------------------------------------------------------------------------
+%% Add thesis-relevant dictionary items
+%% ----------------------------------------------------------------------------
+%% Note: don't rely on smart quotes being turned on!
+
+% Front page terms:
+
+\hgbDictionarySet{bachelor-docname}{english}{Bachelor Thesis}
+\hgbDictionarySet{bachelor-docname}{german}{Bachelorarbeit}
+
+\hgbDictionarySet{master-docname}{english}{Master's Thesis}
+\hgbDictionarySet{master-docname}{german}{Masterarbeit}
+
+\hgbDictionarySet{diploma-docname}{english}{Diploma Thesis}
+\hgbDictionarySet{diploma-docname}{german}{Diplomarbeit}
+
+\hgbDictionarySet{phd-docname}{english}{Doctoral Thesis}
+\hgbDictionarySet{phd-docname}{german}{Dissertation}
+
+\hgbDictionarySet{proposal-name}{english}{Proposal}
+\hgbDictionarySet{proposal-name}{german}{Exposè}
+
+\hgbDictionarySet{advisorheader}{english}{Supervisor}
+\hgbDictionarySet{advisorheader}{german}{Betreuer*in}
+
+% Internship-related terms:
+
+\hgbDictionarySet{internship-docname}{english}{Internship Report}
+\hgbDictionarySet{internship-docname}{german}{Praktikumsbericht}
+
+\hgbDictionarySet{internship}{english}{Internship}
+\hgbDictionarySet{internship}{german}{Praktikumsstelle}
+
+\hgbDictionarySet{internship-contact-single}{english}{Contact}
+\hgbDictionarySet{internship-contact-single}{german}{Kontaktperson}
+
+\hgbDictionarySet{internship-contact-multiple}{english}{Contacts}
+\hgbDictionarySet{internship-contact-multiple}{german}{Kontaktpersonen}
+
+% License texts:
+
+\hgbDictionarySet{strictlicense}{english}{All Rights Reserved}
+\hgbDictionarySet{strictlicense}{german}{Alle Rechte vorbehalten}
+
+\hgbDictionarySet{cclicense}{english}{%
+\begin{english}
+ This work is published under the conditions of the \textsf{Creative Commons License}
+ \emph{Attribution-NonCommercial-NoDerivatives 4.0 International} (CC BY-NC-ND 4.0)%
+ ---see \url{https://creativecommons.org/licenses/by-nc-nd/4.0/}.%
+\end{english}
+}
+
+\hgbDictionarySet{cclicense}{german}{%
+\begin{german}
+ Diese Arbeit wird unter den Bedingungen der \textsf{Creative Commons Lizenz}
+ \emph{Attribution-NonCommercial-NoDerivatives 4.0 International} (CC BY-NC-ND 4.0)
+ veröffentlicht -- siehe \url{https://creativecommons.org/licenses/by-nc-nd/4.0/}.%
+\end{german}
+}
+
+% Declarations:
+
+\hgbDictionarySet{declaration-title}{english}{Declaration}
+\hgbDictionarySet{declaration-title}{german}{Erklärung}
+
+\hgbDictionarySet{declaration-text}{english}{%
+\begin{english}
+I hereby declare and confirm that this thesis is entirely the result of my own original work.
+Where other sources of information have been used, they have been indicated as such and properly
+acknowledged. I further declare that this or similar work has not been submitted for credit elsewhere.
+This printed copy is identical to the submitted electronic version.
+\end{english}
+}
+
+\hgbDictionarySet{declaration-text}{german}{%
+\begin{german}
+Ich erkläre eidesstattlich, dass ich die vorliegende Arbeit selbstständig und ohne fremde Hilfe verfasst,
+andere als die angegebenen Quellen nicht benutzt und die den benutzten Quellen entnommenen Stellen als
+solche gekennzeichnet habe. Die Arbeit wurde bisher in gleicher oder ähnlicher Form keiner anderen
+Prüfungsbehörde vorgelegt.
+Die vorliegende, gedruckte Arbeit ist mit dem elektronisch übermittelten Textdokument identisch.
+\end{german}
+}
\ No newline at end of file
Property changes on: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbdict.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbheadings.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbheadings.sty 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbheadings.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -5,32 +5,53 @@
%% GitHub: https://github.com/Digital-Media/HagenbergThesis
%% File encoding: ASCII
-\ProvidesPackage{hgbheadings}[2023/02/13]%%AUTO
+\ProvidesPackage{hgbheadings}[2025/02/24]%%AUTO
\RequirePackage{fancyhdr}
+\RequirePackage{extramarks} % http://mirrors.ctan.org/macros/latex/contrib/fancyhdr/fancyhdr.pdf (p. 20)
\pagestyle{fancy}
\RequirePackage[sf,raggedright]{titlesec} % use sans serif for chapter/section headings
+% Specify the CONTENT to be shown in page headers:
+% See also http://mirrors.ctan.org/macros/latex/contrib/fancyhdr/fancyhdr.pdf (p. 18)
\@ifundefined{chapter}%
- {}%
- {\renewcommand{\chaptermark}[1]{%
+ {% documents without 'chapter' (article etc.)
+ \renewcommand{\sectionmark}[1]{%
+ \markboth{\thesection\ #1}{}}%
+ \renewcommand{\subsectionmark}[1]{%
+ \markright{\thesubsection\ #1}}%
+ }%
+ {% documents with 'chapter' (book etc.)
+ \renewcommand{\chaptermark}[1]{%
\ifthenelse{\value{chapter} < 1}%
{\markboth{#1}{}}%
- {\markboth{\thechapter.\ #1}{}}
- }}
+ {\markboth{\thechapter\ #1}{}}}%
+ \renewcommand{\sectionmark}[1]{%
+ \markright{\thesection\ #1}}%
+ }%
+% Specify the FORMAT of page headers:
\addtolength{\headheight}{\baselineskip}
-\renewcommand{\headrulewidth}{0pt} % thin line under header
-\renewcommand{\footrulewidth}{0pt}
-\fancyhf{} % clear all fields.
-\fancyhead[R]{\sffamily\thepage} %{\bf \rightmark}
-\fancyhead[L]{\sffamily\nouppercase{\leftmark}} %{\slshape \leftmark}
+\renewcommand{\headrulewidth}{0pt} % no line under header
+\renewcommand{\footrulewidth}{0pt} % no line above footer
+\fancyhf{}% clear all header/footer fields
+
+\ifthenelse{\boolean{@twoside}}% @twoside is defined in LaTeX kernel
+ {% twopside:
+ \fancyhead[RO,LE]{\sffamily\thepage}%
+ \fancyhead[LO]{\sffamily\nouppercase{\rightmark}}%
+ \fancyhead[RE]{\sffamily\nouppercase{\firstleftmark}}%
+ }%
+ {% oneside:
+ \fancyhead[R]{\sffamily\thepage}%
+ \fancyhead[L]{\sffamily\nouppercase{\firstleftmark}}%
+ }%
+
\fancypagestyle{plain}{%
- \fancyhf{} % clear all header and footer fields
- \fancyfoot[C]{\sffamily\thepage} % except the center
+ \fancyhf{}% clear all header/footer fields except the center
+ \fancyfoot[C]{\sffamily\thepage}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
}
-
Modified: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgblistings.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgblistings.sty 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgblistings.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -4,7 +4,7 @@
%% GitHub: https://github.com/Digital-Media/HagenbergThesis
%% File encoding: UTF-8
-\ProvidesPackage{hgblistings}[2023/02/13]%%AUTO
+\ProvidesPackage{hgblistings}[2025/02/24]%%AUTO
\RequirePackage{xifthen}
\RequirePackage{textcomp} %% required for upquote option
@@ -406,6 +406,13 @@
#1}}%
{}
+% Code Enivornmente for Scala
+\lstnewenvironment{ScalaCode}[1][]
+{\lstset{%
+ language=Scala,
+ escapeinside={/+}{+/}, % makes "/+" and "+/" available for Latex escapes (labels etc.)
+ #1}}%
+{}
% Language Definition and Code Environment for Swift
\lstdefinelanguage{Swift}
Modified: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbmath.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbmath.sty 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbmath.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -5,7 +5,7 @@
%% File encoding: ASCII
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{hgbmath}[2023/02/13]%%AUTO
+\ProvidesPackage{hgbmath}[2025/02/24]%%AUTO
\RequirePackage{amsmath,amsfonts,amssymb,amsbsy}
\RequirePackage{subdepth} % for positioning of sub and super scripts
Added: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbpdfa.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbpdfa.sty (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbpdfa.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -0,0 +1,24 @@
+%% hgbpdfa.sty
+%% This file is part of the Hagenberg Thesis package for creating bachelors's and masters's theses
+%% Author: Wilhelm Burger (wilbur at ieee.org)
+%% GitHub: https://github.com/Digital-Media/HagenbergThesis
+%% File encoding: ASCII
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{hgbpdfa}[2025/02/24]%%AUTO
+
+%% Setup for producing PDF/A-2B compliant output using the new LaTeX-internal
+%% PDF metadata management features
+%% (see https://ctan.org/tex-archive/macros/latex/contrib/pdfmanagement-testphase).
+%% NOTE: This package must be loaded before the \documentclass statement!
+
+\pdfmajorversion=1
+\pdfminorversion=7 % PDF Version 1.7 (Acrobat 8.x)
+
+\RequirePackage{pdfmanagement-testphase} % only needed before LaTeX 2022-06-01
+\IfPackageAtLeastTF{pdfmanagement-testphase}{2022-09-26}% (Version 0.95s)
+ {}%
+ {\PackageWarning{hgbpdfa}{Package 'pdfmanagement-testphase' 0.95s or higher required, output may not be PDF/A!}}
+
+\DocumentMetadata{pdfstandard=A-2b}
+%% Specification of color profiles may follow here!
Property changes on: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbpdfa.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbreport.cls
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbreport.cls 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbreport.cls 2025-02-24 20:31:09 UTC (rev 74267)
@@ -8,7 +8,7 @@
%% Package Information --------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{hgbreport}[2023/02/13]%%AUTO
+\ProvidesClass{hgbreport}[2025/02/24]%%AUTO
\typeout{****************** hgbreport.cls (options=\@nameuse{opt at hgbreport.cls}) ***********************}
@@ -21,6 +21,8 @@
%% Handling class options --------------------------------------------------------------
+\DeclareOption{oneside}{\PassOptionsToClass{\CurrentOption}{report}} %default
+\DeclareOption{twoside}{\PassOptionsToClass{\CurrentOption}{report}}
\DeclareOption{notitlepage}{\PassOptionsToClass{\CurrentOption}{report}}
\DeclareOption{apa}{\PassOptionsToPackage{\CurrentOption}{hgbbib}}
% pass all other options to hgb.sty
@@ -30,35 +32,31 @@
%% Paper options and style file -----------------------------------------------
-\LoadClass[a4paper,11pt,onecolumn]{report}
+\LoadClass[a4paper,11pt]{report}
\RequirePackage[top=36mm,bottom=40mm,left=32mm,right=32mm]{geometry} %showframe
\RequirePackage{hgb} % load style file hgb.sty with options registered above
-%% Set title font to SF
+%% Set title font to SF and inject PDF meta-data
\RequirePackage{titling}
-\renewcommand{\maketitlehooka}{\sffamily}
-
-%% Set abstract name to bold
-\RequirePackage{abstract}%
-\renewcommand{\abstractnamefont}{\sffamily\small\bfseries}
-
-
-% Add PDF meta data
-
-\AtBeginDocument{%
- \hypersetup{
- pdftitle={\@title},
- pdfauthor={\@author},
+\renewcommand{\maketitlehooka}{%
+ \sffamily%
+ \hypersetup{
+ pdftitle={\thetitle}, % \thetitle is defined by titling package (instead of \@title)
+ pdfauthor={\theauthor}, % \theauthor is defined by titling package (instead of \@author)
pdfsubject={},
pdfcreator={LaTeX using class hgbreport [\hgbDate]},
pdfproducer={pdflatex},
pdfkeywords={}
}%
-}%
+}
+%% Set abstract name to bold
+\RequirePackage{abstract}%
+\renewcommand{\abstractnamefont}{\sffamily\small\bfseries}
+
%% Additional Hagenberg packages ----------------------------------------------
\RequirePackage{hgbmath}
Added: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-custom.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-custom.sty (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-custom.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -0,0 +1,16 @@
+%% This file is part of the Hagenberg Thesis package
+%% Author: Wilhelm Burger (wilbur at ieee.org)
+%% GitHub: https://github.com/Digital-Media/HagenbergThesis
+%% File encoding: UTF-8
+
+\ProvidesPackage{hgbtheme-custom}[2025/02/24]%%AUTO
+\hgb at UseTheme{default}% parent theme
+
+\hgbDictionarySet{special-thesis}{english}{Special Thesis}% edit!
+\hgbDictionarySet{special-thesis}{german}{Spezialarbeit}% edit!
+
+\renewcommand{\hgb at ThesisName}{\hgbDictionaryGet{special-thesis}{\hgb at TitleLanguage}}
+
+\AddToHook{hgb at InitThemeHook}{%
+ % add initialization code if needed
+}%
\ No newline at end of file
Property changes on: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-custom.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-default.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-default.sty (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-default.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -0,0 +1,226 @@
+%% This file is part of the Hagenberg Thesis package
+%% Author: Wilhelm Burger (wilbur at ieee.org)
+%% GitHub: https://github.com/Digital-Media/HagenbergThesis
+%% File encoding: UTF-8
+
+\ProvidesPackage{hgbtheme-default}[2025/02/24]%%AUTO
+\RequirePackage{hgbdict}
+\RequirePackage{forloop}
+\RequirePackage[absolute]{textpos}
+
+% Define a grid of 10mm squares so there's 21 horizontal and 29 vertical ones
+\setlength{\TPHorizModule}{10mm}
+\setlength{\TPVertModule}{\TPHorizModule}
+
+%% Define various language-dependent text chunks to be used below -------------
+
+\hgbDictionarySet{submitted-to}{german}{eingereicht am}%
+\hgbDictionarySet{submitted-to}{english}{submitted to the}%
+
+\hgbDictionarySet{at-place-of-study}{german}{an der}%
+\hgbDictionarySet{at-place-of-study}{english}{at the}%
+
+\hgbDictionarySet{declaration-date}{english}%
+ {\hgb at GetMonthName{english}{\hgb at SubmissionMonth} \hgb at SubmissionDay, \hgb at SubmissionYear}%
+\hgbDictionarySet{declaration-date}{german}%
+ {am \hgb at SubmissionDay.~\hgb at GetMonthName{german}{\hgb at SubmissionMonth} \hgb at SubmissionYear}%
+
+%% Use the default logo if unspecified (and not empty):
+
+\ifthenelse{\equal{\hgb at LogoFile}{@unspecified}}%
+ {\renewcommand{\hgb at LogoFile}{hgbtheme-default-logo.pdf}}{}%
+
+%% Initialization (optional) --------------------------------------------------
+
+\AddToHook{hgb at InitThemeHook}{%
+ % add initialization code if needed
+}%
+
+%% Structure of front pages ---------------------------------------------------
+
+\renewcommand{\hgb at MakeFrontPages}{ %% stub defined in hgbthesis.cls
+ \hgb at MakeTitlePage%
+ \ifthenelse{\equal{\hgb at ThesisType}{internship}}%
+ {\hgb at MakeCompanyPage}%
+ {}%
+ \ifthenelse{\boolean{hgb at IsProposal}}%
+ {}% no copyright/declaration pages for proposals
+ {%
+ \hgb at MakeCopyrightPage%
+ \hgb at MakeDeclarationPage%
+ }%
+}%
+
+%% Title page ---------------------------------------------------
+
+\newcommand{\hgb at MakeTitlePage}{%
+\begin{titlepage}%
+ \hgb at TitlePageFont%
+
+ % title and subtitle --------------------------------------------------
+ \begin{SwitchLanguage}{\hgb at MainLanguage}% thesis title is assumed to be in main document language!
+ \begin{textblock}{15}[0,1](3,7)
+ \centering
+ {\LARGE\bfseries\linespread{1.0}\selectfont\hgb at Title\par}%
+ \ifthenelse{\equal{\hgb at SubTitle}{}}%
+ {}% no subtitle defined
+ {%
+ \par\vspace{4mm}% separating space between title and subtitle
+ {\Large\bfseries\linespread{1.0}\selectfont\hgb at SubTitle\par}%
+ }%
+ \end{textblock}
+ \end{SwitchLanguage}%
+
+ % author --------------------------------------------------
+ \begin{textblock}{15}[0,0.5](3,9)
+ \centering
+ {\large\hgb at Author\par}%
+ \end{textblock}
+
+ % logo --------------------------------------------------
+ \begin{textblock}{15}(3,11)
+ \centering
+ \hgb at MakeLogo%
+ \end{textblock}
+
+ % thesis type ---------------------------------------------
+ \begin{textblock}{15}[0,0.5](3,16)
+ \centering
+ {\Large\@addspaces{\MakeUppercase{\hgb at ThesisName}}%
+ \ifthenelse{\boolean{hgb at IsProposal}}%
+ {\space\space(\@addspaces{\MakeUppercase{\hgb at ProposalName}})}{}\par}
+ \end{textblock}
+
+ % program type, program name, institution, place of study ---------------------------------
+ \begin{textblock}{15}(3,18)
+ \centering
+ {\hgbDictionaryGet{submitted-to}{\hgb at TitleLanguage}\par}%
+ \vspace{1mm}%
+ {\large \hgb at ProgramType\par}%
+ \vspace{1mm}%
+ {\large\hgb at ProgramName\par}%
+ \vspace{4mm}%
+ {\hgbDictionaryGet{at-place-of-study}{\hgb at TitleLanguage}\par}%
+ \vspace{1mm}%
+ {\large\hgb at Institution\par}%
+ \vspace{1mm}%
+ {\large in \hgb at PlaceOfStudy\par}%
+ \end{textblock}
+
+ % submission year ---------------------------------
+ \begin{textblock}{15}(3,23)
+ \centering
+ {\large\hgb at SubmissionYear\par}%
+ \end{textblock}
+
+ % advisors(s) (do not show for internship report) -------------------------------------
+ \ifthenelse{\equal{\hgb at ThesisType}{internship}}%
+ {}%
+ {%
+ \begin{textblock}{15}(3,25)
+ \centering
+ \ifthenelse{\hgb at AdvisorCount > 0}%
+ {%
+ \@makeAdvisorTable% defined below
+ }
+ {%
+ \color{red}No advisor(s) specified!\\
+ }%
+ \end{textblock}
+ }%
+
+ \null% required to tell LaTeX that there is a non-empty content box
+\end{titlepage}%
+}
+
+%% Logo Generation ----------------------------------------
+
+\newlength{\hgb at LogoHeight}
+\setlength{\hgb at LogoHeight}{3\TPVertModule} % logo is 3 grid fields (30mm) high
+
+\newcommand{\hgb at MakeLogo}[0]{%
+\ifthenelse{\equal{\hgb at LogoFile}{}}% check if \hgb at LogoFile is empty (not @unspecified)
+ {\vspace*{\hgb at LogoHeight}}% skip logo
+ {\includegraphics[height=\hgb at LogoHeight]{\hgb at LogoFile}}% insert logo
+}
+
+%% Advisor Table ----------------------------------------
+
+\newcommand{\@makeAdvisorTable}{%
+ \newcounter{C}%
+ \renewcommand{\arraystretch}{1.25}%
+ \setlength{\tabcolsep}{0.4em}%
+ \begin{tabular}{ll}%
+ \forloop{C}{1}{\not{\value{C} > \hgb at AdvisorCount}}{% see 'forloop' package
+ \hgb at getAdvisorRole{\theC}: & \hgb at getAdvisorName{\theC}%
+ \ifthenelse{\value{C} < \hgb at AdvisorCount}{\\}{}% avoid extra \\ in last line!
+ }%
+ \end{tabular}%
+}
+
+% Copyright/License Page ----------------------------------------
+
+\newcommand{\hgb at MakeCopyrightPage}{%
+ \newpage
+ \thispagestyle{plain}
+ \rule{0mm}{1mm}
+ \vspace*{75mm}
+ \begin{center}
+ \textsf{\copyright\ Copyright\ \hgb at SubmissionYear\ \hgb at Author}
+ \end{center}
+ \vspace{8mm}
+ \hgbJustifyOrCenter{\hgbDictionaryGet{\hgb at License}{\hgb at TitleLanguage}} % defined above
+}
+
+% Declaration Page ----------------------------------------
+
+\newcommand{\hgb at MakeDeclarationPage}{
+ \chapter{\hgbDictionaryGet{declaration-title}{\hgb at TitleLanguage}}
+ \noindent%
+ \hgbDictionaryGet{declaration-text}{\hgb at TitleLanguage}%
+ \par
+ \vspace{10mm}
+ \noindent
+ {\hgb at PlaceOfStudy, \hgbDictionaryGet{declaration-date}{\hgb at TitleLanguage}}%
+ \par
+ \vspace{12mm}
+ \noindent
+ \hgb at Author
+}
+
+%% Company Page for Internship Reports ------------------------------
+
+\newcommand{\hgb at MakeCompanyPage}{%
+ \newpage
+ \thispagestyle{plain}
+ \rule{0mm}{1mm}
+ \begin{center}
+ \vspace{25mm}
+ {\hgbDictionaryGet{internship}{\hgb at TitleLanguage}:}
+ \\
+ \vspace{3mm}
+ {\Large\sf\hgb at CompanyName\\ \mbox{}}
+ \\
+ {\sf \hgb at CompanyUrl}
+ \\
+ \vspace{45mm}
+ \ifthenelse{\hgb at AdvisorCount = 1}%
+ {%
+ {\hgbDictionaryGet{internship-contact-single}{\hgb at TitleLanguage}:}%
+ }%
+ {}%
+ \ifthenelse{\hgb at AdvisorCount > 1}%
+ {%
+ {\hgbDictionaryGet{internship-contact-multiple}{\hgb at TitleLanguage}:}%
+ }%
+ {}%
+ \par\vspace{6mm}%
+ \ifthenelse{\hgb at AdvisorCount > 0}%
+ {%
+ \large\sffamily\@makeAdvisorTable% defined above
+ }%
+ {%
+ \color{red}No advisor(s) specified!\\
+ }%
+ \end{center}
+}
Property changes on: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-default.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-fhooe24.sty
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-fhooe24.sty (rev 0)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-fhooe24.sty 2025-02-24 20:31:09 UTC (rev 74267)
@@ -0,0 +1,201 @@
+%% This file is part of the Hagenberg Thesis package
+%% Author: Wilhelm Burger (wilbur at ieee.org)
+%% GitHub: https://github.com/Digital-Media/HagenbergThesis
+%% File encoding: UTF-8
+
+\ProvidesPackage{hgbtheme-fhooe24}[2025/02/24]%%AUTO
+\RequirePackage{hgbdict}
+\RequirePackage{forloop}
+\RequirePackage{tikz}
+\RequirePackage[absolute]{textpos}
+
+% FH OÖ CD defines 15 square boxes horizontally on the page, thus one is 14mm wide
+\setlength{\TPHorizModule}{14mm}
+\setlength{\TPVertModule}{\TPHorizModule}
+
+% Theres a margin of one box/module in the CD so we set the origin to that to avoid offset
+\textblockorigin{\TPHorizModule}{\TPHorizModule}
+\setlength{\parindent}{0pt}
+
+%% Define various language-dependent text chunks to be used below -------------
+
+\hgbDictionarySet{declaration-date}{english}%
+ {\hgb at GetMonthName{english}{\hgb at SubmissionMonth} \hgb at SubmissionDay, \hgb at SubmissionYear}%
+
+\hgbDictionarySet{declaration-date}{german}%
+ {am \hgb at SubmissionDay.~\hgb at GetMonthName{german}{\hgb at SubmissionMonth} \hgb at SubmissionYear}%
+
+%% Initialization (optional) --------------------------------------------------
+
+\AddToHook{hgb at InitThemeHook}{%
+ \typeout{hgbtheme-fhooe24: initializing theme}%
+ % add initialization code if needed
+}%
+
+%% Structure of front pages ---------------------------------------------------
+
+\renewcommand{\hgb at MakeFrontPages}{ %% stub defined in hgbthesis.cls
+ \hgb at MakeTitlePage%
+ \ifthenelse{\equal{\hgb at ThesisType}{internship}}%
+ {\hgb at MakeCompanyPage}%
+ {}%
+ \ifthenelse{\boolean{hgb at IsProposal}}%
+ {}% no copyright/declaration pages for proposals
+ {%
+ \hgb at MakeCopyrightPage%
+ \hgb at MakeDeclarationPage%
+ }%
+}%
+
+%% Title page ---------------------------------------------------
+
+\newcommand{\hgb at MakeTitlePage}{%
+\begin{titlepage}%
+ % background image -----------------------------------------
+ \AddToHookNext{shipout/background}{
+ \begin{tikzpicture}[remember picture,overlay]
+ \node at (current page.center) {
+ \includegraphics{hgbtheme-fhooe24-coverbackground.pdf} % was 'fhooe-cover'
+ };
+ \end{tikzpicture}
+ }
+
+ \hgb at TitlePageFont%
+
+ % author --------------------------------------------------
+ \begin{textblock}{10}[0,1](0,7)
+ {\Large\hgb at Author\par}%
+ \end{textblock}
+
+ % title --------------------------------------------------
+ \begin{SwitchLanguage}{\hgb at MainLanguage}% thesis title is assumed to be in main document language!
+ \begin{textblock}{10}(0,8)
+ \raggedright% set ragged right to avoid hyphenation
+ {\huge\bfseries\linespread{1.0}\selectfont\hgb at Title\par}%
+ \vspace{5mm}% add space between title and subtitle
+ {\LARGE\bfseries\linespread{1.0}\selectfont\hgb at SubTitle\par}%
+ \end{textblock}
+ \end{SwitchLanguage}%
+
+ % thesis type ---------------------------------------------
+ \begin{textblock}{10}[0,1](0,12)
+ {\Large\@addspaces{\MakeUppercase{\hgb at ThesisName}}%
+ \ifthenelse{\boolean{hgb at IsProposal}}%
+ {\space\space(\@addspaces{\MakeUppercase{\hgb at ProposalName}})}{}\par}
+ \end{textblock}
+
+ % program type, program name ---------------------------------
+ \begin{textblock}{10}(0,13)
+ {\large \hgb at ProgramType\par}%
+ {\large\hgb at ProgramName\par}%
+ \end{textblock}
+
+ % institution, place of study ---------------------------------------------
+ \begin{textblock}{10}(0,14)
+ {\large\hgb at Institution\par}%
+ {\large\hgb at PlaceOfStudy\par}%
+ \end{textblock}
+
+ % submission year ---------------------------------
+ \begin{textblock}{10}[0,1](0,16)
+ {\large\hgb at SubmissionYear\par}%
+ \end{textblock}
+
+ % advisors(s) -------------------------------------
+ \ifthenelse{\equal{\hgb at ThesisType}{internship}}%
+ {}%
+ {%
+ \begin{textblock}{10}(0,17)
+ \ifthenelse{\hgb at AdvisorCount > 0}%
+ {%
+ \@makeAdvisorTable% defined below
+ }%
+ {%
+ \color{red}No advisor(s) specified!\\
+ }%
+ \end{textblock}
+ }%
+
+ \null% required to tell LaTeX that there is a non-empty content box
+\end{titlepage}%
+}
+
+%% Advisor Table ----------------------------------------
+
+\newcommand{\@makeAdvisorTable}{%
+ \newcounter{C}%
+ \renewcommand{\arraystretch}{1.25}%
+ \begin{tabular}{@{}ll@{}}%
+ \forloop{C}{1}{\not{\value{C} > \hgb at AdvisorCount}}{% see 'forloop' package
+ \hgb at getAdvisorRole{\theC}: & \hgb at getAdvisorName{\theC}%
+ \ifthenelse{\value{C} < \hgb at AdvisorCount}{\\}{}% avoid extra \\ in last line!
+ }%
+ \end{tabular}%
+}
+
+%% Copyright/License Page ----------------------------------------
+
+\newcommand{\hgb at MakeCopyrightPage}{%
+ \newpage
+ \thispagestyle{plain}
+ \rule{0mm}{1mm}
+ \vspace*{75mm}
+ \begin{center}
+ \textsf{\copyright\ Copyright\ \hgb at SubmissionYear\ \hgb at Author}
+ \end{center}
+ \vspace{8mm}
+ \hgbJustifyOrCenter{\hgbDictionaryGet{\hgb at License}{\hgb at TitleLanguage}}% defined in hgb.sty
+}
+
+%% Declaration Page ----------------------------------------
+
+\newcommand{\hgb at MakeDeclarationPage}{
+ \chapter{\hgbDictionaryGet{declaration-title}{\hgb at TitleLanguage}}
+ \noindent%
+ \hgbDictionaryGet{declaration-text}{\hgb at TitleLanguage}%
+ \par
+ \vspace{10mm}
+ \noindent
+ {\hgb at PlaceOfStudy, \hgbDictionaryGet{declaration-date}{\hgb at TitleLanguage}}%
+ \par
+ \vspace{12mm}
+ \noindent
+ \hgb at Author
+}
+
+%% Company Page for Internship Reports ------------------------------
+
+\newcommand{\hgb at MakeCompanyPage}{%
+ \newpage
+ \thispagestyle{plain}
+ \rule{0mm}{1mm}
+ \begin{center}
+ \vspace{25mm}
+ {\hgbDictionaryGet{internship}{\hgb at TitleLanguage}:}
+ \\
+ \vspace{3mm}
+ {\Large\sf\hgb at CompanyName\\ \mbox{}}
+ \\
+ {\sf \hgb at CompanyUrl}
+ \\
+ \vspace{45mm}
+ \ifthenelse{\hgb at AdvisorCount = 1}%
+ {%
+ {\hgbDictionaryGet{internship-contact-single}{\hgb at TitleLanguage}:}%
+ }%
+ {}%
+ \ifthenelse{\hgb at AdvisorCount > 1}%
+ {%
+ {\hgbDictionaryGet{internship-contact-multiple}{\hgb at TitleLanguage}:}%
+ }%
+ {}%
+ \par\vspace{6mm}%
+ \ifthenelse{\hgb at AdvisorCount > 0}%
+ {%
+ \large\sffamily\@makeAdvisorTable% defined above
+ }%
+ {%
+ \color{red}No advisor(s) specified!\\
+ }%
+ \end{center}
+}
Property changes on: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbtheme-fhooe24.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbthesis.cls
===================================================================
--- branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbthesis.cls 2025-02-24 20:30:51 UTC (rev 74266)
+++ branches/branch2024.final/Master/texmf-dist/tex/latex/hagenberg-thesis/hgbthesis.cls 2025-02-24 20:31:09 UTC (rev 74267)
@@ -3,12 +3,18 @@
%% This file is part of the Hagenberg Thesis package for creating bachelors's and masters's theses
%% Author: Wilhelm Burger (wilbur at ieee.org)
%% GitHub: https://github.com/Digital-Media/HagenbergThesis
-%% File encoding: ASCII
+%% File encoding: UTF-8
+% Preferences for the naming macros (commands/variables):
+% * internal, undocumented macros (used in release *.cls and *.sty files): \@macroname or \@MacroName
+% * documented internal macros for customizing (eg in theme *.sty files): \hgb at MacroName or \hgb at macroname
+% * documented public macros (available in user documents): \hgbMacroName (preferred), \MacroName or \macroname
+
+
%% Package Information --------------------------------------------------------
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{hgbthesis}[2023/02/13]%%AUTO
+\NeedsTeXFormat{LaTeX2e}[2022/06/01] % recent LaTeX kernel version, must support \DeclareKeys (ltkeys)
+\ProvidesClass{hgbthesis}[2025/02/24]%%AUTO
\RequirePackage{xifthen}
@@ -19,561 +25,310 @@
%% Commands for Title Pages (used in class options) ---------------------------
-\newcommand{\hgb at MainLanguage}{german} % also referenced in hgb.sty
-\newcommand{\@mastertitlepages}{}
-\newcommand{\@diplomatitlepages}{}
-\newcommand{\@bachelortitlepages}{}
-\newcommand{\@internshiptitlepages}{}
-\newcommand{\@maketitlepages}{\@mastertitlepages} %Default: Master's thesis
+\newcommand{\hgb at ThesisType}{master}% type of thesis (theme name)
-\newboolean{hgb at isProposal}
-\setboolean{hgb at isProposal}{false}
+\newcommand{\hgb at MainLanguage}{german}% the main language for this document:
+\newcommand{\hgb at TitleLanguage}{}% the language to be used for the front pages
-\newcommand{\@titlepagefont}{\sffamily}
+\newboolean{hgb at IsProposal} % indicates if this document is a proposal (true) or final thesis (false).
+\setboolean{hgb at IsProposal}{false}
+\newcommand{\hgb at ProposalName}{UNDEFINED}
-%% Handling class options --------------------------------------------------------------
+\newcommand{\hgb@@pagelayout}{oneside}% default to 'oneside' (used locally only in this file!)
-\DeclareOption{bachelor}{\renewcommand{\@maketitlepages}{\@bachelortitlepages}}
-\DeclareOption{master}{\renewcommand{\@maketitlepages}{\@mastertitlepages}}
-\DeclareOption{diploma}{\renewcommand{\@maketitlepages}{\@diplomatitlepages}}
-\DeclareOption{internship}{\renewcommand{\@maketitlepages}{\@internshiptitlepages}}
-\DeclareOption{apa}{\PassOptionsToPackage{\CurrentOption}{hgbbib}}
-\DeclareOption{proposal}{\setboolean{hgb at isProposal}{true}} % use with 'bachelor' or 'master' option
-% pass all other options to hgb.sty
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{hgb}}
-\ProcessOptions*
+%% Utilities for handling class options -------------------------------------
-
-%% Paper Options and Style File -----------------------------------------------
-
-\LoadClass[a4paper,11pt,oneside]{book}
-\RequirePackage[top=36mm,bottom=40mm,left=32mm,right=32mm]{geometry} %showframe
-
-\RequirePackage{hgb} % load style file hgb.sty with options registered above
-
-
-%% Setup for Pages in the Front Matter ----------------------------------------
-
-% General Commands
-
-\newcommand{\@programtype}{\@MissingArg{Type of degree program not specified!}}
-\newcommand{\programtype}[1]{%
- \ifthenelse{\isempty{#1}}{}{\renewcommand{\@programtype}{#1}}
+% Issue warning when using deprecated options:
+\newcommand{\@WarnDeprecatedOption}[2]{% #1=obsolete option, #2=replacement option
+ \ClassWarning{hgbthesis}{option '#1' is deprecated, use '#2' instead!}}%
+
+% Register permissible key/value option, e.g.: \@RegisterClassOption{type}{master}
+\newcommand{\@RegisterClassOption}[2]{% #1=optionKey, #2=optionValue
+ \expandafter\def\csname hgb at keyvalueoption-#1-#2\endcsname{\relax}%
}
-\newcommand{\@programname}{\@MissingArg{Name of degree program not specified!}}
-\newcommand{\programname}[1]{%
- \ifthenelse{\isempty{#1}}{}{\renewcommand{\@programname}{#1}}
+% Check if key/value option is permissible, e.g.: \@ValidateClassOption{type}{master}
+\newcommand{\@ValidateClassOption}[2]{% #1=optionKey, #2=optionValue
+\ifcsname hgb at keyvalueoption-#1-#2\endcsname%
+ {}%
+ \else \ClassError{hgbthesis}{illegal key/value option: #1=#2}\relax%
+ \fi%
}
-\newcommand{\@placeofstudy}{\@MissingArg{Place of study not specified!}}
-\newcommand{\placeofstudy}[1]{%
- \ifthenelse{\isempty{#1}}{}{\renewcommand{\@placeofstudy}{#1}}
-}
+%% Specifiying/loading thesis theme styles ---------------------------------------------------
-\newcommand{\@advisor}{} % empty by default
-\newcommand{\advisor}[1]{%
- \renewcommand{\@advisor}{#1}
-}
+\newcommand{\@ThemeID}{default}% use theme 'hgbtheme-default' if no theme is specified
+\newcommand{\@ThemePrefix}{hgbtheme}% fixed, all theme files are named 'hgbtheme-<themeID>.sty'
-\newcommand{\thesisnumber}[1]{%
- \ClassWarning{hgbthesis}{command '\protect\thesisnumber' is not supported any longer.}
+% The .sty file for the specified theme (#2) is loaded if it exists, otherwise throws an error:
+\newcommand{\hgb at UseTheme}[2][]{% #1=options passed to theme style file, #2=themeID
+ \def\@ThemeName{\@ThemePrefix-#2}
+ \def\@ThemeFile{\@ThemeName.sty}
+ %\typeout{ThemeFile = \@ThemeFile}
+ \IfFileExists{\@ThemeFile}% true if LaTeX can find this file (need not be local!)
+ {\RequirePackage[#1]{\@ThemeName}}% must load immediately, was {\AtEndOfPackage{\usepackage[#1]{\@ThemeName}}}%
+ {\ClassError{hgbthesis}{style file '\@ThemeFile' for theme '#2' could not be found}\relax}%
}
-\newcommand{\coursetitle}[1]{%
- \ClassWarning{hgbthesis}{command '\protect\coursetitle' is not supported any longer.}
-}
+% Class option handling --------------------------------------------------
-\newcommand{\semester}[1]{%
- \ClassWarning{hgbthesis}{command '\protect\semester' is not supported any longer.}
-}
+% Specifiy permissible key/value options:
+\@RegisterClassOption{type}{bachelor}
+\@RegisterClassOption{type}{master}
+\@RegisterClassOption{type}{diploma}
+\@RegisterClassOption{type}{phd}
+\@RegisterClassOption{type}{internship}
-\newcommand{\@logofile}[0]{}
-\newcommand{\logofile}[1]{%
- \renewcommand{\@logofile}{#1}
-}
+\@RegisterClassOption{language}{english}
+\@RegisterClassOption{language}{german}
-\newcommand{\makelogo}[0]{%
-\ifthenelse{\equal{\@logofile}{}}%
- {\vspace*{30mm}}%
- {\includegraphics[height=30mm]{\@logofile}}%
+\@RegisterClassOption{titlelanguage}{english}
+\@RegisterClassOption{titlelanguage}{german}
+
+% We are using the
+% See http://mirrors.ctan.org/macros/latex/base/source2e.pdf (p. 956),
+% https://tex.stackexchange.com/questions/417704/key-value-syntax-in-package-options
+\DeclareKeys{
+ % legacy options (deprecated):
+ bachelor.code = {\renewcommand{\hgb at ThesisType}{bachelor}\@WarnDeprecatedOption{bachelor}{type=bachelor}},
+ master.code = {\renewcommand{\hgb at ThesisType}{master}\@WarnDeprecatedOption{master}{type=master}},
+ diploma.code = {\renewcommand{\hgb at ThesisType}{diploma}\@WarnDeprecatedOption{diploma}{type=diploma}},
+ internship.code = {\renewcommand{\hgb at ThesisType}{internship}\@WarnDeprecatedOption{internship}{type=internship}},
+ % catch old-style language options (for some reason they are still passed to hgb.sty!)
+ german.code = {\renewcommand{\hgb at MainLanguage}{german}\@WarnDeprecatedOption{german}{language=german}},
+ ngerman.code = {\renewcommand{\hgb at MainLanguage}{german}\@WarnDeprecatedOption{ngerman}{language=german}},
+ english.code = {\renewcommand{\hgb at MainLanguage}{english}\@WarnDeprecatedOption{english}{language=english}},
+ % new options
+ type.code = {\@ValidateClassOption{type}{#1}\renewcommand{\hgb at ThesisType}{#1}},
+ theme.code = \renewcommand{\@ThemeID}{#1},
+ language.code = {\@ValidateClassOption{language}{#1}\renewcommand{\hgb at MainLanguage}{#1}},
+ titlelanguage.code = {\@ValidateClassOption{titlelanguage}{#1}\renewcommand{\hgb at TitleLanguage}{#1}},
+ proposal.code = \setboolean{hgb at IsProposal}{#1},
+ proposal.default:n = true, % https://tex.stackexchange.com/a/682260/175415
+ apa.code = \PassOptionsToPackage{\CurrentOption}{hgbbib},
+ apa.default:n = true, % TODO: check if default value is properly passed!
+ %
+ % This works, but default should be 'oneside' for backward compatibility ('twoside' is default for class 'book')
+ %oneside.code = \PassOptionsToClass{\CurrentOption}{book},
+ %twoside.code = \PassOptionsToClass{\CurrentOption}{book},
+ % Instead we define
+ oneside.code = {\renewcommand{\hgb@@pagelayout}{oneside}},
+ twoside.code = {\renewcommand{\hgb@@pagelayout}{twoside}},
}
-% Special sectioning setup for thesis proposals (called in \@bachelortitlepages):
-\newcommand{\@proposalsetup}[0]{%
- % remove "Kapitel 1" (titlesec):
- \titleformat{\chapter}[display]{\sffamily}{}{0pt}{\Huge}
- % define an empty entry format for the TOC chapter numbering (tocbasic)
- \newcommand\noentrynumber[1]{}
- % set empty number and remove indentation for chapter numbering in TOC (tocbasic)
- \DeclareTOCStyleEntry[entrynumberformat=\noentrynumber,numwidth=0pt]{tocline}{chapter}
- % remove chapter number from sections and figures (basic LaTeX):
- \counterwithout{section}{chapter}
- \counterwithout{figure}{chapter}
- \counterwithout{table}{chapter}
- \counterwithout{equation}{chapter}
- \counterwithout{program}{chapter}
- \counterwithout{algorithm}{chapter}
- % remove chapter number from header (fancyhdr):
- \renewcommand{\chaptermark}[1]{\markboth{##1}{}}
+\DeclareUnknownKeyHandler[hgbthesis]{
+ %\typeout{hgbthesis.cls: unknown option \CurrentOption}%
+ \PassOptionsToPackage{\CurrentOption}{hgb}
}
-% Submission Commands
+\ProcessKeyOptions[hgbthesis]
-\newcounter{@dayofsubmission}
-\newcounter{@monthofsubmission}
-\newcounter{@yearofsubmission}
+%% Paper Options and Style File -----------------------------------------------
-\setcounter{@dayofsubmission}{\the\day}
-\setcounter{@monthofsubmission}{\the\month}
-\setcounter{@yearofsubmission}{\the\year}
+%\LoadClass[a4paper,11pt,oneside]{book}
+\LoadClass[a4paper,11pt,\hgb@@pagelayout]{book}
+\RequirePackage[top=36mm,bottom=40mm,left=32mm,right=32mm]{geometry} %showframe
+\RequirePackage{hgb} % load style file hgb.sty with options registered above
+\RequirePackage{titling}
+\newcommand{\hgb at TitlePageFont}{\sffamily}
-\newcommand{\dateofsubmission}[3]{% %\dateofsubmission{yyyy}{mm}{dd}
- \setcounter{@yearofsubmission}{#1}
- \setcounter{@monthofsubmission}{#2}
- \setcounter{@dayofsubmission}{#3}
-}
+%% Setup for Pages in the Front Matter:
-% Internship Report Commands
+% General Thesis Parameters ----------------------------------------
-\newcommand{\@companyName}{\@MissingArg{Company not specified!}}
-\newcommand{\companyName}[1]{%
- \ifthenelse{\isempty{#1}}{}{\renewcommand{\@companyName}{#1}}
-}
+% Initialized from standard '\author{}' parameter (by \maketitle hook below)
+\newcommand{\hgb at Author}{Author undefined!}
-\newcommand{\@companyUrl}{\@MissingArg{Company URL not specified!}}
-\newcommand{\companyUrl}[1]{%
- \ifthenelse{\isempty{#1}}{}{\renewcommand{\@companyUrl}{#1}}
-}
+\newcommand{\@warnmultipleauthors}%
+ {\ClassWarning{hgbthesis}{Multiple authors are not supported ('\string\and' is ignored)!}}%
-\newcommand{\companyPhone}[1]{%
- \ClassWarning{hgbthesis}{command '\protect\companyPhone' is not supported any longer.}
-}
+\newcommand{\hgb at Title}{Undefined document title!}% derived from \title (initialized in \maketitle hook)
-%% ----------------------------------------------------------------------------
+\newcommand{\hgb at SubTitle}{}
+\newcommand{\subtitle}[1]{\renewcommand{\hgb at SubTitle}{#1}}
-\newcommand{\@license}{\@MissingArg{License information is missing!}}
-\newcommand{\license}[1]{%
- \renewcommand{\@license}{#1}
-}
+\newcommand{\hgb at FullTitle}{}% = title + subtitle (initialized in \maketitle hook)
-%% Commands for Creating the Title Pages --------------------------------------
+\newcommand{\hgb at ThesisName}{Undefined thesis name!}%
-%% dirty trick: adds blank space after each letter (https://stackoverflow.com/a/3951837)
-\newcommand{\@addspaces}[1]{%
- \@tfor\letter:=#1\do{%
- \letter\thinspace% %\space
- }\negthinspace%
+\newcommand{\hgb at Institution}{\@MissingArg{Name of institution not specified!}}
+\newcommand{\institution}[1]{%
+ \ifthenelse{\isempty{#1}}{}{\renewcommand{\hgb at Institution}{#1}}
}
+\newcommand{\hgb at ProgramType}{\@MissingArg{Type of degree program not specified!}}
+\newcommand{\programtype}[1]{\renewcommand{\hgb at ProgramType}{#1}}
-\newcommand{\@bachelortitlefinal}{
- % use language switch to add english term
- \@addspaces{BACHELORARBEIT}%
-}
+\newcommand{\hgb at ProgramName}{\@MissingArg{Name of degree program not specified!}}
+\newcommand{\programname}[1]{\renewcommand{\hgb at ProgramName}{#1}}
-\newcommand{\@bachelortitleproposal}{
- % use language switch to add english term
- \@addspaces{BACHELORARBEIT} \space (\@addspaces{EXPOS{É}})%
-}
+\newcommand{\hgb at PlaceOfStudy}{\@MissingArg{Place of study not specified!}}
+\newcommand{\placeofstudy}[1]{\renewcommand{\hgb at PlaceOfStudy}{#1}}
-\newcommand{\@makebachelortitle}{%
-\begin{titlepage}%
- \begin{german}
- \rule{0mm}{1mm}%
- \vspace*{0mm}%
- \begin{center}%
- \@titlepagefont%
- \setlength{\unitlength}{1cm}%
- \parbox[c][5cm][c]{12cm}{%
- \centering\LARGE\bfseries%
- \setlength{\baselineskip}{25pt}%
- \@title%
- }
- \vskip 15mm%
- {\large\@author}%
- \vskip 15mm%
- \makelogo%
- \vskip 15mm%
- %
- \ifthenelse{\boolean{hgb at isProposal}}%
- {\Large{\@bachelortitleproposal}}%
- {\Large{\@bachelortitlefinal}}%
- \vskip 4mm%
- %
- {\large eingereicht am} \vskip 1mm {\@programtype}%
- \vskip 4mm%
- {\large\@programname}%
- \vskip 4mm%
- {\large in \@placeofstudy}%
- \vskip 16mm%
- {\large im \DTMgermanmonthname{\value{@monthofsubmission}} \arabic{@yearofsubmission}}%
- \end{center}%
- \vfil%
- \end{german}
-\end{titlepage}%
-}
+% Advisor(s) -------------------------------------------------------------------
-\newcommand{\@mastertitlefinal}{
- % use language switch to add english term
- \@addspaces{MASTERARBEIT}%
-}
+\newcounter{@advisorctr}
+\setcounter{@advisorctr}{0}
-\newcommand{\@mastertitleproposal}{
- % use language switch to add english term
- \@addspaces{MASTERARBEIT} \space (\@addspaces{EXPOS{É}})%
+% User command to specify the role(optional) and name of one advisor: \advisor[<role>]{<name>}
+% Repeat to specify multiple advisors.
+\newcommand{\advisor}[2][\hgbDictionaryGet{advisorheader}{\hgb at TitleLanguage}]{% e.g., \advisor[Supervisor]{Prof.~Marie Curie, PhD}
+ \stepcounter{@advisorctr}%
+ \expandafter\def\csname advisorrole-\the at advisorctr\endcsname{#1}
+ \expandafter\def\csname advisorname-\the at advisorctr\endcsname{#2}
}
-\newcommand{\@makemastertitle}{%
-\begin{titlepage}%
- \begin{german}
- \rule{0mm}{1mm}%
- \vspace*{0mm}%
- \begin{center}%
- \@titlepagefont %\normalfont
- \setlength{\unitlength}{1cm}%
- \parbox[c][5cm][c]{12cm}{%
- \centering\LARGE\bfseries%%
- \setlength{\baselineskip}{25pt}%
- \@title%
- }
- \vskip 15mm%
- {\large\@author}%{\large\scshape\@author}%
- \vskip 15mm%
- \makelogo%
- \vskip 15mm%
- %
- \ifthenelse{\boolean{hgb at isProposal}}%
- {\Large{\@mastertitleproposal}}%
- {\Large{\@mastertitlefinal}}%
- %
- \vskip 4mm%
- {\large eingereicht am} \vskip 1mm {\@programtype}%
- \vskip 4mm%
- {\large\@programname}%
- \vskip 4mm%
- {\large in \@placeofstudy}%
- \vskip 16mm%
- %{\large im \monthname[\value{@monthofsubmission}] \arabic{@yearofsubmission}}%
- {\large im \DTMgermanmonthname{\value{@monthofsubmission}} \arabic{@yearofsubmission}}%
- \end{center}%
- \vfil%
- \end{german}
-\end{titlepage}%
+% Returns the number of advisors specified
+\newcommand{\hgb at AdvisorCount}{%
+ \the at advisorctr
}
-\newcommand{\@makediplomatitle}{%
-\begin{titlepage}%
- \begin{german}
- \rule{0mm}{1mm}
- \vspace*{0mm}
- \begin{center}%
- \@titlepagefont %\normalfont
- \setlength{\unitlength}{1cm}
- \parbox[c][5cm][c]{12cm}{%
- \centering\LARGE\bfseries%
- \setlength{\baselineskip}{25pt}%
- \@title%
- }
- \vskip 15mm%
- {\large\@author}%{\large\scshape\@author}%
- \vskip 15mm%
- \makelogo%
- \vskip 15mm%
- {\Large\uppercase{\@addspaces{Diplomarbeit}}}%
- \vskip 4mm%
- {\large eingereicht am} \vskip 1mm {\@programtype}%
- \vskip 4mm%
- {\large\@programname}%
- \vskip 4mm%
- {\large in \@placeofstudy}%
- \vskip 16mm%
- %{\large im \monthname[\value{@monthofsubmission}] \arabic{@yearofsubmission}}%
- {\large im \DTMgermanmonthname{\value{@monthofsubmission}} \arabic{@yearofsubmission}}%
- \end{center}%
- \vfil%
- \end{german}
-\end{titlepage}%
+% Returns the 'role' of advisor with the given number (#1 = 1,...,\hgb at AdvisorCount)
+\newcommand{\hgb at getAdvisorRole}[1]{%
+ \csname advisorrole-#1\endcsname
}
-\newcommand{\@makeinternshiptitle}{%
-\begin{titlepage}%
- \begin{german}
- \rule{0mm}{1mm}
- \vspace*{0mm}
- \begin{center}%
- \@titlepagefont %\normalfont
- \setlength{\unitlength}{1cm}
- \parbox[c][5cm][c]{12cm}{%
- \centering\LARGE\bfseries%
- \setlength{\baselineskip}{25pt}%
- \@title%
- }
- \vskip 15mm%
- {\large\@author}%{\large\scshape\@author}%
- \vskip 15mm%
- \makelogo%
- \vskip 15mm%
- {\Large\uppercase{\@addspaces{Praktikumsbericht}}}%
- \vskip 4mm%
- %{\large Nr.~\@thesisnumber}
- %\vskip 4mm%
- {\large eingereicht am} \vskip 1mm {\@programtype}%
- \vskip 4mm%
- {\large\@programname}%
- \vskip 4mm%
- {\large in \@placeofstudy}%
- \vskip 16mm%
- %{\large im \monthname[\value{@monthofsubmission}] \arabic{@yearofsubmission}}%
- {\large im \DTMgermanmonthname{\value{@monthofsubmission}} \arabic{@yearofsubmission}}%
- \end{center}%
- \vfil%
- \end{german}
-\end{titlepage}%
+% Returns the 'name' of advisor with the given number (#1 = 1,...,\hgb at AdvisorCount)
+\newcommand{\hgb at getAdvisorName}[1]{%
+ \csname advisorname-#1\endcsname
}
+% Legacy cmommand, returns the first advisor's name
+\newcommand{\hgb at Advisor}{\hgb at getAdvisorName{1}}
-% Copyright and License Page --------------------------------------------------
+% Submission Date ---------------------------------------------------------------
-\newcommand{\strictlicense}{%
-\ifthenelse{\equal{\hgb at MainLanguage}{german}}%
- {\license{Alle Rechte vorbehalten}}%
- {\license{All Rights Reserved}}
-}
+\DTMsavenow{hgb at SubmissionDate} % default submission date is today
-\newcommand{\@ccLicenseAt}{%
-Diese Arbeit wird unter den Bedingungen der
-\textsf{Creative Commons Lizenz}
-\emph{Attribution-NonCommercial-NoDerivatives 4.0 International}
-(CC BY-NC-ND 4.0) ver\"offentlicht --
-siehe \url{https://creativecommons.org/licenses/by-nc-nd/4.0/}.}
-
-\newcommand{\@ccLicenseEn}{%
-This work is published under the conditions of the
-\textsf{Creative Commons License}
-\emph{Attribution-NonCommercial-NoDerivatives 4.0 International}
-(CC BY-NC-ND 4.0)---see
-\url{https://creativecommons.org/licenses/by-nc-nd/4.0/}.}
-
-\newcommand{\cclicense}{%
-\ifthenelse{\equal{\hgb at MainLanguage}{german}}%
- {\license{\@ccLicenseAt}} % german CC license text
- {\license{\@ccLicenseEn}} % english CC license text (default)
+\newcommand{\dateofsubmission}[3]{% usage: \dateofsubmission{yyyy}{mm}{dd}
+ \DTMsavenoparsedate{hgb at SubmissionDate}{#1}{#2}{#3}{-1}
}
-
-\cclicense % Creative Commons License (default)
-\newcommand{\@makelicense}{
- \sbox\@tempboxa{\@license}%
- \ifdim \wd\@tempboxa >\hsize
- \begin{sloppypar}\noindent\@license\end{sloppypar}
- \else
- \global \@minipagefalse
- \hb at xt@\hsize{\hfil\box\@tempboxa\hfil}%
- \fi
-}
+\newcommand{\hgb at SubmissionYear}{\DTMfetchyear{hgb at SubmissionDate}}
+\newcommand{\hgb at SubmissionMonth}{\DTMfetchmonth{hgb at SubmissionDate}}
+\newcommand{\hgb at SubmissionDay}{\DTMfetchday{hgb at SubmissionDate}}
-\newcommand{\@copyrightpage}{%
-\newpage
-%\setcounter{page}{2}
-\thispagestyle{plain}
-\rule{0mm}{1mm}
-\vspace*{75mm}
-\begin{center}
-\textsf{\copyright\ Copyright\ \arabic{@yearofsubmission}\ \@author}
-\end{center}
-\vspace{8mm}
-\@makelicense
+\newcommand{\hgb at GetMonthName}[2]{% #1=language #2=monthNumber,
+ \csname DTM#1monthname\endcsname{#2}% brittle?
}
+% Copyright/License Settings --------------------------------------------------
-%% Company Page for Internship Report -----------------------------------------
+\newcommand{\hgb at License}{cclicense}
-\newcommand{\@companypage}{%
-\newpage
-\setcounter{page}{2}
-\thispagestyle{plain}
-\rule{0mm}{1mm}
-\begin{center}
-\vspace{25mm}
-{Praktikumsstelle:}
-\\
-\vspace{3mm}
-{\Large\sf\@companyName\\ \mbox{}}
-\\
-{\sf \@companyUrl}
-\\
-\vspace{45mm}
-{Kontaktperson:}
-\\
-\vspace{3mm}
-{\Large\sf\@advisor\\ \mbox{}}
-\end{center}
+\newcommand{\license}[1]{%
+ \renewcommand{\hgb at License}{#1}
+ \ifthenelse{\equal{#1}{cc}}{\renewcommand{\hgb at License}{cclicense}}{}%
+ \ifthenelse{\equal{#1}{strict}}{\renewcommand{\hgb at License}{strictlicense}}{}%
}
-
-%% Advisor Page ----------------------------------------
-
-\newcommand{\@advisorheaderfinal}{
- \ifthenelse{\equal{\hgb at MainLanguage}{german}}%
- {Betreuung}%
- {Advisor}%
+\newcommand{\cclicense}{% for backward compatibility, use \license{cc} instead
+ \ClassWarning{hgbthesis}{\string\cclicense\space command is deprecated, use \string\license{cc} instead!}%
+ \license{cc}%
}
-\newcommand{\@advisorheaderproposal}{
- \ifthenelse{\equal{\hgb at MainLanguage}{german}}%
- {Betreuung (Vorschlag)}%
- {Proposed Advisor}%
+\newcommand{\strictlicense}{% for backward compatibility, use \license{strict} instead
+ \ClassWarning{hgbthesis}{\string\strictlicense\space command is deprecated, use \string\license{strict} instead!}%
+ \license{strict}%
}
-\newcommand{\@advisorpage}{%
- \ifthenelse{\equal{\@advisor}{}}% does nothing if advisor not defined
- {}{%
- \newpage
- \setcounter{page}{2}
- \thispagestyle{plain}
- \rule{0mm}{1mm}
- \vspace{90mm}
- \begin{center}
- \ifthenelse{\boolean{hgb at isProposal}}%
- {\@advisorheaderproposal:}%
- {\@advisorheaderfinal:}%
- \\
- \vspace{3mm}
- {\Large\sf \@advisor\\ \mbox{}}
- \end{center}
- }
-}
+% Legacy commands, keep for internship reports:
+\newcommand{\hgb at CompanyName}{\@MissingArg{Company not specified!}}
+\newcommand{\companyName}[1]{\renewcommand{\hgb at CompanyName}{#1}}
-%% Declaration Pages in German and English ------------------------------------
+\newcommand{\hgb at CompanyUrl}{\@MissingArg{Company URL not specified!}}
+\newcommand{\companyUrl}[1]{\renewcommand{\hgb at CompanyUrl}{#1}}
-% German
-\newcommand{\@declarationpageDe}{%
- \begin{german}
- \chapter{Erkl\"arung}
- \noindent
- %Standardfassung der FH-OOe ab 04.04.2012:
- Ich erkl\"are eidesstattlich, dass ich die vorliegende Arbeit selbstst\"andig und ohne fremde Hilfe verfasst,
- andere als die angegebenen Quellen nicht benutzt und die den benutzten Quellen entnommenen Stellen als
- solche gekennzeichnet habe. Die Arbeit wurde bisher in gleicher oder \"ahnlicher Form keiner anderen
- Pr\"ufungsbeh\"orde vorgelegt.
- Die vorliegende, gedruckte Arbeit ist mit dem elektronisch \"ubermittelten Textdokument identisch.
- \par
- \vspace{10mm}
- \noindent
- %\@placeofstudy, am \formatdate{\value{@dayofsubmission}}{\value{@monthofsubmission}}{\value{@yearofsubmission}}
- \@placeofstudy, am \DTMdate{\value{@yearofsubmission}-\value{@monthofsubmission}-\value{@dayofsubmission}}
- \par
- \vspace{12mm}
- \noindent
- \@author
- \end{german}
+%% Logo -------------------------------------------------------------------------
+
+% Specify the institution's logo - DEPRECATED - logo is now handled in theme files only!
+\newcommand{\hgb at LogoFile}{@unspecified} %
+\newcommand{\logofile}[1]{%
+ \ClassWarning{hgbthesis}{Command \string\logofile\space is deprecated, logo should be specified in theme file!}%
+ \renewcommand{\hgb at LogoFile}{#1}
}
-% English
+%% Create title pages -------------------------------------
-\newcommand{\leadingzero}[1]{\ifnum #1<10 0\the#1\else\the#1\fi}
-
-\newcommand{\@declarationpageEn}{%
- \begin{english}
- \chapter{Declaration}
- \noindent
- I hereby declare and confirm that this thesis is entirely the result of my own original work.
- Where other sources of information have been used, they have been indicated as such and properly
- acknowledged. I further declare that this or similar work has not been submitted for credit elsewhere.
- This printed copy is identical to the submitted electronic version.
- \par
- \vspace{10mm}
- \noindent
- %\@placeofstudy, \the\year-\leadingzero{\month}-\leadingzero{\day} %http://de.wikibooks.org/wiki/LaTeX-W%F6rterbuch:_today
- %\@placeofstudy, {\usdate\formatdate{\value{@dayofsubmission}}{\value{@monthofsubmission}}{\value{@yearofsubmission}}}
- \@placeofstudy, \DTMdate{\value{@yearofsubmission}-\value{@monthofsubmission}-\value{@dayofsubmission}}
- \par
- \vspace{12mm}
- \noindent
- \@author
- \end{english}
+% Generate the front pages (to be redefined by theme .sty files)
+\newcommand{\hgb at MakeFrontPages}{%
+ \ClassError{hgbthesis}{Command \string\hgb at MakeFrontPages\space is not defined!}\relax%
}
-\newcommand{\@declarationpage}{%
-\ifthenelse{\equal{\hgb at MainLanguage}{german}}%
- {\@declarationpageDe}%
- {\@declarationpageEn}
+% Redefine LaTeX's \maketitle to add PDF meta data
+\renewcommand{\maketitle}{% redefine standard \maketitle command
+ \hypersetup{
+ pdftitle={\hgb at FullTitle},%
+ pdfauthor={\hgb at Author},%
+ pdfsubject={\hgb at ProgramType~\hgb at ProgramName,~\hgb at PlaceOfStudy},
+ pdfcreator={LaTeX using class hgbthesis [\hgbDate]},
+ pdfproducer={pdflatex},
+ pdfkeywords={},
+ pageanchor=false% disable hyperref page anchors in front pages
+ }%
+ \SetLanguage{\hgb at TitleLanguage}
+ \hgb at MakeFrontPages% generate front pages
+ \SetLanguage{\hgb at MainLanguage}
+ \hypersetup{pageanchor=true}% enable hyperref page anchors in the main document
}
+% Define new hook to be used in theme style files for various initializations:
+% Usage: \AddToHook{hgb at InitThemeHook}{...}
+% Invoked before \maketitle (by hook code below).
+\NewHook{hgb at InitThemeHook}
-%% Assembly of title pages ----------------------------------------------------
-
-\renewcommand{\@bachelortitlepages}{
- \@makebachelortitle%
- \ifthenelse{\boolean{hgb at isProposal}}%
- {% thesis proposal:
- \@proposalsetup%
- \@advisorpage%
- %no copyright page for proposals
- %no declaration page for proposals
- }%
- {% final thesis:
- \@advisorpage%
- \@copyrightpage%
- \@declarationpage%
- }%
+% Initialize remaining parameters before running \maketitle:
+\AddToHook{cmd/maketitle/before}{%
+ \renewcommand{\hgb at Author}{\theauthor}% defined by 'titling' package
+ \renewcommand{\hgb at Title}{\thetitle}% defined by 'titling' package
+ \ifthenelse{\equal{\hgb at SubTitle}{}}%
+ {\renewcommand{\hgb at FullTitle}{\hgb at Title}}%
+ {\renewcommand{\hgb at FullTitle}{\hgb at Title: \hgb at SubTitle}}%
+ %
+ %\ifthenelse{\boolean{hgb at IsProposal}}{\hgb at ProposalSetup}{}% wilbur: moved to \AtBeginDocument
+ \UseHook{hgb at InitThemeHook}% execute collected code for hgb at InitThemeHook (if any)
}
-\renewcommand{\@mastertitlepages}{
- \@makemastertitle
- \ifthenelse{\boolean{hgb at isProposal}}%
- {% thesis proposal:
- \@proposalsetup%
- \@advisorpage%
- %no copyright page for proposals
- %no declaration page for proposals
- }%
- {% final thesis:
- \@advisorpage%
- \@copyrightpage%
- \@declarationpage%
- }%
+% Special sectioning setup for thesis proposals: ----------------------------
+% wilbur: should be simplified and moved elsewhere (TODO)
+%
+% Provides a special chapter/section configuration for thesis proposals:
+% The idea is to use the regular 'hgbthesis' class but to have only a single
+% (unnumbered) chapter with a couple of sections. All float elements and equations
+% are numbered without the chapter count:
+%
+\newcommand{\hgb at ProposalSetup}[0]{%
+ % remove "Kapitel X"/"Chapter X" from chapter titles:
+ \titleformat{\chapter}[display]{\sffamily}{}{0pt}{\Huge}% from 'titlesec' package loaded by 'hgbheadings'
+ % remove chapter number from header:
+ \renewcommand{\chaptermark}[1]{\markboth{##1}{}}% wilbur: from 'fancyhdr' package loaded by 'hgbheadings'
+ % define an empty entry format for the TOC chapter numbering (tocbasic)
+ \newcommand\noentrynumber[1]{}
+ % set empty number and remove indentation for chapter numbering in TOC (tocbasic)
+ \DeclareTOCStyleEntry[entrynumberformat=\noentrynumber,numwidth=0pt]{tocline}{chapter}
+ % remove chapter number from sections and figures (basic LaTeX):
+ \counterwithout{section}{chapter}
+ \counterwithout{figure}{chapter}
+ \counterwithout{table}{chapter}
+ \counterwithout{equation}{chapter}
+ \counterwithout{program}{chapter}
+ \counterwithout{algorithm}{chapter}
}
-\renewcommand{\@diplomatitlepages}{
- \@makediplomatitle
- %\ifthenelse{\equal{\@advisor}{}}%
- %{}{\@advisorpage}%
- \@advisorpage
- \@copyrightpage
- \@declarationpage
+\AtBeginDocument{%
+ \ifthenelse{\boolean{hgb at IsProposal}}{\hgb at ProposalSetup}{}%
}
+%% Set various terms to be redefined by title page themes
+\ifthenelse{\equal{\hgb at TitleLanguage}{}}% duplicate in 'hgb.sty'!
+ {\renewcommand{\hgb at TitleLanguage}{\hgb at MainLanguage}}{}%
-\renewcommand{\@internshiptitlepages}{
- \@makeinternshiptitle
- \@companypage
- \@copyrightpage
- \@declarationpage
-}
+\renewcommand{\hgb at ThesisName}{\hgbDictionaryGet{\hgb at ThesisType-docname}{\hgb at TitleLanguage}}%
+\renewcommand{\hgb at ProposalName}{\hgbDictionaryGet{proposal-name}{\hgb at TitleLanguage}}%
-\newcommand{\@warnmultipleauthors}{\PackageWarning{hagenberg-thesis}{Multiple authors are not supported ('\@backslashchar and' is ignored)!}}%
-% Add PDF meta data and create title pages
-\renewcommand{\maketitle}{ %replace standard LaTeX-command
- \def\and{\@warnmultipleauthors}% suppress \and inside \author{..}
- \renewcommand{\thanks}[1]{}% suppress \thanks{..} inside \author{..}
- \hypersetup{
- pdftitle={\@title},
- pdfauthor={\@author},
- pdfsubject={\@programtype \@programname, \@placeofstudy},
- pdfcreator={LaTeX using class hgbthesis [\hgbDate]},
- pdfproducer={pdflatex},
- pdfkeywords={},
- pageanchor=false % disable hyperref page anchors in frontmatter pages
- }%
- \@maketitlepages
- \hypersetup{pageanchor=true} % enable hyperref page anchors in the main document
-}
-
%% Additional Hagenberg packages ----------------------------------------------
\RequirePackage{hgbmath}
@@ -582,5 +337,8 @@
\RequirePackage{hgbabbrev}
\RequirePackage{hgblistings}
\RequirePackage{hgbbib}
+\RequirePackage{hgbdict}
+\hgb at UseTheme{\@ThemeID}% load theme style file
+
\endinput
More information about the tex-live-commits
mailing list.