Formátové konverze CSTUG

Vyhledávání podle slov v CS-FAQ

Hledaný řetězec:


Konverze mezi TeXem/LaTeXem a ostatními

  • troff troff-to-latex (k dispozici jako CTANtroff-to-latex), jenž napsal Kamal Al-Yahya na Standfordské universitě (Kalifornie, USA), napomáhá při překladu troff dokumentu do formátu LaTeXu. Rozlišuje většinu -ms-man maker, k tomu většinu eqn a některé tbl příkazy preprocesoru. Složitější věci je potřeba dodělat ručně. Jsou podporovány dva styly souborů. Existuje také manuálová stránka (která se velmi dobře konvertuje do LaTeXu). Program má copyright, ale je zdarma. Rozšířená verze tohoto programu, tr2latex, je dostupná v CTANtr2latex

    Distribuce DECUS TeX (viz Co je CTAN) také obsahuje program konvertující troff do TeXu.

  • Scribe Mark James (jamesm@dialogic.com) vlastní kopii programu scribe2latex, kterou nemohl vyzkoušet, ale kterou přenechá každému, kdo projeví zájem. Program napsal Van Jacobson z Lawrence Berkeley Laboratory.

  • WordPerfect Program wp2latex byl nedávno značně rozšířen a je nyní díky svému správci (Jaroslav Fojtik) dostupný pro MSDOS nebo systémy Unix.

  • PC-Write pcwritex.arc je k dispozici v CTANpcwritex

    Jedná se o ovladač tisku pro PC-Write, který „tiskne“ dokument formátu PC-Write V2.71 do souboru kompatibilního s TeXem. Napsal ho Peter Flynn z University College, Cork, Irská republika.

  • runoff Konverzní program Petera Vanroose (jeho adresa je vanroose@esat.kuleuven.ac.be) je napsán ve VMS Pascalu. Zdrojové texty a běhuschopný kód pro VAX jsou dostupné v CTANrnototex

  • refer/tib Existuje několik programů pro konverzi bibliografických dat mezi BibTeXem a formátem refer/tib. Lze je nalézt v adresáři CTANrefer-tools

    Ačkoli to jeho název nenapovídá, adresář také obsahuje dávku pro převod BibTeXu do refer. Kolekce není udržována.

  • RTF Program pro konverzi z Microsoft Rich Text Format do TeXu je k mání na CTANrtf2tex. Napsal a spravuje jej Robert Lupton (rhl@astro.princeton.edu). Existuje také konvertor do LaTeXu od Erwina Wechtla v CTANrtf2latex. Nejnovějším konvertorem (od Ujwale Sathyama a Scotta Prahla) je rtf2latex2e. Tento systém dosahuje celkem dobré kvality a je stále vylepšován.

    Do RTF můžete dokument přeložit pomocí TeX2RTF, který umí vytvořit prosté RTF i Windows Help RTF (stejně dobře jako HTML, viz Otázku Konverze do HTML). Existují verze programu TeX2RTF pro různé UNIXové platformy i pro Windows verze 3.11 a nižší. Program je dostupný z CTANtex2rtf.

  • Microsoft Word Často používaný způsob je konvertovat dokument do formátu RTF a použít některý z RTF konvertorů zmiňovaných výše. Poslední verze programu mswordview umí taktéž export do LaTeXu, a to z velmi široké škály verzí Wordu. Word2TeX a TeX2Word jsou sharewarové překladače od Chikrii Softlab (http://www.chikrii.com/). Ohlasy uživatelů jsou příznivé.

    FAQ Wilfrieda Henningse, zabývající se zvláště konverzemi mezi formáty na bázi TeXu a formáty textových procesorů, poskytuje detailní informace jakožto i tabulky umožňující rychlé srovnání vlastností: http://www.tug.org/utilities/texconv/index.html

  • Excel Excel2Latex konvertuje soubor Excelu do LaTeXovského prostředí tabular. Dodává se jako .xls soubor definující makra Excelu pro vytvoření výstupu v novém formátu.

Skupina na Ohio State University (USA) pracuje na společném dokumentovém formátu založeném na SGML s cílem, aby se libovolné formáty daly vzájemně převádět. „Vstupní filtry“ poskytuje FrameMaker s cílem překladu z cizího formátu (pravděpodobně včetně TeXu) do vlastního.

Další informace viz http://www.kfa-juelich.de/isr/1/texconv/texcnv.html


Konverze z TeXu/LaTeXu do holého ASCII

Zde je snahou emulovat unixový nroff, který formátuje text na obrazovce, jak jen to jde nejlépe, a to ze stejného vstupu jako unixový sázecí program troff.

Ralph Droms (droms@bucknell.edu) má stylový soubor a program, který způsobuje, že je LaTeX rovnocenný s nroff, ale neporadí si dobře s tabulkami a s matematikou.

Jiné možnosti jsou screen.sty, dvi2tty, Crudetype nebo catdvi. Poslední jmenovaný program je schopen generovat výstup v Latin-1 nebo UTF-8. catdvi bylo počato jako náhrada dvi2tty, ale zatím nemůže být pro tento účel doporučeno.

Použít můžete konverzní program z LaTeXu do ASCII, l2a, ačkoliv je to skutečně hodně „odTeXovávací“ program.

Základní odTeXovávací program je detex, který před zápisem na výstup smaže všechny komentáře a řídicí sekvence ze vstupu. Původním záměrem bylo připravit vstup pro jednoduchý korektor překlepů.

CTANtxtdist
CTANscreensty
CTANcrudetype
CTANcatdvi
CTANl2a
CTANdetex


Co je encTeX?

EncTeX je rozšíření TeXu, které vytvořil Petr Olšák. Účelem tohoto rozšíření je odstínit vnitřní kódování TeXu od kódování používaného v operačním systému. Originální TeX obsahuje pro tento účel vektory xord/xchr/xprn, jež mohou být modifikovány při kompilaci TeXu. V implementaci emTeX pro OS/2 a DOS lze využít TCP tabulek definovaných při generování formátu. Současná verze TeXu založená na web2c umožňuje specifikaci kódování pomocí TCX tabulek, jež lze zadat jak při generování formátu, tak speciálními příkazy při spuštění TeXu. EncTeX zpřístupňuje vektory xord/xchr/xprn pomocí nových primitiv. Překódování lze tedy měnit při běhu TeXu. Lze však vektory modifikovat při generování formátu a následně novým primitivům přiřadit \undefined, čímž budou v produkční verzi znepřístupněny. Takový formát se pak bude chovat, jako by vektory xord/xchr/xprn byly definovány při kompilaci TeXu. Od roku 2002 umí encTeX konvertovat vstupní vícebytové sekvence na jediný byte nebo kontrolní sekvenci. Tato vlastnost je výhodná pro použití TeXu v operačních systémech, kde jsou texty kódovány v UTF-8.


Jak se liší překódování encTeXem od jiných řešení v LaTeXu?

Překódování vstupních znaků je v LaTeXu řešno v zásadě dvěma způsoby. Prvním z nich je využití TCX tabulek (resp. TCP tabulek v emTeXu). Omezíme-li se na operační systémy používající osmibitové kódování, pak je tato metoda prakticky shodná s překódováním pomocí encTeXu. Druhou možnost nabízí balíček inputenc. Jeho nevýhody však spočívají v tom, že znaky musí být aktivní, což může vadit v některých makrech. Navíc tím není řešen výstup do logu v lidsky čitelné podobě. Zpracování textu v UTF-8 pomocí TCX tabulek řešit nelze. Balíčky inputenc a ucs opět využívají aktivních znaků. V kódu UTF-8 však může jeden znak zabírat 2 byte (nebo i více, nejvýše 5). Makro definované pomocí

\def\testujznak{\futurelet\znak \badejnadznakem}

pak může pracovat s neúplným znakem. EncTeX řeší koverzi kódu ve vstupním procesoru bez nutnosti měnit kategorii znaků. TeX tedy vždy vidí celistvé znaky s „normální“ kategorií.

Při předávání dokumentů po síti mezi operačními systémy dochází někdy ke změně kódování dokumentů. Podobně jako konverze mezi ASCII a EBCDIC dochází u některých ftp klientů ke změně kódování češtiny, podobně se chovají někeré moduly web serverů. Informace o kódování, zapsaná ve formě speciálního komentáře, může tedy být nesprávná. Obsahuje-li dokument definice vektorů xord/xchr/xprn pomocí primitiv encTeXu, pak tyto definice projdou stejnou transformací jako celý dokument a údaje o kódování jsou tudíž správné.


Převod z HTML či SGML do TeXu

SGML je velice zajímavý nástroj pro správu dokumentů a jejich výměnu, neklade však důraz na formátování, pro formátování dokumentů byl navržen ISO standard DSSSL (http://www.jclark.com/dsssl), ten však nebyl zatím implementován. Některé autorské SGML systémy (např. SoftQuad Author/Editor) umožňují formátování, a jsou mezi nimi velice profesionální high-endové typografické SGML systémy (např. Geneva od Miles33). Nicméně většinou uživatelé SGML, pokud potřebují svůj dokument vytisknout, ho raději transformují do již existujících typografických systémů. Zde můžete zaujmout jeden ze tří přístupů k tomuto problému:

  • Můžete napsat jednoduchý překladač, který používá nástroje jako třeba yacc nebo lex. To je však velice obtížné, protože SGML je velice komplexní a složitý nástroj.
  • Použijte speciální jazyk, který byl vytvořen pro transformaci SGML. Nejlepší budou pravděpodobně Omnimark a Balise. Jsou drahé, ale účinné. Slučují SGML problémy s transformačními schopnostmi.
  • Vytvořte nový překladač založený na již existujícím SGML parseru. Zdaleka nejlepší známý (a zdarma!) je parser Jamese Clarka nsgmls, který produkuje mnohem jednodušší výstup zvaný ESIS, který může být přímo parsován. Tuto metodu využívají dva veřejné balíky: Oba umožňují uživateli napsat si vlastní handlery pro každý SGML element, hojnými přístupy k atributům, entitám a informacím v dokumentovém stromu. Pokud tyto balíky nesplňují vaše požadavky, zřejmě budete pro vytváření běžných SGML dokumentů potřebovat větší komerční vybavení.

Protože HTML je zvláštním případem SGML, nepotřebujeme pro převod z něho do TeXu nebo LaTeXu zvláštní systém. Přesto však Nathan Torkington (Nathan.Torkington@vuw.ac.nz) vyvinul z HTML ovladače v balíku Xmosaic od NCSA html2latex. Program načítá HTML soubor a generuje z něj soubor LaTeXový. Konverzní kód je předmětem omezení NCSA, ale kompletní zdrojový text lze získat na CTANhtml2latex

Michel Goossens a Janne Saarela vydali velice užitečný souhrn SGML a veřejně dostupných nástrojů pro tvorbu manipulaci s SGML soubory. Vyšel v TUGboatu 16(2). Viz též Otázku Budúce webové technológie a TeX.


Konverze do HTML

Převod z TeXu do HTML není triviální. TeX není značkovací, ale sázecí systém, takže se koncepčně od HTML velmi liší. S LaTeXem máte víc naděje, ale ani zde není převod zadarmo. Je dobré poznamenat že a) chcete-li skutečně kvalitní Webový dokument, je lepší přepsat ho znovu, a b) HTML (i HTML3) má velmi chudé sázecí schopnosti a cokoliv netriviálního (matematika, kterou ale TeX zvládá výborně; budoucnost pro metamatiku — viz Otázku Budúce webové technológie a TeX) transformuje do grafiky.

