program vlna na v~l~n~k~y

Petr Olsak olsak at math.feld.cvut.cz
Tue Feb 28 11:17:57 CET 1995


MOTTO:

Kdokoliv to chce napsat, samozrejme muze! Jelikoz je vsak muj program dosti
zbastlen, bude jej asi muset napsat cely znovu.
                                               Stepan Kasal, MFF UK Praha
                                                    18/01/93 11:26:35
                                                       VLNKA.DOC

Vazeni a mili,

rozhodl jsem se poslechnout vyzvu pana Kasala a napsat program vlnka
(na doplnovani vlnek za neslabicne predlozky) zcela znovu.
Abych odlisil puvodni verzi pana Kasala, nazval jsem program vlna.

Me duvody k~tomuto kroku byly tyto:

* Chtel jsem mit jednotny prostredek k~vlnkovani jak pro UNIX tak pro DOS.
  V~UNIXu sice lze vytvorit fikane scripty resici zhruba tuto problematiku,
  ale to neni pouzitelne v~DOSu. Pascalsky program z~DOSu neni pouzitelny
  v~UNIXu. Dusledek: je treba pouzit jazyk C.
* Chtel jsem vypinat vlnkovani v~matematice a ve verbatim prostredich
  automaticky a nikoli pomoci %~- (a zapnout pomoci %~+)
* Chtel jsem na jednoduchem programu vyzkouset metodu programovani, kterou
  pouziva Knuth, tj. prostredek CWEB.
* Kazdy si muze precist a navrhnout modifikace prehledne napsaneho
  zdrojoveho textu v~jazyce CWEB. Je to spise takove cteni na dobrou noc
  nez trasovani v~listingu komplikovane zacykleneho programu.
* Vysledny program je zrejme snadno modifikovatelny a daji se tam
  pridat nove rysy pomerne prehledne. Je tam implemetovan algoritmus
  pro rozpoznavani jednoduchych regularnich vyrazu (tzv. patternu).

Program obsahuje zhruba tato vylepseni:
- Nevlnkovani v~$...$, $$...$$, \begin{equation...\end{equation,
  \begin{display...\end{display.
- Nevlnkovani ve \verb|verbatim konstrukcich| ruznych typu.
- Kontrola konzistence mat/text rezimu na kazdem konci odstavce (presneji
  prazdnem radku)
- Seznam souboru z~prikazoveho radku znamena "ovlnkuj vsechny soubory".
  Toto se mi zda lepsi reseni, nez "ovlnkuj \input soubory", protoze druha
  alternativa by mohla vest k~tomu, ze budeme mit ovlnkovane i to, co jsme
  nechteli. V~UNIXu (diky interpretaci shellu) lze pak pouzit treba
         vlna *.tex.
- program lze prepnout do rezimu "filter", coz je uzitecne v~ruznych
  UNIXovych aplikacich. Komunikuje mi to napr. s~emacsem, kde mam pridany
  povel "ovlnkuj oznaceny region (DOSovsky receno blok)".
- Nevlnkuje se pismeno, ktere vypada jako predlozka, za sloven \TeX a
  \LaTeX. Tj. treba: Vlastnosti \TeX u jsou... (nebude vlnka mezi "u" a "j").
- Po zpracovani kazdeho souboru vypise pocet provedenych zmen.

Co chybi z~vlastnosti puvodni vlnky:
- cteni seznamu predlozek je mozne jen z~prikazove radky a nikoli
  z~promenne prostredi. Pokud chcete vlastnost zachovat, volejte program
  prostrednictvim scriptu
     vlna -v $PROMENNA
  nebo davky
     vlna -v %PROMENNA%
- puvodni program vlnka uz byl mnohaletym pouzivanim velkeho mnozstvi lidi
  urcite velmi dobre proveren. Riziko, ze je v~novem programu chyba, je
  vetsi.

Program (vcetne zdrojovych textu v~CWEBu) najdete na anonymnim ftp
math.feld.cvut.cz:/pub/olsak/vlna. Soucasne prosim spravce Brnenskeho ftp,
aby program premistil na svuj "oficialni" server.

Petr Olsak



More information about the csTeX mailing list