summaryrefslogtreecommitdiff
path: root/Build/source/utils/vlna/vlna-1.5/vlna.txt
blob: 0546f828207c6738d60b5124188d7cbc98865bbd (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
122
123
124
125
126
127
128
129
130
131

                               Program VLNA
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    verze 1.4                  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.
-x kód : Vyhledané  místo se implicitnì nahrazuje vlnkou.  Místo toho jej
     mù¾ete nechat nahrazovat libovolným stringem.  Kód za parametrem
     -x  je  hexadecimálnì  vyjádøený  string,  nula  je  ve  stringu
     povoleným znakem.  Tak¾e -x C2A0  vymezuje  dvouznakový  string:
     místo  ka¾dé  vlnky  budou  vlo¾eny dva byty, první s kódem C2 a
     druhý s kódem A0. Podle unicodové  tabulky  tento  p¾íklad  tedy
     zpùsobí  nahrazování  znakem  NO-BREAK  SPACE pøi kódování UTF8.
     Jine pøíklady: -x 00A0 nahrazování  znakem  NO-BREAK  SPACE  pøi
     kódování  UTF16, -x 41484F4A nahrazování textem AHOJ.  Mezi -x a
     kódem 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.