PB029 Elektronická příprava dokumentů Anyone who would letterspace the lowercase would steal sheep. Frederick Goudy (1865 1947), when looking on a prize winner certificate You cannot not communicate. Paul Watzlawick (1921 2007), in Pragmatics of Human Communication Lidé komunikují prostřednictvím dokumentů připravovaných elektronicky. Petr Sojka PB029 Od autora ke čtenáři podzim 2017 1 / 204
PB029 Elektronická příprava dokumentů PB029 Elektronická příprava dokumentů Petr Sojka podzim 2017 Petr Sojka PB029 Od autora ke čtenáři podzim 2017 2 / 204
Osnova dnešní přednášky a demopřednášky Agenda Vypsány zkušební termíny předmětu. Blížící se odevzdávání zápočtových příkladů Přednáška CSTUGu. Příště: Vše, co jste chtěli vědět o T E Xu, ale báli jste se zeptat. Přednáška Hladká sazba Zlom. Tradice a historický vývoj. Box-glue-penalty model. Algoritmy řádkového zlomu. HZ-algoritmus. Stránkový zlom. Umisťování obrázků. Demopřednáška Slučování dokumentů. Mikrotypografie. Petr Sojka PB029 Sazba: digitální písma podzim 2017 159 / 204
Základní pravidla sazby terminologie a algoritmy I Mezislovní mezera, vyplňování řádků. Hladká sazba. Sazba do bloku, na praporek. Řádkový proklad. Odstavcová odrážka, odsazení, východ odstavce. Terminologie a modely: box-glue-penalty model, skyline model. Algoritmy zlomu: first fit, best fit, optimum fit. Rozšíření HZ Hermanna Zapfa. Mikrotypografie znaky. Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 160 / 204
Základní pravidla sazby terminologie a algoritmy II Mikrotypografie algoritmy a principy. HZ algoritmus. Algoritmy v jiných systémech (InDesign). Stránkový zlom. Umísťování obrázků. Dělení slov. Pro detaily ukázek typografických principů z přednášek viz Beranův Aktualizovaný typografický manuál, příslušné ČSN, Ptáčkův text v PC Worldu 1994. Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 161 / 204
Zlom terminologie a modely I Znak reprezentace jako ohraničující obdélník (bounding box) mající referenční bod, výšku, šířku a hloubku. Slitky, ligatury, ligatura FI, šéflékař vs. šéflékař, mezipísmenný proklad (kerning). Mezera: pevná a proměnná, nedělitelná. \,, ~ Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 162 / 204
Zlom terminologie a modely II Dle fontu: \fontdimen 1: italická korekce (slant per pt, italic correction), 2: základní velikost, 3: roztažitelnost (interword stretch, stretchability), 4: stažitelnost (interword shrink, shrinkability), 5: střední výška (x-height, 1ex). 6: čtverčíková mezera (quad width), \quad, 7: mezera za interpunkcí (extra space) \nonfrenchspacing. Další pro sazbu matematiky. Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 163 / 204
Zlom terminologie a modely III Box: ohraničující obdélník (krabice) sady znaků, textu. Horizontální \hbox, vertikální \vbox. Lepidlo (glue): přirozená šířka a vlastnosti jako mezera. \hskip 1em plus 0.5em minus 0.2em Penalta (penalty), míra škaredosti. \penalty 10000 Box-glue-penalty model (TEX), Skyline model. Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 164 / 204
Algoritmus First fit Horizontální seznam, šířka w, roztažitelnost w +, stažitelnost w, požadovaná šířka L. Poměr roztažení r (adjustment ratio) (L w)/w +. Výběr prvního možného zlomu takového, že r < 1. r > 1, pak řádek přetečený (overfull), nebo podtečený (underfull). Nenáročné na výpočetní kapacitu. Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 165 / 204
Algoritmus Best fit Zlom po řádcích, výběr nejlepšího zlomu na řádku bez přihlédnutí k předchozím řádkům a možnostem. Míra optimality řádku je měřena mírou odchylky b od ideální velikosti mezislovní mezery a penalty na místě zlomu p, tedy b + p. V TEXu je míra škaredosti resp. špatnosti (badness) b = 100 r 3, kde r je poměr rozdílu požadované a přirozené délky řádku ku součtu roztažitelných resp. stlačitelných složek lepidla (glue). Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 166 / 204
Algoritmus Optimum fit I Optimalizace zlomu v rámci celého odstavce naráz s využitím modelu box, glue a penalty. Zvažovat úplně všechny kombinace zlomu slov na řádcích má exponenciální složitost. Naštěstí netřeba zvažovat úplně všechny kombinace, jen ty, které mají škaredost menší než \pretolerance resp. \tolerance. Úloha podobná hledání nejkratší cesty v grafu metodou dynamického programování: každé cestě odpovídá škaredost, která se minimalizuje. Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 167 / 204
Algoritmus stránkového zlomu Podobné či stejné algoritmy jako u řádkového zlomu, při optimalizaci na celou kapitolu optimum fit, na jedné stránce stačí best fit, případně u dvoustrany. TEX optimalizuje jen jednu stranu. Plovoucí objekty: obrázky, poznámky pod čarou. Stačí zvažovat pouze možnosti hezčí než zadaná tolerance, při nedodržení se použije první (nekonečně) škaredý zlom. Kombinace algoritmu stránkového a řádkového zlomu. Možné experimenty v NTS, Even,... Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 168 / 204
Parametry algoritmů zlomu v TEXu I Až tři průchody: první bez dělení slov, limit škaredosti je \pretolerance. Pak jsou rozdělena všechna slova v odstavci a proveden druhý pokus s limitem škaredosti \tolerance. Pokud je nastaven registr \emergencystretch na kladnou délku (zvětšení roztažitelnosti mezislovní mezery) a jde o TEX3.0 či vyšší, provede se třetí pokus o zlom s těmito limity roztažitelností. Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 169 / 204
Parametry algoritmů zlomu v TEXu II Další parametry ovlivňující algoritmy zlomu: řádkového: vada řádku demerits d \adjdemerits, \finalhyphendemerits l \linepenalty, \hyphenpenalty, \exhyphenpenalty, \looseness a stránkového: \interlinepenalty, \clubpenalty, \widowpenalty, \brokenpenalty,... d = (l + b) 2 + p 2 pro 0 p 10000, (l + b) 2 p 2 pro 10000 p 0 Ladění parametrů zlomu pro daný projekt (Diderot). Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 170 / 204
Parametry algoritmů zlomu v TEXu III Detailní český popis variant algoritmů zlomu je k nalezení v DP FI MU Jana Pazdziory (v materiálech předmětu v ISu). Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 171 / 204
hz-algoritmus I Motivace: Gutenbergova 42řádková Bible. Principy: kerning, scaling, composing. URW, Karrow, Zapf, neúspěch (fonty). Implementace v pdft E Xu (Thành). Implementace v InDesignu (Karrow). Detailní český popis modifikací zlomového algoritmu písem je k nalezení v DP Mirky Misákové a v dizertaci Hàn Th ê Thànha. \usepackage[protrusion,expansion]{microtype} v L A TEXu. Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 172 / 204
InDesign I Komerční program firmy Adobe pro WYSIWYG počítačovou sazbu. Zlomový algoritmus (převzat z TEXu) s pomocí Davida Karrowa (URW). Škálování znaků. Optický proklad (David Kindersley: Optical letter spacing for new printing systems, 1976). Příklady zlomu a chyb na stránce cvičení o mikrotypografii. Petr Sojka PB029 Sazba: řádkový zlom podzim 2017 173 / 204