Psaní závěrečné vysokoškolské práce není většinou žádná legrace, pokud vám před dokončením prací začne textový editor rozsypávat čísla obrázků, pak se k tomu přidají i tabulky, nadpisy a křížové odkazy a už se objevuje představa o polstrované místnosti v léčebně. Nabízí se léty ověřený, více méně blbuvzdorný LaTeX, jako velice silný nástroj pro sázecí práce.
Pro někoho bude ze začátku přechod nejspíš složitý, protože výsledek toho co píšete uvidíte až po exportu. Nicméně systém dovoluje se oprostit o zbytečného přemýšlení, co kam kde posunout a stará se o všechno sám. Pokud Vám ještě některý z vyučujících připraví šablonu, máte práci hodně usnadněnu. Nesmí to být však šablona, ve které musíte vyměnit půl balíků, protože se již dlouhá léta nepoužívají, byť šablona je z loňského roku, spousta věcí nefunguje. To bych pak autora rád potkal osobně v temném koutě univerzity a poděkoval za jeho skvělou práci.
Při tvorbě jsem měl tu výhodu, že jsem již jednu takovou práci zpracovával a mohl čerpat příkazy, balíky a další vymoženosti z minulosti. Nicméně předchozí práce byla jako jeden soubor a nová šablona je rozdělená do několika souborů podle kapitol. Přehlednost je výborná, ale pokud chcete poslat vedoucímu práce výstup ve formátu, kde Vám může označit úseky které se mu nelíbí máte smůlu. Převodníky totiž dokáží zpracovat pouze jeden soubor a nedokáží jít po \include do dalších souborů.
V tomto momentu nastupuje všemocný skript v Bashi, který příkazem awk vyhledává v hlavním souboru příkazy \include a podle odkazu načte a vloží do výstupu soubor. Inspiroval jsem se na tomto odkazu, avšak tahle verze nezpracovala soubory ve stejné složce jako je hlavní zdrojový soubor, ale soubory uložené ve složkách zpracoval. V základní verzi uměl jít pouze v první úrovni odkazů. Skript jsem ale upravil tak, že projde první úrovní, zjistí, kolik má ještě příkazů \include a kolik z nich je zakomentovaných, rozdíl uloží do proměnné a pokud je rozdílná od nuly, tak projde tento soubor znovu, dokud se objeví další vložené soubory. Celý skript vypadá takhle:
#! /bin/bash
i=1
pocet=1while [ „$pocet“ -gt „0“ ];do
if [ „$i“ -eq „1“ ];
then
echo „a“
awk ‚!/\input\{/ {print}
/\input{/ {
sub (/input\{/,““)
sub (/\}.*/,““)
sub (/}/,““)
sub (/\\/,““)
cmd= „cat ./“$1″“
system(cmd)
}‘ zaverecna-prace.tex > mergedfile.tex
i=0;
else
echo „b“
awk ‚!/\input\{/ {print}
/\input{/ {
sub (/input\{/,““)
sub (/\}.*/,““)
sub (/}/,““)
sub (/\\/,““)
cmd= „cat ./“$1″“
system(cmd)
}‘ mergedfile.tex > mergedfile2.texmv mergedfile2.tex mergedfile.tex
fiecho „předgrep“
prave=$(grep -c -i „\input{“ mergedfile.tex)
komentovane=$(grep -c -i „%\input{“ mergedfile.tex)
echo „počet $prave $komentovane“
pocet=$(($prave-$komentovane))echo „zbývajících $pocet“
done
Pro převod z LaTeXu do souborů dostupných kancelářským balíkům se mi osvědčil Pandoc. Převod je jednoduchý, v příkazové řádce zvolíte jaký soubor, nebo soubory podle typu chcete překládat a zvolíte název výstupního formátu včetně koncovky. Necháte chvíli přechroupat a je hotovo. Převod ale naní 100% čistý, například obsah tagu \label se zobrazuje v převedeném textu, ale pro účely kontroly dosavadního výtvoru vedoucím práce je převod naprosto dostačující.