PostScript a TeX
   
PostScript a TeX CSTUG


Použití PostScriptových fontů v TeXu

Ještě než začnete: aby mohl použít PostScriptové fonty, TeX potřebuje soubory s metrikami (zvané tfm). Několik sad metrik je dostupných v archívech; mechanismus generování nových je popsán v Otázce Soubory metrik TeXovských fontů pro PostScriptové fonty. Také potřebujete vlastní fonty. PostScriptové tiskárny se sice dodávají již se sadou fontů zabudovaných, ale pro rozšíření svého repertoáru si většinou stejně musíte koupit jednu z komerčních nabídek fontů (viz Výběr zvětšovatelných obrysových fontů).

Pokud používáte LaTeX 2e, nejlepším způsobem, jak dostat do svého dokumentu PostScriptové fonty, je použít balík PSNFSS, který spravují Sebastian Rahtz a Alan Jeffrey (CTANpsnfss). Je podporován projekčním týmem pro LaTeX3, takže zprávy o chybách by mohly a měly být brány do úvahy. PSNFSS poskytuje sadu balíků pro změnu standardních roman, sans-serif a typewriter fontů. Např. times.sty nastaví fonty Times Roman, Helvetica a Courier místo Computer Modern, zatímco avant.sty změní rodinu fontů sans-serif na AvantGarde. Pro práci s těmito balíky jsou potřebné soubory s metrikou (pozor na problémy s kódováním! - viz Soubory metrik TeXovských fontů pro PostScriptové fonty) a soubor s popisem fontu (.fd) pro každou rodinu, kterou chcete použít. Výhodné je, že metriky pro společných 35 PostScriptových fontů pro většinu tiskáren jsou začleněny do PSNFSS, zkomprimovány jako CTANlw35nfss-zip

Pro starší verze LaTeXu existují nejrůznější schémata, z nichž nejjednodušší pro použití jsou pravděpodobně makra PSLaTeX distribuovaná s dvips.

Pro plainTeX můžete použít fonty, jaké chcete. Pokud kódování fontů není stejné jako u Computer Modern, je na vás, abyste si předefinovali různá makra a akcenty, anebo můžete použít mechanismus pro překódování fontů dostupný v mnoha ovladačích a v ps2pkafm2tfm.

Rafinovaný balík Lollipop Victora Eijkhouta (CTANlollipop) podporuje deklaraci rodin fontů a styly podobným způsobem jako LaTeXovský NFSS, takže se dá snadno použít s PostScriptovými fonty.

Některé společné problémy, které byly zmíněny, jsou diskutovány i jinde (viz Problémy s použitím PostScriptových fontů).


Prohlížení souborů s PostScriptovými fonty

Většina TeXovských prohlížečů zobrazuje pouze bitové mapy pk fontů. Pokud chcete prohlížet dokumenty s PostScriptovými fonty, máte tři možnosti:

  1. Převést .dvi soubor do PostScriptu a použít PostScriptový prohlížeč. Některé moderní Unixové X implementace mají tohle zabudováno (jako třeba NeXT-step). Uživatelé Unixu (X11), Windows, OS/2 a MSDOSu mohou použít volně dostupný GhostScript (CTANghostscript), implementaci kompletního PostScriptu úrovně 2.
  2. Pod Windows na PC, nebo na Macintoshi umí Adobe Type Manager zobrazit PostScriptové fonty. TeXtures (Macintosh) pracuje podobně, pod Windows pak lze použít program dviwindo od Y&Y pro prohlížení bitových map. (Detaily těchto doplňků: viz Komerční implementace TeXu.)
  3. Jestliže máte PostScriptové fonty formátu Type 1, použijte ps2pk (CTANps2pk) nebo gsftopk (navržený pro použití s fonty programu ghostscript, CTANgsftopk) pro výrobu pk bitových map fontů, kterým váš prohlížeč bude rozumět. Tak lze dosáhnout skvělých výsledků, které jsou vhodné i pro tisk na zařízeních bez PostScriptu. Prověřte si právní podmínky, pokud chcete tyto fonty získat. Nejznámější PostScriptové fonty jako Times a Courier se dodávají s formátem Type 1 na disku s Adobe Type Managerem (často dohromady s Windows a část s OS/2).


