Petr Olšák: TeXbook naruby

                     Kniha obsahuje 468 stran podrobného rozboru všech algoritmů TeXu a všech základních maker plainu a csplainu. Je určena pro uživatele TeXu, kteří chtějí proniknout hlouběji do mechanismů fungování TeXu. Mimo jiné kniha obsahuje zhruba 3000 řádků většinou zcela původních ukázkových maker pro nejrůznější použití. Tato makra jsou podrobně dokumentována a ilustrují probírané algoritmy TeXu.


T
E
Xbook
naruby
.
je profesor Donald Knuth.
T
E
X je ochranná známka American Mathematical Society.
METAFONT
je ochranná známka Addison Wesley Publishing Company.
Ostatní  v  knize  použité  názvy  programových  produktů,  firem  apod.  mohou  být
ochrannými  známkami  nebo  registrovanými  ochrannými  známkami  příslušných
vlastníků.
RNDr. Petr Olšák, 1996, 1997, 2000
T
E
X je volně dostupný počítačový program na pořizování vysoce kvalitní elektro-
nické sazby. Tento program se od svých stejně zaměřených komerčních kolegů liší
v mnoha ohledech. Mezi nejpodstatnější odlišnost zřejmě patří
otevřenost
systému.
Šikovnému uživateli se v takovém systému dostává do rukou nástroj na vytvoření
nadstavby podle vlastní představy a potřeby. K tomu je ale potřeba o vlastnostech
systému poměrně hodně vědět.
Chcete-li nahlédnout pod pokličku T
E
Xovského hrnce a postupně se podívat až na
jeho samotné dno, abyste se dozvěděli, co se v něm vaří, je tato kniha určena pro vás.
Na každém pracovišti, kde se používá T
E
X, by měl být aspoň jeden odborník, který
T
E
Xu na této úrovni rozumí. Ostatní spolupracovníci pak mohou postupovat podle
jednoduchých příruček typu „napíšete-li
\alpha
, dostanete na výstupu
α
ÿ. Pokud si
tito spolupracovníci nebudou vědět s něčím rady, mají ve svých řadách odborníka,
který jim poradí. Idea, že se všechno zvládne pomocí L
A
T
E
Xových příruček, se při
náročnějších požadavcích na sazbu většinou rozplyne před očima jako jarní sníh.
Referenční manuál k T
E
Xu se jmenuje
The T
E
Xbook
[4]
. Tato základní kniha o T
E
Xu
není mezi našinci příliš rozšířena zvláště pro její vysokou cenu. Pro mnohé je na-
víc tato kniha dosti obtížná ke čtení, protože T
E
X není nic jednoduchého. Pokusil
jsem se tedy napsat k tomuto základnímu manuálu alternativní text. Text ale není
jen odvarem T
E
Xbooku. Užitečné asi budou zcela původní příklady řešené přímo
v textu. Nikdy jsem se nesnažil o doslovný překlad žádné pasáže z T
E
Xbooku, ba
dokonce jsem do tohoto manuálu při psaní nahlížel jen výjimečně a snažil se celou
problematiku podat svými slovy podle svých vlastních zkušeností. Měl jsem potom
radost, pokud se mi něco podařilo říci přehledněji nebo stručněji než v T
E
Xbooku.
Představil jsem si, že text píši pro čtenáře, který již má základní zkušenosti s poři-
zováním jednoduchých textů a který tuto knihu otevírá třeba proto, že chce v T
E
Xu
programovat složitější makra. Rozhodl jsem se tedy výklad obrátit. V T
E
Xbooku se
začíná popisem použití již hotových maker plainu a teprve potom, podstatně poz-
ději, se čtenář dozví, na jakém principu jsou tato makra postavena. Naproti tomu,
v této knize je výklad veden „narubyÿ. Nejprve je vždy popsán vnitřní algoritmus
T
E
Xu a vlastnosti souvisejících primitivů a potom jsou tyto vlastnosti ilustrovány
na příkladech maker. Z této koncepce pramení název knihy
T
E
Xbook naruby
.
Tato kniha není příručkou uživatele, který si chce pouze osvojit základní metody
při pořizování textů pro T
E
X. K tomu účelu slouží mnoho jiných učebnic. Je tedy
patrné, že kniha není určena začátečníkovi. Ke zvládnutí tohoto textu by ale měly
stačit znalosti získané četbou
Jemného úvodu do T
E
Xu
[3]
. Užitečné informace lze
též  čerpat  z  knížky
Typografický  systém  T
E
X
[7]
,  která  na  rozdíl  od  této  knihy
není úzce specializovaná na T
E
X samotný, ale rozebírá „softwarové souvislosti pro-
gramuÿ. Tam čtenář najde rozbor práce T
E
Xu s virtuálními fonty, s PostScriptem,
s obrázky a například se dozví, jak vypadá jazyk WEB zdrojového textu T
E
Xu.
Text  knihy,  kterou  právě  otvíráte,  je  rozdělen  na  dvě  části.  Část  A  (Algoritmy)
popisuje v jednotlivých kapitolách a sekcích systematicky všechny algoritmy T
E
Xu.
Část B (Reference) obsahuje slovník všech primitivů a maker plainu, přičemž u kaž-
dého hesla je poměrně rozsáhlý vysvětlující text. Představte si rejstřík z T
E
Xbooku
v dodatku I a nechť každé heslo z tohoto rejstříku „expandujeÿ na zhruba půlstrán-
kový výklad o heslu. Pak dostáváte část B této knihy.
Obě  části  knihy  jsou  bohatě  ilustrovány  příklady.  Jedná  se  především  o  ukázky
z formátu plain a dále o úlohy, které jsem v době své praxe s T
E
Xem někdy řešil
a  které  mohou  být  pro  čtenáře  zajímavé.  Aby  čtenář  nemusel  ručně  opisovat  do
svého počítače texty ukázek, které ho zaujmou, vystavuji na síti Internet soubor
tbn.mac
. V něm jsou veškeré ukázky z této knihy obsaženy. Každý zájemce si tento
soubor může zkopírovat z adresy
ftp://math.feld.cvut.cz/pub/olsak/tbn/
.
Nikdo není neomylný. I při sebevětší péči se neubráním možnému zavlečení chyb
do  textu.  Budu  proto  na  stejné  adrese  v  Internetu  průběžně  obnovovat  soubor
errata.txt
, ve kterém budou zaneseny všechny chyby, o kterých vím a které ne-
musí být ještě opraveny v tomto textu. K odhalení a zveřejnění chyb může přispět
kterýkoli čtenář, pokud mi o chybě napíše na adresu

