summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/cslatex/base/csplain.doc
blob: 537a4bde790119b4648a2541aa3820b744fd1809 (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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
          Balík souborù (texinput) na generování formátu csplain
          ******************************************************
          *  Petr Ol¹ák                      Verze: záøí 1996  *
                                                    øíjen 1998

Formát csplain je skoro shodný s klasickým formátem plain. Rozdíl je jedinì
v tom, ¾e místo CM fontù se pracuje s CS-fonty, co¾ umo¾òuje zavést
v tomto kódování fontù vzory dìlení pro èeský a slovenský jazyk.
Pomocí formátu csplain je mo¾no nahradit originální formát plain,
tj. pro anglické dokumenty se oba formáty chovají (skoro) stejnì.
Nepatrné odli¹nosti, vyplývající z pou¾ití CS-fontù místo CM fontù,
viz soubor cs-fonts.doc.


Potøebné soubory
****************

Pro vygenerování formátu csplain je potøeba:
 1. v /tfm mít metriky CS-fontù (napø. csr10.tfm),
 2. v /texinput mít následující soubory:
         csplain.ini  ... hlavní soubor pro vygenerování formátu
         plain.tex    ... Knuthùv plain
         csfonts.tex  ... makro pro zavedení CS-fontù
         il2code.tex  ... makro pro práci s kódem CS-fontù (ISO-8859-2)
         hyphen.lan   ... øídicí soubor k zavední vzorù dìlení rùzných jazykù
         hyphen.tex   ... základní vzory dìlení pro US (souèástí plainu)
         hyphen.ex    ... slovník výjimek pro US
         czhyphen.tex ... vzory dìlení pro èe¹tinu
         czhyphen.ex  ... slovník výjimek pro èe¹tinu
         skhyphen.tex ... vzory dìlení pro sloven¹tinu
         skhyphen.ex  ... slovník výjimek pro sloven¹tinu
         plaina4.tex  ... makro upravující výhozí rozmìr zrcadla pro A4
3. pokud pøedpokládáte vstupní soubory v jiném kódování, ne¾ ISO-8859-2,
   potøebujete navíc a) pøi pou¾ití emTeXu -- pøíslu¹nou *.tcp tabulku
                     b) pøi vyu¾ití encTeXu -- pøíslu¹ný soubor enc-?.tex


Generování formátu
******************

Generování formátu csplain je závislé na implementaci TeXu.
V UNIX like systémech (odvozených z implementace web2c) pou¾ijte pøíkaz:

         initex csplain.ini

nebo v novìj¹í verzi web2c:

         tex -ini csplain.ini

Vstupní kódování bude rovno vnitønímu kódování ISO-8859-2. Pøedpokláte-li
kódování vstupních textù v jiném kódování, ne¾ ISO-8859-2 a navíc máte
implementaci binárního programu TeX obsahující encTeX (to poznáte podle
druhého øádku v soborech *.log), pak si vyberte jedno z písmen: w=CP1250,
k=Kamenicti, p=PC Latin2 (CP852), u=UTF8 a inicializujte formát takto:

         tex -ini \let\enc=? \input csplain.ini

kde ? je jedno z písmen w, k, p nebo u charakterizující vstupní kódování. Na
pøíkazovém øádku v UNIXu musíte ka¾dý znak "\" psát dvakrát, napøíklad:

         tex -ini \\let\\enc=k \\input csplain.ini

Potøebujete-li implementovat vstupní kódování, které zde není uvedeno,
zvolte si pro nì nìjaké dal¹í písmeno a editujte pøíslu¹ný soubor enc-?.tex.

V DOSu (emTeXu) mù¾ete volit vstupní kódování pomocí *TCP tabulek. Napø.
pro kódování Kamenických napí¹ete:

         tex[386] /i /8 -cKAMENIC.TCP csplain.ini

Mù¾ete si ovìøit správnost instalace csplainu testem cstrip. Viz soubor
cstripm.dvi nebo cstripm.ps