Je nutné uvědomit si, že HTML dokument nespecifikuje svoje přesné vykreslení a toto je ponecháno do určité míry na prohlížeči. Proto, když chcete čtenářům zobrazit přesnou kopii vzhledu vašeho dokumentu, používejte formáty jako PDF.

V součásnosti máme k dispozici tyto možnosti:

  • LaTeX2HTML (CTANlatex2html) je balík (většinou perl dávky), který rozkládá LaTeXovský dokument na jednu či více komponent, které pak spojuje dohromady, takže se dají číst přes World-Wide Web jako hypertextový dokument. Definuje zobrazení mezi LaTeXovskými vnitřními odkazy a hyperodkazy a rozšiřuje referenční mechanismus LaTeXu, aby se zpřístupnily odkazy na jiné připojitelné dokumenty a další prostředky Internetu. Překládá akcentované a další znaky LaTeXu (jak jen to jde nejlépe) do formy, kterou dokáže zobrazit World-Wide Web prohlížeč, a zprostředkovává mechanismus, kterým se matematika a další věci, jež prohlížeč nezvládá, dají převést do obrázku, který může být začleněn do hypertextového dokumentu. LaTeX2HTML vyžaduje Perl, PBM utility, dvips, GhostScript a jiné programy. Běží pod Unixem. V TUGboatu Vol 16(2) je publikován podrobný popis programu LaTeX2HTML a návod na jeho konfiguraci. Původní verze byla napsána Nikosem Drakosem pro systémy Unix, dnes je již ale spravován více autori a je k dispozici i pro Windows.
  • TtH je vykompilovaný program podporující LaTeX nebo čistý TeX používající techniky font/tabulka pro reprezentaci matematiky. Byl napsaný Ianom Hutchinsonom používajíc flex. Distribuce je tvořena jediným zdrojovým souborem jazyka C (nebo vykompilovaným spustitelným souborem), který se snadno instaluje a je dost rychlý.
  • Tex4ht je vykompilovaný program napsaný Eitanem Gurarinem podporující LaTeX nebo čistý TeX. Funguje na principu spracování DVI souboru a používa bitmapy pro matematiku. Když je to vhodné, může využívat i jiních technologií. Program parsuje DVI soubor generovaný, když nad vaším souborem obsahujícím tex4ht makra spustíte TeX/LaTeX. Výsledkem je, že je celkem robustní vůči makrám ve vašich dokumentech a je taky celkem rychlý.
  • TeXpider je komerční program od Otázku Komerční implementace TeXu , popsaný na http://www.micropress-inc.com/webb/wbstart.htm (pro rovnice používá bitmapy)
  • Hevea je vykompilovaný program podporující jenom LaTeX používající techniku font/tabula pro rovnice (jeho přístup je podobný programu TtH). Je napsaný v jazyku Objective CAML Lucem Marangetem. Hevea není archivována na CTANu, detaily (vrátaně míst pro download) jsou na http://pauillac.inria.fr/~maranget/hevea/
