Emacs pro mírně pokročilé (8): Emacs a TeX

31. 5. 2001
Doba čtení: 5 minut

Sdílet

Ilustrační obrázek
Autor: Depositphotos – stori
Ilustrační obrázek
Elektronická sazba dokumentů často přináší podobný koloběh práce, jako kompilace programů. Úprava zdrojového textu, zpracování dokumentu a prohlížení výsledku. Emacs usnadňuje nejen tento monotónní rytmus, ale přináší i další výhody, o kterých bude řeč v dnešním pokračování.

Povíme si především o zpracovávání TeXovských dokumentů v prostředí editoru Emacs, ale také se okrajově zmíníme o dalších dvou silných pomocnících při tvorbě dokumentů: kontrole pravopisu (za použití ispellu) a tzv. zkratkách (abbrevs).

Zpracování dokumentu pro TeX (či LaTeX) se nabízejí dvě odlišné varianty. První
z nich je použití módů obvykle distribuovaných přímo s balíkem Emacsu (tedy
tex-mode a latex-mode). Druhou možností
je použití rozsáhlejší knihovny AUC-TeX (určené pro zpracování zejména
LaTeXovských dokumentů). První možnost přináší formou jednoduchého hlavního
módu obvyklé usnadnění práce v podobě klávesových zkratek, párování závorek
apod. V druhém případě se jedná o poměrně propracované a rozsáhlé prostředí,
které nabízí kromě jiného zpracování chybového výstupu LaTeXu apod.

Pro jednodušší dokumenty si jistě vystačíme s první zmiňovanou variantou. Tyto
módy umožňují spouštět TeX (LaTeX) na celý soubor (klávesy
C-c C-b), ale také například na region
( C-c C-r), kdy se k regionu přidá preambule ze
začátku souboru. Dále lze prohlížet výsledný dvi soubor ( C-c C-v), tisknout dvi soubor ( C-c C-p). Změnou
příslušných proměnných lze docílit přizpůsobení módu. Lze tedy například měnit,
jaký prohlížeč se má volat ( tex-dvi-view-command)
apod. Poměrně snadno ( C-c C-o) lze také vkládat
LaTeXovské bloky, tedy části uvozené klíčovými slovy
\begin\end.

Pokud chceme zpracovávat rozsáhlejší dokumenty nebo pracujeme-li s LaTeXem
velmi často, bývá druhá možnost, tedy použití prostředí AUC-TeX, daleko
přijatelnější. AUC-TeX zejména nabízí možnost procházení chybového
výstupu tím způsobem, že posouvá kursor přímo po řádcích s nalezenou chybou
(funkce TeX-next-error, zde je souvislost se
zpracováním kompilace, o kterém již byla
řeč). Dále AUC-TeX umožňuje odsazování textu (nejen během vytváření
dokumentu, ale lze takto zformátovat i již vytvořený dokument). Kromě zmíněných
funkcí dále přináší celou řadu maker, která tvorbu LaTeXovských dokumentů
značně usnadňuje. Podívejme se proto na tento balík podrobněji.

Doplňování příkazů podle typu dokumentu uvedeného v hlavičce
( documentclass) je další vymožeností tohoto
prostředí. Stiskem M-<TAB> se spustí funkce
TeX-complete-symbol a pokusí se doplnit rozepsaný
příkaz. Užitečná jsou i klávesová makra, např.
LaTeX-environment (klávesy C-c C-e) uvozuje prostředí vložením odpovídajících „závorek“
begin a end. Funkce
LaTeX-section (klávesy C-c C-s) vkládá LaTeXovou sekci dokumentu (kapitolu, apod.). Prefixem kláves
C-c C-f doplněným o kombinaci volící font, například
C-i pro italiku (skloněné písmo), docílíme vložení
příslušné konstrukce pro daný řez (v uvedeném příkladě je to
\textit{ \/}). Samozřejmostí je i spouštění TeXu či
LaTeXu na celý soubor (tentokrát pomocí C-c C-c) a
region, který se spouští stejně, jako v již zmíněném prvním případě.

