{"id":16106258,"url":"https://github.com/hroncok/fit-thesis-tips","last_synced_at":"2025-08-11T22:32:21.097Z","repository":{"id":148870242,"uuid":"58438749","full_name":"hroncok/fit-thesis-tips","owner":"hroncok","description":"Opinionated tips for writing and typesetting a diploma thesis on FIT ČVUT (Czech)","archived":false,"fork":false,"pushed_at":"2019-12-03T12:13:06.000Z","size":49,"stargazers_count":98,"open_issues_count":1,"forks_count":8,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-11-18T14:20:28.936Z","etag":null,"topics":["czech","fit-ctu","latex","list","thesis","typesetting","university","xelatex"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hroncok.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-10T07:20:28.000Z","updated_at":"2024-07-19T16:19:14.000Z","dependencies_parsed_at":"2023-07-10T17:00:08.270Z","dependency_job_id":null,"html_url":"https://github.com/hroncok/fit-thesis-tips","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hroncok%2Ffit-thesis-tips","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hroncok%2Ffit-thesis-tips/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hroncok%2Ffit-thesis-tips/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hroncok%2Ffit-thesis-tips/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hroncok","download_url":"https://codeload.github.com/hroncok/fit-thesis-tips/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229614596,"owners_count":18099063,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["czech","fit-ctu","latex","list","thesis","typesetting","university","xelatex"],"created_at":"2024-10-09T19:12:46.317Z","updated_at":"2024-12-13T20:48:03.629Z","avatar_url":"https://github.com/hroncok.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"= FIT ČVUT thesis tips\n:backslash: \u0026#92;\n:toc: macro\n:!toc-title:\n:source-language: tex\n\nOpinionated tips based guide for writing bachelor's and master's diploma thesis on http://fit.cvut.cz/[FIT ČVUT].\nIt's written in Czech, because that way it can attract more readers from FIT ČVUT.\n\ntoc::[]\n\nBudou tu hlavně technické tipy.\nPokud vás zajímají rady o obsahu, čtěte například http://www.herout.net/blog/category/diplomky/[blog Adama Herouta].\n\n\n== LaTeX a sazba\n\n=== Používejte http://tex.stackexchange.com/questions/3393/what-is-xetex-exactly-and-why-should-i-use-it[XeLaTeX]\n\nUnicode je dnes standard, přestaňte používat obyčejný LaTeX, který s ním umí pracovat jen omezeně.\nUrčitě vás nebaví neustále řešit `l{backslash}'etaj{backslash}'ic{backslash}'i akcent`, T1 kódování a podobné výmysly minulého tisíciletí.\n\nXeLaTeXu se nemusíte bát, přestože oficiální šablona je pro obyčejný LaTeX, její úprava je poměrně triviální.\nOficiální šablona neexistuje, ale můžete se inspirovat třeba https://github.com/Sanqui/fedorator-thesis/blob/master/template/FITthesisXE.cls[touto].\nPokud se naučíte šablonu mírně upravit, získáte i znalosti potřebné na to, abyste fixli nějaký případný problém, který se časem objeví.\n\nPak můžete ve zdrojáku používat normální Unicode, háčkyčárky, „uvozovky“ bez maker, Русский, 💩, cokoliv.\n\nStejně tak pro citace používejte http://biblatex-biber.sourceforge.net/[Biber], který také podporuje Unicode.\n\n(Pokud používáte TeX bez LaTeXu, stačí použít XeTeX.)\n\n\n=== Věnujte minimálně den přípravě sazby (před samotným psaním)\n\nSetkávám se s tím, že studenti něco nějak napíšou a před odevzdáním se to snaží naprasit do školní latexové šablony.\nDoporučuji předtím, než začnete psát, sazbě a (Xe)LaTexu minimálně den věnovat a všechno si hezky připravit.\nMůže se to zdát jako ztráta času, ale pokud budete průběžně sázet, hned uvidíte, že něco vypadá blbě, že by bylo lepší to udělat takhle apod.\n\nMohu doporučit balíček blindtext, který vám http://www.herout.net/blog/2017/03/pomalu-uz-pojdme-psat/[usnadní přípravu struktury práce].\n\nSazbě je třeba se samozřejmě věnovat i na samotném konci, zkontrolovat, že vám nic nepřetéká z řádku, že všechno vypadá, jak má, apod.\n\nVěnujte chvilku času osvěžení si práce s LaTeXem.\nJako poměrně stručný, ale zároveň vyčerpávající návod lze doporučit https://en.wikibooks.org/wiki/LaTeX[LaTeX Wikibook].\n\n=== Oficiální šablona je doporučení\n\n„Ale ono to pak vypadá jinak než v šabloně.“\n\n„Šablona mi tam napsala v českém textu _Listing_, to mám nechat?“\n\nNehroťte to, šablona je *doporučení*, pokud něco uděláte jinak a budete k tomu mít dobrý důvod (vypadá to líp, je to modernější, lépe se s tím pracuje, je to čitelnější apod.), je to více než v pořádku.\n\nBTW Šablona samotná je na https://gitlab.fit.cvut.cz/guthondr/ThesisTemplate[fakultním GitLabu] a není problém poslat tam Merge Request (gitlabí ekvivalent githubího Pull Requestu), pokud máte úpravu, která je prospěšná všem.\n\n\n=== Naučte se používat svůj operační systém\n\nPokud na vás TeX křičí, že mu chybí `foo.sty`, naučte se, kde ho vzít.\nNa Fedoře stačí udělat `dnf install 'tex(foo.sty)'`, na jiných distribucích a operačních systémech to půjde nějak podobně.\nIMHO není v pořádku se s chybovou hláškou o chybějícím souboru/balíčku TeXu v posledním ročníku FITu nedokázat vypořádat.\n\n\n=== Používejte nástroj http://www.texdev.net/2012/04/24/arara-making-latex-files-your-way/[Arara]\n\n„Když vám nefungují odkazy a obsahy, projeďte to TeXem ještě jednou.“\nDěláte to ručně? Vyzkoušejte nástroj Arara, který to udělá za vás. Na začátek zdrojáku dejte (něco jako):\n\n[source]\n----\n% arara: xelatex\n% arara: biber\n% arara: xelatex\n% arara: xelatex\n----\n\nPřípadně s obyčejným LaTeXem:\n\n[source]\n----\n% arara: pdflatex\n% arara: bibtex\n% arara: pdflatex\n% arara: pdflatex\n----\n\nA pak použijte příkaz `arara foo.tex`. Arara je papoušek, který papouškuje příkazy za vás.\n\n\n=== Používejte nástroj https://www.ctan.org/pkg/latexmk/[latexmk]\n\nVýstup LaTeXu je dlouhý a nečitelný, těžko v něm najít to, co stojí za to číst.\nLaTeXmk vám hezky napíše, co se podělalo, nebo čemu věnovat pozornost.\n\n----\nLatexmk: List of undefined refs and citations:\n  Label `hateoas' multiply defined\nBiber warning: Duplicate entry key: 'BSD3' in file 'library.bib', skipping ...\nBiber warning: I didn't find a database entry for 'foo' (section 0)\n----\n\nZároveň se účelem trochu kryje s Ararou, protože vám taky ten dokument projede víckrát.\nKaždopádně ho můžete používat i z Arary, například takto:\n\n[source]\n----\n% arara: xelatexmk\n----\n\n\n=== Používejte (nějakou) vlnu\n\nVlna vkládá nedělitelné mezery (vln(k)y, `~`) za neslabičné předložky (a i jinam, kam nedělitelná mezera patří, ale ne úplně všude).\nPoužít vlnu je dobré, protože nemusíte na nedělitelné mezery tolik myslet.\n\nMůžete použít různé vlny: http://petr.olsak.net/ftp/olsak/vlna/[Olšákovu vlnu], https://www.ctan.org/pkg/xevlna[xevlnu] pro XeTex, chytřejší https://github.com/michal-h21/luavlna[luavlnu] pro LuaTex (umí tituly, jednotky apod.).\n\nVlna se dá používat jako řádkový program, kterému soubor předhodíte (vlna), nebo jako balíček přímo ve zdrojáku (luavlna a xevlna):\n\n[source]\n----\n% XeLaTeX:\n\\usepackage{xevlna}\n\n% XeTeX:\n\\input xevlna.sty\n----\n\n(Z Facebooku to vypadá, že si všichni kompilují vlnu sami, tak jen připomenu, že na Fedoře opět stačí `dnf install /usr/bin/vlna` nebo `dnf install 'tex(xevlna.sty)'`.)\n\nNejen pokud používáte vlnu manuálně z řádky, je vhodný čas použít na to všechno `Makefile`, což vám ušetří hromadu práce.\nTo už jistě umíte.\n\n\n=== Nesázejte ukázky kódu proporcionálním písmem\n\n...je to hnusné.\nA dělá to skoro každý.\nNějaký výchozí listing balíček to tak totiž asi má ve výchozím stavu.\nPoužívá proporcionální písmo, ale zarovná ho jakoby neproporcionálně.\nPokud víte, co je to kerning, vytečou vám oči z důlků.\n\nA vůbec, použijte https://www.ctan.org/pkg/minted[minted].\nZvýrazňuje syntaxi a je mnohem modernější, hezčí a křupavější.\nhttps://github.com/hroncok/diplomka/blob/master/template/FITthesisXE.cls#L68[Tady najdete nějaký použitelný setup].\n\n[source]\n----\n\\begin{listing}[htbp]\n\\caption{\\label{code:foo}Minted: Nyní ještě křupavější}\n\\begin{minted}[bgcolor=codebg]{python}\n# ... code here ...\n\\end{minted}\n\\end{listing}\n----\n\n\n=== Co můžete, dejte vektorem/textem\n\nVýstup z terminálu, log? – text (_listing_), ne obrázek.\n\nGraf, diagram? – vektor, ne bitmapa.\n\nKreslíte nějaké schéma rukou?\nPoužijte výborný https://github.com/honzajavorek/cartoonist[cartoonist].\n\nChcete dělat class diagramy, use case schémata a aktivity?\nZkuste http://yuml.me/[yuml] / https://github.com/aivarsk/scruffy[scruffy].\n\nDěláte vlastní grafy/diagramy/... s popisky?\n*Použijte v popiskách stejné písmo, jako v práci!*\nAno, je to občas pakárna, zjistit, co to je za písmo, ale pokud používáte XeLaTeX, tak to vlastně víte.\n\nNejdokonalejší typografické integrace obrázků a diagramů do práce dosáhnete, pokud je vytvoříte rovnou pomocí (La)TeXu.\nK vytváření dvourozměrných i trojrozměrných grafů existuje vynikající balíček https://www.ctan.org/pkg/pgfplots?lang=en[PGFPlots].\nKomplikovanější diagramy lze tvořit pomocí https://www.ctan.org/pkg/pgf?lang=en[TikZ/PGF].\nPrvní uvedený balíček je nadstavbou nad druhým, a lze je proto i všelijak kombinovat.\nOba mají velmi dobře čitelnou dokumentaci se spoustou konkrétních příkladů.\nNavíc lze na webu najít řadu inspirativních ukázek (viz např. http://pgfplots.sourceforge.net/gallery.html[PGFPlots Gallery] a http://www.texample.net[TeXample.net]). Existují i nástroje na konverzi grafů do TikZu, například https://github.com/nschloe/matplotlib2tikz[matplotlib2tikz] pro pythonní Matplotlib.\n\nScreenshoty webových stránek jdou také nahradit vektorem, stačí stránku s vhodným nastavením vytisknout do PDF,\npřípadně použít sofistikovanější nástroj, jako třeba https://wkhtmltopdf.org/[wkhtmltopdf].\n\n=== Vložte zadání práce do PDF\n\nTam, kde je napsané „Sem vložte zadání práce,“ máte vložit zadání práce.\nJá vím, je to instrukce těžká na pochopení, a proto většina studentů v odevzdaném PDF nechává tuto instrukci, což je ostuda.\nVložení zadání je jednoduché jak facka, do FIT šablony přidejte `pdfpages`:\n\n[source]\n----\n\\RequirePackage{pdfpages}\n----\n\nA nahraďte text \"Sem vložte zadání..\" příkazem:\n\n[source]\n----\n\\includepdf[pages={1}]{zadani.pdf}\n----\n\nViz příklad https://github.com/VojtechMyslivec/mceliece-mathematica/blob/odevzdani/text/FITthesis.cls#L455[zde].\n\n*Update:* Náš odevzdávací systém, který máme všichni tak rádi, to nějak umí udělat za vás. Pokud ale chcete PDF generované přímo ze zdroje použít i jinde, tato rada se vám stále hodí.\n\n\n=== Nemějte práci v jednom velkém souboru\n\nDoporučuji nemít práci v jednom mega `.tex` souboru, ale rozdělit ji do několika menších souborů (např. na úrovni kapitol) a ty potom vkládat pomoci `\\input`.\n\nPokud chcete překládat jenom některou z takto vložených kapitol (např. kvůli časové náročnosti překladu kapitoly, na které už nepracujete, nebo chcete-li školiteli poslat jenom již hotovou část) a chcete zachovat správné číslování, https://en.wikibooks.org/wiki/LaTeX/Modular_Documents#Using_.5Cincludeonly[použijte] `\\include` a `\\includeonly`.\n\n\n=== Sjednoťte formátování pojmů\n\nVe vaší práci se pravděpodobně bude vyskytovat mnoho různých pojmů: názvy tříd,\nmetod, funkcí, programů, knihoven, jména souborů… rozhodněte se, jak je budete\nformátovat, a svého rozhodnutí se držte. Nikde není do kamene vytesáno, že\nnázev funkce musí být v textu neproporcionálním písmem, v uvozovkách nebo\nkurzívou, ale vypadá velmi neprofesionálně, pokud to je `na jednom místě tak`\na _jinde jinak_.\n\nStanovte si pravidla a nejlépe si je sepište. Když narazíte na nový druh pojmu,\nvytvořte si pro něj pravidlo. Pokud chcete být übercool, vytvořte si na\njednotlivé druhy pojmů makra.\n\n== Ostatní\n\n=== Používejte git\n\nNejen pro kód implementační části, i pro text vaší práce (každou tu věc samozřejmě v samostatném repozitáři).\nPomůže vám to, když něco přestane fungovat.\nNaučte se používat `git bisect`, bude se to hodit.\n\nPokud použijete GitHub nebo fakultní GitLab, váš vedoucí vám může přímo v jednotlivých commitech komentovat změny a nemusíte ho otravovat a posílat mu dokola e-mailem PDFko :)\n\nIdeálně použijte repozitář v režimu public, pokud nejste vázání nějakou smlouvou o výhradní licenci.\nZ vašeho zdrojáku mohou spolužáci čerpat tipy, jak něco udělat, a vaše práce stejně bude nakonec veřejná.\n\nTady jen pozor, aby vám kamarádi nebo vedoucí neposílali Pull Requesty, práci musíte vypracovat sami.\n\n\n=== Tvořte free (open-source) software\n\nTady záleží na názoru, ale já v 3D labu chci po svých studentech, aby vytvářeli implementační část práce jako svobodný software.\nPokud neděláte práci pro firmu, která vám to zakáže, je to dobrá volba, projekt pak uvidí například firmy, ve kterých (třeba) budete chtít pracovat.\n\nZvolte si licenci jakou chcete – kašlete na prohlášení, máte právo (pokud neuzavíráte s někým smlouvu o exkluzivitě) odevzdat škole práci s nějakým prohlášením a tu stejnou práci dát na GitHub s MIT/GPL/... licencí.\nPokud chcete použít prohlášení, které se podobá GPL, zvolte prohlášení 4 (_...osoby jsou oprávněny Dílo užít jakýmkoli způsobem, který nesnižuje hodnotu Díla a za jakýmkoli účelem ... licenci alespoň ve výše uvedeném rozsahu a zároveň zpřístupnit zdrojový kód takového díla..._).\n\nV repozitáři se softwarem používejte anglické commit message, komentáře, proměnné.\nDejte tam anglické README.\nKolemjdoucí by neměl poznat, že to je implementační část české bakalářky/diplomky (pokud to tam samozřejmě nenapíšete).\n\n\n=== Tiskněte na silnější papír\n\nObyčejný papír je částečně průsvitný/průhledný a druhá strana je přes něj vidět.\nTo nechceš.\nDejte pár korun navíc za 100gramový papír.\nVypadá to lépe.\n\n=== Přemýšlejte nad tím, že váš text bude někdo číst\n\nAno, je to tak: někdo to bude číst.\nText by tak měl pomáhat čtenáři a měl by se ideálně dát přečíst nahlas tak, aby mu bylo rovnou rozumět.\nKromě plovoucích prostředí (obrázky, tabulky) je třeba dodržovat pravidla klasické středoškolské slohovky tak, jak je všichni milujeme.\nNapříklad: základním prvkem je věta končící tečkou a to i když píšeme http://prirucka.ujc.cas.cz/?id=870[výčty] (ve většině případů).\nPokud nemáme spisovatelské sklony, je lepší se nepouštět do větších souvětí a informace v klidu předat kratšími, ale jasnými větami.\nPsaní anglických pojmů, zvláště jejich skloňování či časování, nevypadá vůbec dobře.\nNěkterým anglicismům se zvláště v IT nelze vyhnout, ale je-li jazykem práce čeština, pak je to čeština a česko-anglický kočkopes jen naznačuje mezery v základním vzdělání.\nAnglické pojmy je vhodné používat pouze není-li ustálený český překlad či je k tomu jiný praktický důvod (který je vhodné uvést).\nPíšete-li práci anglicky, pak vězte, že nejste-li si svou angličtinou jistojisti, pak budete trpět o něco více, protože angličtina neodpovídá k češtině jedna k jedné a nelze překládat slovo po slůvku.\n\n=== Citace\n\nPsaní odkazů na literaturu je také důležité: věcná tvrzení musí být buď jasně odvozena nebo řečeno, kam se může čtenář podívat, aby je našel.\nPrimárně NEjsou vhodné odkazy typu „odstavec...odstavec, poslední věta v odstavci zakončená tečkou. [1]“, kde [1] je vztaženo k něčemu neurčitému uprostřed odstavce.\nV tom případě čtenář neví, co má ve zmíněné literatuře hledat.\nNejjednoduším způsobem je referenci uvést ve větě a jasně zmínit, k čemu se vztahuje: „Dle [1] lze všechny kočky zkompilovat.“ nebo „Pro detailnější informace o této problematice doporučujeme [1,3].“\n\nČasto se studenti ptají: „Mám v práci 5 (15, 50…) položek v seznamu literatury, stačí to?“ Postupujte obráceně: Každé tvrzení, které napíšete, musí být podloženo citací, nebo jste jej vyzkoumali ve své práci. Napsat: „TeX je nejpoužívanější sázecí systém v akademické sféře,“ aniž byste uvedli zdroj tohoto tvrzení, prostě není možné. Pokud se budete držet tohoto pravidla, nebudete mít s malým množstvím citací problém.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhroncok%2Ffit-thesis-tips","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhroncok%2Ffit-thesis-tips","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhroncok%2Ffit-thesis-tips/lists"}