Zajímavá sada příkladů (včetně konverze stejného textu zmíněnými čtyřmi programy) je přístupná na http://www.mayer.dial.pipex.com/samples/example.htm. Odkazovaná stránka poskytuje seznam za a proti formou porovnání


Vytváranie hypertextových dokumentov v TeXu

Ak chcete vytvoriť hypertextový dokument pomocou LaTeXu, napríklad pre World-Wide Web, uvážte štyri technológie (prekrývajúce sa).

  1. Skúste priamu konverziu z LaTeXu do HTML (pozri Otázku Konverze do HTML);
  2. Prepíšte svoj dokument použijúc Texinfo (pozri Otázku Co je to Texinfo) a skonvertujte ho do HTML;
  3. Pozrite sa na Adobe Acrobat, elektronický systém na uchovávanie a prezeranie dokumentov. Tento systém môže zachovať úplne sadzbu vášeho dokumentu. (Pozri Otázku Vytváranie PDF dokumentov v TeXu.)
  4. Využite hyperTeX konvencie (štandardizované príkazy \special). Existujú makro-balíky, ktoré ich podporujú pre plain TeX a LaTeX.

Projekt HyperTeX má za cieľ rozšíriť funkčnosť všetkých odkazových príkazov pre LaTeX (vrátane obsahu) vytváraním príkazov \special, ktoré sú sledované DVI procesormi a vytvárajú hypertextovú štruktúru. Poskytujú všeobecné hypertextové spojenia, vrátene napojenia na vonkajšie dokumenty.