Mezi další vymoženosti prostředí AUC-TeX patří například určení tzv.
master file při zpracování dokumentu rozděleného do více souborů. Takto
označený soubor je ten, který obsahuje pomocí klíčových slov
\input nebo \include
vložené soubory a AUC-TeX tedy sám dokáže určit, který soubor se má po
spuštění „kompilace“ zpracovávat. Dále nabízí možnost jakéhosi
„předparsování“. Nastavením proměnné
TeX-parse-self na hodnotu různou od
nil tuto volbu zapneme. Pokud navíc zapneme proměnnou
TeX-auto-save, bude se informace o parsování ukládat
a při dalším otevření tohoto souboru bude využita. Celá řada dalších zajímavých
vlastností je popsána v on-line dokumentaci, která je distribuována s balíkem
AUC-TeX.

Abbrevs

Při tvorbě dokumentace se často opakují (opisují) stejná slova, někdy i celé
fráze. Pomoc Emacsu v takovémto případě přichází v podobě tzv. zkratek neboli
abbrevs. Jedná se o tzv. minor mód. Definováním zkratky se rozumí slovo,
které se po napsání expanduje na nějaký jiný text. Definujeme-li například
emacs jako zkratku pro větu „Emacs Manuals
Always Couse Senility“
, expanduje se slovo ‚ e m a c s <SPC> ‘ po napsání do příslušné věty. Další možností je využít
tzv. dynamické doplňování, kdy se na přímý příkaz pokusí Emacs doplnit slovo
před kursorem podle slov obsažených v bufferu.

Definování globální zkratky, tedy takové, kterou bude možno použít ve všech
bufferech pro jedno či více slov před kursorem, se provede pomocí
C-x a g (funkce
add-global-abbrev). Takto se jednoduše doplňují
zkratky pro text, který přímo píšeme. Podobně lze definovat zkratky specifické
pro aktuální hlavní mód. Naopak lze definovat i slova, která představují
zkratky (tedy za něž se nahrazuje) pomocí C-x a i g
(funkce inverse-add-global-abbrev). Zkratky se
expandují přímo během vytváření textu poté, co vložíme mezeru, tečku či podobný
ukončující znak. Při expanzi se zachovávají velká a malá písmena, napíšeme-li
proto EMACS, bude expandovaná věta celá napsána
velkými písmeny. Zkratky lze také editovat (funkce
edit-abbrevs) nebo si nechat zobrazit jejich seznam
( list-abbrevs). Pokud chceme, aby definované zkratky
byly dostupné i při příštím spuštění Emacsu, je třeba je uložit
( write-abbrev-file; Emacs se nás na to při ukončení
zeptá) a při startu znovu nahrát ( read-abbrev-file).

Výše zmíněné zkratky se expandují automaticky tak, jak je text vkládán, a
všechny zkratky musí být explicitně definovány. Na rozdíl od nich tzv.
dynamická expanze zkratek určuje svoji expanzi na základě obsahu editovaného
bufferu. Slouží k tomu zkratka M-/, které odpovídá
funkce dabbrev-expand. Slovo před kursorem se
expanduje na slovo, které obsahuje toto slovo. Pokud je takovýchto slov víc,
vybere se poslední z nich. Zkratka C-M-/ (funkce
dabbrev-completion) se pokusí o totéž. Existuje-li
však v bufferu více takových slov, doplní pouze jim všem společnou část.
Nemají-li žádnou takovou část, zobrazí všechna možná slova ve zvláštním
bufferu. Podrobný popis lze nalézt v
manuálu.

Ispell

Neméně důležitou pomůckou při psaní dokumentu je kontrola pravopisu. Emacs k
tomu používá externí program
ispell. Šíře jeho
použití je veliká a kontrolovat lze pravopis jednoho slova (klávesy
M-$), regionu (funkce
ispell-region) nebo celého bufferu
( ispell-buffer). Lze ale také například zapnout
průběžnou kontrolu pravopisu, tzv. flyspell-mode.
Změnu slovníku (jazyka) provedeme funkcí
ispell-change-dictionary.

Školení Kubernetes

Tolik tedy ke zpracovávání dokumentů pomocí TeXu (LaTeXu) a nástrojům či
službám souvisejícím. Samozřejmě škála podpůrných nástrojů není úplná. Existuje
celá řada dalších více či méně rozšířených utilit. Příště si povíme něco málo o
Elispu, tedy o jazyce, který je pro Emacs životně důležitý.



Nejnovější články