Compare commits

...

5 Commits

27 changed files with 388 additions and 208 deletions

View File

@ -0,0 +1,56 @@
% !TEX root = ../HSRTReport.cls
% ==== Content and Typography Packages ====
% Packages for content formatting and typography
% Tables with fixed width columns
\RequirePackage{tabularx}
% Tables spanning multiple pages
\RequirePackage{longtable}
% Dotted lines in tables
\RequirePackage{arydshln}
% Multi-row table cells
\RequirePackage{multirow}
% Customized lists
\RequirePackage{enumitem}
% Figure and table captions
\RequirePackage{caption}
% Advanced float customization
\RequirePackage{floatrow}
% Subfigures and subcaptions
\RequirePackage[subrefformat=parens]{subcaption}
% Code listings with syntax highlighting
\RequirePackage{listings}
% Hyphenation for monospaced fonts
\RequirePackage[htt]{hyphenat}
% Mathematical symbols and fonts
\RequirePackage{amsmath}
\RequirePackage{amssymb}
\RequirePackage{amsfonts}
% Additional symbols
\RequirePackage{pifont}
\RequirePackage{eurosym}
\RequirePackage{utfsym}
\RequirePackage{twemojis}
% Font Awesome icons
\RequirePackage{fontawesome5}
% Justified text
\RequirePackage{ragged2e}
% Subscript support
\RequirePackage{accsupp}
% Info boxes and frames
\RequirePackage[framemethod=TikZ]{mdframed}

View File

@ -0,0 +1,57 @@
% !TEX root = ../HSRTReport.cls
% ==== Core Packages ====
% Essential LaTeX packages for basic functionality
% Calculation package
\RequirePackage{calc}
% Floating point calculations
\RequirePackage[nomessages]{fp}% http://ctan.org/pkg/fp
\RequirePackage{xfp}
% Key-value interface
\RequirePackage{keyval}
% Conditional commands
\RequirePackage{ifthen}
% Command patching
\RequirePackage{etoolbox}
% Array handling
\RequirePackage{arrayjobx}
% Environment definitions
\RequirePackage{environ}
% Hook management
\RequirePackage{bophook}
% Counter manipulation
\RequirePackage{chngcntr}
% Extended color support
\RequirePackage{xcolor}
\RequirePackage{color}
% Graphics support
\RequirePackage{graphicx}
% SVG support
\RequirePackage{svg}
% Transparent images
\RequirePackage{transparent}
% Font encoding and selection
\RequirePackage[T1]{fontenc}
\RequirePackage{fontspec}
% Modern Latin fonts
\RequirePackage{lmodern}
% Arbitrary font sizes
\RequirePackage{anyfontsize}
% Silence package warnings
\RequirePackage{silence}

View File

@ -0,0 +1,50 @@
% !TEX root = ../HSRTReport.cls
% ==== Document Structure Packages ====
% Packages for document layout and structure
% Language support
\RequirePackage[ngerman]{babel}
% Page geometry
\RequirePackage[a4paper, margin=2cm]{geometry}
% Bibliography management
\RequirePackage[
backend=biber,
sorting=none,
style=ieee
]{biblatex}
% Context-sensitive quotation marks
\RequirePackage{csquotes}
% Glossaries and acronyms
\RequirePackage[acronym, savenumberlist=true]{glossaries}
% Headers and footers
\RequirePackage{fancyhdr}
% Table of contents formatting
\RequirePackage{tocloft}
% Line spacing
\RequirePackage{setspace}
% Hyperlinks and references
\RequirePackage{hyperref}
% Enhanced cross-references
\RequirePackage[nameinlink, noabbrev]{cleveref}
% Watermark support
\RequirePackage{draftwatermark}
% Verbatim text
\RequirePackage{verbatim}
% Lorem ipsum text generation
\RequirePackage{lipsum}
\RequirePackage{blindtext}
% Quotations and epigraphs
\RequirePackage{epigraph}

View File

