| |||
|
Vyhledávání podle slov v CS-FAQ
Mirotypografická rozšíření jsou algoritmy doplňující standardní možnosti TeXu. Jejich účelem je zvýšení kvality sazby. K dispozici jsou dvě na sobě nezávislá rozšíření:
TeX používá při sazbě pouze metrické údaje. Okraje sazebního obrazce jsou tedy zarovnány geometricky. Kresba některých znaků však nevyplňuje celý obdélník určený metrickou informací, zejména se to týká interpunkce. Tyto znaky je vhodné vysunout mimo okraj, aby sazba nevypadala opticky zubatě. Algoritmus character protruding řeší tento problém bez nutnosti zásahu do metriky fontu a bez nutnosti používání alternativních či aktivních znaků. Algoritmus se zapíná vložením kladné hodnoty do registru verb:pdfprotrudechars:. Hodnota 1 pouze algoritmus aktivuje, hodnota 2 způsobí, že je současně ovlivněn i algoritmus řádkového zlomu. Velikost vysunutí na levém okraji nastavíme parametrem verb:lpcpde:, na pravém okraji parametrem verb:rpcode:. Číselná hodnota představuje promile jednotky em. Příklad: \lpcpde\font`\( 30 \rpcode\font`\) 50Hodnoty závisí na kresbě znaků a pro každý font jsou tedy odlišné. Záleží též na vkusu sazeče.
Typografická pravidla říkají, že mezislovní mezera má být široká třetinu čtverčíku. Při sazbě do bloku však toto přísné pravidlo dodržet nelze, některé mezery je nutno rozpálit, jiné stáhnout. Povolená minimální šířka je čtvrtina čtverčíku, maximální je polovina čtverčíku. Řádky s extrémně rozpálenými či ztaženými mezerami však nevypadají hezky, stejně tak vadí, pokud spolu sousedí řádky s rozpálenými a staženými mezerami. V dobách, kdy se používala ruční sazba, měl sazeč k dispozici písmena ve variantách s rozdílnou šířkou. Podobnou funkci plní hz-algoritmus. Malou modifikací šířky znaků lze snížit variabilitu mezislovních mezer. Algoritmus se zapíná vložením kladné hodnoty do registru verb:pdfadjustspacing:. Podobně jako v minulém případě, hodnota 1 pouze aktivuje algoritmus, tj. po provedení řádkového zlomu TeX upraví šířku znaků a mezislovních mezer. Hodnotou 2 ovlivníme určení řádkového zlomu. Abychom hz-algoritmus mohli použít, potřebujeme metriky rozšířených a zúžených znaků. Ty se nejpohodlněji vytvářejí při požadavku na výstup do PDF. Pak si je totiž pdfTeX vytvoří automaticky v paměti. Zde je příklad nastavení: \pdffontexpand\font 24 12 3 autoexpandHodnoty jsou opět uvedeny v promilích, takže v příkladu jsme povolili rozšíření o 2.4 % a zúžení o 1.2 %, a to v krocích po 0.3 %. Klíčové slovo verb:autoexpand: určuje, že se metriky mají vytvořit pouze v paměti.
Optimální hodnoty pro použití hz-algoritmu jsou závislé na fontu. Širší písma snesou větší expanzi, někdy ji přímo vyžadují. Parametry je nutno vyhledat metodou pokusu a omylu. Shrneme jen několik principů:
Fonty 1. Střešovické písmolijny obsahují základní metriku v implicitním kódování a většinou též rozšiřující metriku v kódování SE1. Parametry pro hz-algoritmus musíme zapnout pro obě kódování, protože pro TeX jsou to dva odlišné fonty. Typokatalog 1. Střešovické písmolijny obsahuje přibližně 300 písem, takže jejich přepínání pomocí maker NFSS není pohodlné. Uvedeme si tedy postup, jak se parametry mikrotypografických rozšíření nastaví při využití OFS (viz ref{ofs-kya-hai}). Rodinu požadovaného písma vybereme makrem verb;setfonts;. Font v kódování SE1 zapneme příkazem verb:setextrafont:. Toto makro zkontroluje, zda byla rozšířená metrika při definici písma registrována. V opačném případě žádnou akci neprovede a nastavíme stejné parametry opakovaně témuž fontu, což je neškodné. Přepnutí kódování v LaTeXu explicitním použitím verb:fontencoding{SE1}: verb:selectfont: není doporučeno. Pokud není rozšířená metrika pro daný font registrována, zvolí mechanismus NFSS jiný font. Pak lze snadno nastavit nežádoucí parametry a případně získat podivné diagnostické zprávy.
Nezapomeňte přepnout zpět na implicitní kódování:
TeX pravděpodobně v rámci povolené tolerance nenašel vhodné místo pro rozdělení některého slova a sazbu se pak nepodařilo zlepšit ani s využitím hz-algoritmu. Týká se to zejména vlastních jmen a slov cizího původu. Zkontrolujte si, např. příkazem verb:showhyphens:, zda TeX umí taková slova dělit. Pokud ne, označte vhodná místa dělení pomocí verb::, nebo taková slova přidejte do slovníku výjimek verb:hyphenation:.
Při přepínání fontu makrem verb:setfonts: je nutno uvést explicitně verb;rm;. Pokud nejprve zvolíte např. verb;setfonts[Lido-it/];, nastavíte požadované parametry, a pak přepnete font pomocí verb;setfonts[Lido/];, OFS nastaví pouze rodinu písma, ale nezmění řez. Budete tudíž opět nastavovat parametry pro kurzívu. Musíte použít verb;setfonts[Lido-rm/];.
Vít Zýka napsal dva přehledné články do Zpravodaje Československého sdružení TeXu:
| |||
|