Pou¾ití èe¹tiny a sloven¹tiny
*****************************

csplain je inicializován tak, aby se implicitnì choval jako plain.  To
znamená, ¾e je nastaveno anglické dìlení slov a sekvence \v, \'
expandují na primitiv \accent. Rovnì¾ je aktivní \nonfrenchspacing.
Rozdíl je jen ve velikosti implicitního rozmìru zrcadla sazby, které je 
v csplainu nastaveno pro palcové okraje pøi formátu A4, zatímco 
v plainu je nastaveno pro palcové okraje formátu Letter.

Pro sazbu v èeském nebo slovenském jazyce NEMUSÍTE volat styl
czech.sty. Staèí pou¾ít na zaèátku dokumentu tyto sekvence:

\chyph      % nebo \shyph : inicializuje èeské/slovenské dìlení slov 
            % a \frenschpacing
\csaccents  % zpùsobí jiné chování sekvencí \' \v a \r, které od této
            % chvíle expandují na znaky podle CSfontù

% návrat k pùvodnímu nastavení:
\ehyph      % americké dìlení a \nonfrenchspacing
\cmaccents  % \, \v expandují na primitiv \accent

Od verze csplainu <Sep. 1996> je sekvence pro uvozovky \uv{cosi}
zanesena do formátu.
           

Verze csplainu.
***************

csplain zavádí do \everyjob hlá¹ení o datu posledního zásahu do
zdrojových textù csplainu (viz soubor csplain.ini). Pokud tam takové
hlá¹ení není, máte verzi csplainu z r. 1994 nebo star¹í.

Jednotlivé verze oznaèujeme datem zmìny zdrojového textu a nikoli
èíslem. Odli¹nosti novìj¹ích verzí ne¾ <Apr. 1995> jsou uvedeny pøímo
v souboru csplain.ini. Odli¹nosti verze z roku 1994 od <Apr. 1995>
jsou uvedeny ní¾e.

V èem se li¹í csplain z csTeXu94 od verze <Apr. 1995>
*****************************************************

1. plain.tex. Místo verze 3.0 je pou¾ita verze 3.14159.

2. csfonts.tex. Navíc pøidána vlastnost \font\preloaded = nezavádìj ¾ádný font.
   Dùsledek: Po naètení formátu plain.tex je zavedeno pouhých 16 základních
   fontù proti døívìj¹ím 50.
   Dùvod: Pøi dne¹ních rychlostech poèítaèù u¾ asi neoceníme, ¾e je nìjaký
   font dopøedu zaveden ve formátu. Navíc máme více místa pro nové fonty.
   Odchylka: Kromì nepatrného zdr¾ení pøi zavádìní (døíve \preloaded) fontù
   není ¾ádný jiný rozdíl.

3. il2code.tex (døíve extcode.tex). Kromì pùvodních definic \catcode,
   \lccode a \uccode obsauje dal¹í makra závislá na kódování.
   a) makro \csaccents pøedefinuje makra \v, \', ... tak, ¾e expandují
      pøímo do znakù podle CS-fontù.
      Výhody:
      * Po \csaccents lze naèíst vzory dìlení ve tvaru nezávislém na
        kódování.
      * Po \csaccents budou správnì rozdìlena i slova zapsaná
        t\'imto zp\r usobem. Také na nì bude správnì fungovat primitiv
        \uppercase (výjimku tvoøí pøípad, kdy je \'i psáno "postaru", tj.
        jako \'\i).
      * \v d a \v t vede na ï a » (s apostrofy, nikoly s háèky).
      Výchozí chování formátu csplain je z dùvodu nutné kompatibility
      se standardním plainem nastaveno na pùvodní význam maker \v, \'.
      Pøíkazem \csaccents se inicializuje nový význam a pøíkazem \cmaccents
      se v¹e vrací do pùvodního stavu. Inicializace je navíc lokální vrámci
      skupiny.
      Pokud bude nìkdo èasto pøepínat \csaccents, \cmaccents, pak mù¾e
      potlaèit hlá¹ky na terminálu a do .logu pøedefinováním pøíkazu
      \csaccentsmessage, \cmaccentsmessage.
   b) Jsou doplnìny definice sekvencí, které jsou závislé na kódování
      CS-fontù. Tj. uvozovky \clqq, \crqq, \flqq, \frqq, \ogonek, \promile.
      Dále je definován pøíkaz \extrahyphens, který inicializuje
      \hyphenchar do alternativního znaku v CS-fontu pro základní
      desetibodové textové fonty. Tím napø. "je-li" nebude rozdìleno.
      Bohu¾el vzniká zobrazovací zádrhel: pøi hlá¹kách "Overfull" TeX
      zobrazuje na terminál místo znaku - znak ^^9c. V emTeXu staèí mírnì
      upravit tabulku tcp a smìrovat do ^^9c nìjaký náhradní a podobný
      semigrafický symbol (viz pøilo¾ená tabulka kamenic.tcp).

