ERRATA - TeXbook naruby ======================= Znaceni ------- cislo strany^cislo radku shora nebo cislo strany_cislo radku zdola verze textu 10. 2. 1997: kniha uvedena k verejnemu pouziti. ============================================================ Preklepy -------- 14_9: choval pokud mozno st\v{e}jne -> chovat pokud mozno stejne 34^14: before \pokus -> before \sekce 119_12: hodnot pouzito makro \cvak -> hodnot je pouzito marko \cvak 129^11: souviseji primitivem -> souviseji s primitivem 148_16: vsechny male i velke znaky -> vsechna mala i velka pismena 149_4: \underline, resp. \overline -> \overline, resp. \underline 220_12: promoci -> pomoci 324^6-8: zrusit svisle cary a formu cislovane ukazky. 350_16: specialni -> specialnich 357_15: resp. { inserted -> resp. } inserted verze textu 17. 2. 1997: opraveny vyse uvedene preklepy. ======================================================== Preklepy -------- 308_18: jen 249 povelu -> jen 250 povelu 308_11: definovano 127 povelu -> definovano 128 povelu 320_1: \chardef`\%=37 -> \chardef\%=37 Doplneni -------- 102_1: povelem \kern. -> povelem \kern nebo \/. 103_6: Pri f{i} se ligatura primarne nevytvori. Projde-li ale seznam druhym pruchodem radkoveho zlomu, pak se i f{i} muze spojit v ligaturu (srovnej poznamku na strane 220). Pisme proto radeji: "f\/i". verze textu 28. 2. 1997: opraveny vyse uvedene preklepy a zanesena doplneni. ============================================================================ Preklepy a doplneni ------------------- 6_16: terminy, jako token -> terminy jako token 36^15: #3:#4 -> #3,#4 47^14: Non -> NON 47^19,20: non -> NON 66^4: primitivu, coz jsou nasledujici -> primitivu. Jedna se o~nasledujici 100^8: "konec" vertikalniho seznamu -> "konec" horizontalniho seznamu 150^7: ostavce -> odstavce 221_11: Post-Sripto-vym -> Post-Scripto-vym 361^5: X ---- Predcasne -> X --- Predcasne 436_9: -> 464-65: do rejstriku pridat hesla: "italicka korekce", "pool". Chyba v ukazce makra -------------------- 61_15: chybne: \ifnum\indnum=#2\else\addbuf{#2,}\indnum=#2\fi spravne: \ifnum\indnum=#2 \else\addbuf{#2,}\indnum=#2 \fi verze textu 25. 4. 1997: opraveny vyse uvedene preklepy a chyba v makru ======================================================================= Doplneni -------- 27^7: doplnit priklad na \defaktivni pomoci \uppercase. 45^9: doplnit reseni: \ex \let\csname#1\ex\endcsname \csname#2\endcsname 226^8: \def\composelines{% -> \def\composelines{\setbox2=\hbox{}% 326_2: nikoli s prefixem global -> nikoli s prefixem restricted nebo read-only 327^4: registru s globalni platnosti, -> registru s prefixem restricted, 330_13+: \newdimen\p@ \p@=1pt \newdimen\z@ \z@=0pt \newskip\z@skip \z@skip=0pt plus0pt minus0pt \newbox\voidb@x 332^16+: Zavest krome "global" prefixy "read-only" a "restricted". Zrusit [i-number] a dalsi [i-*]. 333_17: "ef derivovano" -> "derivace $f$" 333_12: derivace ef -> derivace $f$ (analogicky s 161_3) 334-458: U primitivu \catcode, \sfcode a dalsich doplnit prefix restricted. 462_0: doplnit citace. Chyby ----- 10^11 \kern a \lower -> \hbox, \kern a \lower 34^12 nesouhlasi se svou definici -> nesouhlasi s jeho definici 41^7 a o to myslim autorovi -> a o to, myslim, autorovi 42^8 mame jistotu ze -> mame jistotu, ze 78_19 velikost, indexovou velikost a indexovou velikost druhe urovne. -> velikost a pro velikost indexu ruznych urovni. 101_21 boxu timto zpusobem neupravuje. +> Pouze ve vystupni rutine je \boxmaxdepth=\maxdepth. 108_4: kapitalky -> verzalky 178^13 chybne: \def\sixt#1{\ifcase#1 0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or spravne: \def\sixt#1{\ifcase#10\or1\or2\or3\or4\or5\or6\or7\or8\or9\or 229^10 o vice nez 50% -> mezi 50 az 100% 293^17 \multiply\pnum by\fnum -> \multiply\pnum by\pnum \multiply\pnum by\fnum 306_7-0: udaj (op div 4) je vylozen a v prikladu pro op = 10 ilustrovan nespravne. Znaky se neignoruji, ale pouze se na nich neprovadi test na dalsi pripadne ligatury. 337_10: [exp] -> [h, v, m] 337_9: Expand procesor si ulozi -> TeX si ulozi 338^13: [exp] -> [h, v, m] 338^14: Expand procesor si vlozi -> TeX si vlozi Preklepy -------- 198_5: TeXprerusi -> TeX prerusi 216^14: chceme zabranit, aby nebyla -> chceme zajistit, aby nebyla 230_14,18: Phill -> Phil 303_14: vyjiky -> vyjimky 438^15: \]#$] -> [\]12 [#]12 [$]12 [ ]12 [x]12 438^17: \]string] -> [\]12 [s]12 [t]12 [r]12 [i]12 [n]12 [g]12 annonce.txt^44: za CSTeX ... jsem nikdy nevidel ani halir -> od 28.8.1997 se stava tato veta nepravdivou, protoze tento den jsem obdrzel na svuj ucet od CSTUGu 4250Kc za udrzbu CSTeXu. ---------------------------------------------------------------------- verze textu 24. 10. 1997: opraveny vyse uvedene preklepy a chyby, doplneny priklady. Jedna se o oficialni verzi textu pro nakladatelstvi Konvoj, 1997. ======================================================================= Preklepy a dopleni ------------------ 5_19: vyj\'imecne -> v\'yjimecne 28_14: sesti tokenovy -> sestitokenovy 70_2: pramametrem -> parametrem 71^11: -> 95_15: viz heslo \futurelet v casti B -> viz heslo \aftergroup v casti B 121^15: jen pro pdf: \def\\#1 #2|{... aktivni je sekvence \#, coz je spatne 131_10: z \noalign uvedeném -> z \noalign uvedeného 135_8: pak maji -> pak ma 150^7: Proc to nefunguje uz vime -> Proc to nefunguje, uz vime 152^16: \abovewithdelims() -> \abovewithdelims(] 152_16: o sirce -> o tloustce 161^16: a pripadne dalsi, se kterymi se v sazbe pracuje jako s binarnimi operacemi. Protoze \discretionary nesmi obsahovat prechod do matematickeho modu, je potreba pouzit trik: \newbox\minusbox \setbox\minusbox=\hbox{$-$} a dale \discretionary{}{\copy\minusbox}{}. 175^7: se bude pracovat a -> se bude pracovat, a 180_14: muze byt prazdny -> muze byt prazdny (krome posledniho) 181_15: si naklade -> si neklade 197^6: \bbigl -> \biggl 197^8: \bbigLLangle -> \biggLLangle 210^9: V kernu, pokud bezprostredne -> V kernu, pokud za nim bezprostredne 210_8: viz sekci -> viz sekce 211^15: \noberak -> \nobreak 223^6: mist slov deleni -> mist deleni slov 223_6: regist -> registr 227_16: misto \hsize -> misto o \hsize 228^7: zlom nebudeme -> zlom, nebudeme 239^11: mereni -> plneni 239^16: sestaveni -> uzavreni 245_21: mereni -> plneni 256^9: rutina jsme -> rutina, jsme 283^9: \margins=\vsize -> \dimen\margins=\vsize 299^19: htex386.tex -> htex386.exe 304^13: ec -> bc, bc -> ec 312_14: ulozenem -> ulozeneho 321_6: tecku zkusi -> tecku, zkusi 324^19: zavorkou a -> zavorkou, a 325^10: zavorkou a -> zavorkou, a 326^3: identifikator nebo -> identifikator, nebo 329^3: zavorkou a -> zavorkou, a 334^1: Kn: 130, 305, 3-5, -> Kn: 130, 305, 3--5, 339^17: Nekonecno je reprezentovano cislem 100 000. 368^4: X a -> X, a 368_5: \@reargdef zde -> \@reargdef, zde 373^14: se pocita se s -> se pocita s 377^4: hodnoty typu -> hodnoty typu 381_4: Ol: 221_70 ... zrusit, nespravny odkaz 390_8: (pridat \magstep0) 391^7 \@m -> 1000 394^15: modu Hodnota -> modu. Hodnota 411^10: \if a uvnitr -> \if, a uvnitr 416^18: modu ve kterem -> modu, ve kterem 417^3: (pocitano od prvniho) -> (pocitano od prvniho pri \prevgraf=0) 421_17: \pravdepth -> \prevdepth 437_17: analogie z -> analogie s 441_4: desetinna -> dekadicka 441_2: desetinneho -> dekadickeho 446^9: vypadaji vidime -> vypadaji, vidime 459^11: mozna... (tecky jsou nejak moc nalepeny na mozna) Chyby ----- 23_2: situace je mozna jen tehdy -> situace je mozna tehdy 30^15: Na konci radku 84 se sice -> Na konci radku 88 se sice 35_14: chvili. -> chvili. Pokud ale je parametr ve tvaru {_1}_2, TeX vnejsi zavorky odstrani. 45^9: 113 ... \endcsname -> \endcsname } 49^11: parametr makra neni separovan -> parametr makra obsahuje jediny token 49^20: To muze nastat jen v pripade, ze se jedna o separovany parametr. < Vetu vyhodit, protoze je nepravdiva, napr. pri pouziti \makro{} > 60_8: 5.1,0.0 -> 5.1,0.0, 78^2, 78^13: 1638,9999 -> 16383,99999 91^4: kazdeho odstavce ctverecek ... neni ctverecek, je o .8pt vyssi 100^2: V pripade s < 0 ... prirozenou sirkou -> Necht f_0<0, r=0. Pri s>0 se box natahne, ale badness je 10000. Pro s<0 dojde k Overfull \hbox ($-f_0-s$ too wide) a box bude o~$-f_0$ širší. 102_18: (2) pri \vtop je vyska ... Jinak je vyska nulova. -> pri \vtop je vyska rovna vysce prvniho boxu nebo linky v seznamu. Zacina-li seznam necim jinym, je vyska nulova. 113^15: v radkovem zlomu -> ve strankovem zlomu 121_2: do dvaceti -> do dvaceti peti 156^13: \ctverecek ... neni ctverecek, vyska je o .8pt vetsi 171_15: kdyz je \fam nezaporna -> kdyz je \fam v <0,15> 172_7, 172_2: pcrr8t -> pcrr8u 203^18: w = \predisplaysize -> w = \displaywidth 206^9: \interdisplaypenalty -> \interdisplaylinepenalty 212_13: \penalty50 -> \penalty71 protoze musi: \linepenalty^2 + \penalty^2 > \finalhyphendemerits 212_5: \penalty50 -> \penalty71 220_11 \uchyph na kladnou hodnotu -> \uchyph na nulu 228^2: V kazde mezere typu prida TeX k puvodni hodnote natazeni velikost \emergencystretch. Tim maji mezery vetsi moznost natazeni a vypocet badness probehne jinym zpusobem. Rutina dale vyhodnoti vsechny mozne radkove zlomy stejne, jako v druhem pruchodu. -> Celkova hodnota roztazeni kazdeho radku se pred vypoctem badness zvetsi o \emergencystretch a dale se postupuje stejne jako v~druhem pruchodu. Mezery se chovaji, jako by si v~kazdem radku mezi sebe rovnym dilem rozdelily dodatecnou hodnotu roztazeni z~\emergencystretch. 229^9: tj. b > 13 -> tj. b \geq 13 Pri b \leq 13 -> Pri b < 13 229^11: b \in (13, 100) -> b \in \langle 13, 100) 237_19: \prevgraf-1 -> \prevgraf+1 242_17: radkovy zlom -> strankovy zlom 309_12: sp = 2^{-32} pt -> sp = 2^{-16} pt 312_2: set_3 c[2] -> set_3 c[3] 313^1: set_4 c[2] -> set_4 c[4] 335^16: na novem radku -> na konci radku 341_19: druhe \Bigl -> \Bigr 341_18: \Biggl -> \Biggr 341_2: Navic, pokud ... (formulace neni spravna, makro neco udela jen pri \lastskip<\bigskipamount) 342^19: atom typu Op -> atom typu Bin 343^2: pred prvni sloupec -> za prvni sloupec 353_5, 354^17: \interdisplaypenalty -> \interdisplaylinepenalty 355_16: \do\ } -> \do\~} 357^12: Pridana hodnota roztazeni ke kazde mezere typu -> Celkova hodnota roztazeni pridana ke kazdemu radku 366^19: odpovida fontu . [Doplnit:] Pokud je font zaveden v jinem pomeru nez 1:1, je pripojena za jmeno souboru mezera nasledovana {\tt at} (v jednotkach pt). 367^15: [a, exp] -> [a] 376^13: -> 399_17: \newhelp -> \newread 399_2: \count22 -> \count21 403^2: \let\noexpand\xxxtrue -> \let\noexpand\ifxxx 416_4: vertikalniho -> horizontalniho 417_12: povel \patterns neni aditivni -> je aditivni, dalsi tabulka je pripustna 424_2: Pridat: Na konec souboru TeX vzdy pripoji znak konce radku. 440_2: \scriptfont v plainu -> \textfont v plainu 444^9: min (0pt, -> max (0pt, 449^17: \belowdisplayshortskip -> \belowdisplay(short)skip ---------------------------------------------------------------------- verze textu 7. 12. 2000: opraveny vyse uvedene preklepy a chyby. Jedna se o oficialni verzi textu pro druhe vydani nakladatelstvi Konvoj, 2001. ======================================================================= Preklepy -------- 76^8: ucenymi k zapisu -> urcenymi k zapisu 347^15: z \leaders a poslednim boxem -> z \leaders a za poslednim boxem Chyby, upresneni, doplneni -------------------------- 30^19: viz \par na radku 88 -> viz \par na radku 84 38_15: je tato dvojice tokenů interpretována jako formální parametr a v~okamžiku expanze je nahrazena příslušným aktuálním parametrem. S~touto vlastností jsme se už setkali. Pokud za tokenem \krab[\#]6. následuje znovu token téže kategorie, je tato dvojice tokenů v~okamžiku expanze nahrazena jediným tokenem \krab[\#]6.. Například: -> je tato dvojice tokenů při čtení těla definice uložena ve formě interního odkazu na parametr a v~okamžiku expanze je tento odkaz nahrazen příslušným aktuálním parametrem. S~touto vlastností jsme se už setkali. Pokud za tokenem \krab[\#]6. následuje znovu token téže kategorie, je tato dvojice tokenů v~okamžiku čtení těla definice nahrazena jediným tokenem \krab[\#]6.. Například: 51^15: \expandafter\let \expandafter\next \csname iftrue\endcsname -> \exp\let \csname next\exp\endcsname \csname iftrue\endcsname 54^5: \the\toks % expanduje (pridat dalsi radek:) \toks1=\toks0 % zkopiruje obsah \toks0 do \toks1 55_1,2: (spojit do jednoho radku:) \def\pridejtoken #1{\buffer\expandafter{\the\buffer #1}} a pridat k tomu vysvetleni. 56^1,2: Protoze rovnitko ... -> Rovnitko v zapise \buffer={} je nepovinne a navic vyuzitim triku popsanem na strane 44, radku 100, jsme usetrili nekolik \expandafter. 72_10: \afterassignment, \aftergroup, \futurelet jsou primitivy hlavniho procesoru, tj. patri zminit mezi body 1--9 a nikoli az v bode 13. 78^15: je mozno pouzit jen v parametru povelu \mskip 152^10 zĂĄvorky promenlive vysky -> zavorky vhodne velikosti (podrobneji viz stranu 166). Velikost zavorek nezavisi na velikosti obklopovaneho vĂ˝razu. 152^14: % jako \left( -> % zhruba jako \biggl( ... \biggr) 160_2: \mathplus\discretionary -> \mathplus\nobreak\discretionary 166^11: nenĂ­ pouĹžito obklopovacĂ­ch zĂĄvorek. V tomto případě je mĂ­sto těchto zĂĄvorek vloĹžen -> se prida 166^15: zavorky promenlive vysky -> zavorky vybrane z rady zavorek ruzne vysky tak, aby to byla nejmensi zavorka velikosti aspon \fontdimen20 resp. \fontdimen21 (viz stranu 181). Kolem takto vytvoreneho zlomku se jiĹž box sirky \nulldelimiterspace nepridava. 181^7: 8., 9., 11., 12. vzhledem k ose -> vzhledem k ucari 20. Minimalni velikost zavorky pri \...withdelims v D, D'. 21. Minimalni velikost zavorky pri \...withdelims v ostatnich stylech. 217^1: Obe uvedena reseni ... vubec. -> Obe reseni zabrani nespravnemu deleni za spojovnikem, ale prvni reseni nedovoli slovo rozdelit vubec a druhe reseni nedeli slovo v druhe casti. 219^1: Ve vsech ostatnich uvedenych resenich ... miste. -> V ostatnich uvedenych resenich jsme meli problemy s delenim slova na jinem miste nez v miste explicitniho spojovniku. 220^1 po přeskočení dalších znaků -> po přeskočení dalších znaků, značek z \write nebo \special 220^2: linka, box nebo pismeno -> linka nebo box 220_2: slo-vo:slovo % pred druhym neni glue 236_13: \advance\shapenum by#3 -> \advance\shapenum by#3 \advance\shapenum by-1 237^18: \ifnum \prevgraf>\shapenum \let... -> \ifnum \prevgraf<\shapenum\else \let... 240^6: Nejprve je aktualni strana prazdna. V tomto stavu ... -> Nejprve je aktualni strana prazdna. Kdz aktualni strana neobsahuje zadny box ani linku, \TeX{} pri prevadeni elementu z pripravneé oblasti do ... (pozn.: znacky z \write resp. \special prevadi, ale mezery za nimi ignoruje). 240_4 Nezapomenme, ze ... -> Pri podteceni (b=10000) se c nastavi na 100000. Pri preteceni boxu (b=\infty) je i c=\infty. 241_13 Skoro za vsemi radky... -> Skoro za vsemi radky je c=100000, protoze b=10000 (podteceny box). 241_1 ma hodontu 10000 -> ma hodnotu 100000 242^2 c=10000 -> c=100000 244^16: \splittopskip=\baselineskip ... vyhodit 244^23: \setbox0=\vbox\bgroup\penalty0 -> \splittopskip=\baselineskip % rezerva pro zaokrouhl. chyby: \setbox0=\vbox\bgroup\penalty0 % zlomit v \penalty0 245^13: \vfil\break -> \vskip 0pt plus 1fil minus\baselineskip \break Tim je makro robustnejsi. Reaguje pruzne na zmenu \baselineskip (zaludnost, na kterou jsem se sam nachytal) a umozni zahajit vertikalni seznam praznym boxem, ktery nebude likvidovan naslednou operaci \vsplit to0pt. Trik s minus\baselineskip umozni pojmout do celkove strany u pripadnou hloubku posledniho radku. 245_17 v pocatecni \penalty0, coz zpusobi, ze se pred prvni radek -> v pocatecni \penalty0 a bezpecnostni \vskip3pt se odstrani. Navic se pred prvni radek 253^8 c=10000 -> c=100000 259^5 \botmark zustavaji u sve puvodni hodnoty -> \botmark budou mit stejnou hodnotu, jako \topmark. 263_1: V tomto makru plainu -> V plainu do verze 3.141592 264^7: stran. -> stran. Chyba je odstranena ve verzi plainu 3.1415926 pridanim \lineskiplimit=0pt do makra \makefootline. 264_12: 304^9: aspon 2w. -> aspon 2w a data o sirkach, vyskach, hloubkach a italickych korekcich museji obsahovat aspon nulovy udaj. 320^2: muze byt prazdna, ale nikdy ne obe soucasne -> odstranit: ", ale nikdy ne obe soucasne" 338^17: Je-li \aftergroup pouzit mimo skupinu, neprovede se nic. 339^17: cislem 100 000 -> cislem 1 000 000 339_0: \begingroup na rozdíl od \bgroup nelze použít jako zástupný znak při vymezení matematických seznamů, při \hbox, \vbox (atd.) a při {}. 374^6: restricted -> global, restricted 377_1: i kategorie -> i neaktivní kategorie 378^1: nebo take expandovatelneho primitivu. U tokenů s kategorií 13 se testuje význam tokenu, nikoli jeho ASCII hodnota. 380^12: zlomu. -> zlomu. V \output rutine ma jiny vyznam: udava pocet pozdrzenych insertu. 391^6: \def\magstephalf{1095} -> \def\magstephalf{1095 } 396_6: mezerou. -> mezerou. Znaky kategorie 6 jsou zdvojeny. 396_6: Pri \message nelze pouzit znaku \newlinechar k rizenemu ... -> Pri \message je take mozne pouzit znaku \newlinechar k rizenemu ... 397_1: viz tez prikaz \mkern 408^2: \number nebo nebo \number se chová jako \the. Dále \number nebo \number se chová jako \number. 424_3: zaviraci zavorky. -> zaviraci zavorky. Konec radku je pri obvyklem nastaveni \catcode13 a \endlinechar tokenizovan na mezeru. 433_18: restricted -> global, restricted 450^4: DruhĂ˝ problĂŠm obvykle řeĹĄĂ­me trikem s \lastskip. -> ... trikem s \lastbox, jak je ukĂĄzĂĄno nĂ­Ĺže, nebo pomocĂ­ \prevdepth=\dp0 \unvbox0. 450^20: Zajimavejsi je trik s \lastskip -> Zajimavejsi je trik s \lastbox 453_6: horizontalniho seznamu -> vertikalniho seznamu 457_10: \string. -> \string. Znaky kategorie 6 jsou zdvojeny.