.
Při psaní této knížky se též objevilo plno jazykových problémů. Jazykoví puristé mi
doufám odpustí, že používám termíny jako token, expand procesor, box apod. Mohl
bych sice mluvit o amuletu, proceduře na rozklad balíčků povelů a krabičce. Myslím
si ale, že by takový text vzhledem k návaznosti na anglickou literaturu nebyl příliš
čitelný. My také klikáme myší a díváme se na video, místo abychom poklepávali po
tlačítku polohovacího zařízení a pouštěli magnetoskop. S jazykem to je těžké.
Chtěl  bych  ze  srdce  poděkovat  především  své  ženě  Ludmile,  která  mi  byla  vel-
kou oporou v dobách, kdy jsem nevnímal svět kolem sebe a myšlenkami jsem byl
u svých příkladů
\output
kdy měla tato organizace poměrně velké problémy. Dále děkuji všem dobrovolným
korektorům, kteří se přihlásili v hojném počtu, za podnětné připomínky při závě-
rečných úpravách textu.
Přeji  všem  čtenářům  této  knihy  mnoho  hezkých  zážitků  se  skvělým  programem,
který vznikl v dílně profesora Donalda Knutha jako „labour of loveÿ (práce z ra-
dosti) a byl poskytnut veřejnosti zdarma.
28. 9. 1996
Petr Olšák
29. 11. 2000.  Ve druhém vydání jsou jen opraveny chyby podle
errata.txt
. Děkuji
touto cestou všem čtenářům, kteří přispěli k odhalení chyb a tím k vylepšení kvality
knihy. Snažil jsem se důsledně zachovat stránkování i číslování, aby případné odkazy
na knihu, které jste již dříve použili ve svých makrech, zůstaly v platnosti.

 

