Starý WORD ten ťa už unavil nakoniec #2
…predtým parafrázovaním Apollinaira k náhrade textového procesora. Ako inak, pomocou GNU Emacs. Teraz aktualizácia prvého článku; bez Apollinaira.
1. Obsah prvej časti
V prvej časti (no prvej, ono ani nebola plánovaná druhá,…) sme si ukázali, ako pomocou všemocného GNU Emacs a org módu vytvoriť vcelku pekný a formátovaný dokument, a tento pomocou bash alebo (e)lisp skriptu previesť na PDF.
V dnešnej časti pôjde o to isté, len použijeme pandoc a Libre(Open)Office, a jeho šablóny.
2. Načo to vôbec?
Časť záveru minulej časti znela:
"GNU Emacs poskytuje úžasné možnosti a už aj samotná editácia textu, aj bez kdejakých pridaných barličiek, je potešením. Keď potom človek zablúdi do nejakého *officu, cíti sa, ako keby mal jednu ruku priviazanú za chrbtom.
A toto je spôsob, ako si užívať jeho prednosti, aj keď sa vyžaduje formátovaný text."
3. Potrebné nástroje
- GNU Emacs s Org módom (ten je zväčša pribalený k Emacsu),
- LibreOffice - renderer odt súborov do PDF (prípadne wkhtmltopdf),
- mupdf alebo iný ľahký prehliadač PDF.
Takže opäť žiadny Latex.
Už z toho je jasné, že princíp je nasledovný:
- tvorba textového (plain) dokumentu v Org móde,
- vytvorenie šablóny v LibreOffice,
- export do odt,
- prehnanie odt cez LibreOffice,
- a zobrazenie…
Samozrejme, nie sústavou príkazov, ale len pomocou jedného Makefile.
4. Org mód pre GNU Emacs
4.1. Hlavička
Hlavička nášho súboru je sústava parametrov a makier zabalená medzi :HEADER SETTINGS:
a :END:
. Takto definovaný drawer sa neexportuje, a dá sa vizuálne zbaliť, aby nám nezavadzal a nerozptyľoval nás.
#+OPTIONS: title:t toc:nil num:t date:nil #+OPTIONS: author:nil email:nil creator:nil timestamp:nil #+OPTIONS: |:t H:6 f:t #+AUTHOR: Richard #+EMAIL: #+TITLE: Názov dokumentu
Len v skratke uvediem, že +OPTIONS: toc
definuje, či sa bude exportovať aj obsah vytvorený zo štruktúrovaných úrovní, title
hovorí o exporte názvu, num
o exporte číslovania nadpisov, …, a konečne H:6
max. 6-tu úroveň nadpisu.
4.2. Zadávanie textu, obrázkov, tabuliek
Aby som sa neopakoval, len odkážem na prvú časť, kde bolo opísané, ako sa tieto veci zadávajú v značkovacom jazyku.
Len spomeniem, že zásadné výhody editovanie čistého textu sú najmä:
- Minimálne, čisté a jednoduché rozhranie, ktoré sa zameriava výlučne na oblasť textu, ktorý umožňuje používateľom sústrediť sa výlučne na vytváraný alebo upravovaný obsah bez toho, aby ich rozptyľovali rôzne možnosti formátovania, panely nástrojov alebo ponuky.
- Značkovacie jazyky umožňujú používateľom formátovať text pomocou jednoduchej syntaxe jednoduchého textu, čo je často rýchlejšie ako klikanie cez ponuky alebo aplikovanie možností formátovania v textovom procesore. Dobre sa vytvára štruktúrovaný obsah bez potreby nadmerného ručného formátovania.
- Absencia vizuálnych rušivých prvkov, ako sú rôzne písma, farby alebo formátovanie, umožňuje používateľom sústrediť sa skôr na kvalitu textu než na jeho vzhľad.
- Jedná sa o jednoduché textové súbory, ktoré sú ľahké, prenosné a kompatibilné s rôznymi platformami, softvérom a zariadeniami. Nespoliehajú sa na proprietárne formáty.
- Pri písaní nemusíme sledovať, či máme okolo nadpisov alebo riadkov správne medzery, odsadenie a podobné detaily. Toto všetko za nás porieši správny štýl.
No a samozrejme používanie obľúbeného textového editora, v ktorom má človek vlastné skratky, postupy, skripty, to je hlavná motivácia!
Len na osvieženie pamäte a pre príjemnejšie čítanie si dáme pár obrázkov:
Obr. 1: Zadávanie textu | Obr. 2: Vytváranie tabuľky i vkladanie zdrojového kódu |
Obr. 3: Vkladanie obrázku | Obr. 4: A jeho zobrazenie priamo v Emacse |
5. Export
Samotný org dokáže natívne exportovať do html, odt či čistého textu. Ale my použijeme pandoc, pretože má viac možností. Hoci - otvorenosť slobodného softvéru nám umožňuje si všetko doprogramovať ☺.
Spravíme si na to Makefile
a štýly.
5.1. Makefile
Makefile je skript pre automatizáciu procesu kompilácie a vytvárania programov v kdejakých jazykoch. Obsahuje pravidlá, ktoré špecifikujú, ako preložiť zdrojové súbory a súbory objektov do spustiteľného súboru. Využíva sa najmä pri väčších projektoch, keď je potrebné spravovať veľké množstvo súborov.
Využijeme jeho vlastnosť, že sa dá spúšťať príkazom make
. Priamo z prostredia Emacsu, ku ktorému máme i klávesovú skratku.
dokument = test_text.org template = /home/richard/.openoffice/4/user/org-pandoc/simple.ott all: pandoc -f org -t odt --reference-doc=$(template) -o out.odt $(dokument) --verbose soffice --headless --convert-to pdf out.odt --outdir ./ mupdf out.pdf
Len upozorním, že Makefile
musí mať príkazy odsadené tabulátorom.
Čo to vlastne robí?
Po spustení príkazu make
, priamo zo shellu, eshellu, alebo iného terminálu (napr. i z gedit-u) sa spustí skript pomenovaný "Makefile" (s veľkým M).
V premenných dokument
máme názov nášho textového súboru, v template
je definovaný súbor .ott, čo je šablóna Libre(Open)Office.
No a v poradí sa spustia tieto príkazy:pandoc -f org -t odt --reference-doc=$(template) -o out.odt $(dokument) --verbose
Program pandoc zoberie súbor v premennej dokument
, povieme mu, aký je to typ vstupného súboru (-f org
), výstupný súbor chceme odt (-t odt
), a akú šablónu má použiť (--refrence-doc…
). -o
definuje názov výstupného súboru (teoreticky by mohol byť aj ten istý, ako vstupný, len s inou príponou). --verbose
nám zobrazí pár dodatočných informácií pri konverzii.
soffice --headless --convert-to pdf out.odt --outdir ./
Tento príkaz použije LibreOffice a prekonvertuje odt súbor na pdf.mupdf out.pdf
Ktorý si zobrazíme.
5.2. Štýly
Štýl (v LibreOffice) je preddefinovaný formát textu, odsekov, tabuliek, obrázkov a ďalších objektov v dokumentoch (ale i v prezentácii). Pomocou štýlov môžeme jednoducho a konzistentne upravovať celý dokument alebo jednotlivé časti dokumentu.
Existujú rôzne typy štýlov - písma, nadpisov, odrážok, tabuliek…Každý štýl má svoje nastavenie formátovania (veľkosť písma, farba, odsadenie, zalomenie…).
Šablóny so štýlmi si môžeme vytvoriť sami, alebo modifikovať existujúce, či si ich stiahnuť z webu. Je tiež dôležité povedať, že ak máme nejaký dokument, ktoré štýly sa nám páčia či hodia, tak si vieme tento uložiť ako šablónu.
Zaujímavé sú napríklad šablóny na LibreOffice Templates.
Páči sa mi i LibreLatex, ktorý napodobňuje formátovanie štyroch druhov dokumentov LaTeX (článok, kniha, list a správa).
Obr. 5: Štýly vo vyexportovanom odt dokumente pomocou pandoc | Obr. 6: Nastavujeme si odsadenie a iné |
Obr. 7: V "Nástroje" → "Číslovanie osnovy" si upravíme,… no to je jasné | Obr. 8: Zalomenia pre nadpis 6. úrovne! |
Všimnite si prosím, že v obrázku č. 7 - "Číslovanie osnovy" nadpis 6.-tej úrovne nemá číslovanie. A že v obrázku č. 8 máme zalomenie "Vložiť", to je tiež pre nadpis 6.-tej úrovne.
Nuž, nič nie je dokonalé, a ani pandoc.
Tento úskok bokom používam na vloženie pevného konca strany. Teda - normálne dobre definovaný štýl si kontroluje tzv. siroty a vdovy (to sú opustené riadky na začiatkoch a koncoch strán), a teda nestáva sa, že ostane na jednej strane nadpis, a súvisiaci text je na druhej strane. Alebo ostane prvý riadok textu odstavca na jednej strane, a zvyšok na druhej.
Ale občas je potrebné zadať, že tu sa strana končí a všetko ostatné musí byť na novej strane.
A toto zadám vložením prázdneho nadpisu 6. úrovne, v Emacse pomocu 6-tich hviezdičiek (******
).
Hoci - malo by to ísť i vložením xml tagu do súboru content.xml pomocou lua skriptu volaného pandoc-om. Lebo samotný odt súbor je vlastne zip kontajner s viacerými súbormi.
No ale z nejakých dôvodov mi to nefungovalo a nechcelo sa mi hľadať chybu 😉.
6. Záver
Je príjemné písať texty v prostredí, ktoré je k tomu nielen predurčené, ale aj dostatočne dobre prispôsobené a prispôsobiteľné. A hoci tento článok je primárne o org v Emacse, nie je problém písať tieto dokumenty i v inom textovom editore. Alebo namiesto org zvoliť markdown, alebo iný formát, s ktorým si pandoc poradí.
Len námatkou: bibtex, docbook, html, mediawiki, roff man, vimwiki.
Na stiahnutie:
Prílohy
- out.pdf (158.9 kB)
- example.zip (259.0 kB)
Pre pridávanie komentárov sa musíte prihlásiť.