SAT-WiSe-25-26/README.md

294 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# HSRTReport LaTeX Template
A professional LaTeX report template for academic papers and theses at the University of Applied Sciences Reutlingen (Hochschule Reutlingen).
## 📋 Table of Contents
- [Overview](#overview)
- [Features](#features)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Project Structure](#project-structure)
- [Usage](#usage)
- [Document Class Options](#document-class-options)
- [Customization](#customization)
- [Building the Document](#building-the-document)
- [Troubleshooting](#troubleshooting)
- [Contributing](#contributing)
- [License](#license)
## 📖 Overview
The HSRTReport class is a customized LaTeX document class based on KOMA-Script's `scrreprt` class, specifically designed for creating professional academic reports, seminar papers, and bachelor/master theses at the University of Applied Sciences Reutlingen. It provides a consistent, professional layout with minimal configuration required.
## ✨ Features
- **Professional Typography**: Configured for optimal readability with proper font settings
- **Automatic Title Page Generation**: Customizable title page with university branding
- **Bibliography Management**: Integrated BibLaTeX support for citations
- **Glossary Support**: Built-in glossary and acronym management
- **Code Highlighting**: Syntax highlighting for source code listings
- **Word Count**: Automatic word counting functionality
- **Cross-referencing**: Smart referencing with hyperref
## 🔧 Prerequisites
### Required Software
- **XeLaTeX**: This template requires XeLaTeX for compilation (included in most TeX distributions)
- **TeX Distribution**: One of the following:
- [TeX Live](https://www.tug.org/texlive/) (Linux/Windows/macOS)
- [MiKTeX](https://miktex.org/) (Windows)
- [MacTeX](https://www.tug.org/mactex/) (macOS)
- **GNU make**: Automates compilation and cleaning tasks
### Required LaTeX Packages
The template automatically loads all necessary packages. Key dependencies include:
- KOMA-Script bundle
- BibLaTeX with Biber backend
- glossaries-extra
- fontspec (for font management)
- TikZ (for graphics)
- listings (for code)
## 📁 Project Structure
```
SAT-WiSe-25-26/
├── HSRTReport/ # Document class files
│ ├── HSRTReport.cls # Main class definition
│ ├── Assets/ # Fonts and images
│ │ ├── Fonts/ # Custom fonts
│ │ └── Images/ # Logo and graphics
│ ├── Config/ # Configuration modules
│ │ ├── Fonts.tex # Font settings
│ │ ├── PageSetup.tex # Page layout
│ │ └── ... # Other configurations
│ ├── Imports/ # Package imports
│ │ ├── Core.tex # Core packages
│ │ ├── Document.tex # Document structure
│ │ └── ... # Other imports
│ ├── Modules/ # Feature modules
│ │ ├── Content/ # Content-related features
│ │ ├── Layout/ # Layout features
│ │ └── Tools/ # Utility tools
│ └── Pages/ # Page templates
│ └── Titlepage.tex # Title page definition
├── Content/ # Document content
│ ├── 00_toc.tex # Table of contents and lists
│ ├── 01_content.tex # Chapter loader (auto-managed)
│ ├── 99_bibliography.tex # Bibliography
│ ├── Chapters/ # Individual chapter files
│ │ ├── 01_introduction.tex
│ │ ├── example_chapter.tex
│ │ └── ...
│ └── Images/ # Document images
├── Settings/ # Document settings
│ ├── General.tex # General settings
│ └── Logos.tex # Logo configuration
├── scripts/ # Chapter management scripts
│ ├── create_chapter.sh # Create new chapters
│ ├── list_chapters.sh # List all chapters
│ ├── delete_chapter.sh # Delete chapters
│ └── show_chapter.sh # View chapter content
├── Main.tex # Main document file
├── Preamble.tex # Document preamble
├── Glossary.tex # Glossary definitions
├── Main.bib # Bibliography database
├── Makefile # Build automation
├── .latexmkrc # Latexmk configuration
└── QUICKSTART.md # Quick start guide
```
## 📝 Usage
### Basic Document Setup
1. **Edit `Main.tex`** to configure document class options:
```latex
\documentclass[
11pt, % Font size (10pt, 11pt, 12pt)
paper=a4, % Paper size
oneside, % Single-sided (use twoside for double)
DIV=14, % Page layout calculation
onecolumn % Single column layout
]{HSRTReport/HSRTReport}
```
2. **Configure document metadata** in `Settings/General.tex`:
```latex
% Document title
\title{Your Document Title}
% Title page information
\AddTitlePageDataLine{Thema}{Your Topic}
\AddTitlePageDataLine{Vorgelegt von}{Your Name}
\AddTitlePageDataLine{Studiengang}{Your Study Program}
% ... additional fields
```
3. **Add your content** using one of these methods:
- **Automatic (Recommended)**: Use scripts to manage chapters
```bash
./scripts/create_chapter.sh 02 methodology
./scripts/create_chapter.sh 03 results
./scripts/list_chapters.sh
```
- **Manual**: Create files in `Content/Chapters/` and add them to `Content/01_content.tex`
4. **Manage bibliography** in `Main.bib` using BibTeX format
5. **Define glossary entries** in `Glossary.tex`:
```latex
\newglossaryentry{term}{
name=Term,
description={Description of the term}
}
\newacronym{abbr}{ABBR}{Full Form of Abbreviation}
```
## ⚙️ Document Class Options
The HSRTReport class accepts all standard KOMA-Script `scrreprt` options plus:
| Option | Description | Values |
|--------|-------------|---------|
| `paper` | Paper size | `a4`, `letter`, etc. |
| `fontsize` | Base font size | `10pt`, `11pt`, `12pt` |
| `oneside`/`twoside` | Page layout | Single or double-sided |
| `DIV` | Type area calculation | Integer (12-16 recommended) |
| `onecolumn`/`twocolumn` | Column layout | Single or double column |
## 🎨 Customization
### Modifying the Title Page
Edit `Settings/General.tex` to customize title page fields:
```latex
\AddTitlePageDataLine{Field Name}{Field Content}
\AddTitlePageDataSpace{5pt} % Add vertical space
```
### Adding Custom Packages
Add custom packages to `Preamble.tex`:
```latex
\usepackage{yourpackage}
\yourpackagesetup{options}
```
### Changing Fonts
The template uses custom fonts defined in `HSRTReport/Config/Fonts.tex`. Modify this file to change fonts template-wide.
### Creating Custom Commands
Add custom commands to `Preamble.tex`:
```latex
\newcommand{\mycommand}[1]{#1}
```
## 📚 Chapter Management
### Automatic Chapter Management (Recommended)
The template includes scripts for efficient chapter management:
#### Create a New Chapter
```bash
./scripts/create_chapter.sh 02 methodology
```
This creates `Content/Chapters/02_methodology.tex` with a template structure and automatically adds it to the document.
#### List All Chapters
```bash
./scripts/list_chapters.sh
```
Shows all chapters and their inclusion status in the document.
#### View Chapter Content
```bash
./scripts/show_chapter.sh 02_methodology --info
./scripts/show_chapter.sh 02_methodology --structure
```
#### Delete a Chapter
```bash
./scripts/delete_chapter.sh 02_methodology
```
Removes the chapter and creates a backup in `.chapter_backups/`.
### Manual Chapter Management
1. Create a file in `Content/Chapters/`
2. Add `\input{Content/Chapters/your_chapter}` to the marked section in `Content/01_content.tex`
## 🔨 Building the Document
### Using Make (Recommended)
```bash
# Full build with bibliography and glossary open after
make
# Just build
make compile
# Clean auxiliary files
make clean
```
### Using latexmk
```bash
latexmk -xelatex -bibtex Main.tex
```
## 🐛 Troubleshooting
### Common Issues
1. **"This class can only be used with XeLaTeX" error**
- Solution: Ensure you're using XeLaTeX, not pdfLaTeX
- Check your editor's compiler settings
2. **Bibliography not appearing**
- Run `biber Main` after the first XeLaTeX compilation
- Check for errors in `Main.bib`
3. **Glossary entries not showing**
- Run `makeglossaries Main` after adding new entries
- Ensure entries are referenced in the document using `\gls{term}`
## 📄 License
This template is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0).
- **Original Author**: Martin Oswald (Zürich University of Applied Sciences)
- **Modified by**: Frederik Beimgraben (University of Applied Sciences Reutlingen)
See [LICENSE](LICENSE) for details.
## 📧 Support
For questions, issues, or suggestions:
- Open an issue on GitHub
- Contact the maintainer at [frederik@beimgraben.net](mailto:frederik@beimgraben.net)
## 🙏 Acknowledgments
- Martin Oswald for the original ZHAWReport class
- KOMA-Script team for the excellent document classes
- University of Applied Sciences Reutlingen [Reutlingen University](https://reutlingen-university.de)
---
*Last updated: October 2025*