
                               Program VLNA
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    verze 1.2                  Petr Olk

Program vlna pidv vlnky (msto pvodnch mezer) za neslabin pedloky
ve vstupnch souborech pro TeX. To zabrn zlomu dku v nedoucm mst.

Nen pouit nzev "vlnka", abychom odliili pvodn program vlnka
(autoi O. Ulrych, . Kasal) od tohoto programu vlna. Jedn se o
vylepenou a zcela nov napsanou verzi, kter nen dsledn zptn
kompatibiln s pvodnm programem vlnka.

POUIT:
--------

vlna [opt] [jmna soubor]

[opt] jsou nepovinn pepnae, kter mus bt oddleny mezerou a uvozeny
znakem "-". Mohou bt uvedeny v libovolnm poad.

PEPNAE:
----------

-f : Reim "filtr". V tomto reimu jsou jmna soubor interpretovna takto:
       vlna -f soubor1 soubor2   ... soubor1 -> soubor2 (mus: in!=out)
       vlna -f soubor1           ... soubor1 -> stdout
       vlna -f                   ... stdin   -> stdout
     Nen-li program v reimu filtr, pak jsou jmna soubor interpretovna
     takto:
        vlna soubor1 [soubor2 [soubor3...]]
     Zde je kad soubor "ovlnkovn" samostatn, tj. soubory jsou mnny.
     Nen-li uveden parametr -r, jsou vytveny zlohy k souborm
     s vlnkou na konci jmna.
-s : Tich reim. Program nevypisuje vodn zprvu, varovn zprvy a
     statistiky o zmnch v souborech. Tyto texty se vypisuj do stderr,
     take v reimu filtr nen nutn -s zapnat, pokud umme oddlit stderr
     od stdout. V tichm reimu se vype jen chyba, kter pedasn ukon
     innost programu.
-r : Nevytvet (mazat) zlohy. Nen-li program v reimu filtr, pak se ke
     kadmu souboru vytv zloha s vlnkou na konci jmna. Takov soubory
     se intern vytvej vdy pi bhu programu v reimu ne-filtr. Je-li
     uveden parametr -r, jsou na konci zpracovn tyto zlohy mazny.
     V reimu filtr nem -r dn vliv.
-v znaky : Definice znak, kter budeme povaovat za neslabin pedloky,
     tj. k ovlnkovn. Implicitn hodnota -v KkSsVvZzOoUuAI je pouitm
     tohoto parametru pepsna. Mezi -v a skupinou znak mus bt mezera.
-m : Ignoruje pechody do matematickho reimu ($...$ a $$...$$) a vlnkuje
     i v tchto prostedch. Imlicitn v matematickch prostedch nevlnkuje.
-n : Ignoruje pechody do verbatim reimu (\verb<zn>...<zn>, \begtt...\endtt)
     a vlnkuje i v tchto prostedch.
-l : LaTeX md. K ve uvedenm sekvencm ohraniujc display math
     md je pidno \begin{display}...\end{display}  a 
     \begin{equation}...\end{equation}. K sekvencm ohraniujc 
     verbatim md je pidno \begin{verbatim}...\end{verbatim}
-w : web md. K sekvencm ohraniujcm verbatim md je pidno
     @< nebo @d ... @* nebo @mezera nebo @>| . To zpsob, e nen
     provlnkovan kd programu ve web souborech, ale jenom komente.

POZNMKY:
---------

* Ped pedlokou me bt libovoln mnostv otevracch zvorek, 
  ped ktermi mus bt mezera nebo zatek dku. Ped otevrac
  svorkou me tak bt msto mezery TeXova "\sekvence" (od verze 1.2).
  Nap. ([{(V tomto ppad bude vlnka za V. Stejn tak
  se vlnka objev \boldfont{V tomto ppad}.
* Veker aktivity programu je mon vypnout sekvenc %~- a zapnout
  sekvenc %~+ (mezi uvedenmi znaky me bt libovon mnostv mezer)
* Program kontroluje konzistenci matematickch reim. D varovn 
  v tchto ppadech:
  Vstup do display uvnit t-math (nap. $ ...$$... $). -- pejde do display.
  Przdn dek uvnit t-math nebo display -- pejde do standardnho reimu.
  Poznamenejme, e uvnit display se ignoruj vskyty jednoho dolaru
  naprosto bez varovn, protoe ty vtinou mohou bt soust \hbox-u.
  Pi -m nen konzistence math. md kontrolovna.
* Program kontroluje konzistenci verbatim md na konci souboru.
  Nebyl-li verbatim md ukonen, objev se varovn. Tento test
  neprobh, pokud je nastaven pepna -n nebo -w.
* Program nedopluje vlnky za psmena, kter vypadaj "jako"
  pedloky, ale nsleduj bezprostedn za sekvencemi \TeX nebo
  \LaTeX, tj. nap. v textu "Vlastnosti \TeX u jsou" nepid vlnku
  mezi u a j. Sekvence \TeX a \LaTeX jsou zatm natvrdo implementovny
  do programu. Otzka ten mnoiny takovch sekvenc z konf. souboru
  (nebo odjinud) bude (mon) zahrnuta v dal verzi.

TIPY K POUIT PROGRAMU:
------------------------

vlna -m -n -s -r soubor ... odpovd zhruba voln pvodnho vlnka.
Nen to zcela pesn, protoe program navc nevlnkuje za slovy \TeX a
\LaTeX a to se ned vypnout.

vlna *.tex ... provlnkuje vechny soubory s pponou .tex.
Pracuje pouze na UNIXu.

vlna -f soubor > /dev/null ... provede test konzistence math a
verbatim md a neudl dnou zmnu.

HISTORIE TOHOTO PRODUKTU:
-------------------------

Pvodn verzi programu vlnka vytvoil zhruba v roce 1990 Oldich Ulrych 
v Pascalu. Dal vylepen v Pascalskm programu udlal tpn Kasal.
Tento Pascalsk program je en v balku CSTeX. 

Zde uveden varianta programu (vlna) byla napsna v noru 1995 pro
pouit v UNIXovch prostedch, a proto v jazyce C. Pesnji byl
pouit prostedek CWEB, kter umouje snadno st zdrojov text a
snadno jej modifikovat. Program byl zcela pepracovn (z pvodnho
Pascalskho kdu nebylo pouito vbec nic) a byl do nj implementovn
algoritmus rozpoznvn tzv. pattern (jednoduchch regulrnch
vraz).

Tato varianta programu byla testovna na SUN OS a na MS DOS.

V noru 1998 mi poslal pan Rudof ejka Makefile a manulovou strnku 
k programu a ve zdrojovm kdu poravil drobn chyby. 

23.2.1995    Petr Olk.