@ -0,0 +1,15 @@
% !TEX root = ../HSRTReport.cls
% ==== Graphics and Drawing Packages ====
% Packages for graphics, diagrams, and TikZ drawings
% TikZ for drawing
\RequirePackage{tikz}
% TikZ page nodes
\RequirePackage{tikzpagenodes}
% PGF/TikZ libraries
\RequirePackage{pgf}
% Pie charts
\RequirePackage{pgf-pie}

View File

@ -55,12 +55,19 @@
% ----------------------------------------
% Imports
% ----------------------------------------
\input{\classPath/Imports}
% Load core packages first
\input{\classPath/Config/Imports-Core}
% Document structure packages
\input{\classPath/Config/Imports-Document}
% Content and typography packages
\input{\classPath/Config/Imports-Content}
% Graphics and TikZ packages
\input{\classPath/Config/Imports-Graphics}
%----------------------------------------
% REFS
%----------------------------------------
\RequirePackage{hyperref}
% Hyperref already loaded in Imports-Document
\hypersetup{
pdfpagemode={UseOutlines},
bookmarksopen=true,
@ -328,11 +335,19 @@
% ----------------------------------------
\input{\classPath/Pages/Titlepage.tex}
% ==== Tools ====
\input{\classPath/Modules/Listings}
\input{\classPath/Modules/Floats}
\input{\classPath/Modules/MeetingPresence}
\input{\classPath/Modules/InfoBlocks}
\input{\classPath/Modules/Watermark}
\input{\classPath/Modules/ToC}
\input{\classPath/Modules/Typography}
% ==== Content Modules ====
\input{\classPath/Modules/Content/Listings}
\input{\classPath/Modules/Content/Floats}
\input{\classPath/Modules/Content/GlossarySettings}
% ==== Layout Modules ====
\input{\classPath/Modules/Layout/InfoBlocks}
\input{\classPath/Modules/Layout/Watermark}
% ==== Formatting Modules ====
\input{\classPath/Modules/Formatting/ToC}
\input{\classPath/Modules/Formatting/Typography}
% ==== Tool Modules ====
\input{\classPath/Modules/Tools/MeetingPresence}
\input{\classPath/Modules/Tools/WordCount}

View File

@ -1,171 +0,0 @@
% !TEX root = ./HSRTReport.cls
% ==== Imports ====
% calc package
\RequirePackage{calc}
% fp package
\RequirePackage[nomessages]{fp}% http://ctan.org/pkg/fp
% Glossaries package
\RequirePackage[acronym, savenumberlist=true]{glossaries}
% Babel for language support
\RequirePackage[ngerman]{babel}
% Bibliography management with biber backend and IEEE style
\RequirePackage[
backend=biber,
sorting=none,
style=ieee
]{biblatex}
% Context-sensitive quotation marks
\RequirePackage{csquotes}
% Geometry for setting page dimensions and margins
\RequirePackage[a4paper, margin=2cm]{geometry}
% Tabularx for tables with fixed width columns
\RequirePackage{tabularx}
% Longtable for tables that span multiple pages
\RequirePackage{longtable}
% Graphics support
\RequirePackage{graphicx}
% Enumitem for customized lists
\RequirePackage{enumitem}
% Verbatim for including literal text
\RequirePackage{verbatim}
% Captions for customizing figure and table captions
\RequirePackage{caption}
% Floatrow for advanced float customization
\RequirePackage{floatrow}
% Subcaption for subfigures within a figure
\RequirePackage[subrefformat=parens]{subcaption}
% Blindtext for generating dummy text
\RequirePackage{blindtext}
% Listings for including source code with syntax highlighting
\RequirePackage{listings}
% Hyphenation support for monospaced fonts
\RequirePackage[htt]{hyphenat}
% Color package for text coloring
\RequirePackage{color}
% Additional options for captions
\RequirePackage{caption,xparse}
% Multirow for table cells spanning multiple rows
\RequirePackage{multirow}
% Mathematical symbols and fonts
\RequirePackage{amssymb}
% Pifont for dingbat symbols
\RequirePackage{pifont}
% Epigraph for quotations
\RequirePackage{epigraph}
% Lipsum for generating dummy text
\RequirePackage{lipsum}
% Setspace for line spacing
\RequirePackage{setspace}
% Lmodern for scalable font
\RequirePackage{lmodern}
% Anyfontsize for using arbitrary font sizes
\RequirePackage{anyfontsize}
% For dotted lines in tables
\RequirePackage{arydshln}
% Boxes (for Info, Warning, etc.)
\RequirePackage[framemethod=TikZ]{mdframed}
% Emojis
\RequirePackage{twemojis}
% Euro Symbol
\RequirePackage{eurosym}
% To add a watermark
\RequirePackage{draftwatermark}
% Unicode Symbols
\RequirePackage{utfsym}
% For the \textsubscript command
\RequirePackage{accsupp}
% Modify TOC formatting
\RequirePackage{tocloft}
% Fontawesome for icons
\RequirePackage{fontawesome5}
% For better environment definitions
\RequirePackage{environ}
% http://ctan.org/pkg/keyval
\RequirePackage{keyval}
% For justified text
\RequirePackage{ragged2e}
% FPeval for floating point calculations
\RequirePackage{xfp}
% TikZ for drawing
\RequirePackage{tikz}
% To refer to page text area
\RequirePackage{tikzpagenodes}
% Pie Chart
\RequirePackage{pgf-pie}
% Transparent images
\RequirePackage{transparent}
% SVG images
\RequirePackage{svg}
% Fontenc for font encoding
\RequirePackage[T1]{fontenc}
% Fontspec for font selection
\RequirePackage{fontspec}
% For the IfThenElse command
\RequirePackage{ifthen}
% Bophook for hooks
\RequirePackage{bophook}
% For Arrays
\RequirePackage{arrayjobx}
% For Headers and Footers
\RequirePackage{fancyhdr}
% Command Patching
\RequirePackage{etoolbox}
% Change counter
\RequirePackage{chngcntr}
% ==== /Imports ====

View File

@ -1,4 +1,4 @@
%!TEX root = ../Main.tex
%!TEX root = ../../Main.tex
\makeglossaries
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}