HyperTeXovská špecifikácia určuje, že príslušný prezerač/prekladač musí rozpoznávať nasledujúce príkazy \special:

  • href: html:<a href = "href_string">
  • name: html:<a name = "name_string">
  • end: html:</a>
  • image: html:<img scr = "href_string">
  • base_name: html:<base href = "href_string">

Príkazy href, nameend sa používajú na definovanie základných hypertextových operácií spojenia jednotlivých častí dokumentu.

Ďalšie detaily sú dostupné na http://arXiv.org/hypertex/. Existujú zatiaľ len dve všeobecne používané implementácie špecifikácií: modifikované xdvi a modifikované dvips. Výstup z modifikovaného dvips môže byť použitý modifikovaným programom GhostScript alebo programom Acrobat Distiller.


Vytváranie PDF dokumentov v TeXu

Existujú tri možnosti: previesť PostScript do PDF programom Distiller, konvertovať DVI súbor alebo použiť program pre priamy prevod z TeXu do PDF (pdftex Han The Thanha alebo VTeX od spoločnosti MicroPress – viď Otázku Komerční implementace TeXu a Otázku TeX/LaTeX pro různé počítače).

Pre jednoduché dokumenty (bez hyper-referencií) môžete:

  • spracovať dokument normálnym spôsobom, vyprodukovať výstup vo formáte PostScript a na ten použiť program Distiller,
  • (na systéme Windows alebo Macintosh s nainštalovanými zodpovedajúcimi nástrojmi od Adobe) predať výstup cez PDFwriter na mieste ovládača tlačiarne (toto je však slepá ulica, pretože PDFwriter nevytvára odkazy),
  • spracovať dokument normálnym spôsobom a vygenerovať PDF priamo s DVI programom dvipdfm, alebo
  • spracovať dokument priamo do PDF pomocou PDFTeXu alebo VTeXu. PDFTeX má výhodu dostupnosti pre široký zoznam platforiem, VTeX (dostupný komerčne pre Windows, zadarmo pre Linux a OS/2) má širšie grafické možnosti pri spracovaní zapuzdreného a in-line PostScriptu.

