$ show joaomlourenco/novathesis
This repository provides the 'novathesis' LaTeX class and template for formatting MSc dissertations, PhD theses, and other academic documents. It is primarily targeted at Portuguese universities (25+ supported schools) but can be adapted for other institutions. The architecture is modular: a core engine (nt-core.sty) built on LaTeX3 (Expl3) manages metadata, file registration, hooks, and download utilities; separate style files handle covers (nt-covers.sty), spines (nt-spine.sty), rendering of front/main/back matter (nt-render-matter.sty), and options (nt-options.sty). Users configure the document via files in the 0-Config/ directory, and the main entry point is template.tex which calls \ntprint commands. The build system uses latexmk with a Makefile, supports multiple LaTeX engines (pdfLaTeX, LuaLaTeX, XeLaTeX), and includes CI via GitHub Actions. External dependencies include a full LaTeX distribution, biber for bibliography, bib2gls (requires Java) for glossaries, and Ghostscript for PDF post-processing. The template is actively maintained with a comprehensive changelog and version 8.3.0.
The LLM identified 4 files worth highlighting for reuse:
Provides a generic key-value data storage API using LaTeX3 property lists. It defines commands like \NewMemStore, \MemSet, \MemGet for storing and retrieving data. This component is self-contained and can be extracted for use in any LaTeX project that needs a centralized configuration or metadata store.
A declarative cover page engine that allows users to define cover elements (background, images, text blocks) with attributes such as position, color, font, and filters for degree/status. It uses TikZ for rendering and supports layered composition. The engine is reusable for any document that requires customizable cover pages, independent of the thesis context.
A self-contained LaTeX style file that sets up the Times New Roman font family with proper engine checks (pdfLaTeX, LuaLaTeX, XeLaTeX) and fallbacks. It demonstrates a clean, reusable pattern for font configuration that can be adapted to other fonts by simply changing the font name and package dependencies.
A shell script that runs a single LaTeX compilation variant (specifying engine, school, language, and document type) and checks for errors. It is used in the matrix testing system to verify all supported configurations. The script is parameterized and can be reused in any LaTeX project that needs to test multiple build configurations in CI or locally.