Obsah
Část A: Algoritmy     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    9
1.  Vstupní části T
E
Xu
10
1.1
Koncept vstupní brány T
E
Xu
.   .   .   .   .   .   .   .   .   .   .   .   .
10
1.2
Input procesor
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
12
1.3
Token procesor
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
19
2.  Expand procesor
31
2.1
Definování maker
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
31
2.2
Triky s
\expandafter
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
42
2.3
Podmínky typu
\if
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
46
2.4
Registry pro uchování posloupností tokenů (
oks
)
.   .   .   .   .
53
3.  Základy hlavního procesoru
64
3.1
Povely a parametry hlavního procesoru
.   .   .   .   .   .   .   .   .   .
64
3.2
Kdy T
E
X neprovádí expanzi
.   .   .   .   .   .   .   .   .   .   .   .   .   .
71
3.3
Registry, datové typy a aritmetika T
E
Xu
.   .   .   .   .   .   .   .   .
72
3.4
Šest módů hlavního procesoru
.   .   .   .   .   .   .   .   .   .   .   .   .
85
3.5
Boxy
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
94
3.6
Mezery v horizontálním seznamu
.   .   .   .   .   .   .   .   .   .   .   .
102
3.7
Mezery ve vertikálním seznamu
.   .   .   .   .   .   .   .   .   .   .   .
108
4.  Tvorba tabulek
116
4.1
Opakovací výplňky typu
\leaders
.   .   .   .   .   .   .   .   .   .   .
116
4.2
Tabulky s pevnou šířkou sloupců
.   .   .   .   .   .   .   .   .   .   .   .
120
4.3
Tabulky pomocí
\halign
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .
129
5.  Matematická sazba
144
5.1
Matematický seznam
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
144
5.2
Konverze z matematického do horizontálního seznamu
.   .   .   .
154
5.3
Fonty v matematické sazbě
.   .   .   .   .   .   .   .   .   .   .   .   .   .
167
5.4
Symboly matematické sazby definované v plainu
.   .   .   .   .   .
182
5.5
Tipy, triky a zvyky v matematické sazbě
.   .   .   .   .   .   .   .   .
191
5.6
Display mód
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
197
6.  Zalamování
209
6.1
Místa zlomu všeobecně
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
209
6.2
Zlom v místě
\discretionary
.   .   .   .   .   .   .   .   .   .   .   .   .
214
6.3
Vyhledání míst pro dělení slov
.   .   .   .   .   .   .   .   .   .   .   .   .
219
6.4
Řádkový zlom
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
227
6.5
Tvar odstavce
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
233
6.6
Stránkový zlom
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
238
6.7
Plovoucí objekty typu
\insert
.   .   .   .   .   .   .   .   .   .   .   .   .
246
6.8
Výstupní rutina
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
256
6.9
Ukázky různých výstupních rutin
.   .   .   .   .   .   .   .   .   .   .   .
264
7.  Různé
284
7.1
Jak T
E
X pracuje se soubory
.   .   .   .   .   .   .   .   .   .   .   .   .   .
284
7.2
Struktura paměti T
E
Xu
.   .   .   .   .   .   .   .   .   .   .   .   .   .   .
294
7.3
Formát metriky fontu
tfm
.   .   .   .   .   .   .   .   .   .   .   .   .   .
303
7.4
Formát výstupního souboru
dvi
.   .   .   .   .   .   .   .   .   .   .   .
308
Část B: Reference  .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    315
1.  Slovník syntaktických pravidel     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
316
2.  Zkratky plainu     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
330
3.  Slovník primitivů a maker plainu     .   .   .   .   .   .   .   .   .   .   .   .   .   .
332
4.  Seznam příkladů použitých v knize    .   .   .   .   .   .   .   .   .   .   .   .   .   .
459
5.  Literatura  .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
462
6.  Rejstřík   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .
463
Část A
Algoritmy
 

Napsat recenzi

Poznámka: Nepoužívejte HTML tagy!
    Špatný           Dobrý

Petr Olšák: TeXbook naruby

  • Kód výrobku: Petr Olšák: TeXbook naruby
  • Dostupnost: 3
  • 380CZK

  • Cena bez DPH: 380CZK

Podobné výrobky

TeX pro pragmatiky, Petr Olšák

TeX pro pragmatiky, Petr Olšák

TeX pro pragmatiky, Petr Olšák váz., 2016, 150 str. A5 TeX, PlainTeX, Csplain,k Opmac ..

230CZK Cena bez DPH: 230CZK