Sphinx extension: TU Delft theme
Introduction
The default theme in JupyterBook v1 / TeachBook is usually not desired and need to be changed by adding custom stylesheets. The Sphinx-TUDelft-theme extension provides a simple solution to have a uniform theme across all the books created at Delft University of Technology that matches the TU Delft identity.
What does it do?
This extension applies styling changes, being
- particular colours (different colors for light and dark themes) for:
- admonitions (e.g. hint, note, tip, error, etc.),
- proofs (e.g. theorem, axiom, lemma, corollary, etc.),
- exercises,
- buttons,
- badges,
- custom components,
- $\LaTeX$,
- the primary and secondary color of the book (mainly used for typesetting links).
- particular icons for:
- proofs (e.g. theorem, axiom, lemma, corollary, etc.),
- exercises,
- custom components.
Unless specified otherwise, see Usage, this extension also automatically sets:
- a Delft University of Technology logo;
- a Delft University of Technology favicon;
- the Delft University of Technology preferred fonts;
- rendering text inside MathJax as the surrounding text;
- an always visible logo (i.e. a sticky logo);
- a bigger title.
You can see how the TU Delft theme looks like applied in this example book.
Installation
To implement the TU Delft theme, follow these steps:
Step 1: Install the Package
Install the sphinx-tudelft-theme package using pip:
pip install sphinx-tudelft-theme
Step 2: Add to requirements.txt
Make sure that the package is included in your project's requirements.txt to track the dependency:
sphinx-tudelft-theme
Step 3: Enable in _config.yml
In your _config.yml file, add the extension to the list of Sphinx extra extensions (important: underscore, not dash this time):
sphinx:
extra_extensions:
.
.
.
- sphinx_tudelft_theme
.
.
.
The following Sphinx extra extensions (if used) must be added before this extension:
sphinx_proofsphinx_exerciseteachbooks_sphinx_grasple
If this is forgotten, the CSS of this extension cannot be applied correctly.
Usage
By following the steps above, the theme will be applied automatically. To see the examples of usage visit the TeachBooks manual.
To use the defined colors inside $\LaTeX$ rendered with MathJax, one should use the command
\class{<color>}{<math>}
where <color> is one of the following colors:
- tud-red
- tud-blue
- tud-green
- tud-raspberry
- tud-yellow
- tud-darkGreen
- tud-orange
- tud-cyan
- tud-gray
- tud-purple
- tud-pink
- tud-darkBlue
and <math> is the $\LaTeX$ that should be rendered in the color <color>.
If a Delft University of Technology logo should not be set (i.e. use logos defined by the user), include the following in your _config.yml file:
sphinx:
config:
...
tud_change_logo: false
If a Delft University of Technology favicon should not be set (i.e. use a favicon defined by the user), include the following in your _config.yml file:
sphinx:
config:
...
tud_change_favicon: false
If the Delft University of Technology fonts should not be set (i.e. use fonts defined by the user), include the following in your _config.yml file:
sphinx:
config:
...
tud_change_fonts: false
If rendering text inside MathJax should not be the same as the surrounding html, include the following in your _config.yml file:
sphinx:
config:
...
tud_change_mtext: false
If a sticky logo is not preferred, include the following in your _config.yml file:
sphinx:
config:
...
tud_sticky_logo: false
If the title styling should not be altered (i.e. use title styling defined by the user), include the following in your _config.yml file:
sphinx:
config:
...
tud_change_titlesize: false
Contribute
This tool's repository is stored on GitHub. The README.md of the branch Manual is also part of the TeachBooks manual as a submodule. If you'd like to contribute, you can create a fork and open a pull request on the GitHub repository. To update the README.md shown in the TeachBooks manual, create a fork and open a merge request for the GitHub repository of the manual. If you intent to clone the manual including its submodules, clone using: git clone --recurse-submodulesgit@github.com:TeachBooks/manual.git.
Metadata
Release files for sphinx-tudelft-theme 1.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sphinx_tudelft_theme-1.2.2.tar.gz | 188.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sphinx_tudelft_theme-1.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 373.5 kB
Release files / sphinx_tudelft_theme-1.2.2.tar.gz
| Download URL | sphinx_tudelft_theme-1.2.2.tar.gz |
|---|---|
| Size | 188.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
54aab03410f6a0bfa54d137735e09a87f32ed42b7bc63d5c029f589aae965f1c
|
|
BLAKE2b-256 checksum How to use checksums |
34c8ce0a355016ab63ecbf41470faa56d73b520d5643207ef4973677693143a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 8, 2026.
Transparency logRelease files / sphinx_tudelft_theme-1.2.2-py3-none-any.whl
| Download URL | sphinx_tudelft_theme-1.2.2-py3-none-any.whl |
|---|---|
| Size | 185.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
58705245392e75b1b933377e2bcf7cce1d46af92575e310c8a29d188ee87b7df
|
|
BLAKE2b-256 checksum How to use checksums |
679ba3b5e159b736c62e890288fa2c257a3d05677473747ccc11dafdadb1e21c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 8, 2026.
Transparency log