Soubory metrik TeXovských fontů pro PostScriptové fonty

Výrobci fontů takoví jako Adobe opatřují metrikovým souborem každý font, a to v afm (Adobe Font Metric) formě. Tento formát lze konvertovat do tvaru tfm (TeX Font Metric). CTAN archivy obsahují předem připravené metriky, které budou pro mnoho lidí více než dostatečné, ale můžete si udělat konverzi i sami, pokud máte speciální potřebu. Zajímavou otázkou je kódování fontů. Zatímco všichni více či méně souhlasíme s pozicemi 96 znaků ve fontech (základní ASCII sada), zbytek z (běžných) 256 se různí. Nejobvyklejší problémy jsou s plovoucími akcenty a se speciálními znaky, jako je třeba označení libry šterlinků. Existují tři způsoby, co s tím: buď změníte makra TeXu, která odkazují na znaky (nic moc a náchylné na chyby), nebo změníte kódování fontu (jednodušší, než si myslíte), anebo použijete Virtuální fonty abyste TeXu předstírali, že kódování je totéž, jaké používá on. Používání LaTeXu dovoluje změnu kódování v TeXu. Podrobnosti si lze přečíst v LaTeX Companion (viz Knihy o TeXu a příbuzná literatura). V praxi, pokud často píšete jinak než anglicky (ale latinkou), se silně doporučuje použití fontenc balíku s volbou ,,T1`` pro výběr T1 (také známé jako ,,Cork`` nebo ,,DC``) kódování. Použití PostScriptových fontů v TeXu balík podporuje PostScript (s virtuálními fonty) v tomto kódování.

Balík fontinst Alana Jeffreye (CTANfontinst) je konvertor z afm do tfm napsaný v TeXu. Používá se pro generování souborů s použitím LaTeXovského PSNFSS balíku k podpoře užívání PostScriptových fontů. Jedná se o komplikovaný balík, nic pro slabé nátury, ale je dost silný pro uspokojení většiny potřeb. Mnoho z jeho síly se vztahuje na použití viz Virtuální fonty.

Pro poněkud jednodušší problémy je použitelný rychlý a efektivní Rokickiho afm2tfm, distribuovaný s dvips (CTANdvips). Poznamenejme, že metriky a styly, které se dodávají s dvips, nejsou kompatibilní se současným LaTeXem.

Pro MacIntosh existuje program nazvaný EdMetrics, který se tímhle (a dalšími věcmi) zabývá. Dodává se společně s distribucí Textures, ale de facto je to volný software, který lze najít na CTANu v CTANedmetrics

Uživatelé MSDOSu mohou koupit (viz Komerční implementace TeXu) balík Font Manipulation Tools od Y&Y, který mezi jinými lahůdkami obsahuje silný program afmtotfm.


Problémy s použitím PostScriptových fontů

Před typickým uživatelem LaTeXu, zkoušejícího balík Použití PostScriptových fontů v TeXu, se často vynoří tři problémy.

První: máte oznámit dvi ovladači, že používáte PostScriptové fonty. V případě, že se jedná o dvips, znamená to přidání řádku do souboru psfonts.map. Jinak dvips zkusí najít pk soubory. Pokud font není zabudován do tiskárny, musíte jej nějak získat (v mnoha případech to znamená koupi od komerčního distributora). Pak je třeba instruovat ovladač, aby zavedl fonty při každém tisku (mechanismus závisí na vašem ovladači). Takže není zrovna dobré prostě instalovat metriky pro Optimu a čekat, že to pojede. Musíte zaplatit těžké peníze za vlastní font, který vám dodají (pro uživatele Unixu a MSDOSu) v pfb (Printer Font Binary) tvaru.

