summaryrefslogtreecommitdiff
path: root/info/tex-virtual-academy-pl/fonty/nfss.html
blob: d87ba4f4ee5485a0c211f9eb17dcab96904df17a (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
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<meta name="keywords" lang="en" content="Polish TeX Users Group, fonts and LaTeX2e, NFSS">
<LINK REL=STYLESHEET TYPE="text/css" HREF="./tpstyle.css">
<title>LaTeX2e i fonty</title>
</head>
<body>

<h1>LaTeX2e i fonty</h1> 
<!-- wolinski@melkor.mimuw.edu.pl zeszyt 10. 1998 -->

<p>
Poni¿szy dokument jest czê¶ci± artyku³u Marcina Woliñskiego
<em>LaTeX2e a&nbsp;sprawa polska</em>, który ukaza³ siê w&nbsp;Biuletynie 
GUST nr&nbsp;10/1998. Ca³y artyku³ dostêpny jest na serwerze GUST
w&nbsp;(spakowanej)  
<A HREF="ftp://ftp.gust.org.pl/TeX/GUST/bulletin/10/02-mw.ps.gz">wersji
PostScript.</A>

<!-- Spis tre¶ci ....................................................... -->
<hr>
<A NAME=P0> <ul>
 <li><A HREF=#opfont> Opis fontu w nowym sposobie wyboru fontów</A></li>
 <ul>
  <li><A HREF=#uklad> Uk³ad fontu</A></li>
  <li><A HREF=#kroj> Krój pisma (rodzina)</A></li>
  <li><A HREF=#grub> Grubo¶æ i szeroko¶æ</A></li>
  <li><A HREF=#odmiana> Odmiana</A></li>
  <li><A HREF=#stoppis> Stopieñ pisma i&nbsp;interlinia</A></li>
 </ul>
 <li><A HREF=#obsluga> Obs³uga typowych sytuacji</A></li>
 <li><A HREF=#konfig> Konfigurowanie NFSS</A></li>
</ul>
<hr>

<h2>NFSS</h2>

<p>
 W&nbsp;niniejszym wprowadzeniu zostanie przedstawiony wy³±cznie sposób
zarz±dzania fontami tekstowymi.  Do prezentacji zagadnieñ zwi±zanych ze
sk³adem formu³ matematycznych autor nie czuje siê jeszcze odpowiednio
przygotowany.</p>

<p>
 TeX ma wbudowany jedynie bardzo prosty sposób dostêpu do fontów.  Poleceniem
<code>\font</code> mo¿na zwi±zaæ nazwê symboliczn± z&nbsp;operacj± wybrania
fontu za³adowanego z&nbsp;konkretnego pliku metrycznego
i&nbsp;o&nbsp;ustalonej wielko¶ci. (W&nbsp;ca³ym niniejszym tek¶cie s³owo
font bêdzie u¿ywane na okre¶lenie takiej w³a¶nie istno¶ci.  W&nbsp;sensie
TeXa -- co¶ za³adowanego z&nbsp;konkretnego pliku metrycznego.  W&nbsp;sensie
typograficznym  -- pismo o&nbsp;ustalonym kroju, odmianie i&nbsp;stopniu.)
Pos³ugiwanie siê tak zdefiniowanymi poleceniami na d³u¿sz± metê jest
uci±¿liwe, poniewa¿ wywo³uj± one bezpo¶rednio okre¶lon± odmianê
i&nbsp;stopieñ okre¶lonego kroju pisma.  Wyobra¼my sobie, ¿e wykonano</p>

<code>\font\it=plti10</code>

<p>
 Je¶li teraz fragment tekstu zawieraj±cy u¿ycie tego polecenia zostanie
przeniesiony z&nbsp;g³ównego tekstu dokumentu do przypisu, wydarzy siê
katastrofa: przypisy s± tradycyjnie sk³adane pismem mniejszego stopnia, ale
fragment kursyw± bêdzie wiêkszy! </p>

<p>
 Dlatego ka¿dy TeXowy format ma swoj± metodê zdefiniowania polecenia
<code>\it</code> tak, aby znaczy³o co¶ w&nbsp;rodzaju ,,prze³±cz font na
kursywê w&nbsp;bie¿±cym stopniu''. LaTeX&nbsp;2.09 zapewnia³ dostêp do
ustalonego zbioru fontów  -- mianowicie krojów Computer Modern -- tak aby
dawa³o siê manipulowaæ niezale¿nie stopniem i&nbsp;odmian± pisma.  Dodanie
nowych fontów do zestawu dostêpnego w&nbsp;LaTeXu w&nbsp;praktyce wymaga³o
ingerencji w plik <code>lfonts.tex</code>, co by³o zadaniem wyj±tkowo
niewdziêcznym, a&nbsp;ponadto prowadzi³o do powstawania niezgodnych ze sob±
lokalnych wersji LaTeXa. </p>

<p>
 W LaTeXa&nbsp;2e wbudowano skomplikowany, ale za to bardzo elastyczny,
mechanizm nazywaj±cy siê NFSS (<em>New Font Selection Scheme</em> -- 
nowy sposób wyboru fontów). System ten jest
stosunkowo ³atwy w&nbsp;u¿yciu, zarejestrowanie fontów w&nbsp;systemie jest
elementarne (je¿eli dostêpne s± pliki opisu fontów -- <em>font descripton
files</em>) i&nbsp;nie wymaga ingerencji w&nbsp;format LaTeXa, natomiast si³±
rzeczy stworzenie plików opisu wymaga odrobiny wiedzy o&nbsp;systemie.</p>

<A NAME="opfont">
<h3>Opis fontu w&nbsp;nowym sposobie wyboru fontów</h3>

<p>
 W LaTeXu&nbsp;2e bie¿±cy font jest charakteryzowany przez piêæ elementów: 
uk³ad (zestaw znaków), krój (rodzinê), grubo¶æ i&nbsp;szeroko¶æ, odmianê,
stopieñ i&nbsp;interliniê.  Ka¿dy z&nbsp;tych elementów mo¿na wybraæ
oddzielnym poleceniem.</p>

<TABLE FRAME=1 WIDTH=60% ALIGN=center>
<tr bgcolor=white> 
<td> uk³ad fontu     </td><td>      <code>\fontencoding{OT1}</code>  </td><tr>
<tr bgcolor=white> 
<td> rodzina (krój)  </td><td>      <code>\fontfamily{cmr}</code>    </td><tr>
<tr bgcolor=white> 
<td> grubo¶æ i szeroko¶æ  </td><td> <code>\fontseries{m}</code>      </td><tr>
<tr bgcolor=white> 
<td> odmiana              </td><td> <code>\fontshape{n}</code>       </td><tr>
<tr bgcolor=white> 
<td> stopieñ i interlinia </td><td> <code>\fontsize{10}{12pt}</code> </td><tr>
<tr bgcolor=white> 
<td>                      </td><td> <code>\selectfont</code>         </td><tr>
</TABLE>
</p>

<p>
 Argumenty poleceñ wymienione w&nbsp;tabelce odpowiadaj± domy¶lnym warto¶ciom
dla dokumentu sk³adanego przy pomocy standardowych klas w&nbsp;stopniu 10pt. 
U¿ycie poleceñ <code>\font...</code> nie powoduje od razu w³±czenia fontu,
poniewa¿ u¿ytkownik mo¿e chcieæ zmieniæ kilka elementów charakterystyki
bie¿±cego fontu jednocze¶nie.  Dlatego ostateczny wybór fontu zatwierdza siê
poleceniem <code>\selectfont</code>.</p>

<p>
 Wszystkie elementy charakterystyki fontu, za wyj±tkiem stopnia pisma, mo¿na
zmieniæ jednocze¶nie poleceniem <code>\usefont</code>.  Nie wymaga ono
równie¿ zatwierdzenia przez <code>\selectfont</code>.</p>

<code>
\usefont{OT1}{cmr}{m}{n}
</code>

<p>
 Poszczególne elementy opisu fontu s± od siebie niezale¿ne, co daje LaTeXowi
przewagê nad procesorami tekstu. Wyobra¼my sobie, ¿e w&nbsp;,,zwyk³ym
procesorze tekstu'' w&nbsp;tek¶cie po polsku u¿ywamy wyra¿enia ,,\`a
propos''. Poniewa¿ w&nbsp;,,polskim'' foncie nie ma znaku&nbsp;\`a, musimy
pobraæ symbol z&nbsp;fontu ,,zachodniego''.  Je¿eli w&nbsp;pó¼niejszym etapie
opracowania redakcyjnego postanowimy zmieniæ krój pisma np.  z&nbsp;Timesa na
Helveticê, obca litera pozostanie w&nbsp;starym kroju, bo uzyskuj±c j± nie
mogli¶my powiedzieæ ,,chcê bie¿±cy krój i&nbsp;odmianê, ale w&nbsp;uk³adzie
zachodnioeuropejskim'', zamiast tego w&nbsp;dokumencie stoi ,,tu ma byæ
zachodnioeuropejski Times jasny prosty stopnia 10pt''.</p>

<p>
 Gdy NFSS stwierdzi, ¿e dana kombinacja parametrów nie odpowiada ¿adnemu
istniej±cemu fontowi, wypisuje odpowiedni± informacjê do pliku
<code>.log</code> i&nbsp;stara siê u¿yæ fontu o&nbsp;mo¿liwie bliskiej
charakterystyce.  Niektórzy bardzo nie lubi± tej w³asno¶ci NFSS, uwa¿aj±c ¿e
jest to jedno z&nbsp;miejsc, w&nbsp;których LaTeX usi³uje co¶ (¼le) zrobiæ za
u¿ytkownika.  To zachowanie mo¿na zmieniæ.  U¿ycie w&nbsp;preambule
deklaracji</p>

<code>
\usepackage[pausing]{tracefnt}
</code>

<p>
 powoduje zamianê wszystkich komunikatów o&nbsp;brakuj±cych fontach
w&nbsp;komunikaty o&nbsp;b³êdach, wymagaj±ce interwencji u¿ytkownika.</p>

<p>Omówiê teraz kolejne parametry opisuj±ce font w&nbsp;NFSS.</p>

<A NAME="uklad"><b>Uk³ad fontu</b> jest najciekawszym elementem, poniewa¿ wydaje
siê, ¿e LaTeX jest jedynym systemem, w&nbsp;którym pojêcie to wystêpuje 
jawnie. Uk³ad fontu opisuje, jakie znaki s± dostêpne w&nbsp;foncie
i&nbsp;w&nbsp;jakich pozycjach.  Polecenia akcentowe w&nbsp;LaTeXu 
korzystaj± z&nbsp;informacji o&nbsp;uk³adzie bie¿±cego fontu, aby u¿yæ 
najlepszej dostêpnej metody uzyskania danego znaku.
</p>

<p>
 Poniewa¿ mechanizm sterowania t³umaczeniem znaków na pozycje w&nbsp;foncie
nie wystêpuje w&nbsp;samym TeXu, LaTeXowy mechanizm uk³adów dzia³a na
poziomie makr.  W&nbsp;zwi±zku z&nbsp;tym dotyczy on tylko znaków dostêpnych
poprzez makra.  Tabele konwersji kodu wej¶ciowego na poziomie implementacji
dokonuj± t³umaczenia od razu w&nbsp;pozycje znaków w&nbsp;foncie, ignoruj±c
ten mechanizm.  Z&nbsp;drugiej strony pakiet <code>inputenc</code> pos³uguje
siê znakami aktywnymi, które zachowuj± siê jak makra, wykorzystuj±c mechanizm
uk³adów fontów.  </p>

<p>
 Nazwy uk³adów s± tradycyjnie pisane wielkimi literami i&nbsp;cyframi.
Poni¿sza tabela zestawia uk³ady fontów nale¿±ce do standardu LaTeXa.
</p>

<TABLE frame=1 WIDTH=80% ALIGN=CENTER>
<td> </td><td>Uk³ady fontów w LaTeXu <tr>
<td> OT1 </td><td> Old Text 1       </td><td> uk³ad fontów zastosowany przez Knutha </td><tr>
<td> OT2 </td><td> Old Text 2       </td><td> uk³ad cyrylicy z Washington University </td><tr>
<td> OT3 </td><td> Old Text 3       </td><td> uk³ad fontów <code>wsuipa</code> (?) </td><tr>
<td> OT4 </td><td> Old Text 4       </td><td> uk³ad fontów PL  </td><tr>
<td> T1  </td><td> Text 1           </td><td> ,,europejski'' uk³ad fontów (Cork) </td><tr>
<td> T3  </td><td> Text 3           </td><td> IPA  -- znaki fonetyczne </td><tr>
<td> T4  </td><td> Text 4           </td><td> uk³ad dla jêzyków afrykañskich </td><tr>
<td> TS1 </td><td> Text Symbol 1    </td><td> dodatkowe symbole tekstowe </td><tr>
<td> OML </td><td> Old Math Letters </td><td> uk³ad fontu matematycznego wg. Knutha </td><tr>
<td> OMS </td><td> Old Math Symbols </td><td> uk³ad symboli wg. Knutha </td><tr>
<td> OMX </td><td> Old Math Extensible </td><td> uk³ad fontu ze znakami  ,,rozci±gliwymi'' </td><tr>
</TABLE>

<p>
 Uk³ady o&nbsp;nazwach, zaczynaj±cych siê liter± <code>O</code>, zawieraj± po
128 pozycji.  Pozosta³e s± ,,nowymi'' uk³adami 256-znakowymi. 
<code>OT4</code> wy³amuje siê z&nbsp;tego schematu, bêd±c rozszerzeniem
<code>OT1</code>, ale nie wype³niaj±cym wszystkich 256 pozycji.
</p>

<p>
 Uk³ad <code>T1</code> jest ,,nowym'' uk³adem opracowanym na konferencji
w&nbsp;Cork.  Zawiera on znaki umo¿liwiaj±ce sk³ad w&nbsp;wiêkszo¶ci jêzyków
europejskich.  <code>TS1</code> jest odpowiadaj±cym mu uk³adem uzupe³niaj±cym
zawieraj±cym lataj±ce akcenty dla majusku³ (które nie zmie¶ci³y siê
w&nbsp;<code>T1</code>), znaki ,,copyright'', ,,registered'' i&nbsp;,,trade
mark'', liczne symbole walut oraz znaki pauzy o&nbsp;d³ugo¶ciach po¶rednich
miêdzy ,,endash'' i&nbsp;,,emdash'', które powinny uszczê¶liwiæ polskich
redaktorów technicznych.
</p>

<p>
 Jak widaæ, brak ,,nowych'' uk³adów matematycznych.  Wydaje siê, ¿e nikt nie
czuje siê kompetentny, by takie opracowaæ, lub te¿ uk³ad zaproponowany przez
Knutha funkcjonuje wystarczaj±co dobrze, a&nbsp;wielojêzyczno¶æ nie ma
wielkiego zastosowania do formu³ matematycznych.</p>

<p>
 Uk³ady fontów musz± byæ jawnie deklarowane w&nbsp;dokumencie.  Wszystkie
uk³ady, które bêd± u¿ywane w&nbsp;dokumencie powinny zostaæ wymienione jako
opcje wywo³ania pakietu <code>fontenc</code>.  Na przyk³ad ¿eby za³adowaæ
definicje uk³adu <code>OT2</code> (cyrylica) i&nbsp;<code>OT4</code> (polski)
wykonujemy:</p>  
<code> \usepackage[OT2,OT4]{fontenc} </code> 
<p>
Ostatni uk³ad wymieniony w&nbsp;tej klauzuli bêdzie domy¶lnym uk³adem 
dokumentu. </p>

<A NAME="kroj">
<b>Krój pisma (rodzina).</b><br>
Krój pisma jest wyró¿niony przez jednolito¶æ projektu graficznego.
Jest to wszak¿e do¶æ nieprecyzyjne okre¶lenie, jako ¿e np. antykwa
i&nbsp;kursywa tego samego kroju ró¿ni± siê do¶æ znacznie kszta³tem znaków.
Kryterium praktyczne jest wiêc takie, ¿e krój stanowi taki zbiór
fontów, któremu jego projektant nada³ wspóln± nazwê, np. Quasi
Palladio.</p>

<p>
 W NFSS stosuje siê kilkuznakowe skróty nazw krojów.  Dla Computer Modern s±
to np. <code>cmr</code>, <code>cmss</code>, <code>cmtt</code>.  Dla krojów
postscriptowych stosuje siê zwykle trzy pierwsze znaki nazwy plikowej fontu
wg. konwencji Karla Berry. Na przyk³ad <code>ptm</code> to Adobe Times,
<code>phv</code> to Adobe Helvetica, a&nbsp;<code>bch</code> to Bitstream
Charter.  Tych nazw u¿ywa siê jako argumentu <code>\fonfamily</code>.</p>

<p>
 Dla osób po raz pierwszy stykaj±cych siê z&nbsp;NFSS trudno¶æ stanowi zwykle
zrozumienie zale¿no¶ci miêdzy rodzin± a&nbsp;uk³adem fontu.  I&nbsp;tak na
przyk³ad krój Computer Modern Roman (<code>cmr</code>) wystêpuje co najmniej
w&nbsp;trzech uk³adach.  Krój <code>cmr</code> w&nbsp;starym uk³adzie
tekstowym <code>OT1</code> jest dostêpny w&nbsp;oryginalnych fontach Knutha
o&nbsp;nazwach plikowych np. <code>cmr10</code>, <code>cmbx12</code>, 
<code>cmti9</code>, itd.  Krój <code>cmr</code> w&nbsp;uk³adzie polskim
<code>OT4</code> jest realizowany przez adaptacjê fontów Knutha, dokonan±
przez B.&nbsp;Jackowskiego i&nbsp;M.&nbsp;Ryæko.  Nazwy plikowe tych fontów
to np.  <code>plr10</code>, <code>plbx12</code>, <code>plti9</code>. Trzecim
uk³adem, w&nbsp;którym dostêpny jest krój <code>cmr</code>, jest nowy
,,europejski'' uk³ad tekstowy <code>T1</code>. Ta kombinacja parametrów
oznacza u¿ycie fontów EC (Extended Computer Modern), czyli plików metrycznych
np. <code>ecr1000</code>, <code>ecbx1200</code>, <code>ecti0900</code>.</p>

<p>
 Fonty Knutha oprócz rodziny Computer Modern Roman obejmuj± jeszcze
rodzinê Computer Modern Sans Serif (<code>cmss</code>), Computer Modern
Typewriter (<code>cmtt</code>) i&nbsp;kilka drobnych 
eksperymentalno-dekoracyjno-zabawowych, jak Computer Modern Funny Roman
(<code>cmff</code>), Computer Modern Dunhill Roman (<code>cmdh</code>),
Computer Modern Fibonacci Roman (<code>cmfib</code>).
</p>

<p>
 Zatem wybór spo¶ród fontów CM, PL czy EC, odbywa siê
poprzez zmianê u¿ywanego uk³adu, a&nbsp;nie rodziny, bo wszystkie one
zawieraj± rodziny <code>cmr</code>, <code>cmss</code> i&nbsp;<code>cmtt</code> --
znaki wystêpuj±ce w&nbsp;ka¿dym z&nbsp;tych fontów maj± w&nbsp;zasadzie ten sam
projekt graficzny, jedynie zestaw dostêpnych znaków jest ró¿ny.
</p>

<p>
 Prze³±czenie standardowego LaTeXa na fonty zawieraj±ce polskie znaki
diakrytyczne, polega na zmianie u¿ywanego uk³adu fontów na <code>OT4</code>
lub <code>T1</code>.  Od tego momentu odwo³ania do standardowych rodzin
fontów bêd± dotyczy³y fontów zawieraj±cych polskie znaki.
</p>

<p>
 Krojów pisma nie trzeba deklarowaæ.  LaTeX za³aduje odpowiednie informacje
przy pierwszym odwo³aniu do danego kroju.</p>

<A NAME="grub">
<b>Grubo¶æ i&nbsp;szeroko¶æ.</b><br>
Oto najczê¶ciej spotykane warto¶ci tego parametru:

<TABLE FRAME=1 WIDTH=40% ALIGN=center>
<td> m   </td><td> <em>medium</em>        </td><td> zwyk³y        </td><tr>
<td> b   </td><td> <em>bold</em>         </td><td> gruby         </td><tr>
<td> bx  </td><td> <em>bold extended</em> </td><td> gruby szeroki </td><tr>
<td> sb  </td><td> <em>semi-bold</em>     </td><td> pó³gruby      </td><tr>
<td> c   </td><td> <em>condensed</em>     </td><td> w±ski         </td><tr>
</TABLE>

<p>
 W&nbsp;ogólno¶ci grubo¶æ i&nbsp;szeroko¶æ mog± przebiegaæ kilkustopniow±
skalê, daj±c kilkana¶cie kombinacji opisanych dwuliterowymi kodami.
Wiêkszo¶æ krojów wystêpuje jednak tylko w&nbsp;dwóch lub trzech wersjach
grubo¶ci/szeroko¶ci.  </p>

<A NAME="odmiana">
<b>Odmiana.</b><br>
Najczê¶ciej dostêpne odmiany to:<p>

<TABLE FRAME=1 WIDTH=50% ALIGN=center>
<td> n   </td><td> <em>normal</em>     </td><td> prosta </td><tr>
<td> it  </td><td> <em>italic</em>     </td><td> kursywa </td><tr>
<td> sl  </td><td> <em>slanted</em>    </td><td> pochy³a </td><tr>
<td> sc  </td><td> <em>small caps</em> </td><td> kapitaliki </td><tr>
<td> ui  </td><td> <em>upright italic</em> </td><td> ,,wyprostowana'' kursywa </td><tr>
</TABLE>

<A NAME="stoppis">
 <b>Stopieñ pisma i&nbsp;interlinia.</b><br> Argumentami polecenia
<code>\fontsize</code> s± stopieñ pisma i&nbsp;interlinia.  Domy¶ln±
jednostk± s± punkty (amerykañskie), ale w&nbsp;ka¿dym z&nbsp;argumentów mo¿na
te¿ u¿yæ dowolnej jednostki akceptowanej przez TeXa.
</p>

<p>
 W&nbsp;TeXu interlinia jest sta³a dla ca³ego akapitu.  Mówi±c ¶ci¶lej,
w&nbsp;ca³ym akapicie zostanie u¿yta jej warto¶æ bie¿±ca na jego koñcu.</p>

<A NAME="obsluga">
<h3>Obs³uga typowych sytuacji</h3>

<p>
 Opisany powy¿ej sposób manipulowania fontami pozwala na dostêp do wszystkich
zainstalowanych fontów rodziny, ale jest uci±¿liwy.  Dlatego LaTeX ma seriê
poleceñ (definiowanych po czê¶ci przez klasy) obs³uguj±cych typowe sytuacje.
</p>

<p>
 Po pierwsze, mamy seriê poleceñ wybieraj±cych stopieñ pisma
i&nbsp;interliniê, które wystêpowa³y równie¿ w&nbsp;LaTeXu&nbsp;2.09.  
Poni¿sza tabela wymienia stopnie odpowiadaj±ce poszczególnym poleceniom,
w&nbsp;zale¿no¶ci od stopnia pisma tekstu podstawowego wybranego
w&nbsp;<code>\documentclass</code>.
</p>

<TABLE WIDTH=60% ALIGN=center>
<td>    stopieñ pisma   </td><td>        </td><td>        </td><td>         </td><tr>
<td>    tekstu g³ównego          </td><td> 10pt  </td><td> 11pt </td><td> 12pt  </td><tr>
<td>  <code>\tiny</code>         </td><td> 5pt  </td><td> 6pt  </td><td> 6pt  </td><tr>
<td>  <code>\scriptsize</code>   </td><td> 7pt  </td><td> 8pt  </td><td> 8pt  </td><tr>
<td>  <code>\footnotesize</code> </td><td> 8pt  </td><td> 9pt  </td><td> 10pt </td><tr>
<td>  <code>\small</code>        </td><td> 9pt  </td><td> 10pt </td><td> 11pt </td><tr>
<td>  <code>\normalsize</code>   </td><td> 10pt </td><td> 11pt </td><td> 12pt </td><tr>
<td>  <code>\large</code>        </td><td> 12pt </td><td> 12pt </td><td> 14pt </td><tr>
<td>  <code>\Large</code>        </td><td> 14pt </td><td> 14pt </td><td> 17pt </td><tr>
<td>  <code>\LARGE</code>        </td><td> 17pt </td><td> 17pt </td><td> 20pt </td><tr>
<td>  <code>\huge</code>         </td><td> 20pt </td><td> 20pt </td><td> 25pt </td><tr>
<td>  <code>\Huge</code>         </td><td> 25pt </td><td> 25pt </td><td> 25pt </td><tr> 
</TABLE>

<p>
 Zosta³y równie¿ zachowane polecenia LaTeXa&nbsp;2.09 <code>\rm</code>, 
<code>\bf</code>, <code>\it</code>, <code>\sl</code>, <code>\sc</code>, 
<code>\ss</code> i&nbsp;<code>\tt</code>.  Ale uwaga: zachowuj±
siê one dok³adnie tak jak w&nbsp;LaTeXu&nbsp;2.09  -- nie da siê na przyk³ad
przy ich pomocy uzyskaæ grubej kursywy.
</p>

<p>
 Nowy zestaw poleceñ pos³uguje siê nastêpuj±cym modelem u¿ycia fontów
w&nbsp;dokumencie.  Poniewa¿ mieszanie ró¿nych krojów szeryfowych
w&nbsp;jednym dokumencie w&nbsp;zasadzie jest b³êdem (a&nbsp;przynajmniej 
powinno byæ wynikiem przemy¶lanej decyzji), w&nbsp;schemacie przyjêtym przez
standardowe klasy dokumentów dostêpny jest jeden krój szeryfowy, jeden
bezszeryfowy i&nbsp;jeden grotesk.  Oczywi¶cie domy¶lnie s± to Computer
Modern Roman, Computer Modern Sansserif i&nbsp;Computer Modern Typewriter.
</p>

<p>
Oto podstawowe polecenia wyboru krojów i&nbsp;odmian w&nbsp;tym
schemacie:</p>

<TABLE FRAME=1 WIDTH=50% ALIGN=center>
<td> <b>Krój pisma (rodzina)</b> </td><tr>
<td> <code>\textrm{...}</code> lub <code>\rmfamily</code> </td><td>
   krój szeryfowy </td><tr>
<td> <code>\textsf{...}</code> lub <code>\sffamily</code> </td><td>
   krój bezszeryfowy </td><tr>
<td> <code>\texttt{...}</code> lub <code>\ttfamily</code> </td><td>
   grotesk </td><tr>
<td> <b>Grubo¶æ i szeroko¶æ pisma</b> </td><tr>
<td> <code>\textmd{...}</code> lub <code>\mdseries</code> </td><td> pismo jasne</td><tr>
<td> <code>\textbf{...}</code> lub <code>\bfseries</code> </td><td> pismo grube</td><tr>
<td> <b>Odmiana pisma</b> </td><tr>
<td> <code>\textup{...}</code> lub <code>\upshape</code>  </td><td> odmiana prosta</td><tr>
<td> <code>\textit{...}</code> lub <code>\itshape</code>  </td><td> kursywa </td><tr>
<td> <code>\textsl{...}</code> lub <code>\slshape</code>  </td><td> odmiana pochy³a </td><tr>
<td> <code>\textsc{...}</code> lub <code>\scshape</code>  </td><td> kapitaliki </td><tr>
</TABLE>

<p>
 Jak widaæ, tworz± one pary poleceñ o&nbsp;podobnej funkcjonalno¶ci. Wersje
z&nbsp;argumentem sk³adaj± ten argument pismem wybranym przez swój
odpowiednik bez argumentu.  Ponadto polecenia te na granicy miêdzy pismem
pochy³ym a&nbsp;prostym dodaj± kompensatê wychylenia ostatniego znaku
(<em>italic correction</em>), chyba ¿e nastêpnym znakiem jest kropka lub
przecinek i&nbsp;kompensata nie jest potrzebna.
</p>

<p>
 Polecenia bez argumentów mo¿na sobie wyobra¿aæ jako zdefiniowane wg
schematu:</p>
<pre><code>
\newcommand\rmfamily{
  \fontfamily{\rmdefault}\selectfont}
</code></pre>
<p>
 One równie¿ nie maj± zaszytej w&nbsp;sobie nazwy rodziny, odmiany, grubo¶ci,
ale odwo³uj± siê do makr przechowuj±cych warto¶ci domy¶lne.  Oczywi¶cie
domy¶ln± warto¶ci± makra <code>\rmdefault</code> jest <code>cmr</code>, czyli
polecenie <code>\rmfamily</code> domy¶lnie w³±cza krój Computer Modern Roman.
</p>

<p>
 St±d p³ynie wniosek, ¿e aby w&nbsp;LaTeXu z³o¿yæ dokument, u¿ywaj±c jako
kroju szeryfowego Timesa, wystarczy:</p>
<code>
\renewcommand\rmdefault{ptm}
</code>
<p>
 (Polecenia zapo¿yczone z&nbsp;LaTeXa&nbsp;2.09 dzia³aj± w&nbsp;podobny, 
po¶redni sposób, wiêc równie¿ konsekwentnie poddaj± siê takiemu
przedefiniowaniu.) </p>

<p>
Warto¶ci domy¶lne wkraczaj± jeszcze w&nbsp;kilku innych miejscach.</p>

<p>
Zasadnicza tre¶æ dokumentu jest sk³adana fontem uaktywnianym
poleceniem <code>\normalfont</code>.  Jest ono mniej wiêcej równowa¿ne
<pre><code>
\usefont{\encodingdefault}
  {\familydefault}
  {\seriesdefault}{\shapedefault}
</code></pre>

P³yn± z&nbsp;tego ciekawe wnioski: </p>

<p>
 1) Zmieniaj±c warto¶æ <code>\encodingdefault</code> na <code>OT4</code>
mo¿emy sprawiæ, ¿e dokument bêdzie sk³adany polskimi fontami.  Pakiet
<code>polski</code> tak w³a¶nie postêpuje, prze³±czaj±c uk³ad na
<code>OT4</code> lub <code>T1</code> w&nbsp;zale¿no¶ci od opcji. </p>

<p>
 2) Standardow± warto¶ci± <code>\familydefault</code> jest <code>\rmdefault</code>.
Sk³ad ca³ego dokumentu czcionk± bezszeryfow± mo¿na uzyskaæ zmieniaj±c
tê warto¶æ na <code>\sfdefault</code>: </p>
<code>
\renewcommand\familydefault{\sfdefault}
</code>
<p>
Tego rodzaju zmian nale¿y dokonywaæ w&nbsp;preambule dokumentu (to jest
przed <code>\begin{document}</code>).</p>

<A NAME="konfig">
<h3>Konfigurowanie NFSS</h3>

<p>
 Pozostaje jeszcze odpowiedzieæ na pytanie, sk±d NFSS ,,wie'', jakie kroje,
odmiany i&nbsp;stopnie pisma s± dostêpne i&nbsp;w&nbsp;jakich uk³adach.</p>

<p>
Deklaracja uk³adów fontów powoduje, ¿e LaTeX ³aduje pliki opisuj±ce dane
uk³ady.  Np. dla uk³adu <code>OT4</code> bêdzie to plik
<code>ot4enc.def</code> (Uwaga: od grudnia 1996 nazwy wszystkich plików
w&nbsp;dystrybucji LaTeXa s± pisane tylko ma³ymi literami.  Fakt ten wywo³a³
niejakie zamieszanie, ale wydaje siê, ¿e na d³u¿sz± metê jest to decyzja
rozs±dna.)  W&nbsp;tym pliku zawarte s± informacje, jakie akcenty s± dostêpne
w&nbsp;danym uk³adzie, w&nbsp;jakich pozycjach siê one znajduj± i&nbsp;jakie
s± dostêpne znaki akcentowane (kombinacje akcent-litera).
</p>

<p>
Pakiet <code>polski.sty</code> wewnêtrznie ³aduje odpowiedni± definicjê
uk³adu.</p>

<p>
 Opisy krojów s± ³adowane automatycznie z&nbsp;plików <code>.fd</code> przy
pierwszej próbie u¿ycia fontu z&nbsp;danej rodziny w&nbsp;danym uk³adzie.  Na
przyk³ad po zadeklarowaniu jako domy¶lnego uk³adu <code>OT4</code>, pierwsza
próba w³±czenia fontu z&nbsp;rodziny <code>cmr</code> spowoduje, ¿e LaTeX
za³aduje plik <code>ot4cmr.fd</code>.  Oto fragment tego pliku:</p>

<pre><code>
\DeclareFontFamily{OT4}{cmr}{}
\DeclareFontShape{OT4}{cmr}{m}{n}
   {  <5> <6> <7> <8>
          <9> <10> <12> gen * plr
      <10.95> plr10
      <14.4>  plr12
      <17.28><20.74><24.88>plr17}{}
...
\DeclareFontShape{OT4}{cmr}{bx}{it}
   { <-10>sub * cmr/bx/n
     <10> <10.95> <12> <14.4> <17.28>
          <20.74> <24.88> plbxti10
     }{}
...
</code></pre>

<p>
 Pierwsza deklaracja powiadamia, ¿e jest to opis rodziny <code>cmr</code>
w&nbsp;uk³adzie <code>OT4</code>.  Dalej nastêpuje ci±g deklaracji
<code>\DeclareFontShape</code> opisuj±cych poszczególne kombinacje
rodzina/grubo¶æ/odmiana.  Pierwsza opisuje odmianê jasn±
(<code>m</code>&nbsp;<em>medium</em>), prost±
(<code>n</code>&nbsp;<em>normal</em>) -- dla stopni&nbsp;5, 6, 7, 8, 9, 10
i&nbsp;12 nale¿y u¿yæ fontu o&nbsp;nazwie plikowej powstaj±cej z&nbsp;ci±gu
<code>plr</code> po do³±czeniu doñ liczby stopnia pisma.  Dla stopnia 10.95pt
nale¿y u¿yæ fontu <code>plr10 at 10.95pt</code>, podobnie dla stopni 14.4,
17.28, 20.74, 24.88 u¿yty zostanie odpowiednio zeskalowany font
<code>plr12</code> i&nbsp;<code>plr17</code>.  Druga klauzula
<code>\DeclareFontShape</code> opisuje grub± (<code>bx</code>&nbsp;<em>bold
extended</em>) kursywê (<code>it</code> <em>italic</em>)  -- dla stopni
mniejszych od 10pt nale¿y u¿yæ w&nbsp;zastêpstwie grubej prostej odmiany
rodziny <code>cmr</code>.  Dla wymienionych dalej stopni u¿yty zostanie
odpowiednio zeskalowany font <code>plbxti10</code>.  </p>

<p>
 Deklaracje uk³adów <code>OT1</code> i&nbsp;<code>T1</code> oraz opis rodziny
<code>cmr</code> w&nbsp;tych uk³adach s± wbudowywane w&nbsp;format razem
z&nbsp;plikami metrycznymi podstawowych fontów.  S³u¿y to przyspieszeniu
³adowania LaTeXa na pocz±tku przetwarzania dokumentu. Zestaw wbudowanych
uk³adów, rodzin i&nbsp;plików metrycznych mo¿na zmieniæ przy pomocy plików
konfiguracyjnych <code>fonttext.cfg</code> i&nbsp;<code>preload.cfg</code> --
szczegó³y opisano w&nbsp;dokumencie <code>cfgguide.tex</code>.  </p>

<p>
 Aby mo¿na by³o powiedzieæ, ¿e font jest zainstalowany w&nbsp;LaTeXu musi
istnieæ dla niego definicja uk³adu i&nbsp;definicja kroju (rodziny)
w&nbsp;tym uk³adzie.  Uk³adów w&nbsp;zasadzie jest skoñczona niewielka liczba
i&nbsp;definicje wiêkszo¶ci z&nbsp;nich s± zawarte w&nbsp;dystrybucji LaTeXa 
(w&nbsp;tym <code>OT4</code>).  Natomiast dla ka¿dego kroju potrzebny jest
jego opis w&nbsp;pliku o&nbsp;nazwie zbudowanej z&nbsp;nazwy uk³adu
i&nbsp;nazwy rodziny z&nbsp;rozszerzeniem <code>.fd</code> (wszystko ma³ymi
literami).  Pliki te musz± znajdowaæ siê w&nbsp;katalogu widocznym dla
LaTeXa.  </p>

<p>
 Pliki opisu dla fontów PL i&nbsp;PC s± zawarte w&nbsp;pakiecie PLaTeX. Pliki
opisu dla kroju Quasi Palladio (<code>qpl</code>), Quasi Times
(<code>qtm</code>) i&nbsp;antykwy toruñskiej (<code>antt</code>) s± czê¶ci± 
pakietu <code>pl-qx</code> Piotra K³osowskiego.  </p>

<hr>
<i> Opracowa³: StaW (ostatnia modyfikacja 28.11.2000)</i>

</body>
</html>