Compare commits
48 Commits
219ebf81bf
...
c3e7877f8b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c3e7877f8b | ||
|
|
519be27037 | ||
|
|
4513948e68 | ||
|
|
42db939502 | ||
|
|
2cde8a890a | ||
|
|
e4b42696b7 | ||
| 9181409f3d | |||
| 25bf72f0a6 | |||
| e260a28e8d | |||
| 27f642f47f | |||
| 1e44cc1ba1 | |||
| ea83231bb9 | |||
| 9e3d8e224b | |||
| 18e7bfae6a | |||
| ae388e3e84 | |||
|
|
7fdef6003f | ||
| 8c03c59014 | |||
| e368f9f814 | |||
| 22a6ba51d4 | |||
| 91ef8ad136 | |||
| c3666e9b09 | |||
| c5dc777e8f | |||
| 41a9f442f4 | |||
|
|
d86c616a9b | ||
| c0d2ecae0c | |||
| 7aa72ec2cf | |||
|
|
897755b123 | ||
|
|
6888e60f0d | ||
| a8d3ea94ae | |||
| 88ee385681 | |||
| 7d895bb63c | |||
| 00134d66f4 | |||
| 7dccd3e752 | |||
| 5da35271ae | |||
| 024ae1f172 | |||
| 5fc289c096 | |||
| 9db24ee9b6 | |||
| b4a80c8510 | |||
| 64ec249fc2 | |||
| 9beb7bbbb5 | |||
| 497d9b151e | |||
| 274dfa3a0e | |||
| d6c4386f52 | |||
| 0a990f39ca | |||
|
|
9c0119d940 | ||
| 31cae0b55b | |||
| dc9f46ea3a | |||
| 2184bd5118 |
15
.env.example
Normal file
15
.env.example
Normal file
@ -0,0 +1,15 @@
|
||||
# Docker Environment Configuration Example
|
||||
# =========================================
|
||||
# Copy this file to .env and adjust values as needed
|
||||
|
||||
# User ID and Group ID for the Docker container user
|
||||
# These should match your local user to avoid permission issues
|
||||
# You can get your current values by running:
|
||||
# echo "HOST_UID=$(id -u)"
|
||||
# echo "HOST_GID=$(id -g)"
|
||||
HOST_UID=1000
|
||||
HOST_GID=1000
|
||||
|
||||
# Note: When using 'make docker-build', these values are automatically
|
||||
# detected and passed to docker-compose, so you don't need a .env file.
|
||||
# This file is only needed if you run docker-compose directly.
|
||||
49
.github/dependabot.yml
vendored
Normal file
49
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
# ==============================================================================
|
||||
# Dependabot Configuration
|
||||
# ==============================================================================
|
||||
# Description: Automated dependency updates for GitHub Actions
|
||||
# Documentation: https://docs.github.com/en/code-security/dependabot
|
||||
# ==============================================================================
|
||||
|
||||
version: 2
|
||||
|
||||
updates:
|
||||
# ------------------------------------------------------------------------------
|
||||
# GitHub Actions Updates
|
||||
# ------------------------------------------------------------------------------
|
||||
# Keep GitHub Actions up to date automatically
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
day: "monday"
|
||||
time: "06:00"
|
||||
commit-message:
|
||||
prefix: "ci"
|
||||
include: "scope"
|
||||
labels:
|
||||
- "dependencies"
|
||||
- "github-actions"
|
||||
assignees:
|
||||
- "frederikbeimgraben"
|
||||
open-pull-requests-limit: 5
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Docker Updates
|
||||
# ------------------------------------------------------------------------------
|
||||
# Keep Docker base images up to date
|
||||
- package-ecosystem: "docker"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
day: "monday"
|
||||
time: "06:00"
|
||||
commit-message:
|
||||
prefix: "docker"
|
||||
include: "scope"
|
||||
labels:
|
||||
- "dependencies"
|
||||
- "docker"
|
||||
assignees:
|
||||
- "frederikbeimgraben"
|
||||
open-pull-requests-limit: 3
|
||||
93
.github/workflows/release.yml
vendored
Normal file
93
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
name: Create Release with PDF
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*.*.*" # Trigger on version tags like v1.0.0
|
||||
- "release-*" # Trigger on release tags like release-2024-10
|
||||
|
||||
jobs:
|
||||
build-and-release:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
contents: write # Required for creating releases
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Extract version from tag
|
||||
id: version
|
||||
run: |
|
||||
echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
|
||||
echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Build document with Docker
|
||||
run: make docker-build
|
||||
|
||||
- name: Verify PDF creation
|
||||
run: |
|
||||
if [ ! -f Output/Main.pdf ]; then
|
||||
echo "Error: PDF was not created"
|
||||
exit 1
|
||||
fi
|
||||
echo "PDF successfully created"
|
||||
echo "Size: $(du -h Output/Main.pdf)"
|
||||
|
||||
- name: Rename PDF with version
|
||||
run: |
|
||||
cp Output/Main.pdf "Report_${{ steps.version.outputs.VERSION }}.pdf"
|
||||
|
||||
- name: Generate release notes
|
||||
id: release_notes
|
||||
run: |
|
||||
cat << EOF > release_notes.md
|
||||
## Report Document Release
|
||||
|
||||
**Version:** ${{ steps.version.outputs.VERSION }}
|
||||
**Date:** ${{ steps.version.outputs.DATE }}
|
||||
|
||||
### 📄 Document Information
|
||||
- **Template:** HSRTReport LaTeX Template
|
||||
- **Institution:** University of Applied Sciences Reutlingen
|
||||
- **Build System:** Docker-based compilation
|
||||
|
||||
### 📦 Included Files
|
||||
- \`Report_${{ steps.version.outputs.VERSION }}.pdf\` - The compiled document
|
||||
|
||||
### 🔧 Build Information
|
||||
- Built with XeLaTeX
|
||||
- Bibliography processed with Biber
|
||||
- Glossaries and acronyms included
|
||||
|
||||
### 📝 Recent Changes
|
||||
Please see the commit history for detailed changes.
|
||||
|
||||
---
|
||||
*This release was automatically generated by GitHub Actions*
|
||||
EOF
|
||||
|
||||
- name: Create GitHub Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
files: |
|
||||
Report_${{ steps.version.outputs.VERSION }}.pdf
|
||||
Output/Main.pdf
|
||||
name: Release ${{ steps.version.outputs.VERSION }}
|
||||
body_path: release_notes.md
|
||||
draft: false
|
||||
prerelease: false
|
||||
generate_release_notes: true # Append auto-generated notes
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Upload PDF as artifact (backup)
|
||||
uses: actions/upload-artifact@v5
|
||||
with:
|
||||
name: Report-${{ steps.version.outputs.VERSION }}
|
||||
path: |
|
||||
Report_${{ steps.version.outputs.VERSION }}.pdf
|
||||
Output/Main.pdf
|
||||
retention-days: 90
|
||||
if-no-files-found: error
|
||||
32
.gitignore
vendored
32
.gitignore
vendored
@ -1,5 +1,6 @@
|
||||
# Ignore build/
|
||||
build/*
|
||||
# Ignore Build/ and Output/
|
||||
Build/
|
||||
Output/
|
||||
*.log
|
||||
*.aux
|
||||
*.out
|
||||
@ -15,7 +16,6 @@ build/*
|
||||
*.lot
|
||||
*.xdv
|
||||
*.bak
|
||||
svg-inkscape/
|
||||
*.tex~
|
||||
*.bib~*
|
||||
*.nav
|
||||
@ -32,24 +32,14 @@ svg-inkscape/
|
||||
*.alg
|
||||
*.acr
|
||||
*.acn
|
||||
Main.pdf
|
||||
*.pdf
|
||||
*.lol
|
||||
|
||||
# Python
|
||||
*.pyc
|
||||
__pycache__/
|
||||
*.egg-info/
|
||||
*.egg
|
||||
*.pyo
|
||||
*.pyd
|
||||
*.pyc
|
||||
# Ignore chapter backups and Temporary PDF files from Inkscape
|
||||
.chapter-backups/
|
||||
svg-inkscape/
|
||||
.config/
|
||||
.cache/
|
||||
|
||||
.env/
|
||||
.venv/
|
||||
env/
|
||||
venv/
|
||||
|
||||
Build/
|
||||
Output/
|
||||
|
||||
.vscode/
|
||||
# Ignore environment file
|
||||
.env
|
||||
|
||||
103
.vscode/README.md
vendored
Normal file
103
.vscode/README.md
vendored
Normal file
@ -0,0 +1,103 @@
|
||||
# VSCode Configuration for LaTeX Project
|
||||
|
||||
This directory contains Visual Studio Code workspace settings optimized for LaTeX development with this project.
|
||||
|
||||
## Features
|
||||
|
||||
### LaTeX Workshop Integration
|
||||
- Configured to use `make` command for building
|
||||
- Multiple build recipes available:
|
||||
- `make` - Standard build using Docker
|
||||
- `make clean` - Clean auxiliary files
|
||||
- `make full` - Clean and full rebuild
|
||||
|
||||
### Key Settings
|
||||
- **Auto-build disabled** - Build manually with `Ctrl+Shift+B` (Windows/Linux) or `Cmd+Shift+B` (Mac)
|
||||
- **PDF viewer** - Opens in a new tab within VSCode
|
||||
- **Output directory** - Configured to use `Output/` folder
|
||||
- **Auto-clean** - Cleans auxiliary files after successful build
|
||||
|
||||
## Usage
|
||||
|
||||
### Building the Document
|
||||
1. **Quick Build**: Press `Ctrl+Shift+B` / `Cmd+Shift+B`
|
||||
2. **Build Menu**: Press `Ctrl+Alt+B` / `Cmd+Alt+B` to see all build options
|
||||
3. **Command Palette**: Press `F1` and type "LaTeX Workshop: Build"
|
||||
|
||||
### Viewing the PDF
|
||||
- After building, the PDF will automatically open in a new tab
|
||||
- Use `Ctrl+Alt+V` / `Cmd+Alt+V` to manually open the PDF
|
||||
|
||||
### Tasks
|
||||
Additional tasks are available through the Command Palette (`F1`):
|
||||
- `Tasks: Run Task` shows all available make commands:
|
||||
- Build LaTeX Document
|
||||
- Clean Build Files
|
||||
- Full Build
|
||||
- View PDF
|
||||
- Docker Build/Clean
|
||||
- List Chapters
|
||||
- Word Count
|
||||
- Check Prerequisites
|
||||
|
||||
## Recommended Extensions
|
||||
|
||||
The following extensions are recommended for the best experience:
|
||||
- **LaTeX Workshop** - Main LaTeX support (required)
|
||||
- **Code Spell Checker** + German dictionary - Spell checking
|
||||
- **PDF Viewer** - Enhanced PDF viewing
|
||||
- **GitLens** - Git integration
|
||||
- **Docker** - Docker support for containerized builds
|
||||
|
||||
Install all recommended extensions:
|
||||
1. Open Extensions sidebar (`Ctrl+Shift+X` / `Cmd+Shift+X`)
|
||||
2. Filter by `@recommended`
|
||||
3. Click "Install Workspace Recommended Extensions"
|
||||
|
||||
## Customization
|
||||
|
||||
To override any settings for your personal preferences, create a `.vscode/settings.local.json` file (git-ignored) or modify your user settings.
|
||||
|
||||
### Enable Auto-Build on Save
|
||||
If you want to enable automatic building when saving `.tex` files, add this to your user settings:
|
||||
```json
|
||||
{
|
||||
"latex-workshop.latex.autoBuild.run": "onSave"
|
||||
}
|
||||
```
|
||||
|
||||
### Change PDF Viewer
|
||||
To use an external PDF viewer instead of the built-in one:
|
||||
```json
|
||||
{
|
||||
"latex-workshop.view.pdf.viewer": "external",
|
||||
"latex-workshop.view.pdf.external.viewer.command": "your-pdf-viewer",
|
||||
"latex-workshop.view.pdf.external.viewer.args": ["%PDF%"]
|
||||
}
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Build Fails
|
||||
1. Ensure Docker is running: `make docker-info`
|
||||
2. Check prerequisites: `make check`
|
||||
3. Try a clean build: `make full`
|
||||
|
||||
### PDF Doesn't Open
|
||||
- Check if the PDF was created in `Output/Main.pdf`
|
||||
- Try manually opening: `make view`
|
||||
|
||||
### Extensions Not Working
|
||||
1. Ensure LaTeX Workshop extension is installed and enabled
|
||||
2. Reload VSCode window: `F1` → "Developer: Reload Window"
|
||||
3. Check extension output: View → Output → Select "LaTeX Workshop"
|
||||
|
||||
## File Exclusions
|
||||
|
||||
The configuration hides common LaTeX auxiliary files from the file explorer:
|
||||
- `*.aux`, `*.log`, `*.synctex.gz`
|
||||
- `*.fdb_latexmk`, `*.fls`
|
||||
- `*.out`, `*.toc`, `*.bbl`, `*.blg`
|
||||
- Build directory contents (can be shown if needed)
|
||||
|
||||
To show hidden files temporarily, use the file explorer's filter settings.
|
||||
26
.vscode/extensions.json
vendored
Normal file
26
.vscode/extensions.json
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
// Recommended extensions for LaTeX development
|
||||
"recommendations": [
|
||||
// LaTeX Workshop - Main LaTeX extension
|
||||
"james-yu.latex-workshop",
|
||||
|
||||
// PDF viewer
|
||||
"tomoki1207.pdf",
|
||||
|
||||
// Spell checking
|
||||
"streetsidesoftware.code-spell-checker",
|
||||
"streetsidesoftware.code-spell-checker-german",
|
||||
|
||||
// File icons
|
||||
"vscode-icons-team.vscode-icons",
|
||||
|
||||
// Docker support (for building with Docker)
|
||||
"ms-azuretools.vscode-docker",
|
||||
|
||||
// Path intellisense
|
||||
"christian-kohler.path-intellisense",
|
||||
|
||||
// TODO highlighting
|
||||
"gruntfuggly.todo-tree"
|
||||
]
|
||||
}
|
||||
114
.vscode/settings.json
vendored
Normal file
114
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,114 @@
|
||||
{
|
||||
// LaTeX Workshop Configuration
|
||||
"latex-workshop.latex.recipes": [
|
||||
{
|
||||
"name": "make",
|
||||
"tools": ["make"]
|
||||
},
|
||||
{
|
||||
"name": "make clean",
|
||||
"tools": ["make-clean"]
|
||||
},
|
||||
{
|
||||
"name": "make full",
|
||||
"tools": ["make-full"]
|
||||
}
|
||||
],
|
||||
|
||||
"latex-workshop.latex.tools": [
|
||||
{
|
||||
"name": "make",
|
||||
"command": "make",
|
||||
"args": [],
|
||||
"env": {},
|
||||
"cwd": "${workspaceFolder}"
|
||||
},
|
||||
{
|
||||
"name": "make-clean",
|
||||
"command": "make",
|
||||
"args": ["clean"],
|
||||
"env": {},
|
||||
"cwd": "${workspaceFolder}"
|
||||
},
|
||||
{
|
||||
"name": "make-full",
|
||||
"command": "make",
|
||||
"args": ["full"],
|
||||
"env": {},
|
||||
"cwd": "${workspaceFolder}"
|
||||
}
|
||||
],
|
||||
|
||||
// Set default recipe
|
||||
"latex-workshop.latex.recipe.default": "first",
|
||||
|
||||
// Use external build command
|
||||
"latex-workshop.latex.external.build.command": "make",
|
||||
"latex-workshop.latex.external.build.args": [],
|
||||
|
||||
// Disable auto-build on save (optional, remove if you want auto-build)
|
||||
"latex-workshop.latex.autoBuild.run": "never",
|
||||
|
||||
// Clean auxiliary files
|
||||
"latex-workshop.latex.autoClean.run": "onBuilt",
|
||||
|
||||
// PDF viewer settings
|
||||
"latex-workshop.view.pdf.viewer": "tab",
|
||||
"latex-workshop.view.pdf.zoom": "auto",
|
||||
|
||||
// Output directory
|
||||
"latex-workshop.latex.outDir": "./Output",
|
||||
|
||||
// Root file
|
||||
"latex-workshop.latex.rootFile.usePolling": true,
|
||||
"latex-workshop.latex.rootFile.indicator": "\\documentclass",
|
||||
|
||||
// Disable other build methods to avoid confusion
|
||||
"latex-workshop.latex.magic.enabled": false,
|
||||
"latex-workshop.latex.build.forceRecipeUsage": true,
|
||||
|
||||
// File associations
|
||||
"files.associations": {
|
||||
"*.tex": "latex",
|
||||
"*.cls": "latex",
|
||||
"*.sty": "latex",
|
||||
"*.bib": "bibtex"
|
||||
},
|
||||
|
||||
// Editor settings for LaTeX files
|
||||
"[latex]": {
|
||||
"editor.wordWrap": "on",
|
||||
"editor.rulers": [80, 100],
|
||||
"editor.formatOnSave": false,
|
||||
"editor.suggestSelection": "first"
|
||||
},
|
||||
|
||||
// Spell check settings (optional)
|
||||
"cSpell.language": "de,en",
|
||||
"cSpell.enableFiletypes": ["latex", "bibtex"],
|
||||
|
||||
// Hide auxiliary files from explorer (optional)
|
||||
"files.exclude": {
|
||||
"**/*.aux": true,
|
||||
"**/*.log": true,
|
||||
"**/*.synctex.gz": true,
|
||||
"**/*.fdb_latexmk": true,
|
||||
"**/*.fls": true,
|
||||
"**/*.out": true,
|
||||
"**/*.toc": true,
|
||||
"**/*.bbl": true,
|
||||
"**/*.blg": true,
|
||||
"**/*.lof": true,
|
||||
"**/*.lot": true,
|
||||
"**/*.nav": true,
|
||||
"**/*.snm": true,
|
||||
"**/*.vrb": true,
|
||||
"Build/**": false
|
||||
},
|
||||
|
||||
// Search exclude patterns
|
||||
"search.exclude": {
|
||||
"Build/**": true,
|
||||
"Output/**": false
|
||||
}
|
||||
}
|
||||
169
.vscode/tasks.json
vendored
Normal file
169
.vscode/tasks.json
vendored
Normal file
@ -0,0 +1,169 @@
|
||||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Build LaTeX Document",
|
||||
"type": "shell",
|
||||
"command": "make",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Clean Build Files",
|
||||
"type": "shell",
|
||||
"command": "make",
|
||||
"args": ["clean"],
|
||||
"group": "build",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Full Build (Clean + Build)",
|
||||
"type": "shell",
|
||||
"command": "make",
|
||||
"args": ["full"],
|
||||
"group": "build",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "View PDF",
|
||||
"type": "shell",
|
||||
"command": "make",
|
||||
"args": ["view"],
|
||||
"group": "none",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Docker Build",
|
||||
"type": "shell",
|
||||
"command": "make",
|
||||
"args": ["docker-build"],
|
||||
"group": "build",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Docker Clean",
|
||||
"type": "shell",
|
||||
"command": "make",
|
||||
"args": ["docker-clean"],
|
||||
"group": "build",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "List Chapters",
|
||||
"type": "shell",
|
||||
"command": "make",
|
||||
"args": ["chapters"],
|
||||
"group": "none",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Word Count",
|
||||
"type": "shell",
|
||||
"command": "make",
|
||||
"args": ["count"],
|
||||
"group": "none",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Check Prerequisites",
|
||||
"type": "shell",
|
||||
"command": "make",
|
||||
"args": ["check"],
|
||||
"group": "none",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Docker Info",
|
||||
"type": "shell",
|
||||
"command": "make",
|
||||
"args": ["docker-info"],
|
||||
"group": "none",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
}
|
||||
]
|
||||
}
|
||||
169
.zed/README.md
Normal file
169
.zed/README.md
Normal file
@ -0,0 +1,169 @@
|
||||
# Zed Configuration for LaTeX Project
|
||||
|
||||
This directory contains Zed editor workspace settings optimized for LaTeX development with this project.
|
||||
|
||||
## Features
|
||||
|
||||
### Build System Integration
|
||||
- Configured to use `make` command for all builds
|
||||
- **Auto-compile on save is DISABLED** as requested
|
||||
- Manual build triggers only
|
||||
|
||||
### Key Settings
|
||||
- **Format on save** - Disabled for LaTeX files
|
||||
- **Auto-save** - Disabled to prevent unwanted builds
|
||||
- **Build command** - Uses `make` via Docker
|
||||
- **PDF viewer** - Uses system default (xdg-open on Linux)
|
||||
- **Word wrap** - Enabled for better readability
|
||||
|
||||
## Usage
|
||||
|
||||
### Building the Document
|
||||
1. **Default Build**: Press `Cmd+B` (Mac) / `Ctrl+B` (Linux)
|
||||
2. **Full Build**: Press `Cmd+Shift+B` (Mac) / `Ctrl+Shift+B` (Linux)
|
||||
3. **Command Palette**: Press `Cmd+Shift+P` and select a task
|
||||
|
||||
### Available Tasks
|
||||
- **Build LaTeX Document** - Standard build using Docker
|
||||
- **Clean Build Files** - Remove auxiliary files
|
||||
- **Full Build** - Clean and rebuild from scratch
|
||||
- **View PDF** - Open the generated PDF
|
||||
- **Docker Build** - Explicit Docker build
|
||||
- **Docker Clean** - Clean Docker containers
|
||||
- **Word Count** - Show document statistics
|
||||
- **List Chapters** - Show all chapters
|
||||
- **Check Prerequisites** - Verify system requirements
|
||||
|
||||
### Keyboard Shortcuts
|
||||
| Action | Mac | Linux/Windows |
|
||||
|--------|-----|---------------|
|
||||
| Build | `Cmd+B` | `Ctrl+B` |
|
||||
| Full Build | `Cmd+Shift+B` | `Ctrl+Shift+B` |
|
||||
| Clean | `Cmd+K Cmd+C` | `Ctrl+K Ctrl+C` |
|
||||
| View PDF | `Cmd+K Cmd+V` | `Ctrl+K Ctrl+V` |
|
||||
|
||||
## Configuration Details
|
||||
|
||||
### LaTeX Language Settings
|
||||
```json
|
||||
{
|
||||
"LaTeX": {
|
||||
"format_on_save": false, // No auto-formatting
|
||||
"autosave": false, // No auto-save
|
||||
"tab_size": 2, // 2-space indentation
|
||||
"soft_wrap": "editor_width", // Wrap at editor width
|
||||
"enable_language_server": true // Enable LSP support
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Build Configuration
|
||||
The project is configured to use `make` for all build operations:
|
||||
- Build command: `make`
|
||||
- Working directory: Project root
|
||||
- Output directory: `Output/`
|
||||
|
||||
### File Exclusions
|
||||
The following files are hidden from the file tree:
|
||||
- Build artifacts (`*.aux`, `*.log`, `*.synctex.gz`)
|
||||
- Bibliography files (`*.bbl`, `*.blg`)
|
||||
- Table of contents (`*.toc`, `*.lof`, `*.lot`)
|
||||
- Build directory contents
|
||||
|
||||
## LSP Configuration (texlab)
|
||||
|
||||
If you have `texlab` language server installed, it's configured with:
|
||||
- Build on save: **DISABLED**
|
||||
- Forward search: Disabled
|
||||
- ChkTeX: Enabled on open and save
|
||||
- Formatter: latexindent
|
||||
|
||||
To install texlab:
|
||||
```bash
|
||||
# macOS
|
||||
brew install texlab
|
||||
|
||||
# Linux (via cargo)
|
||||
cargo install texlab
|
||||
|
||||
# Or download from GitHub releases
|
||||
```
|
||||
|
||||
## Customization
|
||||
|
||||
### Enable Auto-Save (Not Recommended)
|
||||
If you want to enable auto-save (will NOT trigger builds):
|
||||
```json
|
||||
{
|
||||
"autosave": {
|
||||
"after_delay": 1000
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Change PDF Viewer
|
||||
To use a different PDF viewer:
|
||||
```json
|
||||
{
|
||||
"preview": {
|
||||
"pdf_viewer": {
|
||||
"open_command": "your-pdf-viewer"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Enable Build on Save (Not Recommended)
|
||||
If you really want to build on every save:
|
||||
```json
|
||||
{
|
||||
"lsp": {
|
||||
"texlab": {
|
||||
"initialization_options": {
|
||||
"build": {
|
||||
"onSave": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Build Doesn't Start
|
||||
1. Ensure Docker is running
|
||||
2. Check that `make` command works in terminal
|
||||
3. Try running `make docker-info` in terminal
|
||||
|
||||
### Tasks Not Available
|
||||
1. Ensure you're in the project root
|
||||
2. Reload Zed: `Cmd+Q` and restart
|
||||
3. Check tasks.json is properly loaded
|
||||
|
||||
### PDF Doesn't Open
|
||||
1. Check if PDF exists in `Output/Main.pdf`
|
||||
2. Verify system PDF viewer is configured
|
||||
3. Try manually: `make view` in terminal
|
||||
|
||||
### Language Server Issues
|
||||
1. Install texlab if not already installed
|
||||
2. Check Zed's language server logs
|
||||
3. Disable and re-enable language server in settings
|
||||
|
||||
## Important Notes
|
||||
|
||||
1. **Auto-compile is intentionally disabled** - You must manually trigger builds
|
||||
2. **Format on save is disabled** - LaTeX formatting can break documents
|
||||
3. **Use Docker builds** - Ensures consistent environment
|
||||
4. **Check git status** - Some files are auto-generated and should not be committed
|
||||
|
||||
## File Structure
|
||||
```
|
||||
.zed/
|
||||
├── settings.json # Zed workspace settings
|
||||
├── tasks.json # Build task definitions
|
||||
└── README.md # This file
|
||||
```
|
||||
|
||||
These configuration files are workspace-specific and should be committed to the repository so all team members have the same settings.
|
||||
86
.zed/settings.json
Normal file
86
.zed/settings.json
Normal file
@ -0,0 +1,86 @@
|
||||
{
|
||||
"languages": {
|
||||
"LaTeX": {
|
||||
"tab_size": 2,
|
||||
"hard_tabs": false,
|
||||
"soft_wrap": "editor_width",
|
||||
"show_whitespaces": "selection",
|
||||
"use_autoclose": true,
|
||||
"enable_language_server": true
|
||||
}
|
||||
},
|
||||
|
||||
"file_scan_exclusions": [
|
||||
"Build/",
|
||||
"*.aux",
|
||||
"*.log",
|
||||
"*.out",
|
||||
"*.toc",
|
||||
"*.lof",
|
||||
"*.lot",
|
||||
"*.lol",
|
||||
"*.bbl",
|
||||
"*.blg",
|
||||
"*.synctex.gz",
|
||||
"*.fdb_latexmk",
|
||||
"*.fls",
|
||||
"*.idx",
|
||||
"*.ind",
|
||||
"*.ilg",
|
||||
"*.glo",
|
||||
"*.gls",
|
||||
"*.glg",
|
||||
"*.nav",
|
||||
"*.snm",
|
||||
"*.vrb",
|
||||
"*.bcf",
|
||||
"*.run.xml"
|
||||
],
|
||||
|
||||
"show_line_numbers": true,
|
||||
"relative_line_numbers": false,
|
||||
"cursor_blink": true,
|
||||
|
||||
"git": {
|
||||
"git_gutter": "tracked_files",
|
||||
"inline_blame": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
|
||||
"lsp": {
|
||||
"texlab": {
|
||||
"settings": {
|
||||
"texlab": {
|
||||
"build": {
|
||||
"executable": "/bin/echo",
|
||||
"args": ["Skipping auto-build - use 'make' in terminal instead"],
|
||||
"onSave": false,
|
||||
"forwardSearchAfter": false
|
||||
},
|
||||
"chktex": {
|
||||
"onEdit": false,
|
||||
"onOpenAndSave": false
|
||||
},
|
||||
"diagnostics": {
|
||||
"allowedPatterns": []
|
||||
},
|
||||
"formatterLineLength": 120,
|
||||
"latexFormatter": "none",
|
||||
"experimental": {
|
||||
"followPackageLinks": true,
|
||||
"mathEnvironments": ["align", "align*", "equation", "equation*"],
|
||||
"verbatimEnvironments": ["verbatim", "lstlisting", "minted"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"task_aliases": {
|
||||
"build": "make",
|
||||
"clean": "make clean",
|
||||
"full": "make full",
|
||||
"view": "make view"
|
||||
}
|
||||
}
|
||||
170
.zed/tasks.json
Normal file
170
.zed/tasks.json
Normal file
@ -0,0 +1,170 @@
|
||||
[
|
||||
{
|
||||
"label": "Build LaTeX Document",
|
||||
"command": "make",
|
||||
"args": [],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Clean Build Files",
|
||||
"command": "make",
|
||||
"args": ["clean"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Full Build (Clean + Build)",
|
||||
"command": "make",
|
||||
"args": ["full"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "View PDF",
|
||||
"command": "make",
|
||||
"args": ["view"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": true,
|
||||
"reveal": "never"
|
||||
},
|
||||
{
|
||||
"label": "Docker Build",
|
||||
"command": "make",
|
||||
"args": ["docker-build"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Docker Build (Cached)",
|
||||
"command": "make",
|
||||
"args": ["docker-build-cached"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Docker Clean",
|
||||
"command": "make",
|
||||
"args": ["docker-clean"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Docker Shell",
|
||||
"command": "make",
|
||||
"args": ["docker-shell"],
|
||||
"use_new_terminal": true,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Docker Info",
|
||||
"command": "make",
|
||||
"args": ["docker-info"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": true,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "List Chapters",
|
||||
"command": "make",
|
||||
"args": ["chapters"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": true,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Word Count",
|
||||
"command": "make",
|
||||
"args": ["count"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": true,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Check Prerequisites",
|
||||
"command": "make",
|
||||
"args": ["check"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": true,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Project Structure",
|
||||
"command": "make",
|
||||
"args": ["structure"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": true,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Help",
|
||||
"command": "make",
|
||||
"args": ["help"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": true,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Watch (Continuous Build)",
|
||||
"command": "make",
|
||||
"args": ["watch"],
|
||||
"use_new_terminal": true,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Draft Build",
|
||||
"command": "make",
|
||||
"args": ["draft"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Local Build (No Docker)",
|
||||
"command": "make",
|
||||
"args": ["local"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Compile Only",
|
||||
"command": "make",
|
||||
"args": ["compile"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Clean Output",
|
||||
"command": "make",
|
||||
"args": ["clean-output"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Clean Auxiliary Files",
|
||||
"command": "make",
|
||||
"args": ["clean-aux"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
},
|
||||
{
|
||||
"label": "Distribution Clean",
|
||||
"command": "make",
|
||||
"args": ["distclean"],
|
||||
"use_new_terminal": false,
|
||||
"allow_concurrent_runs": false,
|
||||
"reveal": "always"
|
||||
}
|
||||
]
|
||||
@ -98,10 +98,10 @@
|
||||
\listoftables
|
||||
|
||||
% List of Listings
|
||||
\vspace{1em}
|
||||
\chapter*{\oldlstlistlistingname}
|
||||
\offsetB
|
||||
\lstlistoflistings
|
||||
% \vspace{1em}
|
||||
% \chapter*{\oldlstlistlistingname}
|
||||
% \offsetB
|
||||
% \lstlistoflistings
|
||||
|
||||
% List of Equations
|
||||
\vspace{1em}
|
||||
@ -113,10 +113,10 @@
|
||||
% ------------------------------------------------------------------------------
|
||||
% Glossary Section
|
||||
% ------------------------------------------------------------------------------
|
||||
% Generate glossary and list of acronyms
|
||||
% Generate glossary and list of abbreviations
|
||||
% Two separate glossaries are printed:
|
||||
% 1. Main glossary with technical terms
|
||||
% 2. Acronym list with abbreviations
|
||||
% 2. List of abbreviations
|
||||
% ------------------------------------------------------------------------------
|
||||
{
|
||||
\noindent
|
||||
@ -132,14 +132,14 @@
|
||||
\printglossary
|
||||
}
|
||||
|
||||
% --- Acronym List ---
|
||||
% Print acronym glossary with German header "Abkürzung"
|
||||
% --- List of Abbreviations ---
|
||||
% Print abbreviation glossary with German header "Abkürzung"
|
||||
{
|
||||
\renewcommand*{\entryname}{Abkürzung}
|
||||
\newpage
|
||||
\pagestyle{fancy}
|
||||
\vspace*{-2.25em}
|
||||
\printglossary[type=\acronymtype]
|
||||
\printglossary[type=\acronymtype,title=Abkürzungen]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
31
Content/99_eidesstattliche.tex
Normal file
31
Content/99_eidesstattliche.tex
Normal file
@ -0,0 +1,31 @@
|
||||
%7 Eidesstattliche Erklärung
|
||||
%Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbstständig erstellt, keine nicht genannte fremde Hilfe in Anspruch genommen und alle von mir verwendeten Hilfsmittel und Quellen in der Arbeit benannt und kenntlich gemacht habe. Die Arbeit oder Teile davon wurden in keinem Prüfungsmodul zur Prüfung vorgelegt und verletzt in keiner Weise Rechte Dritter.
|
||||
%Mir ist bekannt, dass eine unwahre Erklärung als Täuschung gewertet wird.
|
||||
%
|
||||
%
|
||||
%Nicht ausfüllen Nicht ausfüllen Nicht ausfüllen
|
||||
%______________ ___________ ________________________
|
||||
%Ort, Datum Unterschrift
|
||||
% (Vor- und Nachname)
|
||||
%
|
||||
%
|
||||
|
||||
\chapter{Eidesstattliche Erklärung}
|
||||
\label{chap:eidesstattliche}
|
||||
|
||||
Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbstständig erstellt, keine nicht genannte fremde Hilfe in Anspruch genommen und alle von mir verwendeten Hilfsmittel und Quellen in der Arbeit benannt und kenntlich gemacht habe. Die Arbeit oder Teile davon wurden in keinem Prüfungsmodul zur Prüfung vorgelegt und verletzt in keiner Weise Rechte Dritter.
|
||||
|
||||
Mir ist bekannt, dass eine unwahre Erklärung als Täuschung gewertet wird.
|
||||
|
||||
\begin{center}
|
||||
\vspace{2cm}
|
||||
\begin{tabular}{ccc}
|
||||
\hline
|
||||
\textbf{Ort} \hspace{2cm} &
|
||||
\textbf{Datum} \hspace{2cm} &
|
||||
\hspace{2cm} \textbf{Unterschrift} \hspace{2cm} \\
|
||||
&
|
||||
&
|
||||
\textbf{(Vor- und Nachname)} \\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
@ -28,7 +28,7 @@ Die Seitenränder sind wie folgt definiert:
|
||||
\item Automatische Berechnung des Satzspiegels durch KOMA-Script
|
||||
\end{itemize}
|
||||
|
||||
Jeder neue Absatz hat zum vorhergehenden Absatz einen Abstand von 6 Punkten (konfiguriert in \texttt{Settings/General.tex}). Zusätzlich wird ein erhöhter Abstand vor Sections (4,5ex) und Subsections (3,5ex) eingefügt, um eine bessere visuelle Gliederung zu erreichen \parencite{theisen2013}. Für Listen gibt es die Formatvorlage \texttt{itemize}, bei der kein Abstand zwischen den Listenelementen enthalten ist.
|
||||
Jeder neue Absatz hat zum vorhergehenden Absatz einen Abstand von 6 Punkten (konfiguriert in \texttt{Settings/General.tex}). Zusätzlich wird ein erhöhter Abstand vor Sections (4,5ex) und Subsections (3,5ex) eingefügt, um eine bessere visuelle Gliederung zu erreichen \parencite{theisen2013}. Für Listen gibt es die züsätzliche Formatvorlage \texttt{listenabsatz}, bei der kein Abstand zwischen den Listenelementen enthalten ist.
|
||||
|
||||
Die Ausrichtung des Textes und aller Überschriften erfolgt im Blocksatz. Die Silbentrennung wird automatisch eingesetzt, um ein ausgewogenes Schriftbild zu erreichen.
|
||||
|
||||
@ -55,12 +55,12 @@ Zwischen den einzelnen Absätzen ist ein Abstand von 6 Punkten einzuhalten. Der
|
||||
\section{Kopfzeile}
|
||||
\label{sec:kopfzeile}
|
||||
|
||||
Der Aufbau der Kopfzeile erfolgt, mit Ausnahme der Titelseite, automatisch und beinhaltet die Kapitelnummer und -überschrift der ersten Ebene auf der linken Seite sowie den Dokumenttitel auf der rechten Seite.
|
||||
Der Aufbau der Kopfzeile erfolgt, mit Ausnahme der Titelseite, automatisch und beinhaltet die Kapitelnummer und -überschrift der ersten Ebene auf der rechten Seite sowie den Dokumenttitel auf der linken Seite.
|
||||
|
||||
\section{Fußzeile}
|
||||
\label{sec:fusszeile}
|
||||
|
||||
Der Aufbau der Fußzeile erfolgt, mit Ausnahme der Titelseite, automatisch und zeigt: Autorname | Modulname | Seite X von Y.
|
||||
Der Aufbau der Fußzeile erfolgt, mit Ausnahme der Titelseite, automatisch und zeigt: Autorname, Modulname und Seite X von Y.
|
||||
|
||||
\section{Seitennummerierung}
|
||||
\label{sec:seitennummerierung}
|
||||
@ -72,7 +72,7 @@ Die Seitennummerierung erfolgt automatisch. Die Zählung beginnt bei 0 für das
|
||||
|
||||
Fußnoten\footnote{Dies ist ein Beispiel für eine Fußnote.} werden im Text durch eine hochgestellte Ziffer grundsätzlich nach einem Satzzeichen (Komma, Strichpunkt, Punkt, Fragezeichen, Ausrufungszeichen, Gedankenstrich) referenziert. Die Fußnotennummerierung erfolgt fortlaufend über die gesamte Arbeit.
|
||||
|
||||
Erläuterungen zu den Fußnoten erfolgen oberhalb der Fußzeile und reduzieren die Zeilenzahl des Textkörpers. Der Beginn einer Fußnote wird durch einen linksbündigen horizontalen Strich, dessen Länge ca. 30\,\% der Breite des Textblockes beträgt, vom Textkörper abgetrennt.
|
||||
Erläuterungen zu den Fußnoten erfolgen oberhalb der Fußzeile und reduzieren die Zeilenzahl des \glsgen{Textkörper}. Der Beginn einer Fußnote wird durch einen linksbündigen horizontalen Strich, dessen Länge ca. 30\,\% der Breite des Textblockes beträgt, vom \gls{Textkörper} abgetrennt.
|
||||
|
||||
Die Fußnotentexte sollten nicht länger als 4 Zeilen sein. Ebenso sollte vermieden werden, den Umbruch der Fußnoten auf die nächste Seite zu erzwingen.
|
||||
|
||||
@ -89,7 +89,7 @@ Beispiel für die Mitternachtsformel:
|
||||
\end{equation}
|
||||
\myequations{Mitternachtsformel zur Lösung quadratischer Gleichungen}
|
||||
|
||||
Die Formel~\ref{eq:mitternachtsformel} zeigt die bekannte Lösungsformel für quadratische Gleichungen.
|
||||
Die \cref{eq:mitternachtsformel} zeigt die bekannte Lösungsformel für quadratische Gleichungen.
|
||||
|
||||
\section{Abbildungen}
|
||||
\label{sec:abbildungen}
|
||||
@ -99,11 +99,11 @@ Abbildungen können an beliebiger Stelle im Text eingebaut werden. Jede Abbildun
|
||||
\begin{figure}[h]
|
||||
\centering
|
||||
\fbox{\parbox{0.6\textwidth}{\centering\vspace{3cm}Beispielabbildung\vspace{3cm}}}
|
||||
\caption{Auswahlmenü auf der Website der HS Reutlingen}
|
||||
\label{fig:hs_website}
|
||||
\caption{Beispielabbildung}
|
||||
\label{fig:ex01}
|
||||
\end{figure}
|
||||
|
||||
Die Nummer kann in Verbindung mit der Abkürzung Abb. oder dem Wort Abbildung zur Referenzierung einer Abbildung im Text eingesetzt werden. Hierzu werden im Text runde Klammern verwendet, z.\,B. (Abbildung~\ref{fig:hs_website}) oder (Abb.~\ref{fig:hs_website}).
|
||||
Die Nummer kann in Verbindung mit der Abkürzung Abb. oder dem Wort Abbildung zur Referenzierung einer Abbildung im Text eingesetzt werden. Hierzu werden im Text runde Klammern verwendet, z.\,B. (\cref{fig:ex01}) oder (Abb.~\ref{fig:ex01}).
|
||||
|
||||
Alle Abbildungsnummern und -überschriften werden automatisch im Abbildungsverzeichnis referenziert.
|
||||
|
||||
@ -122,15 +122,15 @@ Tabellen können an beliebiger Stelle im Text eingebaut werden. Die erste Zeile
|
||||
\hline
|
||||
\textbf{Formatbezeichner} & \textbf{Schrift} & \textbf{Größe} & \textbf{kursiv} \\
|
||||
\hline
|
||||
Überschrift 1 & Franklin Gothic Book & 16 & nein \\
|
||||
Eigennamen & Times New Roman & 12 & ja \\
|
||||
Überschrift 1 & DIN-Regular & \texttt{\textbackslash normalsize} & nein \\
|
||||
Eigennamen & DIN-Regular & \texttt{\textbackslash normalsize} & ja \\
|
||||
\hline
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
Es ist darauf zu achten, dass innerhalb einer Tabellenzeile kein Seitenumbruch erfolgt. Das Template verwendet automatische Seitenumbruchkontrolle, um Tabellen möglichst auf einer Seite zu halten. Bei sehr langen Tabellen, die einen Seitenumbruch erfordern, muss auf der nächsten Seite die Beschriftung der Spalten wiederholt werden.
|
||||
|
||||
Auch die Tabellen werden in gleicher Form wie die Abbildungen nummeriert und beschriftet (siehe Tabelle~\ref{tab:formatvorlagen}). Der Nummer wird hierbei das Präfix Tabelle oder Tab. vorangestellt. Aus den Referenznummern und der Beschreibung wird das am Anfang der Ausarbeitung stehende Tabellenverzeichnis automatisch erstellt.
|
||||
Auch die Tabellen werden in gleicher Form wie die Abbildungen nummeriert und beschriftet (siehe \cref{tab:formatvorlagen}). Der Nummer wird hierbei das Präfix Tabelle oder Tab. vorangestellt. Aus den Referenznummern und der Beschreibung wird das am Anfang der Ausarbeitung stehende Tabellenverzeichnis automatisch erstellt.
|
||||
|
||||
\section{Abkürzungen}
|
||||
\label{sec:abkuerzungen}
|
||||
|
||||
@ -17,23 +17,22 @@ Die Gestaltung des Titelblattes erfolgt automatisch durch das Template. Alle erf
|
||||
\label{subsec:titel_arbeit}
|
||||
|
||||
Der Titel der Arbeit wird mit folgenden Eigenschaften formatiert:
|
||||
\begin{listenabsatz}
|
||||
\item Abstand zum oberen Blattrand: 6\,cm
|
||||
\item Ausrichtung: zentriert
|
||||
\item Schriftgröße: 24 Punkte
|
||||
\item E-Mail-Anschrift: Als Hyperlink kenntlich gemacht
|
||||
\end{listenabsatz}
|
||||
\begin{itemize}
|
||||
\item Abstand zum oberen Blattrand: 6,5\,cm
|
||||
\item Ausrichtung: linksbündig
|
||||
\item Schriftgröße: \texttt{\textbackslash Huge}
|
||||
\end{itemize}
|
||||
|
||||
\subsection*{Abstract}
|
||||
\label{subsec:abstract}
|
||||
|
||||
Das Abstract wird auf der Titelseite platziert und hat folgende Eigenschaften:
|
||||
\begin{listenabsatz}
|
||||
\item Schriftart: Times New Roman kursiv
|
||||
\item Schriftgröße: 10 Punkte
|
||||
\item Maximale Länge: 150--250 Wörter
|
||||
\begin{itemize}
|
||||
\item Schriftart: DIN-Regular
|
||||
\item Schriftgröße: \texttt{\textbackslash normalsize}
|
||||
\item Maximale Länge: 150–250 Wörter
|
||||
\item Inhalt: Zielsetzung, Methoden und Ergebnisse der Arbeit
|
||||
\end{listenabsatz}
|
||||
\end{itemize}
|
||||
|
||||
Das Abstract soll es den Lesern und Leserinnen ermöglichen, innerhalb von wenigen Augenblicken zu erfassen, welcher Inhalt hinter der Überschrift steckt und ob das Thema zur weiteren Bearbeitung lohnt.
|
||||
|
||||
@ -41,17 +40,19 @@ Das Abstract soll es den Lesern und Leserinnen ermöglichen, innerhalb von wenig
|
||||
\label{sec:inhaltsverzeichnis_format}
|
||||
|
||||
Das Inhaltsverzeichnis wird automatisch generiert und umfasst:
|
||||
\begin{listenabsatz}
|
||||
\item Maximal 3 Gliederungsebenen
|
||||
\item Schriftgröße: 10 Punkte
|
||||
\begin{itemize}
|
||||
\item Maximal 3 Gliederungsebenen (\texttt{\textbackslash chapter}, \texttt{\textbackslash section} und \texttt{\textbackslash subsection*} – \texttt{*} sorgt dafür, dass die Überschriften nicht in die Nummerierung einbezogen werden)
|
||||
\item Schriftgröße: \texttt{\textbackslash normalsize} (11pt)
|
||||
\item Schriftart: Blender-Medium (Wirkt u.U. eher wie 10pt)
|
||||
\item Automatische Seitenzahlen mit Punktführung
|
||||
\item Struktur so flach wie möglich halten
|
||||
\end{listenabsatz}
|
||||
\end{itemize}
|
||||
|
||||
\newpage
|
||||
\section{Abbildungsverzeichnis}
|
||||
\label{sec:abbildungsverzeichnis}
|
||||
|
||||
Das Abbildungsverzeichnis wird automatisch aus allen mit \texttt{\textbackslash caption} versehenen Abbildungen erstellt. Die Formatierung erfolgt analog zum Inhaltsverzeichnis mit 10 Punkt Schriftgröße.
|
||||
Das Abbildungsverzeichnis wird automatisch aus allen mit \texttt{\textbackslash caption} versehenen Abbildungen erstellt. Die Formatierung erfolgt analog zum Inhaltsverzeichnis mit 11pt Schriftgröße.
|
||||
|
||||
\section{Tabellenverzeichnis}
|
||||
\label{sec:tabellenverzeichnis}
|
||||
@ -62,12 +63,13 @@ Das Tabellenverzeichnis wird automatisch aus allen mit \texttt{\textbackslash ca
|
||||
\label{sec:abkuerzungsverzeichnis}
|
||||
|
||||
Das Abkürzungsverzeichnis wird durch das \texttt{glossaries}-Paket verwaltet und hat folgende Eigenschaften:
|
||||
\begin{listenabsatz}
|
||||
\begin{itemize}
|
||||
\item Tabellarische Darstellung mit drei Spalten
|
||||
\item Alphabetische Sortierung
|
||||
\item Allgemein bekannte Abkürzungen werden nicht aufgenommen
|
||||
\item Schriftgröße: 10 Punkte
|
||||
\end{listenabsatz}
|
||||
\item Schriftgröße: \texttt{\textbackslash normalsize} (11pt)
|
||||
\item Schriftart: DIN-Regular
|
||||
\end{itemize}
|
||||
|
||||
\section{Glossar}
|
||||
\label{sec:glossar}
|
||||
@ -75,23 +77,25 @@ Das Abkürzungsverzeichnis wird durch das \texttt{glossaries}-Paket verwaltet un
|
||||
Das Glossar dient dazu, dem Leser vermutlich nicht bekannte Fachbegriffe zu erläutern. Das Glossar ist nicht zu verwechseln mit dem Index, welcher im Rahmen dieser Seminararbeit nicht zur Anwendung kommt.
|
||||
|
||||
Das Glossar wird ebenfalls durch das \texttt{glossaries}-Paket verwaltet:
|
||||
\begin{listenabsatz}
|
||||
\item Tabellarische Darstellung mit zwei Spalten
|
||||
\begin{itemize}
|
||||
\item Tabellarische Darstellung mit drei Spalten
|
||||
\item Alphabetische Sortierung
|
||||
\item Schriftgröße: 10 Punkte
|
||||
\end{listenabsatz}
|
||||
\item Allgemein bekannte Fachbegriffe werden nicht aufgenommen
|
||||
\item Schriftgröße: \texttt{\textbackslash normalsize} (11pt)
|
||||
\item Schriftart: DIN-Regular
|
||||
\end{itemize}
|
||||
|
||||
\section{Textkörper}
|
||||
\label{sec:textkoerper}
|
||||
|
||||
Die Gestaltung und Unterteilung des Textkörpers in verschiedene Abschnitte muss entsprechend der Beschreibung der Inhalte erfolgen. Der Haupttext verwendet:
|
||||
\begin{listenabsatz}
|
||||
\item Schriftart: Franklin Gothic Book (oder Systemalternative)
|
||||
\item Schriftgröße: 12 Punkte
|
||||
Die Gestaltung und Unterteilung des \glsgen{Textkörper} in verschiedene Abschnitte muss entsprechend der Beschreibung der Inhalte erfolgen. Der Haupttext verwendet:
|
||||
\begin{itemize}
|
||||
\item Schriftart: DIN-Regular
|
||||
\item Schriftgröße: \texttt{\textbackslash normalsize} (ca. 11 Punkte)
|
||||
\item Zeilenabstand: 1,5-fach
|
||||
\item Absatzabstand: 6 Punkte
|
||||
\item Ausrichtung: Blocksatz mit Silbentrennung
|
||||
\end{listenabsatz}
|
||||
\item Ausrichtung: Blocksatz
|
||||
\end{itemize}
|
||||
|
||||
\section{Literaturverzeichnis}
|
||||
\label{sec:literaturverzeichnis_format}
|
||||
@ -110,11 +114,11 @@ Für die Qualität des Literaturverzeichnisses ist entscheidend, dass der gewäh
|
||||
\label{sec:eidesstattliche_erklaerung}
|
||||
|
||||
Die eidesstattliche Erklärung muss:
|
||||
\begin{listenabsatz}
|
||||
\begin{itemize}
|
||||
\item Den vorgegebenen Text verwenden
|
||||
\item Unterschrieben werden (z.\,B. durch PDF-Unterschriftsfunktion)
|
||||
\item Als letzte Seite vor dem Anhang eingefügt werden
|
||||
\end{listenabsatz}
|
||||
\end{itemize}
|
||||
|
||||
Der Wortlaut der Erklärung ist vorgegeben und darf nicht verändert werden.
|
||||
|
||||
|
||||
@ -23,24 +23,24 @@ Die folgende Tabelle gibt eine Übersicht über alle verwendeten Zeichenformate:
|
||||
\hline
|
||||
\textbf{Element} & \textbf{Schriftart} & \textbf{Größe} \\
|
||||
\hline
|
||||
Titel & Blender-Bold & \textbackslash Huge \\
|
||||
Standardtext & DIN-Regular & \textbackslash normalsize \\
|
||||
Kapitel (Chapter) & Blender-Bold & \textbackslash LARGE \\
|
||||
Überschrift 1 (Section) & Blender-Bold & \textbackslash Large \\
|
||||
Überschrift 2 (Subsection) & Blender-Bold & \textbackslash large \\
|
||||
Überschrift 3 (Subsubsection) & Blender-Bold & \textbackslash large \\
|
||||
Titel & Blender-Bold & \texttt{\textbackslash Huge} \\
|
||||
Standardtext & DIN-Regular & \texttt{\textbackslash normalsize} \\
|
||||
Kapitel (Chapter) & Blender-Bold & \texttt{\textbackslash LARGE} \\
|
||||
Überschrift 1 (Section) & Blender-Bold & \texttt{\textbackslash Large} \\
|
||||
Überschrift 2 (Subsection) & Blender-Bold & \texttt{\textbackslash large} \\
|
||||
Überschrift 3 (Subsubsection) & Blender-Bold & \texttt{\textbackslash large} \\
|
||||
\hline
|
||||
Inhaltsverzeichnis & Blender-Bold & \textbackslash normalsize \\
|
||||
Abb.-verzeichnis & Blender-Bold & \textbackslash normalsize \\
|
||||
Tab.-verzeichnis & Blender-Bold & \textbackslash normalsize \\
|
||||
Abk.-verzeichnis & Blender-Bold & \textbackslash normalsize \\
|
||||
Glossar & Blender-Bold & \textbackslash normalsize \\
|
||||
Inhaltsverzeichnis & Blender-Medium & \texttt{\textbackslash normalsize} \\
|
||||
Abb.-verzeichnis & Blender-Medium & \texttt{\textbackslash normalsize} \\
|
||||
Tab.-verzeichnis & Blender-Medium & \texttt{\textbackslash normalsize} \\
|
||||
Abk.-verzeichnis & Blender-Medium & \texttt{\textbackslash normalsize} \\
|
||||
Glossar & Blender-Medium & \texttt{\textbackslash normalsize} \\
|
||||
\hline
|
||||
Zitate & DIN-Regular & \textbackslash normalsize \\
|
||||
Kopfzeilen & Blender-Bold & \textbackslash normalsize \\
|
||||
Fußzeilen & Blender-Bold & \textbackslash normalsize \\
|
||||
Fußnoten & DIN-Regular & \textbackslash footnotesize \\
|
||||
Abstract & DIN-Regular & \textbackslash normalsize \\
|
||||
Zitate & DIN-Regular & \texttt{\textbackslash normalsize} \\
|
||||
Kopfzeilen & Blender-Medium & \texttt{\textbackslash normalsize} \\
|
||||
Fußzeilen & Blender-Medium & \texttt{\textbackslash normalsize} \\
|
||||
Fußnoten & DIN-Regular & \texttt{\textbackslash footnotesize} \\
|
||||
Abstract & DIN-Regular & \texttt{\textbackslash normalsize} \\
|
||||
\hline
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
@ -58,10 +58,10 @@ Der Standardtext verwendet Franklin Gothic Book (oder die in \LaTeX{} konfigurie
|
||||
|
||||
Die Hierarchie der Überschriften wird durch unterschiedliche \LaTeX{}-Schriftgrößenbefehle und vertikale Abstände deutlich gemacht:
|
||||
\begin{itemize}
|
||||
\item Kapitel (Chapter): \textbackslash LARGE mit 3ex Abstand davor
|
||||
\item Überschrift 1. Ebene (Section): \textbackslash Large mit 4,5ex Abstand davor
|
||||
\item Überschrift 2. Ebene (Subsection): \textbackslash large mit 3,5ex Abstand davor
|
||||
\item Überschrift 3. Ebene (Subsubsection): \textbackslash large mit 2ex Abstand davor
|
||||
\item Kapitel (Chapter): \texttt{\textbackslash LARGE}mit 3ex Abstand davor
|
||||
\item Überschrift 1. Ebene (Section): \texttt{\textbackslash Large}mit 4,5ex Abstand davor
|
||||
\item Überschrift 2. Ebene (Subsection): \texttt{\textbackslash large}mit 3,5ex Abstand davor
|
||||
\item Überschrift 3. Ebene (Subsubsection): \texttt{\textbackslash large}mit 2ex Abstand davor
|
||||
\end{itemize}
|
||||
|
||||
Die großzügigen vertikalen Abstände vor Sections und Subsections sorgen für eine klare visuelle Gliederung des Dokuments. Alle Überschriften verwenden Fettdruck (\texttt{\textbackslash bfseries}) zusätzlich zur \texttt{blenderfont}.
|
||||
@ -77,7 +77,7 @@ Alle Verzeichnisse (Inhalts-, Abbildungs-, Tabellen-, Abkürzungsverzeichnis und
|
||||
\label{subsec:spezielle_formatierungen}
|
||||
|
||||
\subsubsection{Eigennamen}
|
||||
Bei der Nennung von Eigennamen kann eine Kursivschrift mit Serifen verwendet werden, beispielsweise \emph{Times New Roman} in kursiv. Dies hebt Eigennamen vom restlichen Text ab.
|
||||
Bei der Nennung von Eigennamen \textit{kann} eine Kursivschrift mit Serifen verwendet werden, beispielsweise \emph{Times New Roman} in kursiv. Dies hebt Eigennamen vom restlichen Text ab.
|
||||
|
||||
\subsubsection{Hervorhebungen}
|
||||
Auf Hervorhebungen von Text mittels Fettdruck, Unterstreichungen etc. soll generell verzichtet werden. Ausnahmen bilden:
|
||||
@ -87,8 +87,6 @@ Auf Hervorhebungen von Text mittels Fettdruck, Unterstreichungen etc. soll gener
|
||||
\item Eigennamen (kursiv mit Serifen)
|
||||
\end{itemize}
|
||||
|
||||
\subsubsection{Abstract}
|
||||
Das Abstract auf der Titelseite verwendet als einziges Element \emph{Times New Roman} in kursiv mit 10 Punkt Schriftgröße. Diese Formatierung hebt das Abstract visuell vom restlichen Dokument ab.
|
||||
|
||||
\section{Tabulatoren und Abstände}
|
||||
\label{sec:tabulatoren}
|
||||
|
||||
@ -17,25 +17,26 @@ Dieses Kapitel demonstriert die verschiedenen Funktionen und Möglichkeiten des
|
||||
\label{subsec:textauszeichnungen}
|
||||
|
||||
Das Template unterstützt verschiedene Textauszeichnungen:
|
||||
\begin{listenabsatz}
|
||||
\begin{itemize}
|
||||
\item \textbf{Fetter Text} für wichtige Begriffe
|
||||
\item \emph{Kursiver Text} für Betonungen und Eigennamen
|
||||
\item \texttt{Maschinenschrift} für Code und Befehle
|
||||
\item \textsf{Serifenlose Schrift} für spezielle Hervorhebungen
|
||||
\item \textsc{Kapitälchen} für besondere Formatierungen
|
||||
\end{listenabsatz}
|
||||
\end{itemize}
|
||||
|
||||
\subsection*{Spezielle Zeichen und Symbole}
|
||||
\label{subsec:spezielle_zeichen}
|
||||
|
||||
Das Template unterstützt korrekte Typografie:
|
||||
\begin{listenabsatz}
|
||||
Das Template unterstützt übliche Typografie:
|
||||
\begin{itemize}
|
||||
\item Gedankenstriche -- so wie hier -- für Einschübe
|
||||
\item Anführungszeichen: "`deutsche Anführungszeichen"' und ``englische Quotes''
|
||||
\item Auslassungspunkte \ldots{} mit korrektem Spacing
|
||||
\item Geschützte Leerzeichen: z.\,B. oder 10\,cm oder S.\,42
|
||||
\item Mathematische Symbole: $\alpha$, $\beta$, $\gamma$, $\sum$, $\int$
|
||||
\end{listenabsatz}
|
||||
\end{itemize}
|
||||
|
||||
\newpage
|
||||
|
||||
\section{Listen und Aufzählungen}
|
||||
\label{sec:listen_demo}
|
||||
@ -134,7 +135,7 @@ Matrix-Darstellung:
|
||||
\label{fig:demo_abbildung}
|
||||
\end{figure}
|
||||
|
||||
Die Abbildung~\ref{fig:demo_abbildung} zeigt einen Platzhalter für eine echte Grafik. Abbildungen werden automatisch nummeriert und im Abbildungsverzeichnis aufgeführt.
|
||||
Die \cref{fig:demo_abbildung} zeigt einen Platzhalter für eine echte Grafik. Abbildungen werden automatisch nummeriert und im Abbildungsverzeichnis aufgeführt.
|
||||
|
||||
\subsection*{Subfigures}
|
||||
\label{subsec:subfigures}
|
||||
@ -209,7 +210,7 @@ Mit dem \texttt{subcaption}-Paket können mehrere Abbildungen nebeneinander plat
|
||||
\label{subsec:python_code}
|
||||
|
||||
%TC:Ignore
|
||||
\begin{lstlisting}[caption={Python-Beispiel: Fakultätsfunktion},label={lst:python_factorial},language=Python]
|
||||
\begin{lstlisting}[caption={Python-Beispiel: Fakultätsfunktion},language=Python]
|
||||
def factorial(n):
|
||||
"""Berechnet die Fakultät einer Zahl rekursiv."""
|
||||
if n <= 1:
|
||||
@ -227,7 +228,7 @@ for i in range(10):
|
||||
\label{subsec:latex_code}
|
||||
|
||||
%TC:Ignore
|
||||
\begin{lstlisting}[caption={LaTeX-Beispiel: Dokumentstruktur},label={lst:latex_example},language=TeX]
|
||||
\begin{lstlisting}[caption={LaTeX-Beispiel: Dokumentstruktur},language=TeX]
|
||||
\documentclass{article}
|
||||
\usepackage[ngerman]{babel}
|
||||
\usepackage{amsmath}
|
||||
@ -250,14 +251,13 @@ Dies ist ein Beispieltext mit einer Formel: $x^2 + y^2 = r^2$
|
||||
\label{subsec:querverweise_intern}
|
||||
|
||||
Das Template unterstützt intelligente Querverweise mit dem \texttt{cleveref}-Paket:
|
||||
\begin{listenabsatz}
|
||||
\begin{itemize}
|
||||
\item Verweis auf Kapitel: siehe \cref{chap:template_demo}
|
||||
\item Verweis auf Abschnitt: siehe \cref{sec:formeln_demo}
|
||||
\item Verweis auf Gleichung: siehe \cref{eq:maxwell1}
|
||||
\item Verweis auf Abbildung: siehe \cref{fig:demo_abbildung}
|
||||
\item Verweis auf Tabelle: siehe \cref{tab:messwerte}
|
||||
\item Verweis auf Listing: siehe \cref{lst:python_factorial}
|
||||
\end{listenabsatz}
|
||||
\end{itemize}
|
||||
|
||||
\subsection*{Fußnoten}
|
||||
\label{subsec:fussnoten_demo}
|
||||
@ -271,12 +271,12 @@ Fußnoten\footnote{Dies ist eine Beispiel-Fußnote mit zusätzlichen Information
|
||||
\label{subsec:glossar_verwendung}
|
||||
|
||||
Das Template nutzt das \texttt{glossaries}-Paket für die Verwaltung von Fachbegriffen und Abkürzungen:
|
||||
\begin{listenabsatz}
|
||||
\begin{itemize}
|
||||
\item Erster Aufruf eines Glossarbegriffs: \gls{Textkörper}
|
||||
\item Zweiter Aufruf desselben Begriffs: \gls{Textkörper}
|
||||
\item Verwendung einer Abkürzung: \gls{MPG}
|
||||
\item Nochmalige Verwendung: \gls{MPG}
|
||||
\end{listenabsatz}
|
||||
\end{itemize}
|
||||
|
||||
Die Begriffe werden automatisch in das entsprechende Verzeichnis aufgenommen.
|
||||
|
||||
@ -287,25 +287,30 @@ Die Begriffe werden automatisch in das entsprechende Verzeichnis aufgenommen.
|
||||
\label{subsec:theoreme}
|
||||
|
||||
Obwohl nicht standardmäßig aktiviert, können bei Bedarf Theorem-Umgebungen definiert werden für:
|
||||
\begin{listenabsatz}
|
||||
\begin{itemize}
|
||||
\item Definitionen
|
||||
\item Sätze (Theoreme)
|
||||
\item Lemmata
|
||||
\item Korollare
|
||||
\item Beweise
|
||||
\item Beispiele
|
||||
\end{listenabsatz}
|
||||
\end{itemize}
|
||||
|
||||
\subsection*{Infoboxen und Warnungen}
|
||||
\label{subsec:infoboxen}
|
||||
|
||||
Das Template kann erweitert werden um spezielle Boxen für:
|
||||
\begin{listenabsatz}
|
||||
\item Wichtige Hinweise
|
||||
\item Warnungen
|
||||
\item Tipps und Tricks
|
||||
\item Zusammenfassungen
|
||||
\end{listenabsatz}
|
||||
\begin{InfoBox}{}
|
||||
Das ist der Inhalt der Info-Box.
|
||||
|
||||
Boxen können auch geschachtelt werden:
|
||||
\begin{InfoBox}{}
|
||||
Das ist der Inhalt der geschachtelten Info-Box.
|
||||
\end{InfoBox}
|
||||
\end{InfoBox}
|
||||
|
||||
\vspace{\fill}
|
||||
|
||||
\pagebreak
|
||||
|
||||
\section{Erweiterte Features}
|
||||
\label{sec:erweiterte_features}
|
||||
@ -324,25 +329,25 @@ SVG-Dateien können direkt eingebunden werden mit dem \texttt{\textbackslash inc
|
||||
\label{subsec:hyperlinks}
|
||||
|
||||
Das Template unterstützt:
|
||||
\begin{listenabsatz}
|
||||
\begin{itemize}
|
||||
\item Automatische Verlinkung von Querverweisen
|
||||
\item Klickbare URLs: \url{https://www.example.com}
|
||||
\item E-Mail-Links: \href{mailto:example@domain.com}{example@domain.com}
|
||||
\item Verlinktes Inhaltsverzeichnis im PDF
|
||||
\end{listenabsatz}
|
||||
\end{itemize}
|
||||
|
||||
\section{Zusammenfassung der Template-Features}
|
||||
\label{sec:template_zusammenfassung}
|
||||
|
||||
Das HSRTReport-Template bietet eine umfassende Lösung für wissenschaftliche Arbeiten mit:
|
||||
\begin{listenabsatz}
|
||||
\begin{itemize}
|
||||
\item Automatischer Formatierung gemäß den Vorgaben
|
||||
\item Konsistenter Typografie und Layout
|
||||
\item Intelligenter Verwaltung von Verzeichnissen
|
||||
\item Flexiblen Möglichkeiten für Formeln, Abbildungen und Tabellen
|
||||
\item Professioneller PDF-Ausgabe mit Hyperlinks
|
||||
\item Einfacher Anpassbarkeit über Konfigurationsdateien
|
||||
\end{listenabsatz}
|
||||
\end{itemize}
|
||||
|
||||
Alle diese Features tragen dazu bei, dass sich der Autor auf den Inhalt konzentrieren kann, während das Template die korrekte Formatierung übernimmt.
|
||||
|
||||
|
||||
24
Glossary.tex
24
Glossary.tex
@ -1,14 +1,14 @@
|
||||
% !TEX root = Main.tex
|
||||
% ==============================================================================
|
||||
% Glossary and Acronym Definitions
|
||||
% Glossary and Abkürzung Definitions
|
||||
% ==============================================================================
|
||||
% Description: This file contains all glossary entries and acronyms used in
|
||||
% the document. Entries are automatically sorted and formatted.
|
||||
% Usage: Reference entries in text using:
|
||||
% - \gls{label} for glossary entries
|
||||
% - \acrshort{label} for acronym short form
|
||||
% - \acrlong{label} for acronym long form
|
||||
% - \acrfull{label} for full acronym (short and long)
|
||||
% - \acrshort{label} for abbreviation short form
|
||||
% - \acrlong{label} for abbreviation long form
|
||||
% - \acrfull{label} for full abbreviation (short and long)
|
||||
% Author: [Your Name]
|
||||
% Date: [Date]
|
||||
% ==============================================================================
|
||||
@ -48,31 +48,31 @@
|
||||
% }
|
||||
|
||||
% ==============================================================================
|
||||
% Acronym Definitions
|
||||
% Abkürzung Definitions
|
||||
% ==============================================================================
|
||||
% Define abbreviations and acronyms that appear in the document
|
||||
% Define abbreviations that appear in the document
|
||||
% Syntax: \newacronym{label}{SHORT}{Long Form}
|
||||
% ------------------------------------------------------------------------------
|
||||
|
||||
% Document-related acronyms
|
||||
% Document-related abbreviations
|
||||
\newacronym{a:Abb}{Abb.}{Abbildung}
|
||||
\newacronym{a:Tab}{Tab.}{Tabelle}
|
||||
|
||||
% Legal and regulatory acronyms
|
||||
% Legal and regulatory abbreviations
|
||||
\newacronym{MPG}{MPG}{Medizinproduktegesetz}
|
||||
|
||||
% Company and organization acronyms
|
||||
% Company and organization abbreviations
|
||||
\newacronym{a:MS}{MS}{Microsoft®}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Add more acronyms here (alphabetically sorted recommended)
|
||||
% Add more abbreviations here (alphabetically sorted recommended)
|
||||
% ------------------------------------------------------------------------------
|
||||
% Technical acronyms
|
||||
% Technical abbreviations
|
||||
% \newacronym{a:API}{API}{Application Programming Interface}
|
||||
% \newacronym{a:CPU}{CPU}{Central Processing Unit}
|
||||
% \newacronym{a:GPU}{GPU}{Graphics Processing Unit}
|
||||
|
||||
% Academic acronyms
|
||||
% Academic abbreviations
|
||||
% \newacronym{a:BSc}{B.Sc.}{Bachelor of Science}
|
||||
% \newacronym{a:MSc}{M.Sc.}{Master of Science}
|
||||
% \newacronym{a:PhD}{Ph.D.}{Doctor of Philosophy}
|
||||
|
||||
106
HSRTReport/Config/Bibliography.tex
Normal file
106
HSRTReport/Config/Bibliography.tex
Normal file
@ -0,0 +1,106 @@
|
||||
% !TEX root = ../HSRTReport.cls
|
||||
% ==============================================================================
|
||||
% Bibliography Configuration Module
|
||||
% ==============================================================================
|
||||
% Description: Configure BibLaTeX citation formatting and hyperlink behavior
|
||||
% Author: Frederik Beimgraben
|
||||
% License: Creative Commons CC BY 4.0
|
||||
% ==============================================================================
|
||||
|
||||
% ==============================================================================
|
||||
% BibLaTeX Hyperlink Configuration
|
||||
% ==============================================================================
|
||||
% Make entire citation content clickable, not just parts of it
|
||||
|
||||
% Load hyperref support for biblatex
|
||||
\ExecuteBibliographyOptions{
|
||||
hyperref=true,
|
||||
backref=false,
|
||||
url=true,
|
||||
doi=true,
|
||||
isbn=false
|
||||
}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Make entire citation clickable (not just author or year)
|
||||
% ------------------------------------------------------------------------------
|
||||
% This works with APA style to make the complete "Author, Year" clickable
|
||||
|
||||
% Redefine how hyperlinks are created in citations
|
||||
\DeclareFieldFormat{citehyperref}{%
|
||||
\bibhyperref{#1}%
|
||||
}
|
||||
|
||||
% Make cite command create single hyperlink
|
||||
\DeclareCiteCommand{\cite}
|
||||
{\usebibmacro{prenote}}
|
||||
{\bibhyperref{\usebibmacro{citeindex}\usebibmacro{cite}}}
|
||||
{\multicitedelim}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
% Make parencite create single hyperlink for entire content
|
||||
\DeclareCiteCommand{\parencite}[\mkbibparens]
|
||||
{\usebibmacro{prenote}}
|
||||
{\bibhyperref{\usebibmacro{citeindex}\usebibmacro{cite}}}
|
||||
{\multicitedelim}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
% Make textcite create unified hyperlink
|
||||
\DeclareCiteCommand{\textcite}
|
||||
{\usebibmacro{prenote}}
|
||||
{\bibhyperref{%
|
||||
\usebibmacro{citeindex}%
|
||||
\printnames{labelname}%
|
||||
\setunit{\nameyeardelim}%
|
||||
\printfield{year}%
|
||||
}}
|
||||
{\multicitedelim}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
% Alternative simple command for fully linked citations
|
||||
\newcommand{\fcite}[1]{%
|
||||
\hyperlink{cite.#1}{\citeauthor{#1}, \citeyear{#1}}%
|
||||
}
|
||||
|
||||
% Make footcite also use single hyperlink
|
||||
\DeclareCiteCommand{\footcite}[\mkbibfootnote]
|
||||
{\usebibmacro{prenote}}
|
||||
{\bibhyperref{\usebibmacro{citeindex}\usebibmacro{cite}}}
|
||||
{\multicitedelim}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
% ==============================================================================
|
||||
% Additional Citation Formatting
|
||||
% ==============================================================================
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Citation punctuation
|
||||
% ------------------------------------------------------------------------------
|
||||
\renewcommand{\nameyeardelim}{\addcomma\space} % Comma between author and year
|
||||
\renewcommand{\multicitedelim}{\addsemicolon\space} % Semicolon between multiple citations
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Author name formatting in citations
|
||||
% ------------------------------------------------------------------------------
|
||||
\DeclareNameAlias{sortname}{family-given} % Last name first in bibliography
|
||||
\DeclareNameAlias{default}{given-family} % Normal order in citations
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% URL and DOI formatting
|
||||
% ------------------------------------------------------------------------------
|
||||
\DeclareFieldFormat{url}{\url{#1}}
|
||||
\DeclareFieldFormat{doi}{%
|
||||
\ifhyperref
|
||||
{\href{https://doi.org/#1}{\nolinkurl{doi:#1}}}
|
||||
{\nolinkurl{doi:#1}}%
|
||||
}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Bibliography spacing
|
||||
% ------------------------------------------------------------------------------
|
||||
\setlength{\bibitemsep}{0.5\baselineskip} % Space between bibliography entries
|
||||
\setlength{\bibhang}{2em} % Hanging indent for bibliography
|
||||
|
||||
% ==============================================================================
|
||||
% End of Bibliography Configuration Module
|
||||
% ==============================================================================
|
||||
@ -30,7 +30,7 @@
|
||||
@{}
|
||||
L{0.30\textwidth-\tabcolsep}
|
||||
p{0.58\textwidth-\tabcolsep}
|
||||
R{0.10\textwidth-\tabcolsep}
|
||||
L{0.10\textwidth-\tabcolsep}
|
||||
@{}
|
||||
}}
|
||||
{\end{longtable}}
|
||||
@ -87,3 +87,8 @@
|
||||
{\glsdative}% link cs
|
||||
{\Glsdative}% link ucfirst cs
|
||||
{\GLSdative}% link all caps cs
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Shortcut command for \acrshort
|
||||
% ------------------------------------------------------------------------------
|
||||
\newcommand{\acr}{\acrshort}
|
||||
|
||||
@ -40,6 +40,24 @@
|
||||
% Clear all header and footer fields
|
||||
\fancyhf{}
|
||||
|
||||
\newcommand{\fancyfootL}{
|
||||
\color{gray}\blenderfont
|
||||
\raisebox{3pt}{
|
||||
\hspace{-2pt}\@author
|
||||
}
|
||||
\newline
|
||||
\raisebox{3pt}{
|
||||
\hspace{-2pt}\ifdef{\modulename}{\modulename}{Modul-Name}
|
||||
}
|
||||
}
|
||||
|
||||
\newcommand{\fancyfootC}{
|
||||
\color{gray}\blenderfont\newline
|
||||
\raisebox{3pt}{
|
||||
Seite~\thepage~von~\pageref*{LastPage}
|
||||
}
|
||||
}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Header Configuration
|
||||
% ------------------------------------------------------------------------------
|
||||
@ -64,13 +82,11 @@
|
||||
% ------------------------------------------------------------------------------
|
||||
% Footer format: Author Name | Module Name | Page X of Y
|
||||
% The footer is centered
|
||||
\fancyfoot[C]{%
|
||||
\color{gray}\blenderfont%
|
||||
\@author%
|
||||
\footerhorizspacing%
|
||||
\ifdef{\modulename}{\modulename}{Modul-Name}%
|
||||
\footerhorizspacing%
|
||||
Seite~\thepage~von~\pageref{LastPage}%
|
||||
\fancyfoot[L]{
|
||||
\fancyfootL
|
||||
}
|
||||
\fancyfoot[C]{
|
||||
\fancyfootC
|
||||
}
|
||||
|
||||
% ==============================================================================
|
||||
@ -88,13 +104,11 @@
|
||||
}
|
||||
\fancyhead[L]{\color{gray}\blenderfont\@title}
|
||||
% Same footer as regular pages
|
||||
\fancyfoot[C]{%
|
||||
\color{gray}\blenderfont%
|
||||
\@author%
|
||||
\footerhorizspacing%
|
||||
\ifdef{\modulename}{\modulename}{Modul-Name}%
|
||||
\footerhorizspacing%
|
||||
Seite~\thepage~von~\pageref{LastPage}%
|
||||
\fancyfoot[C]{
|
||||
\fancyfootC
|
||||
}
|
||||
\fancyfoot[L]{
|
||||
\fancyfootL
|
||||
}
|
||||
\renewcommand{\headrulewidth}{0pt}
|
||||
}
|
||||
@ -112,13 +126,11 @@
|
||||
\ifthenelse{\value{chapter} > 0}{\thechapter~–~\leftmark}{}
|
||||
}
|
||||
\fancyhead[L]{\color{gray}\blenderfont\@title}
|
||||
\fancyfoot[C]{%
|
||||
\color{gray}\blenderfont%
|
||||
\@author%
|
||||
\footerhorizspacing%
|
||||
\ifdef{\modulename}{\modulename}{Modul-Name}%
|
||||
\footerhorizspacing%
|
||||
Seite~\thepage~von~\pageref{LastPage}%
|
||||
\fancyfoot[C]{
|
||||
\fancyfootC
|
||||
}
|
||||
\fancyfoot[L]{
|
||||
\fancyfootL
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -73,6 +73,7 @@
|
||||
% Configuration Modules
|
||||
% ------------------------------------------------------------------------------
|
||||
\input{\classPath/Config/Hyperref}
|
||||
\input{\classPath/Config/Bibliography}
|
||||
\input{\classPath/Config/Fonts}
|
||||
\input{\classPath/Config/PageSetup}
|
||||
\input{\classPath/Config/Sections}
|
||||
|
||||
@ -104,17 +104,17 @@
|
||||
\begin{tikzpicture}[overlay, remember picture]
|
||||
% === Main Logo(s) ===
|
||||
\node[anchor=south east, inner sep=0pt, xshift=-\footerXShift, yshift=\footerYShift, opacity=0.0] (logo0) at (current page.south east) {
|
||||
\strcompare{\thepage}{1}{}{
|
||||
\strcompare{\thepage}{0}{}{
|
||||
\includegraphics[height=\imageHeight]{\imagesPath/DUMMY_FOOT.png}
|
||||
}
|
||||
};
|
||||
\ifnum\thepage=1
|
||||
\ifnum\thepage=0
|
||||
\else
|
||||
% For loop to place all logos
|
||||
\foreach \i in {1,...,\value{logoCounter}} {
|
||||
% Calculate name for i-1
|
||||
\pgfmathtruncatemacro{\prev}{\i-1}
|
||||
\node[anchor=east, inner sep=0pt, xshift=-0.1cm, opacity=0.3] (logo\i) at (logo\prev.west) {
|
||||
\node[anchor=east, inner sep=0pt, xshift=-0.1cm, yshift=2pt, opacity=0.3] (logo\i) at (logo\prev.west) {
|
||||
\makeatletter
|
||||
\testarray{LogosScales}(\i)
|
||||
\setlength{\imageHeight}{1.5cm*\real{\temp@macro}*\real{\logosScale}*\real{0.55}}
|
||||
|
||||
@ -13,7 +13,7 @@
|
||||
\begin{titlepage}
|
||||
\begin{tikzpicture}[overlay, remember picture]
|
||||
\node[anchor=south east, inner sep=0pt, xshift=-0.1cm, yshift=0.1cm] (heart) at (current page.south east) {
|
||||
\tiny\color{gray}\blenderfont Made with {\ensuremath\heartsuit} in \LaTeX
|
||||
\href{https://github.com/frederikbeimgraben/HSRT-Report}{\tiny\color{gray}\blenderfont Made with {\ensuremath\heartsuit} in \LaTeX}
|
||||
};
|
||||
\node[anchor=north west, inner sep=0pt, xshift=1.3cm, yshift=-1.5cm, opacity=0] (logo0) at (current page.north west) {
|
||||
\includegraphics[height=\imageHeight]{\imagesPath/DUMMY_FOOT.png}
|
||||
@ -67,6 +67,7 @@
|
||||
\vspace{2em}
|
||||
\setstretch{1.0}
|
||||
\section*{Abstract}
|
||||
\vspace{-0.5em}
|
||||
\titlepageabstract
|
||||
{
|
||||
\vspace*{1em}
|
||||
|
||||
13
Main.tex
13
Main.tex
@ -37,6 +37,12 @@
|
||||
% ==============================================================================
|
||||
\begin{document}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Set Page Counter to 0
|
||||
% ------------------------------------------------------------------------------
|
||||
% Set page counter to 0, so that the table of contents starts at page 1
|
||||
\setcounter{page}{0}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Title Page
|
||||
% ------------------------------------------------------------------------------
|
||||
@ -44,12 +50,6 @@
|
||||
% Configuration in Settings/General.tex
|
||||
\maketitle
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Reset Page Counter
|
||||
% ------------------------------------------------------------------------------
|
||||
% Reset page counter after title page so TOC starts at page 1
|
||||
\setcounter{page}{1}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Set Page Style
|
||||
% ------------------------------------------------------------------------------
|
||||
@ -69,6 +69,7 @@
|
||||
\input{Content/00_toc} % Table of contents, lists, and glossaries
|
||||
\input{Content/01_content} % Main document content
|
||||
\input{Content/99_bibliography} % Bibliography and references
|
||||
\input{Content/99_eidesstattliche}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Glossary Processing
|
||||
|
||||
4
Makefile
4
Makefile
@ -135,8 +135,8 @@ check-docker:
|
||||
.PHONY: docker-build
|
||||
docker-build: check-docker
|
||||
@echo -e "$(BLUE)=== Building LaTeX Document with Docker ===$(NC)"
|
||||
@echo -e "$(YELLOW)→ Starting Docker container...$(NC)"
|
||||
@$(DOCKER_COMPOSE_CMD) up --build || { \
|
||||
@echo -e "$(YELLOW)→ Starting Docker container with UID=$$(id -u) GID=$$(id -g)...$(NC)"
|
||||
@HOST_UID=$$(id -u) HOST_GID=$$(id -g) $(DOCKER_COMPOSE_CMD) up --build || { \
|
||||
echo -e "$(RED)✗ Docker build failed$(NC)"; \
|
||||
echo -e "$(YELLOW) Try 'make docker-clean' and rebuild$(NC)"; \
|
||||
exit 1; \
|
||||
|
||||
52
Preamble.tex
52
Preamble.tex
@ -18,6 +18,57 @@
|
||||
% ------------------------------------------------------------------------------
|
||||
\addbibresource{Main.bib}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Citation Hyperlink Configuration
|
||||
% ------------------------------------------------------------------------------
|
||||
% Make entire citation content clickable (Author, Year) instead of just parts
|
||||
% This uses BibLaTeX's internal commands for better compatibility with APA style
|
||||
% ------------------------------------------------------------------------------
|
||||
|
||||
% Use AtBeginDocument to ensure our settings override the APA style
|
||||
\AtBeginDocument{%
|
||||
% Store original definitions
|
||||
\let\origparencite\parencite
|
||||
\let\origtextcite\textcite
|
||||
\let\origcite\cite
|
||||
|
||||
% Redefine parencite to make entire content clickable
|
||||
\DeclareCiteCommand{\parencite}[\mkbibparens]
|
||||
{\usebibmacro{prenote}}
|
||||
{\bibhyperref{%
|
||||
\usebibmacro{citeindex}%
|
||||
\usebibmacro{cite}%
|
||||
}}
|
||||
{\multicitedelim}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
% Redefine textcite to make entire content clickable
|
||||
\DeclareCiteCommand{\textcite}
|
||||
{\boolfalse{cbx:parens}%
|
||||
\usebibmacro{prenote}}
|
||||
{\bibhyperref{%
|
||||
\usebibmacro{citeindex}%
|
||||
\printnames{labelname}%
|
||||
\setunit{\addspace}%
|
||||
\bibopenparen\usebibmacro{citeyear}\bibcloseparen%
|
||||
}}
|
||||
{\ifbool{cbx:parens}
|
||||
{\bibcloseparen\global\boolfalse{cbx:parens}}
|
||||
{}%
|
||||
\multicitedelim}
|
||||
{\usebibmacro{postnote}}
|
||||
|
||||
% Redefine cite to make entire content clickable
|
||||
\DeclareCiteCommand{\cite}
|
||||
{\usebibmacro{prenote}}
|
||||
{\bibhyperref{%
|
||||
\usebibmacro{citeindex}%
|
||||
\usebibmacro{cite}%
|
||||
}}
|
||||
{\multicitedelim}
|
||||
{\usebibmacro{postnote}}
|
||||
}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Document Settings Import
|
||||
% ------------------------------------------------------------------------------
|
||||
@ -26,6 +77,7 @@
|
||||
% ------------------------------------------------------------------------------
|
||||
\input{Settings/General} % General document settings (title, author, etc.)
|
||||
\input{Settings/Logos} % Logo configuration and positioning
|
||||
\input{Settings/CleverefNames} % Cleveref cross-reference names configuration
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Custom Commands and Macros (Optional)
|
||||
|
||||
108
README.md
108
README.md
@ -1,21 +1,24 @@
|
||||
# HSRTReport LaTeX Template
|
||||
|
||||
[](https://github.com/frederikbeimgraben/HSRT-Report/actions/workflows/release.yml)
|
||||
[](https://github.com/frederikbeimgraben/HSRT-Report/releases/latest)
|
||||
[](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||
|
||||
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](#-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)
|
||||
- [License](#-license)
|
||||
|
||||
## 📖 Overview
|
||||
|
||||
@ -39,6 +42,7 @@ The HSRTReport class is a customized LaTeX document class based on KOMA-Script's
|
||||
|
||||
### Option 1: Docker (Recommended)
|
||||
|
||||
- **ENV**: Copy the `.env.example` and rename it to `.env`
|
||||
- **Docker**: [Install Docker](https://docs.docker.com/get-docker/)
|
||||
- **Docker Compose**: Supports both variants:
|
||||
- `docker-compose` (standalone tool)
|
||||
@ -69,8 +73,8 @@ The template automatically loads all necessary packages. Key dependencies includ
|
||||
|
||||
## 📁 Project Structure
|
||||
|
||||
```
|
||||
SAT-WiSe-25-26/
|
||||
```sh
|
||||
HSRT-Report/
|
||||
│
|
||||
├── HSRTReport/ # Document class files
|
||||
│ ├── HSRTReport.cls # Main class definition
|
||||
@ -104,6 +108,7 @@ SAT-WiSe-25-26/
|
||||
│
|
||||
├── Settings/ # Document settings
|
||||
│ ├── General.tex # General settings
|
||||
│ ├── CleverefNames.tex # \cref names configuration
|
||||
│ └── Logos.tex # Logo configuration
|
||||
│
|
||||
├── scripts/ # Chapter management scripts
|
||||
@ -118,26 +123,14 @@ SAT-WiSe-25-26/
|
||||
├── Main.bib # Bibliography database
|
||||
├── Makefile # Build automation
|
||||
├── .latexmkrc # Latexmk configuration
|
||||
├── docker-compose.yml # Docker configuration
|
||||
└── QUICKSTART.md # Quick start guide
|
||||
└── docker-compose.yml # Docker configuration
|
||||
```
|
||||
|
||||
## 📝 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`:
|
||||
1. **Configure document metadata** in `Settings/General.tex`:
|
||||
```latex
|
||||
% Document title
|
||||
\title{Your Document Title}
|
||||
@ -149,7 +142,7 @@ SAT-WiSe-25-26/
|
||||
% ... additional fields
|
||||
```
|
||||
|
||||
3. **Add your content** using one of these methods:
|
||||
2. **Add your content** using one of these methods:
|
||||
- **Automatic (Recommended)**: Use scripts to manage chapters
|
||||
```bash
|
||||
./scripts/create_chapter.sh 02 methodology
|
||||
@ -158,9 +151,9 @@ SAT-WiSe-25-26/
|
||||
```
|
||||
- **Manual**: Create files in `Content/Chapters/` and add them to `Content/01_content.tex`
|
||||
|
||||
4. **Manage bibliography** in `Main.bib` using BibTeX format
|
||||
3. **Manage bibliography** in `Main.bib` using BibTeX format (I recommend using a tool like [Zotero](https://www.zotero.org/))
|
||||
|
||||
5. **Define glossary entries** in `Glossary.tex`:
|
||||
4. **Define glossary entries** in `Glossary.tex`:
|
||||
```latex
|
||||
\newglossaryentry{term}{
|
||||
name=Term,
|
||||
@ -296,6 +289,45 @@ make distclean
|
||||
latexmk -xelatex -shell-escape -bibtex Main.tex
|
||||
```
|
||||
|
||||
## 🚀 CI/CD Pipeline
|
||||
|
||||
### Continuous Integration
|
||||
|
||||
The project includes GitHub Actions workflows for automated building and testing:
|
||||
|
||||
#### Release Workflow (`release.yml`)
|
||||
- **Triggers on:** Version tags (e.g., `v1.0.0`, `release-2024-10`)
|
||||
- **Actions:**
|
||||
- Creates a GitHub release
|
||||
- Attaches the PDF with version number
|
||||
- Generates release notes automatically
|
||||
- Archives artifacts for 90 days
|
||||
|
||||
### Creating a Release
|
||||
|
||||
To create a new release with the PDF:
|
||||
|
||||
```bash
|
||||
# Tag the current commit
|
||||
git tag -a v1.X.X -m "Release version 1.X.X"
|
||||
|
||||
# Push the tag to trigger the release workflow
|
||||
git push origin v1.X.X
|
||||
```
|
||||
|
||||
The workflow will automatically:
|
||||
1. Build the document
|
||||
2. Create a GitHub release
|
||||
3. Attach the PDF to the release
|
||||
4. Generate release notes from commit history
|
||||
|
||||
### Accessing Build Artifacts
|
||||
|
||||
1. Go to the **Actions** tab in your GitHub repository
|
||||
2. Select a workflow run
|
||||
3. Scroll down to **Artifacts**
|
||||
4. Download `Main.pdf`
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
@ -351,24 +383,14 @@ For questions, issues, or suggestions:
|
||||
|
||||
## 🆕 Recent Updates
|
||||
|
||||
### Version 2.0 (October 2024)
|
||||
### Version 1.0 (October 2025)
|
||||
- Added Docker support for containerized compilation
|
||||
- Implemented advanced page break control system
|
||||
- Enhanced section spacing (4.5ex before sections, 3.5ex before subsections)
|
||||
- Added smart TOC chapter grouping for short chapters
|
||||
- Updated header format with em-dash separator (e.g., "1 – Introduction")
|
||||
- Fixed page numbering (TOC now starts at page 1)
|
||||
- Added comprehensive bibliography with academic writing references
|
||||
- Improved listing and itemize environment protection from page breaks
|
||||
|
||||
### Key Configuration Changes
|
||||
- **Page Margins**: Unified 2cm on all sides
|
||||
- **Base Font Size**: 11pt
|
||||
- **Line Spacing**: 1.5x (`baselinestretch=1.5`)
|
||||
- **Paragraph Spacing**: 6pt
|
||||
- **Section Minimum Content**: 12 baseline skips (~2 paragraphs)
|
||||
- **Citation Style**: APA format via BibLaTeX
|
||||
|
||||
---
|
||||
|
||||
*Last updated: October 2024*
|
||||
*Documentation Last updated: 30th of October 2025*
|
||||
|
||||
127
Settings/CleverefNames.tex
Normal file
127
Settings/CleverefNames.tex
Normal file
@ -0,0 +1,127 @@
|
||||
% !TEX root = ../Main.tex
|
||||
% ==============================================================================
|
||||
% Cleveref Names Configuration
|
||||
% ==============================================================================
|
||||
% Description: This file configures the names used by the cleveref package
|
||||
% for cross-references. These appear when using \cref{} or \Cref{}
|
||||
% commands in the document.
|
||||
% Usage: This file is loaded in the preamble after cleveref is loaded.
|
||||
% Modify the names below to customize how references appear.
|
||||
% Author: [Your Name]
|
||||
% Date: [Date]
|
||||
% ==============================================================================
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Cleveref Language-Specific Names
|
||||
% ------------------------------------------------------------------------------
|
||||
% Configure the names for German language cross-references
|
||||
% Format: \crefname{type}{singular}{plural}
|
||||
% \Crefname{type}{Singular}{Plural} (for capitalized version)
|
||||
% ------------------------------------------------------------------------------
|
||||
|
||||
% --- Figure References ---
|
||||
\crefname{figure}{Abbildung}{Abbildungen}
|
||||
\Crefname{figure}{Abbildung}{Abbildungen}
|
||||
|
||||
% --- Table References ---
|
||||
\crefname{table}{Tabelle}{Tabellen}
|
||||
\Crefname{table}{Tabelle}{Tabellen}
|
||||
|
||||
% --- Equation References ---
|
||||
\crefname{equation}{Gleichung}{Gleichungen}
|
||||
\Crefname{equation}{Gleichung}{Gleichungen}
|
||||
|
||||
% --- Chapter References ---
|
||||
\crefname{chapter}{Kapitel}{Kapitel}
|
||||
\Crefname{chapter}{Kapitel}{Kapitel}
|
||||
|
||||
% --- Section References ---
|
||||
\crefname{section}{Abschnitt}{Abschnitte}
|
||||
\Crefname{section}{Abschnitt}{Abschnitte}
|
||||
|
||||
% --- Subsection References ---
|
||||
\crefname{subsection}{Unterabschnitt}{Unterabschnitte}
|
||||
\Crefname{subsection}{Unterabschnitt}{Unterabschnitte}
|
||||
|
||||
% --- Subsubsection References ---
|
||||
\crefname{subsubsection}{Unterunterabschnitt}{Unterunterabschnitte}
|
||||
\Crefname{subsubsection}{Unterunterabschnitt}{Unterunterabschnitte}
|
||||
|
||||
% --- Listing References ---
|
||||
\crefname{listing}{Listing}{Codeblock}
|
||||
\Crefname{listing}{Listing}{Codeblock}
|
||||
|
||||
% --- Appendix References ---
|
||||
\crefname{appendix}{Anhang}{Anhänge}
|
||||
\Crefname{appendix}{Anhang}{Anhänge}
|
||||
|
||||
% --- Algorithm References (if algorithms package is used) ---
|
||||
\crefname{algorithm}{Algorithmus}{Algorithmen}
|
||||
\Crefname{algorithm}{Algorithmus}{Algorithmen}
|
||||
|
||||
% --- Theorem-like Environments (if defined) ---
|
||||
\crefname{theorem}{Theorem}{Theoreme}
|
||||
\Crefname{theorem}{Theorem}{Theoreme}
|
||||
|
||||
\crefname{lemma}{Lemma}{Lemmata}
|
||||
\Crefname{lemma}{Lemma}{Lemmata}
|
||||
|
||||
\crefname{corollary}{Korollar}{Korollare}
|
||||
\Crefname{corollary}{Korollar}{Korollare}
|
||||
|
||||
\crefname{proposition}{Proposition}{Propositionen}
|
||||
\Crefname{proposition}{Proposition}{Propositionen}
|
||||
|
||||
\crefname{definition}{Definition}{Definitionen}
|
||||
\Crefname{definition}{Definition}{Definitionen}
|
||||
|
||||
\crefname{example}{Beispiel}{Beispiele}
|
||||
\Crefname{example}{Beispiel}{Beispiele}
|
||||
|
||||
\crefname{remark}{Bemerkung}{Bemerkungen}
|
||||
\Crefname{remark}{Bemerkung}{Bemerkungen}
|
||||
|
||||
% --- Footnote References ---
|
||||
\crefname{footnote}{Fußnote}{Fußnoten}
|
||||
\Crefname{footnote}{Fußnote}{Fußnoten}
|
||||
|
||||
% --- Item References (for enumerate environments) ---
|
||||
\crefname{enumi}{Punkt}{Punkte}
|
||||
\Crefname{enumi}{Punkt}{Punkte}
|
||||
|
||||
\crefname{enumii}{Punkt}{Punkte}
|
||||
\Crefname{enumii}{Punkt}{Punkte}
|
||||
|
||||
\crefname{enumiii}{Punkt}{Punkte}
|
||||
\Crefname{enumiii}{Punkt}{Punkte}
|
||||
|
||||
\crefname{enumiv}{Punkt}{Punkte}
|
||||
\Crefname{enumiv}{Punkt}{Punkte}
|
||||
|
||||
% --- Page References ---
|
||||
\crefname{page}{Seite}{Seiten}
|
||||
\Crefname{page}{Seite}{Seiten}
|
||||
|
||||
% --- Line References (if lineno package is used) ---
|
||||
\crefname{line}{Zeile}{Zeilen}
|
||||
\Crefname{line}{Zeile}{Zeilen}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Cleveref Format Configuration (Optional)
|
||||
% ------------------------------------------------------------------------------
|
||||
% You can also customize the format of references here
|
||||
% For example, to change how equation references appear:
|
||||
% \crefformat{equation}{Gleichung~(#2#1#3)}
|
||||
% \Crefformat{equation}{Gleichung~(#2#1#3)}
|
||||
% ------------------------------------------------------------------------------
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Multi-reference Configuration (Optional)
|
||||
% ------------------------------------------------------------------------------
|
||||
% Configure how multiple references are formatted
|
||||
% Example: \crefmultiformat{equation}{Gleichungen~#2#1#3}{ und~#2#1#3}{, #2#1#3}{ und~#2#1#3}
|
||||
% ------------------------------------------------------------------------------
|
||||
|
||||
% ==============================================================================
|
||||
% End of Cleveref Names Configuration
|
||||
% ==============================================================================
|
||||
@ -33,7 +33,7 @@
|
||||
% This appears on the title page and in PDF metadata
|
||||
% For multi-line titles, use \\ for line breaks
|
||||
% ------------------------------------------------------------------------------
|
||||
\title{Vorgaben zur Formatierung der Seminararbeit}
|
||||
\title{Template für wissenschaftliche Arbeiten}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% Title Page Data Fields
|
||||
@ -48,7 +48,7 @@
|
||||
% The main topic or theme of the document
|
||||
\AddTitlePageDataLine{Thema}{
|
||||
Thema-XXX: \newline
|
||||
Vorgaben zur Formatierung der Seminararbeit
|
||||
Template für wissenschaftliche Arbeiten
|
||||
}
|
||||
|
||||
% Add spacing between sections
|
||||
@ -83,13 +83,13 @@
|
||||
|
||||
% Module/Course information
|
||||
\AddTitlePageDataLine{Modul}{
|
||||
METI6.3 \newline
|
||||
Seminar Ausgewählter Themen der Medizinisch-Technischen Informatik
|
||||
METIX.X \newline
|
||||
Mustermodul
|
||||
}
|
||||
|
||||
% --- Supervisor Information ---
|
||||
% Professor or supervisor name
|
||||
\AddTitlePageDataLine{Dozent:in}{Prof. Dr. Sven Steddin}
|
||||
\AddTitlePageDataLine{Dozent:in}{Prof. Dr. Max Mustermann}
|
||||
|
||||
% --- Semester Information ---
|
||||
% Academic semester (e.g., Wintersemester 2024/2025)
|
||||
@ -147,7 +147,7 @@
|
||||
% This is typically the course or module code and name
|
||||
% Example: \newcommand{\modulename}{SAT - Seminararbeit Technik}
|
||||
% ------------------------------------------------------------------------------
|
||||
\newcommand{\modulename}{METI6.3 – SAT – WiSe 25/26}
|
||||
\newcommand{\modulename}{METIX.Y – Mustermodul – WiSe XX/YY}
|
||||
|
||||
% ------------------------------------------------------------------------------
|
||||
% List of Equations Configuration
|
||||
|
||||
@ -21,11 +21,21 @@ services:
|
||||
build:
|
||||
# Build context is the current directory
|
||||
context: .
|
||||
# Pass the current directory's UID and GID as build arguments
|
||||
# These are automatically set by the Makefile, or can be manually provided:
|
||||
# HOST_UID=$(id -u) HOST_GID=$(id -g) docker-compose up --build
|
||||
args:
|
||||
HOST_UID: ${HOST_UID:-1000}
|
||||
HOST_GID: ${HOST_GID:-1000}
|
||||
# Inline Dockerfile definition for additional packages
|
||||
dockerfile_inline: |
|
||||
# Start from the full TeXLive image (includes XeLaTeX, Biber, etc.)
|
||||
FROM texlive/texlive:latest
|
||||
|
||||
# Accept build arguments for the host directory's UID and GID
|
||||
ARG HOST_UID=1000
|
||||
ARG HOST_GID=1000
|
||||
|
||||
# Update package lists to ensure we get the latest versions
|
||||
RUN apt update -y
|
||||
|
||||
@ -33,16 +43,39 @@ services:
|
||||
# Required for processing SVG graphics in the document
|
||||
RUN apt install inkscape -y
|
||||
|
||||
# Create a group with the host directory's GID
|
||||
# The '|| true' ensures the command succeeds even if the group already exists
|
||||
RUN groupadd -g ${HOST_GID} texuser 2>/dev/null || true
|
||||
|
||||
# Create a user with the host directory's UID and GID
|
||||
# - Same UID/GID as the host directory to avoid permission issues
|
||||
# - Home directory at /home/texuser
|
||||
# - Default shell /bin/bash
|
||||
# If UID is taken in container, rename the user with the ID ${HOST_UID} to texuser
|
||||
RUN useradd -m -u ${HOST_UID} -g ${HOST_GID} -s /bin/bash texuser || \
|
||||
usermod --login texuser "$(id -nu ${HOST_UID})"
|
||||
|
||||
# Make /data and chown it to the user
|
||||
RUN mkdir /data && \
|
||||
chown -R ${HOST_UID}:${HOST_GID} /data
|
||||
|
||||
# Set /data as the user home
|
||||
RUN usermod -d /data texuser
|
||||
|
||||
# Set /data as the working directory
|
||||
WORKDIR /data
|
||||
|
||||
# Set the default user for running commands
|
||||
# All subsequent commands will run as this user
|
||||
USER texuser
|
||||
|
||||
# Volume mappings
|
||||
volumes:
|
||||
# Mount the entire project directory to /data in the container
|
||||
# This allows the container to access all project files and write outputs
|
||||
- ./:/data
|
||||
- ./:/data:Z
|
||||
|
||||
# Working directory configuration
|
||||
# Previous project-specific path (kept for reference):
|
||||
# working_dir: /data/Projektbeschreibung-MKI-METI-Projekt
|
||||
# Current: Set to /data root for general use
|
||||
working_dir: /data
|
||||
|
||||
# Default command when container starts
|
||||
|
||||
Loading…
Reference in New Issue
Block a user