Druhá: nemůžete očekávat, že váš prohlížeč najednou začne zobrazovat PostScriptové fonty. Mnohé z nich vědí pouze o PK bitových mapách fontů jako třeba Computer Modern. Můžete je vytvořit z PostScriptových fontů, pokud jste si koupili pfb soubory, použitím ps2pk (CTANps2pk). Tak se také dají použít tyto fonty pro ovladače zařízení bez PostScriptu, jaké jsou třeba v emTeXu. Je na vaší zodpovědnosti ujistit se, že neporušujete licenční omezení na fonty, které jste koupili.

Třetí: natahování a smršťování (rozpal) mezi slovy je funkcí metriky fontu. Není specifikováno v afm souboru, takže rozdílné konvertory vybírají rozdílné hodnoty.

Když nejste pozorní, PostScriptová metrika, kterou přináší PSNFSS, dělá celkem těsné nastavení, které může produkovat příliš velký počet rozdělených slov nebo přetečených boxů.

Pokud máte potíže, Alan Jeffrey doporučuje následující nastavení v souboru balíku:

   \tolerance800
   \emergencystretch2em
   \doublehyphendemerits5000
   \hfuzz0pt
   \leftskip0pt minus 1pt
   \rightskip0pt minus 1pt
Budoucí verze těchto fontů bude mít implementovánu volnější implicitní sazbu, takže tato nastavení by se měla stát zbytečnými.


Výběr zvětšovatelných obrysových fontů

Pokud se zabýváte samotným textem, můžete použít libovolný z 20 000 fontů(!) ve formátu Adobe Type 1 (zvané PostScriptové fonty ve světě TeXu a ATM fonty ve světě DTP), nebo některý z několika set fontů v TrueType formátu. To samozřejmě za podmínky, že váš prohlížecí a tiskový ovladač podporuje zvětšovatelné obrysové fonty.