View File

@ -0,0 +1,13 @@
% !TEX root = ../../Main.tex
% Source: https://docs.overleaf.com/writing-and-editing/using-word-count
\newcommand{\quickwordcount}[1]{%
\immediate\write18{texcount -1 -sum -merge -q #1.tex > Build/words.sum }%
\input{Build/words.sum} words%
}
\newcommand{\detailtexcount}[1]{%
\immediate\write18{texcount -merge -sum -q #1.tex > Build/.wcdetail }%
\verbatiminput{Build/.wcdetail}%
}

100
HSRTReport/README.md Normal file
View File

@ -0,0 +1,100 @@
# HSRTReport LaTeX Class
A custom LaTeX document class for reports at the University of Applied Sciences Reutlingen (Hochschule Reutlingen).
## Directory Structure
```
HSRTReport/
├── HSRTReport.cls # Main class file
├── Assets/ # Fonts and images
│ ├── Fonts/ # Custom fonts (Blender, DIN)
│ └── Images/ # Logos and graphics
├── Config/ # Package imports and configuration
│ ├── Imports-Core.tex # Essential LaTeX packages
│ ├── Imports-Document.tex # Document structure packages
│ ├── Imports-Content.tex # Content formatting packages
│ └── Imports-Graphics.tex # Graphics and TikZ packages
├── Modules/ # Functional modules
│ ├── Content/ # Content-related modules
│ │ ├── Floats.tex # Float configuration
│ │ ├── GlossarySettings.tex # Glossary configuration
│ │ └── Listings.tex # Code listing settings
│ ├── Formatting/ # Text and document formatting
│ │ ├── Typography.tex # Typography settings
│ │ └── ToC.tex # Table of contents formatting
│ ├── Layout/ # Page layout modules
│ │ ├── InfoBlocks.tex # Info/warning/error boxes
│ │ └── Watermark.tex # Watermark configuration
│ └── Tools/ # Utility modules
│ ├── MeetingPresence.tex # Meeting attendance tables
│ └── WordCount.tex # Word counting commands
└── Pages/ # Page templates
└── Titlepage.tex # Title page layout
```
## Usage
To use this document class in your LaTeX document:
```latex
\documentclass[
11pt,
paper=a4,
oneside,
DIV=14,
onecolumn
]{HSRTReport/HSRTReport}
```
## Module Descriptions
### Config Modules
- **Imports-Core**: Basic LaTeX packages (calc, fp, xcolor, etc.)
- **Imports-Document**: Document structure packages (babel, geometry, biblatex, etc.)
- **Imports-Content**: Content formatting (tables, listings, math, symbols)
- **Imports-Graphics**: Graphics and drawing packages (TikZ, PGF, SVG support)
### Content Modules
- **Floats**: Configuration for figures and tables
- **GlossarySettings**: Glossary and acronym list styling
- **Listings**: Code syntax highlighting configuration
### Formatting Modules
- **Typography**: Font settings and text formatting
- **ToC**: Table of contents, list of figures/tables formatting
### Layout Modules
- **InfoBlocks**: Styled boxes for notes, warnings, and errors
- **Watermark**: Draft watermark configuration
### Tools Modules
- **MeetingPresence**: Meeting attendance tracking tables
- **WordCount**: Commands for automated word counting
## Features
- Custom fonts (Blender and DIN)
- Automatic word counting
- Glossary and acronym support
- Code listing with syntax highlighting
- Custom info/warning/error boxes
- Meeting presence tables
- IEEE bibliography style
- German language support
- SVG image support
## Requirements
- XeLaTeX (required for custom fonts)
- biber (for bibliography)
- Various LaTeX packages (automatically loaded through Config modules)
## Customization
Document-specific settings should remain in your document's `TeX/` directory:
- Document title, author, abstract
- Logo selection
- Bibliography resources
Class-wide settings and functionality are contained within this HSRTReport directory structure.

4
Main.acn Normal file
View File

@ -0,0 +1,4 @@
\glossaryentry{Abb.?\glossentry{a:Abb}|setentrycounter[]{page}"\glsignore}{10}
\glossaryentry{MPG?\glossentry{a:MPG}|setentrycounter[]{page}"\glsignore}{10}
\glossaryentry{MS?\glossentry{a:MS}|setentrycounter[]{page}"\glsignore}{10}
\glossaryentry{Tab.?\glossentry{a:Tab}|setentrycounter[]{page}"\glsignore}{10}

14
Main.acr Normal file
View File

@ -0,0 +1,14 @@
\glossarysection[\glossarytoctitle]{\glossarytitle}\glossarypreamble
\begin{theglossary}\glossaryheader
\glsgroupheading{A}\relax \glsresetentrylist %
\glossentry{a:Abb}{\glossaryentrynumbers{\relax
\setentrycounter[]{page}\glsignore{10}}}\glsgroupskip
\glsgroupheading{M}\relax \glsresetentrylist %
\glossentry{a:MPG}{\glossaryentrynumbers{\relax
\setentrycounter[]{page}\glsignore{10}}}%
\glossentry{a:MS}{\glossaryentrynumbers{\relax
\setentrycounter[]{page}\glsignore{10}}}\glsgroupskip
\glsgroupheading{T}\relax \glsresetentrylist %
\glossentry{a:Tab}{\glossaryentrynumbers{\relax
\setentrycounter[]{page}\glsignore{10}}}%
\end{theglossary}\glossarypostamble

7
Main.alg Normal file
View File

@ -0,0 +1,7 @@
This is makeindex, version 2.17 [TeX Live 2023] (kpathsea + Thai support).
Scanning style file ./Main.ist...........................done (27 attributes redefined, 0 ignored).
Scanning input file Main.acn....done (4 entries accepted, 0 rejected).
Sorting entries....done (9 comparisons).
Generating output file Main.acr....done (14 lines written, 0 warnings).
Output written in Main.acr.
Transcript written in Main.alg.

1
Main.equ Normal file
View File

@ -0,0 +1 @@
\contentsline {myequations}{\equationname ~\hbox to\@tempdima {1:\hfil } Polstellenberechnung}{9}{equation.31}%

7
Main.glg Normal file
View File

@ -0,0 +1,7 @@
This is makeindex, version 2.17 [TeX Live 2023] (kpathsea + Thai support).
Scanning style file ./Main.ist...........................done (27 attributes redefined, 0 ignored).
Scanning input file Main.glo....done (1 entries accepted, 0 rejected).
Sorting entries...done (0 comparisons).
Generating output file Main.gls....done (6 lines written, 0 warnings).
Output written in Main.gls.
Transcript written in Main.glg.

1
Main.glo Normal file
View File

@ -0,0 +1 @@
\glossaryentry{Textkörper?\glossentry{Textkoerper}|setentrycounter[]{page}"\glsignore}{10}

6
Main.gls Normal file
View File

@ -0,0 +1,6 @@
\glossarysection[\glossarytoctitle]{\glossarytitle}\glossarypreamble
\begin{theglossary}\glossaryheader
\glsgroupheading{T}\relax \glsresetentrylist %
\glossentry{Textkoerper}{\glossaryentrynumbers{\relax
\setentrycounter[]{page}\glsignore{10}}}%
\end{theglossary}\glossarypostamble

29
Main.ist Normal file
View File

@ -0,0 +1,29 @@
% makeindex style file created by the glossaries package
% for document 'Main' on 2025-10-29
actual '?'
encap '|'
level '!'
quote '"'
keyword "\\glossaryentry"
preamble "\\glossarysection[\\glossarytoctitle]{\\glossarytitle}\\glossarypreamble\n\\begin{theglossary}\\glossaryheader\n"
postamble "\%\n\\end{theglossary}\\glossarypostamble\n"
group_skip "\\glsgroupskip\n"
item_0 "\%\n"
item_1 "\%\n"
item_2 "\%\n"
item_01 "\%\n"
item_x1 "\\relax \\glsresetentrylist\n"
item_12 "\%\n"
item_x2 "\\relax \\glsresetentrylist\n"
delim_0 "\{\\glossaryentrynumbers\{\\relax "
delim_1 "\{\\glossaryentrynumbers\{\\relax "
delim_2 "\{\\glossaryentrynumbers\{\\relax "
delim_t "\}\}"
delim_n "\\delimN "
delim_r "\\delimR "
headings_flag 1
heading_prefix "\\glsgroupheading\{"
heading_suffix "\}\\relax \\glsresetentrylist "
symhead_positive "glssymbols"
numhead_positive "glsnumbers"
page_compositor "."

BIN
Main.pdf Normal file

Binary file not shown.

View File

@ -1,19 +1,8 @@
% !TEX root = ../Main.tex
% ==== Imports ====
\usepackage{hyperref}
\usepackage[acronym, savenumberlist=true]{glossaries}
\usepackage[nameinlink, noabbrev]{cleveref}
% ==== /Imports ====
% === Wordcount ===
\input{TeX/WordCount}
% === /Wordcount ===
% ==== Glossary and Bib ====
\input{TeX/GlossarySettings}
% ==== Document-specific configuration ====
% Bibliography resource
\addbibresource{Main.bib}
% ==== /Glossary and Bib ====
% ==== Settings ====
\input{TeX/Settings/General}

View File

@ -1,13 +0,0 @@
% !TEX root = ../Main.tex
% Source: https://docs.overleaf.com/writing-and-editing/using-word-count
\newcommand{\quickwordcount}[1]{%
\immediate\write18{texcount -1 -sum -merge -q #1.tex > Build/words.sum }%
\input{Build/words.sum} words%
}
\newcommand{\detailtexcount}[1]{%
\immediate\write18{texcount -merge -sum -q #1.tex > Build/.wcdetail }%
\verbatiminput{Build/.wcdetail}%
}