## 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
## Refaktoring šablóny
## Š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á.
## Otázky?
![qr code](https://api.qrserver.com/v1/create-qr-code/?data=https://bit.ly/45QaHfi&size=300x300) (**https://bit.ly/45QaHfi**)