TeX sám se stará jenom o metriky, nikoliv o skutečný vzhled znaků. Je potřeba pouze vytvořit TeXovský soubor s metrikou tfm použitím nějakého prostředku jako afm2tfm, afmtotfm (od Y&Y, (viz Komerční implementace TeXu) nebo fontinst. Pro prohlížecí nebo tiskový ovladač potřebujete skutečné obrysové fonty (pfa pro zobrazení PostScriptu, pfb pro ATM na IBM PC, Macovské obrysové fonty na Macintoshi).

Jestliže také potřebujete matematiku, jste poněkud omezeni požadavky, jež má TeX na matematické fonty (detaily viz příspěvek B.K.P. Horna ve sborníku konference TUGu konané v roce 1993 v Astonu, otištěný v TUGboatu, Vol 14(3), 1994). Pro matematiku je tedy několik možností:

  • Computer Modern (75 fontů -- optické zvětšování) Donald E. Knuth.
    Poznamenejme, že CM jsou dostupné ve zvětšovatelné obrysové formě. Existují komerční i volně dostupné verze, jsou jak Adobe Type 1, tak TrueType verze. Některé z nich mají ,,komerční úroveň`` s plně ručně laděným ovládáním, další vyhlížejí velmi uboze, zatímco jiné jsou pouze nekompatibilní s Adobe Type Managerem (ATM).
  • Lucida Bright a Lucida New Math (25 fontů) Chuck Bigelow a Kris Holmes.
    Lucida je rodina příbuzných fontů včetně patkových, bezpatkových, bezpatkových s pevnou šířkou, kaligrafických, blackletter, faxových, ručně psaných spojovaných Holmesových fontů atd. Nejsou tak ,,vřetenovité`` jako Computer Modern s velkým x-ovým rozměrem, zahrnují rozsáhlejší sadu matematických symbolů, operátorů, relačních a ohraničovacích znaků, než CM (přes 800 na rozdíl od 384; mimo jiné obsahuje také AMS msammsbm sadu symbolů). Plánované ,,Lucida Bright Expert`` (14 fontů) připojí patkové písmo s pevnou šířkou, další ručně psaný font, malé kapitálky, tučné matematické písmo, stojatou ,,matematickou kurzívu`` atd. Distribuční sada obsahuje podporu pro plain TeX a LaTeX 2.09. Podpora pro LaTeX 2e je zajištěna v Použití PostScriptových fontů v TeXu díky Sebastianu Rahtzovi.
  • MathTime 1.1 (3 fonty) TeXplorators (Michael Spivak).
    Sada obsahuje matematickou kurzívu, symboly a rozšíření fontů, navržené pro snadnou práci s Times-Roman. Jsou zpravidla používány s písmem Times, Helvetica a Courier (jež jsou rezidentní na mnoha tiskárnách a jsou podporovány některými verzemi PC). Navíc tuto můžete základní sadu doplnit fontem Adobe Times Smallcap a snad i sadou fontů Adobe ,,Math Pi``, která zahrnuje blackboard bold, blackletter a script. Distribuce obsahuje podporu pro plainTeX a LaTeX 2.09 (včetně kódu pro spojení s Adobe Math Pi 2 a Math Pi 6). Podpora pro LaTeX 2e je zajištěna v Použití PostScriptových fontů v TeXu díky Sebastianu Rahtzovi.
  • Adobe Lucida, LucidaSans a LucidaMath (12 fontů).
    Lucida a LucidaMath jsou obecně považovány za poněkud tučné. Tři matematické fonty obsahují pouze glyfy z matematické kurzívy CM, symboly a rozšířené fonty. Podpora pro použití LucidaMath v TeXu není moc dobrá, musíte si dát práci s překódováním fontů atd. (V jistém smyslu je tahle sada předchůdcem fontové sady LucidaBright a LucidaNewMath.)
  • Concrete, AMS matematické fonty atd. Donald E. Knuth a AMS.
    Někdy jsou zmiňovány jako alternativa k CM, ale ve skutečnosti jsou doplňkem, poněvadž je třeba s nimi použít alespoň základní matematické fonty CM.
  • Proprietary fonts Různé zdroje.
    Jelikož vysoce kvalitní sady fontů v obrysovém formátu fungujícím v TeXu poskytují vydavatelům skutečně konkurenceschopné dokumenty, zaplatili si mnozí hodně peněz za výrobu takových fontů na zakázku. Naneštěstí, tyto sady nejsou k dostání volně na trhu, ačkoli jsou pravděpodobně mnohem úplnější než sady jiné.
  • Mathptm (4 fonty) Alan Jeffrey.
    Sada obsahuje matematickou kurzívu, symboly, rozšířené a virtuální Roman fonty, vytvořené z fontů Adobe Times, Symbol, Zapf Chancery a Computer Modern. Mathptm jsou volně dostupné a výsledné PostScriptové soubory mohou být volně sdíleny. Obsahují mnoho CM matematických symbolů. Podpora pro LaTeX 2e v  Použití PostScriptových fontů v TeXu je díky Alanu Jeffreymu and Sebastianu Rahtzovi.

První tři sady fontů jsou dostupné ve formátech vhodných pro IBM PC/Windows, Macintosh a Unix/NeXT od Y&Y a od Blue Sky Research (detaily viz Komerční implementace TeXu). Fonty MathTime lze také získat od: TeXplorators, 1572 West Gray #377, Houston TX 77019, USA. Velmi omezený výběr matematických fontů je přímým důsledkem toho, že musí být navrženy pro použití v TeXu, čímž ztrácí něco ze své přitažlivosti pro jiné trhy. Navíc, trh s komerčními fonty pro TeX je nepatrný (pro porovnání, například balíků fontů #1 Microsoft TrueType se prodalo asi 10 miliónů kopií během několika týdnů po vydání Windows 3.1!).

Textové fonty formátu Type 1 jsou dostupné od mnoha prodejců včetně Adobe, Monotype, Bitstream. Vyhněte se levným produktům neznámých výrobců: nejen že byste podporovali jejich neetické chování a poškozovali skutečné tvůrce písem, ale také velmi pravděpodobně byste pořídili zmetek. Fonty se nemusí dobře zarovnávat, nemusí mít standardní doplněk 228 glyfů, anebo třeba neobsahují soubory s metrikami (je třeba udělat TFM soubory). Také se vyhněte TrueType fontům ode všech možných prodejců kromě velkých.

TrueType fonty jsou o řád obtížněji ,,hintovatelné`` než fonty Type 1, a proto TrueType fonty odjinud než od Microsoft a Apple mohou být podezřelé. Navíc můžete narazit ještě na další problémy s TrueType fonty, třeba, že servisní střediska s nimi odmítají pracovat.


Vkládání PostScriptových obrázků v LaTeXu

LaTeX 2e (nový standard LaTeXu) obsahuje standardní balík umožňující včlenění grafiky, otáčení, práci s barvami a další rysy závislé na výstupních ovladačích. Balík je zdokumentován ve druhém vydání Lamportova manuálu (viz Knihy o TeXu a příbuzná literatura) a dá se získat v CTANgraphics

Pokud nepoužíváte LaTeX 2e, asi nejlepší bude použít makro psfig, které napsal Trevor Darrell, dostupné v CTANpsfig

Budete také potřebovat konverzní program z dvi do PostScriptu, který podporuje \special. Ovladače zmíněné v Otázce Konverzní programy z DVI do PostScriptu to umějí, a přinášejí s sebou verzi psfig připravenou pro použití s nimi. Makro psfig pracuje nejlépe s Encapsulovaným PostScriptem (EPS). Zejména psfig potřebuje, aby soubory obsahovaly BoundingBox (viz Apendix H v PostScript Language Reference Manual). Když nemáte EPS soubor, váš život se může zkomplikovat.

Další věcí kolem vkládání PostScriptového obrázku je, že obrázek není součástí dvi souboru, ale je včleněn až když použijete konvertor do PostScriptu. Důsledkem toho je, že většina dvi prohlížečů ukáže jenom prázdné místo rezervované TeXem pro váš obrázek, nikoliv obrázek samotný.

Anil K. Goel napsal dlouhý dokument podrobně popisující, kterak vkládat obrazce, obrázky a ilustrace do LaTeXovských dokumentů. Je dostupný jako CTANfigsinlatex


Zrcadlově převrácený tisk

Pro offsetový tisk bývá často potřeba připravit zrcadlově převrácené předlohy. Postscriptovým řešením tohoto problému je napsat na začátek dokumentu v plain TeXu (nebo do preambule v LaTeXu) řádek

\special{!userdict begin /bop-hook{hsize 0 translate -1 1 scale} def end}

Tím dosáhneme zrcadlového otočení kolem svislé osy.

Pokud chceme dokument převracet okolo vodorovné osy, vypadá řádek takto:

\special{!userdict begin /bop-hook{0 vsize translate 1 -1 scale} def end}

Komplexnější řešení (s možností zvětšování/zmenšování textu) je na ftp://ftp.cstug.cz/pub/local/cstug/sojka/mirrorps/mirror.ps

Pokud používáte emTeX s jeho ovladači (dviscr, dvihplj), lze jimi docílit zrcadlového převrácení i bez PostScriptu. Například převrácení kolem vertikální osy stránky zajistí volba /tr7.


CSTUG
(c) 12.05.2000 18:52 Libor Škarvada, Tomáš Hudec, Aleš Vítek
Připomínky, opravy a zejména odpovědi na další časté otázky posílejte na adresu cstug-faq@cstug.cz
Připomínky k HTML verzi posílejte na adresu libor@fi.muni.cz nebo hudec@fi.muni.cz.