summaryrefslogtreecommitdiff
path: root/Build/source/utils/vlna/vlna.txt
blob: 2e50fab9e738f1c389f568ef5b041691f988031b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121

                               Program VLNA
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    verze 1.2                  Petr Ol¹ák

Program vlna pøidává vlnky (místo pùvodních mezer) za neslabièné pøedlo¾ky
ve vstupních souborech pro TeX. To zabrání zlomu øádku v ne¾ádoucím místì.

Není pou¾it název "vlnka", abychom odli¹ili pùvodní program vlnka
(autoøi O. Ulrych, ©. Kasal) od tohoto programu vlna. Jedná se o
vylep¹enou a zcela novì napsanou verzi, která není dùslednì zpìtnì
kompatibilní s pùvodním programem vlnka.

POU®ITÍ:
--------

vlna [opt] [jména souborù]

[opt] jsou nepovinné pøepínaèe, které musí být oddìleny mezerou a uvozeny
znakem "-". Mohou být uvedeny v libovolném poøadí.

PØEPÍNAÈE:
----------

-f : Re¾im "filtr". V tomto re¾imu jsou jména souborù interpretována takto:
       vlna -f soubor1 soubor2   ... soubor1 -> soubor2 (musí: in!=out)
       vlna -f soubor1           ... soubor1 -> stdout
       vlna -f                   ... stdin   -> stdout
     Není-li program v re¾imu filtr, pak jsou jména souborù interpretována
     takto:
        vlna soubor1 [soubor2 [soubor3...]]
     Zde je ka¾dý soubor "ovlnkován" samostatnì, tj. soubory jsou mìnìny.
     Není-li uveden parametr -r, jsou vytváøeny zálohy k souborùm
     s vlnkou na konci jména.
-s : Tichý re¾im. Program nevypisuje úvodní zprávu, varovné zprávy a
     statistiky o zmìnách v souborech. Tyto texty se vypisují do stderr,
     tak¾e v re¾imu filtr není nutné -s zapínat, pokud umíme oddìlit stderr
     od stdout. V tichém re¾imu se vypí¹e jen chyba, která pøedèasnì ukonèí
     èinnost programu.
-r : Nevytváøet (mazat) zálohy. Není-li program v re¾imu filtr, pak se ke
     ka¾dému souboru vytváøí záloha s vlnkou na konci jména. Takové soubory
     se internì vytváøejí v¾dy pøi bìhu programu v re¾imu ne-filtr. Je-li
     uveden parametr -r, jsou na konci zpracování tyto zálohy mazány.
     V re¾imu filtr nemá -r ¾ádný vliv.
-v znaky : Definice znakù, které budeme pova¾ovat za neslabièné pøedlo¾ky,
     tj. k ovlnkování. Implicitní hodnota -v KkSsVvZzOoUuAI je pou¾itím
     tohoto parametru pøepsána. Mezi -v a skupinou znakù musí být mezera.
-m : Ignoruje pøechody do matematického re¾imu ($...$ a $$...$$) a vlnkuje
     i v tìchto prostøedích. Imlicitnì v matematických prostøedích nevlnkuje.
-n : Ignoruje pøechody do verbatim re¾imu (\verb<zn>...<zn>, \begtt...\endtt)
     a vlnkuje i v tìchto prostøedích.
-l : LaTeX mód. K vý¹e uvedeným sekvencím ohranièující display math
     mód je pøidáno \begin{display}...\end{display}  a 
     \begin{equation}...\end{equation}. K sekvencím ohranièující 
     verbatim mód je pøidáno \begin{verbatim}...\end{verbatim}
-w : web mód. K sekvencím ohranièujícím verbatim mód je pøidáno
     @< nebo @d ... @* nebo @mezera nebo @>| . To zpùsobí, ¾e není
     provlnkovaný kód programu ve web souborech, ale jenom komentáøe.

POZNÁMKY:
---------

* Pøed pøedlo¾kou mù¾e být libovolné mno¾ství otevíracích závorek, 
  pøed kterými musí být mezera nebo zaèátek øádku. Pøed otevírací
  svorkou mù¾e také být místo mezery TeXova "\sekvence" (od verze 1.2).
  Napø. ([{(V tomto pøípadì bude vlnka za V. Stejnì tak
  se vlnka objeví \boldfont{V tomto pøípadì}.
* Ve¹keré aktivity programu je mo¾né vypnout sekvencí %~- a zapnout
  sekvencí %~+ (mezi uvedenými znaky mù¾e být libovoné mno¾ství mezer)
* Program kontroluje konzistenci matematických re¾imù. Dá varování 
  v tìchto pøípadech:
  Vstup do display uvnitø t-math (napø. $ ...$$... $). -- pøejde do display.
  Prázdný øádek uvnitø t-math nebo display -- pøejde do standardního re¾imu.
  Poznamenejme, ¾e uvnitø display se ignorují výskyty jednoho dolaru
  naprosto bez varování, proto¾e ty vìt¹inou mohou být souèástí \hbox-u.
  Pøi -m není konzistence math. módù kontrolována.
* Program kontroluje konzistenci verbatim módù na konci souboru.
  Nebyl-li verbatim mód ukonèen, objeví se varování. Tento test
  neprobíhá, pokud je nastaven pøepínaè -n nebo -w.
* Program nedoplòuje vlnky za písmena, která vypadají "jako"
  pøedlo¾ky, ale následují bezprostøednì za sekvencemi \TeX nebo
  \LaTeX, tj. napø. v textu "Vlastnosti \TeX u jsou" nepøidá vlnku
  mezi u a j. Sekvence \TeX a \LaTeX jsou zatím natvrdo implementovány
  do programu. Otázka ètení mno¾iny takových sekvencí z konf. souboru
  (nebo odjinud) bude (mo¾ná) zahrnuta v dal¹í verzi.

TIPY K POU®ITÍ PROGRAMU:
------------------------

vlna -m -n -s -r soubor ... odpovídá zhruba volání pùvodního vlnka.
Není to zcela pøesné, proto¾e program navíc nevlnkuje za slovy \TeX a
\LaTeX a to se nedá vypnout.

vlna *.tex ... provlnkuje v¹echny soubory s pøíponou .tex.
Pracuje pouze na UNIXu.

vlna -f soubor > /dev/null ... provede test konzistence math a
verbatim módù a neudìlá ¾ádnou zmìnu.

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

Pùvodní verzi programu vlnka vytvoøil zhruba v roce 1990 Oldøich Ulrych 
v Pascalu. Dal¹í vylep¹ení v Pascalském programu udìlal ©tìpán Kasal.
Tento Pascalský program je ¹íøen v balíku CSTeX. 

Zde uvedená varianta programu (vlna) byla napsána v únoru 1995 pro
pou¾ití v UNIXových prostøedích, a proto v jazyce C. Pøesnìji byl
pou¾it prostøedek CWEB, který umo¾òuje snadno èíst zdrojový text a
snadno jej modifikovat. Program byl zcela pøepracován (z pùvodního
Pascalského kódu nebylo pou¾ito vùbec nic) a byl do nìj implementován
algoritmus rozpoznávání tzv. patternù (jednoduchých regulárních
výrazù).

Tato varianta programu byla testována na SUN OS a na MS DOS.

V únoru 1998 mi poslal pan Rudof Èejka Makefile a manuálovou stránku 
k programu a ve zdrojovém kódu poravil drobné chyby. 

23.2.1995    Petr Ol¹ák.