# waltsims/tum_thesis_template_cse architecture

> Architecture diagram of the GitHub repository waltsims/tum_thesis_template_cse, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-06-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/waltsims/tum_thesis_template_cse
- Repository: https://github.com/waltsims/tum_thesis_template_cse

## Overview

This repository is a LaTeX thesis template, not an application. Its architecture is centered on one build entrypoint that assembles reusable front matter, thesis chapters, bibliography, and assets into a single PDF.

1. **Build entrypoint**
   - `main.tex` is the root document and the top-level assembly point.
   - It likely controls document class, package loading, and the order in which all other files are included.
   - The resulting artifact is `main.pdf` in the repository root.

2. **Document composition boundary**
   - The repo cleanly separates **template infrastructure** from **user-authored content**.
   - `components/` contains reusable thesis scaffolding.
   - `chapters/` contains the actual thesis content sections.
   - This split is the main architectural boundary an engineer should diagram.

3. **Reusable front matter and thesis metadata**
   - Files in `components/` represent standard thesis sections such as:
     - `cover.tex`
     - `titlepage.tex`
     - `abstract.tex`
     - `acknowledgements.tex`
     - `preface.tex`
     - `disclaimer.tex`
     - `quote.tex`
     - `outline.tex`
     - `glossary.tex`
     - `info.tex`
   - These are modular inserts into the thesis front matter and supporting pages.

4. **Global formatting and macros**
   - `components/settings.tex` is the central configuration layer for layout, packages, and document behavior.
   - `components/commands.tex` likely defines custom macros and shortcuts used throughout the template.
   - `components/text.tex` appears to hold shared textual defaults or boilerplate.
   - These files function as the template’s “configuration and shared logic” layer.

5. **Content chapters**
   - `chapters/Introduction.tex` and `chapters/Appendix.tex` are the main sample/user chapters in the tree.
   - In a real thesis, this folder is where the main content is extended.
   - The chapter files depend on the global settings and macros defined in `components/`.

6. **Bibliography subsystem**
   - `bibliography/literature.bib` is the bibliographic data source.
   - The bibliography is a separate input domain from the main chapter text and is likely processed by BibTeX/Biber depending on `main.tex` configuration.
   - This is the citation data boundary for the document.

7. **Asset and branding layer**
   - `images/` stores figures and other graphical content referenced by chapters or front matter.
   - `styles/cse_logo.pdf` and `styles/tum_logo.pdf` are institutional branding assets used in title/cover material.
   - These are static inputs consumed by the LaTeX build, not generated outputs.

8. **Tooling and compilation flow**
   - The README specifies compilation via `latexmk` with `-shell-escape`.
   - `minted` is supported, which implies code listings may invoke Pygments externally during build.
   - That makes the build dependent on both a TeX distribution and Python-side syntax highlighting support.

9. **Multiple LaTeX engine support**
   - The repository is validated for `pdflatex`, `xelatex`, and `lualatex`.
   - This means the template is designed to be portable across common TeX engines.
   - The choice of engine affects language/font handling, especially for multilingual theses.

10. **Continuous integration**
   - `.github/workflows/` contains separate test workflows for `pdflatex`, `xelatex`, and `lualatex`.
   - CI’s role is to verify that the template compiles under each engine.
   - This is an important quality gate because template changes can break document assembly even when individual files look valid.

11. **Governance and contribution layer**
   - `CONTRIBUTING.md` and GitHub issue templates support community contribution rather than runtime behavior.
   - They indicate the project is maintained as a reusable public template.
   - This matters architecturally because the repository is designed for extension by downstream thesis authors.

12. **Overall data flow**
   - The document build flows from `main.tex` → shared configuration in `components/` → content in `chapters/` → assets in `images/`, `styles/`, and `bibliography/` → compiled PDF.
   - The output is a single static artifact, so the repository’s architecture is fundamentally a composition pipeline rather than a service or application runtime.