4. hyphen.lan.
   * Na zaèátku má \csaccents, aby zavedl vzory dìlení napsané
     pomocí sekvencí a na konci vrací \cmaccents.
   * Místo hyphen.cz a hyphen.czx zavádí czhyphen.tex a czhyphen.ex (z dùvodu
     kompatibility s makrem pro èe¹tinu v LaTeXu 2e). Podobnì pro dal¹í
     jazyky.
   * Místo pùvodních \righthyphenmin=2 je pro \chyph a \shyph zavedeno
     \righthyphenmin=3 (co¾ je podle normy). Sází-li u¾ivatel do úzkých
     sloupcù, mù¾e si to zmìnit napøíklad takto: \chyph \righthyphenmin=2
   * Pøi volání czhyphen.tex, skhyphen.tex je \let\global=\relax, aby
     nedo¹lo ke zmìnì \everyjob\message. Skuteènost, jaké dìlení slov je
     zavedeno, lze zjistit z verze csplainu <Apr. 1995>, tj. není potøeba
     jmenovat nìjaké konkrétní lidi v \everyjobu.

5. czhyphen.tex je kompletnì jiné (zøejmì lep¹í), ne¾ v pùvodním csTeXu.
   Je pou¾ito dìlení, které (po mírném pomr¹ení) dal k dispozici Pavel
   ©eveèek TeXovské veøejnosti pro pou¾ití v nekomerèním svìtì zdarma.

6. czhyphen.ex je zmen¹eno o vìci, které u¾ czhyphen.tex umí správnì a
   zbytek je pøepsán do sekvencí nezávislých na kódování.

7. skhyphen.tex je pravdìpodobnì stejné, jako bylo (nezkoumal jsem to).
   Stejnì tak zùstává skhyphen.ex. Je pou¾ito dìlení ruènì vyrobené
   Jankou Chlebíkovou.

8. csplain.ini.
   * Zmìnìno poøadí volání extcode.tex
   * Zmìnìn text \everyjob\message.

9. czech.sty
   * Na zaèátku zaøazena vìtvièka
     \if Formát=LaTeX2e \input lczech.sty \endinput \fi
   * Zaøazen novì test na \ifx\chyph\undefined \message{Warning...}
   * Zaøazen test na pou¾ití CS-fontù podle prvních dvou písmen v názvu
     fontu \tenrm. Pokud CS-fonty jsou zavedeny a pøitom není definován
     \clqq (pøípad starý csformát, nový czech.sty), pak se definují nìkteré
     sekvence analogicky, jako v bodì 3b).
   * Do pøíkazù \czechTeX, resp. \originalTeX je vlo¾eno \csaccents, resp.
     \cmaccents, tj. styl czech aktivuje \csaccents.
   * V¹e, co bylo øeèeno pro czech.sty platí analogicky pro slovak.sty