\chyph

\raggedbottom

\input ofs [a35]

\setfonts[Palatino/11] \baselineskip=14pt
\fontdef\bbbf [Palatino-bf/18]
\fontdef\bbf [Palatino-bf/14]
\fontdef\tt [CMTypewriter/11]
%\let\bbf=\bf
\def\tit #1\par {\bigskip\centerline{\bbbf #1}\par\nobreak\bigskip}
\def\subtit #1\par {\removelastskip\bigskip{\bbf#1}\par\nobreak\medskip}
\def\bod {\par\indent\hangindent=\parindent\llap{$\bullet$ }}
\def\begitems{\medskip}
\def\enditems{\medskip}

\catcode`\"=13
\def"{\hbox\bgroup\let"=\egroup\setverb\tt}
\def\setverb{\def\do##1{\catcode`##1=12}\dospecials\obeyspaces}
\def\begtt{\medskip\bgroup
   \nobreak\setverb \parskip=0pt %\parindent=0pt
   \catcode`\"=12\catcode`\~=13 \obeylines
   \startverb}
{\catcode`\|=0 \catcode`\\=12
  |gdef|startverb#1\endtt{%
        |tt#1|nobreak|egroup|penalty0|medskip}}
{\obeyspaces\gdef {\ }}



\tit Jak si usnadnit opakovan� spou�t�n� \TeX{}u

\centerline{\it Petr Ol��k}\bigskip

P�i lad�n� \TeX{}ov�ho dokumentu pot�ebujeme mnohokr�t opakovan� pou�t�t
\TeX{}, pod�vat se, jak dopadl v�sledek v~prohl��e�i DVI nebo PDF souboru, mrknout
na v�pis \TeX{}u na termin�lu, pod�vat se p��padn� do logu a celou �innost
opakovat. V~tomto �l�nku uk�u, jak tuto pr�ci d�l�m na UNIXu.
Vytvo�il jsem si pro to bashov� skript, jeho� funkce je v~�l�nku podrobn�
vysv�tlena.

Na koloto� \uv{editor-\TeX{}-kuk} jsem zhruba dvacet let pou��val Emacs,
ov�em s~t�mto editorem jsem nikdy nebyl spokojen. O~sv�ch tr�pen�ch
s~Emacsem a kone�n�m p�echodu na jin� editor p��i v~p��loze k~tomuto �l�nku.
Nov� editor nen� vybaven mocn�m jazykem lisp (kter� ov�em skoro nikdo neum�)
a m� daleko jednodu��� mo�nosti tvorby maker. Proto jsem si vytvo�il bashov�
skript, kter� mi nakonec nab�dl daleko v�t�� komfort, ne� jsem m�l d��ve p�i pr�ci
s~Emacsem.

Bashov� skript "texloop" se chov� jako d�mon ve smyslu, �e �ek� na sign�ly. Ov�em
protokol o~sv� �innosti vypisuje na termin�l. M��eme ho tedy pustit
v~n�jak�m termin�lu a v~jin�m termin�lu pustit textov� editor. Pokud v~editoru
ulo��me zdrojov� soubor a vy�leme sign�l (to~m��eme ud�lat pomoc�
jedin� kl�vesy, sta�� si na to p�ipravit kl�vesovou zkratku v~editoru),
d�mon "texloop" se probud�, spust� po�adovanou \TeX{}ovou �lohu, a p�itom na
\uv{sv�j} termin�l vypisuje hl�en� \TeX{}u. Pokud �loha dopadla bez chyby,
po�le d�mon sign�l prohl��e�i DVI nebo PDF a ten automaticky obnov� zobrazen�.
Tak�e na jedinou klapku v~editoru \TeX{}ujeme a hned vid�me v�sledn� zm�ny 
v~prohl��e�i.

D�mon "texloop" spust�me p��kazem

\begtt
texloop tex-command main-file
\endtt

\noindent nap��klad tedy

\begtt
texloop csplain mujtext
\endtt

V~prvn� f�zi �innosti je "texloop" v~interaktivn�m m�du. Spust� \TeX{}
podle zadan�ho p��kazu se zadan�m vstupn�m souborem. Pokud \TeX{} naraz� na
chybu, zastav� se a �ek� na termin�lu na reakci. Komunikaci m��eme
samoz�ejm� ukon�it pomoc� v�em \TeX{}ist�m zn�m� kl�vesy~"X".
Ov�em to ud�l�me s~t�m rizikem, �e nemus� vzniknout soubor pro prohl��en�.
Jak se v~takov�m p��pad� "texloop" zachov� pop��u za chv�li.

Souborem pro prohl��en� je soubor "main-file.pdf" v~p��pad�, �e "tex-command"
je jedna z~mo�nost�: "pdftex", "pdfcsplain", "pdflatex", "pdfcslatex".
Jinak je souborem pro prohl��en� "main-file.dvi".

Pokud existuje po prvn�m interaktivn�m b�hu \TeX{}u soubor pro prohl��en�,
"texloop" spust� odpov�daj�c� prohl��e� tohoto souboru ("xpdf" nebo "xdvi")
a p�ejde do \uv{daemon} m�du, kdy �ek� na sign�ly. Kdy� soubor pro
prohl��en� neexistuje, ��dn� prohl��e� se zat�m nespust� a "texloop"
i v~tomto p��pad� p�ejde do \uv{daemon} m�du. Pokud "texloop" po n�kter�m
z~p���t�ch b�h� \TeX{}u zjist�, �e soubor pro prohl��en� dodate�n� vznikl,
nev�h� v~dan�m okam�iku spustit odpov�daj�c� prohl��e�.

V~\uv{daemon} m�du "texloop" �ek� na sign�ly. Rozli�uje pouze dva: "SIGUSR1"
pro spu�t�n� \TeX{}u a "SIGTERM"
pro ukon�en� �innosti. Obdr��-li sign�l "SIGUSR1", pak zkontroluje
�asy posledn� modifikace soubor� "main-file.tex" a "main-file.log". 
\TeX{}ov� �loha se spust� pr�v� tehdy, kdy� je zdroj�k nov�j�� ne� log.
V�jimku z~tohoto pravidla uvedu za chv�li.

\TeX{}ov� �loha v~\uv{daemon} m�du b�� v~neinteraktivn�m re�imu. P�i
v�skytu prvn� chyby \TeX{} ukon�� svoji �innost. Mo�nost pokra�ov�n� �innsti
\TeX{}u a v�pisu v�ech chyb jsem zavrhnul, proto�e dnes jsou po��ta�e
natolik rychl�, �e nikoho nezdr�uje po opraven� prvn� chyby spustit \TeX{}
znovu. Osobn� tento re�im pr�ce preferuji.

Jestli�e b�h \TeX{}u skon�il �sp�n�, "texloop" po��d� prost�ednictv�m
sign�lu prohl��e� \TeX{}ov�ho v�stupu, aby znovuna�etl PDF resp. DVI a
obnovil zobrazen�. Potom "texloop" p�ech�z� znovu do stavu �ek�n� na sign�ly.

Proces "texloop" kon�� svou �innost bu� po obdr�en� sign�lu "SIGTERM"
(m��ete zm��knout "Ctrl-C" v~termin�lu, kde "texloop" b��), nebo ukon�en�m
prohl��e�e PDF nebo DVI, kter� byl procesem "texloop" spu�t�n.

N�kdy se m��e st�t, �e editujeme jin� soubor, ne� \uv{hlavn�} soubor
"main-file.tex". P�edstavme si, �e je v~"main-file.tex" p��kaz "\input" a ten
na��t� n�jakou kapitolu dokumentu. Textov�m editorem jsme zrovna zalezl� do
t�to kapitoly, m�n�me ji a chceme vid�t v�sledek zpracov�n� cel�ho
dokumentu. Ulo�en� kapitoly a vysl�n� sign�lu pro "texloop" nepom��e,
proto�e "texloop" zjist�, �e je log nov�j�� ne� zdroj�k a na \TeX{}ov�n� se
vydl�bne. M��eme ov�em potla�it vykon�n� testu, kter�m "texloop" kontroluje
st��� zdroj�ku a logu. Sta�� p�idat k~parametr�m pro "texloop" p�smeno "A"
(jako \uv{run \TeX{} Always}). Nap��klad tedy

\begtt
texloop csplain kniha A
\endtt

Abychom mohli daemonu "texloop" vyslat sign�l, mus�me v�d�t, jak� m� PID.
Program "texloop" v~okam�iku p�echodu z~interaktivn�ho do \uv{daemon} m�du
ulo�� sv�j PID do souboru "~/.tlpid", odkud si jej m��e editor
p�e��st. Kdy� ov�em spust�me dal�� proces "texloop" (vedle u� b��c�ho), pak
nov� proces p�ep��e obsah tohoto souboru svou hodnotou. Editor si tedy mus�
\uv{zav�as} informaci p�evz�t. Druh� mo�nost je, �e editor vy�le sign�l
v�em proces�m "texloop" dan�ho u�ivatele a konkr�tn�m PIDem procesu se
nezab�v�. Pak sta��, kdy� pou�ije p��kaz "killall -USR1 texloop".
Nev�hoda tohoto p��stupu je, �e mo�n� n�kter� procesy budou spou�t�t \TeX{}
zbyte�n�, ale nen� to obvykl�. Procesy bez p��znaku "A" (Always) toti�
budou \TeX{}ovat jen v~p��pad�, �e je zdroj�k nov�j�� ne� log.

Skript�k "texloop" je docela jednoduch�. M� 79 ��dk�, najdete ho na
[1] a m��ete si ho p�iohnout k~obrazu sv�mu.

\subtit P��loha: Kone�n� kon��m s~Emacsem

V~n�sleduj�c� p��loze, kter� je ov�em del��, ne� cel� �l�nek, rozvedu
neform�ln�m zp�sobem sv� zku�enosti s~textov�mi editory. Pro lidi, kte��
o�ek�vaj� sp��e nezaujat� technick� informace a zejm�na pro fanou�ky Emacsu
nen� tato p��loha ur�ena. Pro u�ivatele MS Windows tak� nen� tato p��loha
ur�ena. Tito u�ivatel� jist� u� poznali, �e jim je k~ni�emu kompletn� cel�
�l�nek.

S~interaktivn�mi textov�mi editory jsem se poprv� setkal v~DOSu a pot�
v~UNIXu. Jin� opera�n� syst�my umo��uj�c� interakci s~u�ivatelem jsem nem�l tu
�est poznat. 

V~DOSu jsem po dlouh�m v�voji zakotvil u~Qeditu, kter� jsem si p�izp�sobil
obrazu sv�mu. Jeho v�choz� chov�n� bylo z�ejm� inspirov�no editorem
Wordstar. Qedit m�l p�ehledn� konfigura�n� soubor s~mo�nost� jednoduch�
tvorby maker a kl�vesov�ch zkratek. Ov�em to bylo zhruba p�ed dvaceti lety.
P�i p�echodu na UNIX jsem se nau�il aspo� z�klady editoru "vi". Tento editor
m�l toti� tu vlastnost, �e se dal naj�t na skoro ka�d�m UNIXu, i kdyby tam
u� nebylo v�bec nic jin�ho. Setkal jsem se v�jime�n� i s~UNIXy natolik
o�ezan�mi, �e tam nebyl ani "vi". Editovat konfigura�n� soubory syst�mu
v~��dkov�m editoru "ed" pak byla skute�n� lah�dka. Tehdy n�s ale
nic nemohlo odradit od na�eho nad�en� z~UNIXu.

A� do roku 2011 jsem pou��val dva editory:  "vi" a "Emacs". Prvn�
jmenovan� jsem pou��val jako \uv{odleh�en� editor}
pro editaci syst�mov�ch soubor�. 
\uv{Odleh�en� editor} mus� b�t snadno dostupn� v~ka�d�m UNIXu a mus� um�t
spolupracovat s~b�n� pou��van�mi termin�ly. Nesm� se op�rat o~p��tomnost
Xserveru, proto�e ten �asto nen� p�i konfiguraci syst�mu p��tomen.
Um�m jen �pln� z�klady editoru "vi" a
podobn� jako plno jin�ch lid� m� psychicky nesm�rn� vy�erp�v� p�ep�nat mezi
dv�ma m�dy tohoto editoru. Ale co, v~dob� po��tku UNIX� nic jin�ho nebylo.

Druh� jmenovan� editor (Emacs) je kapitola sama pro sebe. P�ed dvaceti lety m�la
jeho u�ivatelsk� dokumentace 700 str�nek, dnes jsou k~Emacsu dokumenty dva,
dohromady maj� 1600 str�nek. T�m se mi nikdy nepoda�ilo prokousat. Komu se
to poda�ilo, nech� se p�ihl�s� a pak hod� kamenem. Domn�v�m se, �e editor m� slou�it a ne b�t
st�edem pozornosti a nutit u�ivatele mu v�novat ne�m�rnou pozornost. Emacs
m� velmi neobvykl� zp�sob ovl�d�n�, kter� s~m�m obl�ben�m Qeditem z~DOSu m�
pram�lo spole�n�ho. Tak� pou��v� naprosto neobvyklou terminologii, tak�e naj�t
n�co konkr�tn�ho v~dokumentaci metodou "grep" je t�m�� nemo�n�. Nev�te toti�,
co m�te hledat. Nav�c je to komplikov�no t�m, �e Emacs m� dokumentaci
ulo�enu ve sv�m sv�r�zn�m form�tu, ke kter�mu nab�z� p��stup sv�m sv�r�zn�m
zp�sobem (programem "info"). Uvedu nam�tkou jen t�i terminologick�
sv�r�znosti. Kl�vesovou zkratku "Ctrl-A" Emacs zna�� \uv{"C-a"}. Kl�vesu
"Alt" naz�v� \uv{Meta} a zna�� \uv{"M"}. Symbol \uv{"M-A B"} v~dokumentaci
znamen� \uv{zm��kni "Alt" a "Shift", zm��kni "A", pus� "Alt" a st�le dr�
"Shift", zm��kni "B"}. Kdo nepust� kl�vesu "Alt" ve spr�vn�m okam�iku, m�
sm�lu, Emacs vykon� n�co jin�ho. Nikomu nen� p��jemn�, kdy� se mu Emacs
takto sm�je do ksichtu.

Proto�e Emacs byl v~t� dob� jedin� editor, kter� byl pou�iteln� na
rozs�hlej�� v�ci (v�etn� \TeX{}ov�n� rovnou z~editoru), investoval jsem do
n�j asi m�s�c sv�ho �ivota a pokusil se vytvo�it alespo� p�r vlastn�ch
kl�vesov�ch zkratek na \TeX{}ov�n� a pro aspo� trochu norm�ln� ovl�d�n�.
I~pot� jsem n�kter� slo�it�j�� �koly (nap�. posuny sloupcov�ch blok�) v~Emacsu
ud�lat neum�l. Dal�� �as str�ven� nad dokumentac�, ne� bych dok�zal pot�ebnou
informaci vyhledat, se mi hrub� nevyplatil. Pokorn� jsem tedy pustil ve
vedlej��m ok�nku DOS emul�tor, v~n�m nahodil Qedit a �kol vy�e�il tam.

Asi p�ed deseti lety p�i�la dal�� nep��jemnost v~podob� p�echodu z~verze
Emacsu~19 na verzi vy���. Mnou pracn� vytvo�en� makra v~nov� verzi
samoz�ejm� nefungovala. Dokumentace se stala je�t� obludn�j��
a nesrozumiteln�j��. N�jakou dobu jsem krom� implicitn� verze Emacsu
v~UNIXov� distribuci udr�oval vedle i starou verzi 19, na kter� jsem provozoval
ve�kerou svou pr�ci. Bohu�el, jak roky b�ely, byla verze 19 st�le obt��n�ji
kompilovateln� pro nov� distribuce. Zpo��tku jsem se dok�zal povrtat
v~C��kov�ch zdroj�ch a kompilaci n�jak rozd�chat, ale s~p��chodem dal��ch
verz� kompil�toru a nov�j��ch knihoven to �lo st�le h��. Tak�e jsem se rozhodl
znovu investovat p�r t�dn� sv�ho �asu, pono�it se do zr�dn� dokumentace a
vytvo�it pokud mo�no tyt� kl�vesov� zkratky, jako jsem pou��val pro Emacs~19.
Od jednoho emacsov�ho guru jsem se dozv�d�l dal�� nep��jemnost: nov� verze u� nebude
um�t jedn�m klapnut�m opravit �patn� napsan� kus ��dku, kter� �lov�k hled�c�
do kl�vesnice (m�sto na monitor) napsal omylem v~nespr8vn2 p5epnut0
kl8vesnici. Cituji n�zor tohoto emacsov�ho guru: nau�te se ps�t v�emi deseti a
d�vat se p�i psan� na monitor.

V�echny UNIXov� editory, se kter�mi jsem se setkal, trp�
dal��m neduhem: p�edpokl�daj�, �e �lov�k sed� u~vyoran� kl�vesnice z~doby
kamenn�, kter� nem� funk�n� kl�vesy na pohyb kurzoru. Tak�e nejstru�n�j��
kl�vesov� zkratky �e�� posun kurzoru. Nap��klad "Ctrl-F" je posun
o~jedno pol��ko doprava. Ha, jak skv�l�, ale jak k~ni�emu\kern1pt! Za��te�nick�
tutori�l k~Emacsu je rovn� pln� takov�ch tot�ln� zbyte�n�ch informac�.
I~tohle komplikuje vztahy mezi editorem a jeho potenci�ln�mi u�ivateli.

M�l jsem mo�nost mluvit s~jedn�m p��znivcem Emacsu. Zeptal jsem se ho, jak
se d� p�epnout wordwrap m�d z~implicitn�ho emacs�ho chov�n�, kdy je pot�eba
ps�t dlouh� slovo poslepu t�eba za roh a teprve mezera za slovem toto slovo
ulom� na dal�� ��dek. O�ek�val bych norm�ln� chov�n�, kdy se slovo ulom�
v~okam�iku, kdy kurzor dos�hne nastaven� hranice. D�le jsem se cht�l nechat
pou�it, jak efektivn� v~dokumentaci zjistit, jak vypnout case-insensitive
m�d p�i povelu "isearch". Zv�raz�ov�n� syntaxe pro \TeX{}ov� zdroj�ky je
v~Emacsu sv�z�no s~novinkou, �e texty za podtr��tkem se
zobrazuj� zmen�en� (jako indexy). To p�sob� velmi ru�iv�. Jak to opravit a
nep�ij�t o~zv�raz�ov�n�? Ani na jednu ot�zku jsem nedostal uspokojivou
odpov��.

Emacs je z~m�ho pohledu obluda, kter� se vymyk� {\bf z�kladn�mu z�konu
UNIXu}, kter� prav�: {\it UNIXov� prost�ed� sest�v� z~mal�ch element�rn�ch
program�, kter� d�laj� jen jeden d�l�� �kol, kv�li kter�mu byly navr�eny, a
ten d�laj� dob�e. Tyto programy vz�jemn� spolupracuj�}. M�m na mysli t�eba
"grep", "awk", "bash", "bc", "tar", "gnuzip", "rsync", \TeX{} a dal��. Editor
Emacs byl prvn�m v�znamn�m naru�itelem tohoto z�kladn�ho z�kona. Pak p�i�li dal��,
o~OO se nebudu rad�ji zmi�ovat.

Z~v��e uveden�ho vypl�v�, �e jsem p�i editov�n� soubor� dvacet let trp�l.
Dokonce jsem pom��lel na to, �e si nap��u editor vlastn�. Ale letos p�i�lo
vysvobozen�. Za�alo to t�m, �e jsem si instaloval nov� syst�m do notebooku.
Jako prvn� pot�ebuji m�t odleh�en� editor na editov�n� konfigura�n�ch
soubor� syst�mu. V~Gentoo Linuxu je pro tento ��el p�ednastaven editor
"nano", kter� ale �lov�ka pravideln� vyt��� dv�ma blb�mi ot�zkami, ne� ulo��
pozm�n�n� soubor a ukon�� �innost. P�eci jenom "vi" editor se sv�m
"Shift-ZZ" vykon� tuto pr�ci bez ptan� a hned. Editor "vi" v~�ist� podob� u�
d�vno neexistuje, pou��val jsem tedy u� dlouho jeho "vim" implementaci.
A~v~nov� verzi m� "vim" velmi rozhn�val. Implicitn� m� nastaveno na
kurzorov� kl�vesy vlevo/vpravo chozen� po slovech. V~tomto re�imu jsem v�bec
nebyl schopen editovat. �ekl jsem si, �e pokud do deseti minut v~dokumentaci �i
pomoc� Google nenajdu, jak se tato nov� skv�lost odstra�uje, let� "vim"
z~m�ho po��ta�e pry�. A~taky �e let�l.

��m ale "vi" nahradit? P�ed deseti lety jsem vid�l v~provozu editor "joe",
tak�e v�m, �e to je dal�� mo�n� odleh�en� editor. B�hem p�r vte�in po jeho
nainstalov�n� jsem v�d�l, �e bez blb�ho ptan� ulo��m soubor a ukon��m
�innost editoru pomoc� "Ctrl-KX". B�hem p�r minut jsem shledal, �e editor za
t�ch deset let v�razn� pokro�il kup�edu. B�hem hodiny u� za��n�m
tu�it, �e toto je editor, kter� mi nahrad� nejen odleh�en� editor, ale tak� Emacs. M�
v�echny funkce, kter� pro sv� editov�n� pot�ebuji. V�e jsem se dozv�d�l
v~krati�k� manov� str�nce, online n�pov�d� a v~p�ehledn� vyveden�m
vzorov�m konfigura�n�m souboru "/etc/joe/joerc". Jako t�e�ni�ku na dortu uvedu
skute�nost, �e Emacs m� 25 kr�t v�t�� bin�rku ne� "joe". Emacs nav�c dynamicky
loaduje 43 dal��ch knihoven, zat�mco "joe" loaduje jen z�kladn� knihovny a 
"ncurses". Editor "joe" d�l� p�esn� to,
k~�emu byl ur�en, a d�l� to dob�e. V~souladu se {\bf z�kladn�m z�konem UNIXu}.

N��e uv�d�m seznam vlastnost�, kter� m� u~"joe" editoru pot�ily. Mnoh�
z~nich jsem nikdy nedok�zal v~Emacsu nastavit. Netvrd�m, �e by to v~Emacsu
ne�lo, v�dy� \uv{Emacs um� v�echno}. Sp�� je to kv�li m� neschopnosti se
orientovat v~nep�ehledn� emacs� dokumentaci.

\begitems

\bod P�i rychl�m hled�n� i p�i najdi-nahra� vn�m� rozd�ly mezi velk�mi a
     mal�mi p�smeny. D� se to podle pot�eby vypnout.
\bod Kurzor se nesna�� lepit na konce ��dk�, tak�e p�i posunov�n�
     dolu/nahoru nesk��e p�i sv� pozici vpravo jako �amrda.
\bod P�i rolov�n� dol�/nahoru obraz s~sebou ne�kube. 
\bod Wordwrap se chov� norm�ln�.
\bod Snadno p�epnu do hexa m�du.
\bod V~UTF8 termin�lu editor lze p�epnout do stavu, kdy edituje ISO
     soubory a naopak v~\hbox{ISO-}termin�lu zase mohu editovat UTF8 k�dovan� soubory.
\bod Ne�e��, co �e�it nemus�: fonty, p�ep�n�n� kl�vesnice. To je starost
     termin�lu.
\bod Jednodu�e p�esko��m b�hem editov�n� na m�sto v~souboru, kter� jsem ned�vno opustil
     a pak se snadno vr�t�m tam, kde jsem byl p�edt�m.
\bod Editor si pamatuje polohu kurzoru p�ed ukon�en�m. Kdy� vlezu do souboru
     po n�jak� dob� znovu, startuje v~m�st�, kde jsem soubor opustil. Taky
     si trvale pamatuje pou�it� p��kazy pro p�eklad a dal�� v�ci.
     Histori� t�chto p��kaz� mohu proch�zet �ipkami nahoru/dol�.
\bod Nept� se blb� na ka�dou pitomost.
\bod �nik ze v�eho pomoc� "Ctrl-C" je p�irozen�. V�choz� kl�vesov� zkratky se
     podobaj� zkrat\-k�m v~m�m star�m dobr�m Qeditu (tj. jsou odvozeny z~WordStaru).
\bod M� jednoduchou konfiguraci nov�ch zkratek a maker. B�hem chv�le jsem si
     nap��klad nastavil propojen� editoru s~filtrem "vlna", co� byl �kol, na
     kter� jsem z~hlediska jeho obt��nosti v~p��pad� Emacsu po cel�ch dvacet
     let rezignoval a vlnkoval soubory \uv{ru�n�} ve vedlej��m termin�lu.
\bod Zobraz� "^M" na konc�ch ��dk�. Setk�v�m se toti� ob�as se soubory
     maj�c�mi pomr�en� konce ��dku (z~DOSu nebo z~MS Windows). Pokud se m�
     editor sna�� odst�nit od tohoto probl�mu, je to �patn�, nebo� pak
     vznikaj� z�hadn� chyby nap��klad v~shellov�ch skriptech. Na druh�
     stran� je editor schopen se p�izp�sobit (kdy� chci) a editovat
     v~DOSov�m m�du konc� ��dk�.
\bod Kone�n� zase um�m snadno ozna�it sloupcov� bloky (i my��) a posunovat
     s~jejich obsahem.
\bod Syntaktick� zv�raz�ov�n� je p��jemn� a m� jednoduch� a p�ehledn�
     konfigura�n� soubory. B�hem chv�le jsem si vylep�il nap��klad
     syntaktick� zv�raz�ov�n� \TeX{}ov�ch zdroj�k� k~obrazu sv�mu.
\bod Editor se nau�� slova pou�it� v~otev�en�m souboru a umo�n� jejich rychl�
     dopl�ov�n�. Sta�� napsat za��tek slova a zm��knout p��slu�nou kl�vesu.

\enditems

Nebudu zde uv�d�t v�echny podstatn� vlastnosti editoru. Stru�n� seznam
jeho mo�nost� najdete b�hem chvilky pomoc� Google. Mysl�m si, �e editor nab�z� v�e,
co b�n� u�ivatel (jako jsem j�) pot�ebuje pro norm�ln� pr�ci.

N�kter� nev�hody editoru mohou plynout z~faktu, �e je zcela z�visl� na
prost�ed� termin�lu, ve kter�m je spu�t�n. Na vstupu tedy sn�m� ty
informace, kter� mu tam po�le termin�l. Nap��klad Xterm vys�l� p�i zm��knut�
kl�vesy Backspace stejn� k�d jako p�i zm��knut� kl�vesy Delete a to je
stejn� k�d jako p�i "Ctrl-H". Mezi t�mito t�emi klapkami pak editor nem��e
rozli�it a reaguje na v�echny jako Backspace. Cht�l bych vid�t toho �lov�ka,
kter� vyv�jel termcap pro Xterm, kdy� tam navrhnul Delete=Backspace. Asi
se mu p�ed t�mto rozhodnut�m srazila hlava s~�elezni�n�m pra�cem. Probl�m
jsem si opravil �pravou konfigurace Xtermu, ale od t�to chv�le nem�m Xterm
spl�uj�c� ofici�ln� parametry.

Kl�vesov� zkratky "Alt-n�co" se nedaj� pou��t, nebo� je termin�l p�evede na
jednobytovou informaci typicky shodnou se zm��knut�m n�jak� klapky
s~akcentovan�m znakem. Editor se v�bec nedozv�, �e byla zm��knuta kl�vesa
"Alt". Znamen� to, �e m��eme pracovat pouze s~kl�vesov�mi zkratkami typu
"Ctrl-n�co". Aspo� se to l�pe pamatuje. V~p��pad� zkratek "Ctrl-n�co" m�me
k~dispozici jen 32 mo�nost�, p�i kter�ch termin�l generuje k�dy 0 a� 31
takto: "Ctrl-@" je nula, "Ctrl-A" je 1, "Ctrl-B" je 2, atd., "Ctrl-^" je 30
a "Ctrl-_" je 31. Kdo zat�m nevid� souvislost, pod�v� se za dom�c� �kol na
ASCII tabulku. P�itom je�t� plat�, �e "Escape"="Ctrl-[". M�me ov�em �t�st�,
�e kl�vesy "F1", "F2" atd. a n�kter� dal�� vys�laj� z~termin�lu k~aplikaci
pon�kud del�� sekvenci znak� (uvozenou k�dem Escape), podle kter� aplikace
rozpozn�, co bylo zm��knuto. P�i zm��knut� "Ctrl-F1" je vygenerov�na jin�
escape sekvence ne� p�i "F1". Tak�e tyto zkratky typu "Ctrl-Fn�co" dok�e
editor rozpoznat a dokonce nespadaj� do omezuj�c�ch 32 mo�nost� zm�n�n�ch
d��ve.

R�zn� termin�ly vys�laj� bohu�el p�i ma�k�n� kl�ves "F1" a spol. r�zn� escape
sekvence. N�kdy se tyto sekvence dokonce p�ekr�vaj� v~r�zn�m v�znamu.
Nap��klad RxVT a Xterm maj� vz�jemn� prohozeny Home a End. Editor "joe"
bohu�el neum� pracovat s~konfigurac� escape sekvenc� z�vislou na pou�it�m
termin�lu. J� pou��v�m v�hradn� Xterm a Linuxovou konzoli a pro tyto dva
typy termin�l� jsem si upravil svou konfiguraci joe editoru.

V��e popsan� omezen� plyne z~toho, �e chceme pou��t odleh�en� editor uvnit�
termin�lu, tj. t�eba i na vzd�len�m po��ta�i s~mizern�m s��ov�m p�ipojen�m.

Dal�� mo�nou nev�hodou "joe" editoru je jeho a� p��li� jednoduch�
konfigurace maker. Nejsou k~dispozici ��dn� podm�nky, ��dn� pr�ce
s~prom�nn�mi, jen sled za sebou jdouc�ch element�rn�ch pokyn� pro editor.
Abych tedy mohl v~"joe" p��jemn� \TeX{}ovat, vytvo�il jsem si bashov�
skript�k "texloop". V~[1] najdete krom� zm�n�n�ho skript�ku i mou
u�ivatelskou konfiguraci ".joerc". M��ete se t�m inspirovat.

Tak jako d��ve v~Emacsu, jsem soust�edil i v~"joe" editoru \TeX{}ov�n� na kl�vesu "F7".
Pomoc� "Ctrl-F7" zahajuji proces "texloop" v~nov� zalo�en�m okn� editoru.
Editor si pamatuje posledn� vlo�en� p��kaz (i p��kazy star��), tak�e 
typicky nemus�m vkl�dat cel� p��kaz "texloop" znovu. Pot� mohu okno s~procesem
"texloop" skr�t ("F6", "Ctrl-KI") a mohu \TeX{}ovat pomoc� "F7". Skoro
okam�it� po zm��knut� t�to kl�vesy se mi obnov� zobrazen� ve vedlej��m 
prohl��e�i PDF nebo DVI v�stupu. P�itom (na rozd�l od Emacsu) okno s~v�pisem
zpr�v o zpracov�n� \TeX{}u neobt�uje, kdy� nechci, ale mohu se tam 
pod�vat ("Ctrl-KI").

T�m, �e jsem opustil "Emacs" a "vim" a p�e�el kone�n� na norm�ln� editor,
jsem si v�razn� uleh�il �ivot. Vymizela schizofrenie, zda v~dan� chv�li chci
\TeX{}ovat nebo editovat konfigura�n� soubory vzd�len�ho serveru. D�l�m to
od t�to chv�le stejn�m editorem s~jednotn�m zp�sobem ovl�d�n�.
Autor "joe" editoru Joseph H. Allen se p�esn� strefil do m�ch p�edstav, jak m�
tento typ software vypadat. Mo�n� by m�l m�t tento �l�nek jin� n�zev:
The Joy Of Joe.

\subtit Odkaz

\noindent \hbox to\parindent{[1]\hss}"http://petr.olsak.net/texinunix.html"


\end