Aby sme preložili všetky krížové odkazy v LaTeXu do Acrobatovských spojení, potrebujeme LaTeXovský balík, ktorý vhodne predefinuje vnútorné príkazy LaTeXu. Existujú dva takéto balíky pre LaTeX 2e, obidva založené na HyperTeXovských špecifikáciách (pozri Otázku Vytváranie hypertextových dokumentov v TeXu). Prvý je hyperref od Sebastiana Rahtza (dostupný z CTANhyperref a druhý je hyper od Michaela Mehlicha (CTANhyper). Balík hyperref používa konfiguračný súbor pre zistenie, akým spôsobom bude generovať hypertext. Môže pracovať pomocou primitív PDFTeXu, hyperTeXovských príkazov typu \special alebo príkazov typu \special špecifických pre konkrétny DVI ovládač. dvips aj DVIPSONE spoločnosti Y&Y prekladajú DVI za pomoci týchto príkazov \special do PostScriptu akceptovaného Distillerom, dvipdfm má vlastné \special príkazy.

Neexistuje voľne dostupná implementácia všetkých funkcií Adobe Distilleru, ale posledné verzie ghostscriptu poskytujú celkom spoľahlivý proces „destilácie“ (vyvarujte sa však problémom preberaným v Otázke Kvalita PDF z PostScriptu). Sám Distiller je v skutočnosti celkom lacný (aspoň pre akademické prostredie).

Na prezeranie (a tlač) výsledných súborov je dostupný Adobe Reader (predtým známy ako Adobe Acrobat Reader) na celkom slušný rozsah platforiem. Na platformách, pre ktoré dostupný nie je, vie PDF súbory zobraziť kombinácia aktuálnych verzií programov ghostscriptghostview, prípadne GSview.

Mnohokrát je ghostscript v kombinácii s prehliadačom preferovaný oproti programu Adobe Reader. Adobe Reader pre Windows napríklad zamkýňa .pdf súbor, ktorý zobrazuje. Toto znemožňuje tradičný (a veľmi efektívny) vývojový cyklus dokumentu TeXu/LaTeXu (úprava — spracovanie — prezretie). GSview túto chybu neopakuje.


Kvalita PDF z PostScriptu

Každý rozumný postscriptový dokument (vrátane výstupu dvips) sa dá skonvertovať do PDF, napríklad použitím dostatočne novej verzie ghostscriptu, programu PStill Franka Siegerta (shareware; http://www.pstill.com/) alebo komerčného programu Distiller od Adobe.

Avšak aj keď sa to dá spraviť takmer vždy, výsledky často nie sú akceptovateľné. Najčastejším problémom je zlá reprezentácia glyfov znakov, ktoré dopĺňajú dokument. Nasledujúce odpovede ponúkajú riešenie týchto (a iných) problémov zlej prezentácie. Zodpovedané otázky sú:

Je dobré poznamenať, že Adobe Reader 6 (vydaný v polovici roku 2003) túto neostrosť neprejavuje. Je to dobrá správa, ale určite bude trvať dlhší čas, kým bude každý používateľ vybavený touto (alebo novšou) verziou, takže riešenia spomenutých problémov tu ešte nejaký čas zostanú.


Hyperref a opakované čísla strán

Trieda book (a príbuzné) automaticky mení zobrazenie čísle strán na začaitku dokumentu na malé rímske číslice. Toto nevadí ľudským čitateľom, ale je mätúce pre hyperref, kedže existujú straný, ktoré (pre hyperref) majú rovnaké čísla strán. Našťastie existujú konfiguračné voľby umožňujúce, aby hyperref „urobil správnu vec“.

Dotyčné dve voľby sú:

  • plainpages=false Vynúti pomenovanie ukotvenia strán v arabskej forme absolútneho čísla strany (namiesto formátovanej formy). S touto voľbou bude hyperref zapisovať rozličné ukotvenia pre strany „ii“ a „2“.
  • pdfpagelabels Nastaví PDF návestia strán, t.j. zapíše hodnotu \thepage do PDF súboru, aby Acrobat Reader mohol zobraziť číslo strany ako (napríklad) „ii (4 of 40)“ namiesto „4 of 40“.
Uvedené dve voľby by mali byť používané kedykoľvek je číslovanie strán iné než iba „1..ensuremath{n}“; môžu byť použité nezávisle, ale zvyčajne nie sú.

Návod nie je bezchybný: spolieha sa na to, že \thepage je rozdielne pre každú stranu v dokumente. Bežný problém vyvstáva pri neočíslovanej titulnej strane, po ktorej sú čísla strán resetované: varovanie PDFTeXu o duplicitných cieľoch nastanú v tomto prípade bez ohľadu na voľby.
hyperref.sty: CTANhyperref


Nesprávny typ fontov v PDF

Toto je zdaleka najčastejší problém: symptómom je neostro vyzerajúci text dokumentu.

Väčšina ľudí používa na prezeranie svojich PDF súborov Adobe Reader: Reader je distribuovaný zdarma a je dobre dostupný, má však mnoho nedostatkov. Jedným z nich je neschopnosť spracovania bitmapových fontov (minimálne vo verziách skorších než nedávno vydaná verzia 6).

Bitmapové fonty teda v našich PostScriptoch nechceme: s nimi sa znaky v zobrazení programom Reader objavujú ako rozmazané machule, z ktorých sa často nedajú rozoznať pôvodné písmená a často sú zle umiestnené na riadku. Napriek tomu má väčšina TeXovských systémov nakonfigurované dvips na použitie .pk súborov (viď Otázku Čo sú to PK súbory) vo svojom výstupe. Dokonca aj PDFTeX použíje .pk súbpry, ak nevidí inú alternatívu pre font v spracúvanom dokumente.

Naším riešením sú Adobe Type 1 verzie potrebných fontov. Kedže Adobe fonty Type 1 predáva, Reader bol od začiatku vytvorený tak, aby si s nimi vedel dobre poradiť.

Samozrejme, ak váš dokument používa iba fonty od Adobe (fonty ako Times, ktoré sú v takmer každej PostScriptovej tlačiarni, alebo Adobe Sabon, za ktorý si musíte priplatiť) potom nemáte problém.

Väčšina ľudí však na začiatok používa fonty Computer Modern a dokonca aj tí uvedomelí, čo používajú niečo tak exotické ako Sabon, sa často nechtiac nachádzajú v situácii, keď použíjú zvláštne znaky z CM. Dostupné sú našťastie celkom dobré verzie CM fontov od AMS (vďaka Blue Sky Research a Y&Y – viď Otázku Komerční implementace TeXu).

Väčšina moderných systémov má nainštalované fonty pripravené na použitie a každý systém inštalovaný pred menej než 3 rokmi má dvips konfiguračný súbor „pdf“ signalizujúci použitie CM fontov a tiež nastavuje pár ďalších parametrov na vylepšenie výstupu dvips. Túto konfiguráciu použite nasledovne:

  dvips -Ppdf myfile -o myfile.ps
Toto môže produkovať varovné hlásenie o nenájdení konfiguračného súboru:
  dvips: warning: no config file for `pdf'
alebo niečo podobné, alebo hlásenie o nenájdení súboru fontu:
  dvips: ! Couldn't find header file cmr10.pfb
Každé zo zlyhaní signalizuje, že váš systém fonty neobsahuje.

Spôsob používania fontov, ktorý nezahŕňa sofistikovanosť mechanizmu -Ppdf, je jednoduché nahranie máp:

  dvips -Pcmz -Pamz myfile -o myfile.ps
Môžete sa tu stretnúť s rovnakými varovnými hláseniami ako boli uvedené vyššie.

Ak váš systém fonty neobsahuje, budete potrebovať fonty nainštalovať.


Neostré fonty pre príliš starý Ghostscript

Spravili ste všetko, čo vám radilo FAQ, máte správne nainštalované potrebné fonty, zobrazujú sa vo výstupe dvips, ale stále dostávate po destilácii pomocou programu ghostscript výstup neostrých znakov.

Problém mohol vzniknúť z príliš starej verzie programu ghostscript, ktorú môžete používať priamo, alebo cez skript ako ps2pdf (distribuovaný so samotným ghostscriptom), dvipdf alebo podobný. Hoci ghostscript mal schopnosť destilácie od verzie 5.50, uvedená verzia vedela produkovať iba bitmapový Type 3 výstup ľubovolného fontu iného než základných 35 fontov (Times, Helvetica atď.). Neskoršie verzie pridali „úplnú“ destiláciu, ale až do verzie 6.50 sa na ňu nedalo spoľahnúť pri použití v každodennej práci.

Ak teda váš PDF výstup stále vyzerá neostro v programe Acrobat Reader, aktualizujte ghostscript. Nová verzia by mala byť samozrejme aspoň verzia 6.50, je však dobrým pravidlom siahnuť po najnovšej verzii (verzia 8.12 v dobe písania anglickej verzie tejto otázky – rok 2003).


Fonty sa stanú neostrými pri prechode na T1

Mali ste problémy s rozdeľovaním slov a niekto vám poradil, aby ste na ich vyriešenie použili príkaz „\usepackage[T1]{fontenc}“. Zrazu zisťujete, že vaše hotové PDF je neostré. Problém môže vzniknúť bez ohľadu na to, či používate PostScriptový výstup a následne destilujete, alebo pre celú prácu používate PDFTeX.

V skutočnosti sa jedná o podobný problém, aké sú mnohé ďalšie pri zhoršenej kvalite PDF výstupu (viď Otázku Kvalita PDF z PostScriptu): opustili ste vaše predchádzajúce nastavenie používajúci Type 1 verzie CM fontov a dvips vložilo do výstupu vášho dokumentu Type 3 verzie EC fontov (poznamenajme len, že kódovanie fontov T1 nemá priamo nič spoločné s typom fontov Type 1).

Ako však je poznamenané v Otázke Hľadanie 8bitových Type 1 fontov, Type 1 verzie fontov podobných CM v T1 (alebo ekvivalentnom) kódovaní sú dostupné ako sady „skutočných“, ako aj virtuálnych fontov. Jedným riešením je preto používanie jednej z týchto alternatív.

Ďalšou možnosťou je zmena celej rodiny fontov na niečo ako Times (štandardná voľba bez premýšľania) alebo na jeden z mnohých viac potešujúcich Adobe-kódovaných fontov. Štandardná akcia balíku fontinst pri vytváraní metrík pre takéto fonty je vytvorenie nastavení pre OT1 aj T1 kódovania, takže sa jedná o malú zmenu (na užívateľskej úrovni) dokonca aj pri zmene na T1 kódovanie.


Chýbajúce znaky v PDF výstupe

Ak používate Acrobat Distiller na tvorbu PDF výstupu, môžete nájsť určité chýbajúce znaky. Toto sa môže prejaviť ako nesprávne matematické rovnice (napríklad chýbajúce znaky '-' ) alebo chýbajúce časti väčších symbolov. Staré verzie Distilleru mali vo zvyku ignorovať pozície znakov 0–31 a 128–159 pri každom fonte. Fonty Adobe nikdy tieto pozície nevyužívajú, tak prečo by mal Distiller?

Odpoveď je: „Pretože Adobe neprodukuje všetky fonty na svete.“ Fonty ako Computer Modern existovali pred príchodom Adobe na scénu a používali pozície 0–31. Firma Adobe na sťažnosti typu predchádzajúcej vety nereagovala, ale vydala novú verziu svojich programov (Distiller od verzie 4.0 už rozpoznáva pozície fontov, ktorým sa predtým vyhýbal).

Používatelia TeXu so starou verziou Distilleru sa zatiaľ potrebovali vysporiadať so svojimi fontami. Pomáha im dvips, konkrétne prepínač -G1 („premapuj znaky“), ktorý problémové znaky odstraňuje z cesty. Konfiguračný súbor PDF (-Ppdf) doporučovaný vyššie (v Otázke Nesprávny typ fontov v PDF) tento prepínač obsahuje.

Ani tento prepínač však neprichádza bez problémov. Verzie dvips nižšie než 2003 ho aplikujú aj na Adobe fonty, čo zapríčiní viď Otázku Zvláštne znaky vo výstupe dvips . Problém je našťastie vysvetliteľný. Avšak dokument používajúci fonty CM i fonty špecifické pre Adobe má problém. Jediným skutočným riešením je buď aktualizácia dvips, alebo minúť peniaze na aktualizáciu Distilleru.


Používání TeXu k přímému čtení XML a SGML

Číst XML nebo SGML lze pomocí důmylsného makroprogramování. Dvěma příklady balíčků, které byly vyvinuty za tímto účelem a jsou volně dostupné, jsou xmltex Davida Carlislea a GMLbase. Při psaní je xmltex poněkud vyspělejší než SGMLbase a nabízí praktické řešení sazby XML dokumentů. SGMLbase byl vytvořen, aby se vypořádal s SGML stejně dobře jako s XML, ale v současnosti je to tak akorát příklad na hraní.

Využití TeXu umožňující vysázení XML souborů je backendový procesor pro formátovací objekty XSL serializované jako XML. PassiveTeX Sebastiana Rahtze používá balík xmltex aby tohoto dosáhl.

Další možností je použít CONTeXt, Otázku Co to je CONTeXt?.

xmltex: CTANbase
GMLbase: http://www.active-tex.demon.co.uk/


Preklad LaTeXu do čistého TeXu

Bohužiaľ neexistuje žiadny obecný postup, s ktorým by ste uspeli pri riešení tejto úlohy. Pre podrobnosti si pozrite Otázku Aký je vzťah medzi LaTeXom a plain TeXom?.

Preklad dokumentu navrhnutého pre LaTeX do dokumentu pre čistý TeX obnáša opatrné zahrnutie (alebo inú re-implemenáciu) všetkých častí LaTeXu, ktoré dokument používa a nie sú poskytované čistým TeXom.


Čo sú EC fonty?

Font pozostáva z množstva glyfov. Aby sme ich mohli tlačiť, musia byť kódované (viď Otázku Čo sú to kódovania?). Kódovanie sa používa ako index do tabuliek vo fonte. Knuth si z rôznych príčin pre rodinu svojich fontov Computer Modern vybral veľmi zvláštne kódovanie (vybral si rôzne kódovania pre rôzne fonty, takže aplikácia, ktorá ich používa, musí pred výberom konkrétneho glyfu vedieť, ktorý font používa).

S príchodom TeXu verzie 3 sa vytratila väčšina dôvodov ospravedlňujúcich Knuthove kódovanie a na corkovskom stretnutí TUGu bolo definované kódovanie množiny 256 glyfov pre TeXovské texty. Zámer bol, aby kódovanie pokrylo „väčšinu“ európskych jazykov používajúcich latinku (v zmysle zahrnutia všetkých potrebných znakov s diakritikou). Knuthove CMR fonty neobsahovali napríklad veci potrebné pre polštinu (medzi nešťastlivcov patrili ale aj obyvatelia Islandu), corkovské kódovanie ich už obsahovalo. Ani corkovské kódovanie však nepokrývalo všetko (smolu mali minimálne Rumuni, Welšania a Laponci; corkovské kódovanie situáciu severných Laponcov zlepšuje). LaTeX sa na corkovské kódovanie odkazuje ako na T1 kódovanie a poskytuje prostriedky na použitie takto kódovaných fontov (čím sa vyhýba problémom s diakritikou a rozdeľovaním slov — viď Otázku Akcentovaná slova se nedělí).

Jediné METAFONTovské fonty vyhovujúce corkovskému kódovaniu sú EC fonty. Vyzerajú ako CM, aj keď ich metriky sa od metrík CM fontov líšia. Fonty sú považované za „stabilné“ (v rovnakom zmysle ako CM fonty: ich metriky sa zrejme už meniť nebudú). Vážnymi problémami pre bežného používateľa sú ich veľkosti (každý EC font je približne dvojnásobný oproti zodpovedajúcemu CM fontu) a ich počet (je ich oveľa viac než CM fontov). Počet fontov býval demotiváciou pre tvorbu Adobe Type 1 verzií fontov, no mnoho komerčných dodávateľov poskytuje EC alebo EC-ekvivalentné fonty v type 1 alebo TrueType formáte — viď Otázku Komerční implementace TeXu (voľne dostupné verzie sa tiež dajú získať — viď Projekt TeXtrace). Kým sa nevyrobia zodpovedajúce fonty pre matematiku, CM fonty musia zostať zachované, pretože niektoré matematické symboly sú vykresľované z fontov v CM kódovaniach.

EC fonty sú distribuované so sadou „Text Companion“ (TC) fontov poskytujúcich glyfy bežne používané v texte. TC fonty sú kódované podľa LaTeX TS1 kódovania a nie sú považované za stabilné.

Corkovské kódovanie je implementované virtuálnymi fontami viz Použití PostScriptových fontů v TeXu, pre PostScriptové fonty a tiež balíkmi fontov txfonts a pxfonts (viď Otázku Výběr zvětšovatelných obrysových fontů).

CTAN: CTANec.


Hľadanie 8bitových Type 1 fontov

Inde vám odpoveďe na tieto „FAQ“ odporučia používať 8bitový font na povolenie diakritiky vo flektívnych jazykoch (viď Otázku Akcentovaná slova se nedělí) a použite Type 1 fontov na zaručenie toho, že dostanete kvalitné PDF (viď Nesprávny typ fontov v PDF). Tieto odporúčania boli protichodné. Nebolo možné vymeniť voľne dostupné CM fonty za voľne dostupné Type 1 fonty v corkovskom (alebo podobnom) kódovaní. Prvý prístup, ktorý začal pomáhať s touto priamou výmenou, bol vývoj virtuálnych fontov, ktoré majú dobrý prístup ku corkovskému kódovaniu (viď nižšie). V súčasnosti však máme dostupné skutočné Type 1 fonty. Ako vždy máme k dispozícii „bohatý“ výber (tri voľne dostupné, dve komerčné a jednu shareware verziu).

CM-super (CTAN: CTANcm-super) je automaticky trasovaná sada, ktorá zahrňuje kódovania T1, TS1 a T2* (rodina kódovaní pokrývajúca jazyky založené na cyrilike). Tieto fonty sa celkom jednoducho inštalujú (pustup je zrozumiteľný), ale sú obrovské — nepokúšajte sa ich nainštalovať, ak máte málo voľného priestoru na pevnom disku.

CM-LGC (CTAN: CTANcm-lgc) je podobná sada fontov, ale oveľa skromnejšej veľkosti. Pokrýva T1, TS1 a T2{A} kódovania (ako CM-super) a naviac aj LGR kódovanie (pre sadzbu gréčtiny, založené na zdrojových kódoch METAFONTu Claudia Beccariho). CM-LGC sa darí zachovať si malú veľkosť tým, že ide do opačného extrému než CM-super, ktorý zahŕňa fonty všetkých veľkostí podporovaných pôvodným EC (veľké množstvo). CM-LGC má jeden font pre každý rez, ostatné veľkosti získava škálovaním. Z tohoto postupu nevyhnutne vyplýva určitá strata kvality, ale zároveň sa šetrí miesto na pevnom disku.

Latin Modern (CTANlm) je vyrobený pomocou programu MetaType1, ktorý (ako už názov naznačuje) prináša silu METAFONTu do prostredia produkcie Type 1 fontov. Sada Latin Modern obsahuje varianty v kódovaniach T1, TS1 LY1 (a taktiež variantu používajúcu poľské kódovanie QX). Obrysy pokrytých glyfov vyzerajú „čistejšie“ ako v CM-super. Balík Latin Modern má menšie požiadavky na diskový priestor ako CM-super a nezachádza do takých extrémov v podporovaných veľkostiach ako CM-LGC (Latin Modern fonty sú poskytované vo veľkostiach rovnakých ako CM fonty). S týmto rozhodnutím sa nedá prieť, Knuthov rozsah veľkostí odolal skúške času a je jedným zo základov, ktorým systém TeX vďačí za svoju excelentnosť.

Virtuálne fonty (viď Otázku Virtuální fonty) nám pomáhajú vysporiadať sa s týmto problémom, kedže nám dovoľujú mapovať časti DVI súboru na jednotlivé znaky vo virtuálnych fontoch. Môžeme teda vytvoriť znak „'e“ pomocou znovuvytvorenia DVI príkazov, ktoré vyplývajú z príkazov \'e. Keďže však toto zahŕňa výber dvoch znakov z fontu, opatrenie postačuje na to, aby oklamalo Adobe Reader (nemôžete využivať prostriedky programu pre hľadanie textu obsahujúceho flektívne znaky a v prípade kopírovania textu z okna obsahujúceho tieto znaky sa stane niečo nečakané, obvykle dostanete diakritické znamienko a základný znak oddelené medzerou). Ak vám to však nevadí, sú virtuálne fonty dobrým a priamočiarym riešením.

Existujú dve ponuky virtuálnych fontov založených na 8bitových CM fontoch. Sú to sady ae (almost EC; takmer EC) a zefonts. Môžete ich nájsť na CTANe: CTANae, CTANzefonts. zefonts má lepšie pokrytie znakov (aj keď ae môže byť rozšírená balíkom aeguill; CTAN: CTANaeguill). Žiadna zo sád neposkytuje znaky ako eththorn (používané napríklad v islandčine), ale balík aecompl využíva ae fonty na poskytnutie chýbajúcich znakov z EC fontov (napríklad ako bitmapy).

Komerčné fonty 8bitové fonty typu CM fontov sú celkom lacné, ale stoja viac, než si tento autor môže bežne dovoliť... Y&Y poskytuje fonty „European Modern“, rozšírenie CM fontov, ktoré môže byť používané s kódovaním T1 alebo LY1. Tieto fonty sú z rovnakej stajne, ktorá nám zadarmo poskytla AMS/Blue Sky Research/Y&Y fonty. Sú mierne rozšírené, aj keď nepokrývajú všetky oblasti T1 kódovania a neposkytujú chaos veľkostí ako EC fonty). Micropress poskytuje úplnú EC sadu v Type 1 formáte (ako časť ich množstva obrysových fontov pôvodne distribuovaných v METAFONT formáte). Ďalšie informácie nájdete v Otázke Komerční implementace TeXu.

Shareware distribúcia viď Otázku TeX/LaTeX pro různé počítače poskytuje sadu Type 1 EC fontov (CTANbakoma-texfonts) ako extra shareware voľbu (podľa znalostí autora sú tieto fonty zatiaľ dostupné iba používateľom BaKoMa TeXu; sú archivované vo formáte, ktorý nie je verejne dostupný).

Nakoniec môžete použiť jeden z nespočetne mnoho textových fontov v Type 1 formáte (so zodpovedajúcou PSNFSS metrikou pre T1 kódovanie, alebo metrikou pre nejaké iné 8bitové kódovanie ako LY1). Ak však použijete niekoho textový font, budete musieť nájsť príslušnú rodinu matematických fontov, čo je netriviálna záležitosť (viď Otázku Výběr zvětšovatelných obrysových fontů).


CSTUG
(c) 1997, 1998, 2003 Tomáš Hudec, Libor Škarvada
Poslední aktualizace: 26.07.2006 19:37