Main entry points: [`main.tex`](https://github.com/waltsims/tum_thesis_template_cse/blob/master/main.tex) (main.tex), [`.github/workflows/pdflatex_test.yaml`](https://github.com/waltsims/tum_thesis_template_cse/blob/master/.github/workflows/pdflatex_test.yaml) (pdflatex test), [`.github/workflows/xelatex_test.yaml`](https://github.com/waltsims/tum_thesis_template_cse/blob/master/.github/workflows/xelatex_test.yaml) (xelatex test), [`.github/workflows/lualatex_test.yaml`](https://github.com/waltsims/tum_thesis_template_cse/blob/master/.github/workflows/lualatex_test.yaml) (lualatex test)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_group_entry["Entrypoint"]
  node_main_tex["main.tex<br/>root document<br/>[main.tex]"]
end

subgraph group_group_components["Template components"]
  node_components_settings_tex["settings.tex<br/>layout config<br/>[settings.tex]"]
  node_components_commands_tex["commands.tex<br/>macros<br/>[commands.tex]"]
  node_components_text_tex["text.tex<br/>boilerplate text<br/>[text.tex]"]
  node_components_cover_tex["cover.tex<br/>front matter<br/>[cover.tex]"]
  node_components_titlepage_tex["titlepage.tex<br/>front matter<br/>[titlepage.tex]"]
  node_components_abstract_tex["abstract.tex<br/>front matter<br/>[abstract.tex]"]
  node_components_acknowledgements_tex["acknowledgements.tex<br/>front matter"]
  node_components_preface_tex["preface.tex<br/>front matter<br/>[preface.tex]"]
  node_components_disclaimer_tex["disclaimer.tex<br/>front matter<br/>[disclaimer.tex]"]
  node_components_quote_tex["quote.tex<br/>front matter<br/>[quote.tex]"]
  node_components_outline_tex["outline.tex<br/>front matter<br/>[outline.tex]"]
  node_components_glossary_tex["glossary.tex<br/>front matter<br/>[glossary.tex]"]
  node_components_info_tex["info.tex<br/>metadata<br/>[info.tex]"]
end

subgraph group_group_chapters["Chapters"]
  node_chapters_introduction_tex["Introduction<br/>chapter<br/>[Introduction.tex]"]
  node_chapters_appendix_tex["Appendix<br/>chapter<br/>[Appendix.tex]"]
end

subgraph group_group_bibliography["Bibliography"]
  node_bibliography_literature_bib["literature.bib<br/>citation data<br/>[literature.bib]"]
end

subgraph group_group_assets["Assets"]
  node_images["images<br/>figure assets"]
  node_styles_assets["logos<br/>branding assets"]
end

subgraph group_group_ci["CI"]
  node_workflows_pdflatex["pdflatex test<br/>ci workflow<br/>[pdflatex_test.yaml]"]
  node_workflows_xelatex["xelatex test<br/>ci workflow<br/>[xelatex_test.yaml]"]
  node_workflows_lualatex["lualatex test<br/>ci workflow<br/>[lualatex_test.yaml]"]
end

subgraph group_group_governance["Governance"]
  node_contributing_md["CONTRIBUTING.md<br/>contribution guide<br/>[CONTRIBUTING.md]"]
  node_issue_templates["issue templates<br/>[ISSUE_TEMPLATE]"]
end

node_main_tex -->|"configures"| node_components_settings_tex
node_main_tex -->|"uses macros"| node_components_commands_tex
node_main_tex -->|"shares text"| node_components_text_tex
node_main_tex -->|"reads metadata"| node_components_info_tex
node_main_tex -->|"includes"| node_components_cover_tex
node_main_tex -->|"includes"| node_components_titlepage_tex
node_main_tex -->|"includes"| node_components_abstract_tex
node_main_tex -->|"includes"| node_components_acknowledgements_tex
node_main_tex -->|"includes"| node_components_preface_tex
node_main_tex -->|"includes"| node_components_disclaimer_tex
node_main_tex -->|"includes"| node_components_quote_tex
node_main_tex -->|"includes"| node_components_outline_tex
node_main_tex -->|"includes"| node_components_glossary_tex
node_main_tex -->|"includes chapter"| node_chapters_introduction_tex
node_main_tex -->|"includes chapter"| node_chapters_appendix_tex
node_main_tex -->|"cites from"| node_bibliography_literature_bib
node_main_tex -->|"uses figures"| node_images
node_main_tex -->|"uses branding"| node_styles_assets
node_workflows_pdflatex -->|"builds"| node_main_tex
node_workflows_xelatex -->|"builds"| node_main_tex
node_workflows_lualatex -->|"builds"| node_main_tex
node_contributing_md -.->|"guides"| node_issue_templates

click node_main_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/main.tex"
click node_components_settings_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/settings.tex"
click node_components_commands_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/commands.tex"
click node_components_text_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/text.tex"
click node_components_cover_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/cover.tex"
click node_components_titlepage_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/titlepage.tex"
click node_components_abstract_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/abstract.tex"
click node_components_acknowledgements_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/acknowledgements.tex"
click node_components_preface_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/preface.tex"
click node_components_disclaimer_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/disclaimer.tex"
click node_components_quote_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/quote.tex"
click node_components_outline_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/outline.tex"
click node_components_glossary_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/glossary.tex"
click node_components_info_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/info.tex"
click node_chapters_introduction_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/chapters/Introduction.tex"
click node_chapters_appendix_tex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/chapters/Appendix.tex"
click node_bibliography_literature_bib "https://github.com/waltsims/tum_thesis_template_cse/blob/master/bibliography/literature.bib"
click node_images "https://github.com/waltsims/tum_thesis_template_cse/tree/master/images"
click node_styles_assets "https://github.com/waltsims/tum_thesis_template_cse/tree/master/styles"
click node_workflows_pdflatex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/.github/workflows/pdflatex_test.yaml"
click node_workflows_xelatex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/.github/workflows/xelatex_test.yaml"
click node_workflows_lualatex "https://github.com/waltsims/tum_thesis_template_cse/blob/master/.github/workflows/lualatex_test.yaml"
click node_contributing_md "https://github.com/waltsims/tum_thesis_template_cse/blob/master/CONTRIBUTING.md"
click node_issue_templates "https://github.com/waltsims/tum_thesis_template_cse/blob/master/.github/ISSUE_TEMPLATE"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main_tex,node_contributing_md,node_issue_templates toneBlue
class node_components_settings_tex,node_components_commands_tex,node_components_text_tex,node_components_cover_tex,node_components_titlepage_tex,node_components_abstract_tex,node_components_acknowledgements_tex,node_components_preface_tex,node_components_disclaimer_tex,node_components_quote_tex,node_components_outline_tex,node_components_glossary_tex,node_components_info_tex toneAmber
class node_chapters_introduction_tex,node_chapters_appendix_tex toneMint
class node_bibliography_literature_bib toneRose
class node_images,node_styles_assets toneIndigo
class node_workflows_pdflatex,node_workflows_xelatex,node_workflows_lualatex toneTeal
```

## Components

### Entrypoint

Top-level document assembly and build target

- [main.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/main.tex): root document · Assembles the thesis into the final PDF and controls inclusion order · `main.tex`

### Template components

Reusable front matter, macros, and shared thesis infrastructure

- [settings.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/settings.tex): layout config · Central document configuration and package setup · `components/settings.tex`
- [commands.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/commands.tex): macros · Custom commands and shared LaTeX shortcuts · `components/commands.tex`
- [text.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/text.tex): boilerplate text · Shared textual defaults and reusable wording · `components/text.tex`
- [cover.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/cover.tex): front matter · Cover page assembly · `components/cover.tex`
- [titlepage.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/titlepage.tex): front matter · Title page assembly · `components/titlepage.tex`
- [abstract.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/abstract.tex): front matter · Abstract section · `components/abstract.tex`
- [acknowledgements.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/acknowledgements.tex): front matter · Acknowledgements section · `components/acknowledgements.tex`
- [preface.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/preface.tex): front matter · Preface section · `components/preface.tex`
- [disclaimer.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/disclaimer.tex): front matter · Disclaimer page · `components/disclaimer.tex`
- [quote.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/quote.tex): front matter · Epigraph or quote page · `components/quote.tex`
- [outline.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/outline.tex): front matter · Document outline section · `components/outline.tex`
- [glossary.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/glossary.tex): front matter · Glossary or terminology support · `components/glossary.tex`
- [info.tex](https://github.com/waltsims/tum_thesis_template_cse/blob/master/components/info.tex): metadata · Thesis metadata and author/institution details · `components/info.tex`

### Chapters

User-authored thesis content

- [Introduction](https://github.com/waltsims/tum_thesis_template_cse/blob/master/chapters/Introduction.tex): chapter · Main introductory content sample · `chapters/Introduction.tex`
- [Appendix](https://github.com/waltsims/tum_thesis_template_cse/blob/master/chapters/Appendix.tex): chapter · Appendix content sample · `chapters/Appendix.tex`

### Bibliography

Citation data source

- [literature.bib](https://github.com/waltsims/tum_thesis_template_cse/blob/master/bibliography/literature.bib): citation data · Bibliographic database for references · `bibliography/literature.bib`

### Assets

Static images and branding used during document assembly

- [images](https://github.com/waltsims/tum_thesis_template_cse/tree/master/images): figure assets · Figures and other graphical content referenced by the thesis · `images`
- [logos](https://github.com/waltsims/tum_thesis_template_cse/tree/master/styles): branding assets · Institutional logo PDFs used in title and cover material · `styles`

### CI

Build validation across LaTeX engines

- [pdflatex test](https://github.com/waltsims/tum_thesis_template_cse/blob/master/.github/workflows/pdflatex_test.yaml): ci workflow · CI job validating compilation with pdflatex · `.github/workflows/pdflatex_test.yaml`
- [xelatex test](https://github.com/waltsims/tum_thesis_template_cse/blob/master/.github/workflows/xelatex_test.yaml): ci workflow · CI job validating compilation with xelatex · `.github/workflows/xelatex_test.yaml`
- [lualatex test](https://github.com/waltsims/tum_thesis_template_cse/blob/master/.github/workflows/lualatex_test.yaml): ci workflow · CI job validating compilation with lualatex · `.github/workflows/lualatex_test.yaml`

### Governance

Contribution and issue guidance

- [CONTRIBUTING.md](https://github.com/waltsims/tum_thesis_template_cse/blob/master/CONTRIBUTING.md): contribution guide · Project contribution guidance · `CONTRIBUTING.md`
- [issue templates](https://github.com/waltsims/tum_thesis_template_cse/blob/master/.github/ISSUE_TEMPLATE): issue templates · Structured bug and feature request templates · `.github/ISSUE_TEMPLATE`

## Connections

- main.tex → settings.tex: configures · Root document loads shared layout and package settings
- main.tex → commands.tex: uses macros · Main assembly relies on custom commands
- main.tex → text.tex: shares text · Common boilerplate text is included in the build
- main.tex → info.tex: reads metadata · Document metadata feeds title and front matter
- main.tex → cover.tex: includes · Front matter assembly starts with the cover
- main.tex → titlepage.tex: includes · Title page is part of the document prelude
- main.tex → abstract.tex: includes · Abstract is inserted into the thesis front matter
- main.tex → acknowledgements.tex: includes · Acknowledgements are inserted into the thesis front matter
- main.tex → preface.tex: includes · Preface is inserted into the thesis front matter
- main.tex → disclaimer.tex: includes · Disclaimer page is included by the root document
- main.tex → quote.tex: includes · Optional quote page is included by the root document
- main.tex → outline.tex: includes · Outline material is included by the root document
- main.tex → glossary.tex: includes · Glossary support is included by the root document
- main.tex → Introduction: includes chapter · Main content chapter is assembled into the thesis
- main.tex → Appendix: includes chapter · Appendix chapter is assembled into the thesis
- main.tex → literature.bib: cites from · Reference data is consumed during bibliography generation
- main.tex → images: uses figures · Chapter and front matter figures are sourced from the images directory
- main.tex → logos: uses branding · Institutional logo assets are consumed by the title and cover pages
- pdflatex test → main.tex: builds · CI validates the thesis build with pdflatex
- xelatex test → main.tex: builds · CI validates the thesis build with xelatex
- lualatex test → main.tex: builds · CI validates the thesis build with lualatex
- CONTRIBUTING.md → issue templates: guides · Contribution docs point users to structured issue templates
