## Písanie záverečných prác v LaTeX-u
#### ako som napísal bakalársku prácu po 10 rokoch
[Miroslav "mirek" Biňas](https://bletvaska.github.io)
/ [**OSSConf 2024**](https://ossconf.soit.sk/)
## [Zostavovanie $\LaTeX$ dokumentov ináč a využitie dedičnosti pri tvorbe šablón](https://bletvaska.github.io/2018/ossconf-tipy.pre.pracu.s.latexom.html)
[Miroslav Biňas](http://bletvaska.github.io) / **[OSSConf 2018](https://ossconf.soit.sk/)**
## Ja, moje druhé ja a $\LaTeX$
* nie som pravidelný používateľ $\LaTeX$-u ;)
* šablóna pre záverečné práce na KPI v 2016
* niekoľko učebníc v 2021
* zdrojom bol ale _Markdown_
* vytvoril som pre ne samostatné šablóny
* aktualizácia šablóny záverečných prác v 2024
## Aktuálny stav
* záverečné práce na KPI sa píšu len v $\LaTeX$-u od roku ~2018
* CI/CD pipeline (automatické zostavenie výsledku v [GitLab](https://git.kpi.fei.tuke.sk/tuke/thesis.in.latex)-e)
* niekoľko míľnikov
* prvá veľká aktualizácia od 2018
* šablóna je distribuovaná so štruktúrou: analýza, syntéza, vyhodnotenie, záver
* je to humus
## vyše [400]() prác ročne
## vyše [2500]() prác od 2018
![](images/we.have.a.problem.png)
## [Overleaf](https://www.overleaf.com/)
![](https://upload.wikimedia.org/wikipedia/commons/d/d6/Screenshot_of_Overleaf.png)
## Docker obraz
* založený na obraze `fedora:40`
* veľkosť < 1G
* [`docker.io/bletvaska/thesis`](https://hub.docker.com/r/bletvaska/thesis)
## Thesis Maker
* súbor `Makefile`
* cieľ `dist` - zostaví všetko potrebné pre odovzdanie práce
* verzia pre tlač
* elektronická verzia
* súčasťou prekladu je `vlna` ([xevlna](https://ctan.org/pkg/xevlna)?, [luavlna](https://ctan.org/pkg/luavlna)?)
* štatistika (počet znakov a slov)
* linter (wip)
```bash
# vytvorenie aliasu pre jednoduchšie používanie
$ alias mkthesis='docker container run --rm -it \
--volume .:/thesis \
--user $(id --user):$(id --group) \
--name thesis \
bletvaska/thesis \
make'
# následné použitie: pri písaní
$ mkthesis clean watch
# pri zostavovaní výsledku
$ mkthesis dist
```
## Podmienený preklad
* problém - ovládať podobu výstupu pri preklade
* nastavenie premennej prostredia?
* použitie prepínačov pri preklade?
* riešenie:
```bash
$ pdflatex '\def\printable{true}\input{thesis}'
```
* problém - nefunguje dobre s `mklatex`
## Štruktúra práce
* analytická časť, syntetická časť, vyhodnotenie, záver
* je to humus
* šablóna je aktuálne distribuovaná s ukážkovým textom práce
* _Robot Karel sa učí jazyk C_
* jednou z príloh je dokumentácia ku štruktúre práce
* WIP
## Štruktúra šablóny
```
thesis/
├── acronyms.tex
├── appendixes/
├── bibliography.bib
├── build/
├── dist/
├── figures/
├── glossary.tex
├── chapters/
├── listings/
├── metadata.tex
├── packages
├── thesis.tex
├── tukethesis.cls
└── tukethesis.sty
```
## Drobný refaktoring
* vďaka úpravám je hlavný súbor `thesis.tex` takmer prázdny
* zmizol analytický list
* pridali sme citáciu práce (na čierno)
* `\nameref`
* normalizovaný preklad (ako tabuľka, výpis, obrázok, ...)
* vypisovanie zoznamov obrázkov/výpisov len vtedy, keď nejaké sú
## Ďalšia práca
* prvý semester s novou verziou
* testing na deťoch ;)
* očakávaná spätná väzba
* aktualizácia CI/CD s novým Docker obrazom
* linter pre naše pravidlá písania (podobne ako [ShellCheck](https://www.shellcheck.net/wiki/))
* distribuovať šablónu ako samostatný balík?
* pridať podporu pre [Overleaf](https://www.overleaf.com/)
> Aj keď je tá práca na h\*\*\*\*, tak aspoň dobre vyzerá.
### Odkazy
* [Thesis in $\LaTeX$](https://git.kpi.fei.tuke.sk/tuke/thesis.in.latex) - verejne dostupná šablóna
* [`bletvaska/thesis`](https://hub.docker.com/r/bletvaska/thesis) - Docker obraz
* [Awesome $\LaTeX$](https://github.com/egeerardyn/awesome-LaTeX) - Curated list of $\LaTeX$ awesomeness
* [Zostavovanie $\LaTeX$ dokumentov ináč a využitie dedičnosti pri tvorbe šablón](https://bletvaska.github.io/2018/ossconf-tipy.pre.pracu.s.latexom.html) - prezentácia z OSSConf 2018
![qr code](https://api.qrserver.com/v1/create-qr-code/?data=https://bit.ly/45QaHfi&size=300x300)
(**https://bit.ly/45QaHfi**)