aboutsummaryrefslogtreecommitdiff
path: root/readme.md
blob: 858d3197a690d63f66e140ffb7c880ea9f3a2da4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# crêpe docs

systems programming in c++ minor project documentation

Please see [style.md](./style.md) for writing style and
[contributing.md](./contributing.md) for coding and git standards. There is
also [an example document](./example.tex) which may be used to copy/paste LaTeX
snippets for specific formatting.

## Compilation

Prerequisites:
- A LaTeX distribution that includes XeLaTeX and latexmk
- PlantUML ([1.2024.7 or later](#plantuml)!)
- Python 3
- Fonts (see see [style.md](./style.md) for download links)

All documents are compiled using latexmk, and this repository contains
additional configuration files for the following editors:
- [Visual Studio Code][vscode] + [LaTeX Workshop][latexworkshop]
- (Neo)Vim + [VimTeX][vimtex] (source `.vimrc` to fix custom verb command
  highlighting)

## Special files

- `time.txt` contains tracked time for each team member. This file is
  automatically converted using [time2tex](scripts/time2tex.py) when compiling
  [timerep.tex](./timerep.tex).
- `reqs.toml` contains the project requirements. This file is converted using
  [reqs2tex](scripts/reqs2tex.py) for [requirements.tex](./requirements.tex)
  and also generates an `.aux` file for cross-referencing the requirements from
  other documents.
- `sources.bib` contains all bibliography entries / references
- `glossary.bib` contains all glossary entries

## PlantUML

To check if your PlantUML version is recent enough, run:
```
$ plantuml -version
```

To upgrade PlantUML manually, download the latest (GPL) \.jar from
[here][plantuml], and overwrite the \.jar file installed by your package
manager:

```
$ curl -sLo- https://github.com/plantuml/plantuml/releases/download/v1.2024.7/plantuml-1.2024.7.jar > plantuml.jar
# mv plantuml.jar /usr/share/plantuml/plantuml.jar
```

> [!NOTE]
> Ubuntu, Debian and Mint all place PlantUML's \.jar file under
> `/usr/share/plantuml/plantuml.jar`, while it's under
> `/usr/share/java/plantuml/plantuml.jar` on Arch. Check the contents of the
> file returned by `command -v plantuml` to confirm this.

[vscode]: https://code.visualstudio.com
[latexworkshop]: https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop
[vimtex]: https://github.com/lervag/vimtex
[plantuml]: https://plantuml.com/en/download