Formátové konverze |
| 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 CTAN: troff-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` a `-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 CTAN: tr2latex 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 wp2latex (lze získat v CTAN: wp2latex) je program pro PC napsaný v Turbo Pascalu R. C. Houtepenem na univerzitě v Eindhovenu v Holandsku. Konvertuje dokumenty z formátu WordPerfectu 5.0 do LaTeXu. Zdrojové texty v Pascalu jsou také k dispozici. Uživatel jej přes některá omezení shledá `celkem ucházejícím'. Je vysoce hodnoceno jeho rozlišování změn fontů, ale neumí dělat indexy, obsah, okraje a grafiku a nezvládá nové prvky WordPerfectu verze 5.1, speciálně formátování rovnic. Na program je copyright, ale je zdarma. Glenn Geers z univerzity v Sydney, Austrálie (glenn@qed.physics.su.oz.au) přepisuje wp2latex do jazyka C a přidává některé rysy WordPerfectu 5.1, zejména jeho práci s rovnicemi. Program je v podadresáři `glenn` na CTAN: wp2latex PC-Write `pcwritex.arc` je k dispozici v CTAN: pcwritex 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 CTAN: rnototex 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 CTAN: refer-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 CTAN: rtf2tex. Napsal a spravuje jej Robert Lupton (rhl@astro.princeton.edu). Existuje také konvertor do LaTeXu od Erwina Wechtla v CTAN: rtf2latex 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 CTAN: tex2rtf. 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. Program pro přímý převod z MS-Wordu do LaTeXu je wd2latex pro MSDOS (v CTAN: wd2latex). Pavel Nygrýn (nygryn@fi.muni.cz) napsal program zohledňující české a slovenské znaky: `http://www.fi.muni.cz/~nygryn/w2t/` Poslední verze programu mswordview umí taktéž export do LaTeXu, a to z velmi široké škály verzí Wordu. FAQ zabývající se speciálně konverzí mezi různými TeXovými formáty a formátem wordu bývají pravidelně zasílány do konference `comp.text.tex` a jsou dostupné přes web na adrese `http://www.kfa-juelich.de/isr/1/texconv/texcnv.html` a jsou archivovány na CTANu v adresáři CTAN: wp-conv.zip. 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. Software je dostupný v CTAN: txtdist. Jinou možností je použít screen.sty (k nalezení na CTANu v adresáři CTAN: screensty). Použijte některý z programů typu dvi2tty, můžete také zkusit CTAN: crudetype. Dále je možné použít konverzní program z LaTeXu do ASCII, l2a (CTAN: l2a), ačkoliv je to skutečně hodně ,,odTeXovávací`` program. Základní odTeXovávací program je detex (CTAN: 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ů. ### 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: sgmlspm vytvořený Davidem Megginsonem v Perlu 5. Je dostupný z `http://www.perl.com/CPAN/modules/by-module/SGMLS` stil autorů Joachima Schroda a Christine Detiga napsaný v Common Lispu. Ten si můžete stáhnout na adrese `ftp.th-darmstadt.de/pub/text/sgml/stil`. 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 nepřijdete do styku s těmito balíky, zřejmě budete pro vytváření běžných SGML dokumentů potřebovat početný komerční štáb. 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 CTAN: html2latex ### 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 transformuje do grafiky. LaTeX2HTML (CTAN: latex2html) 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. ### 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). Skúste priamu konverziu z LaTeXu do HTML (pozri Otázku Konverze do HTML); Prepíšte svoj dokument použijúc Texinfo (pozri Otázku Co je to Texinfo) a skonvertujte ho do HTML; Pozrite sa na Adobe Acrobat, elektronický systém na uchovávanie a prezeranie dokumentov. Tento systém môže zachovať úplne sadzbu Vášho dokumentu. (Pozri Otázku Vytváranie akrobatovských (PDF) dokumentov v TeXu.) 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, name a end sa používajú na definovanie základných hypertextových operácií spojenia jednotlivých častí dokumentu. Ďalšie detaily sú dostupné na `http://xxx.lanl.gov/hypertext/`. 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 akrobatovských (PDF) dokumentov v TeXu Existujú dve možnosti: (a) použiť program pdftex Han The Thanha pre priamy prevod z TeXu do PDF, alebo (b) previesť PostScript do PDF programom Distiller. V prvom prípade preložíte zdrojový súbor programom pdftex. pdftex spracováva dokument rovnakým spôsobom ako TeX, ale výstup je do PDF. Informácie o tomto programe sú na `http://www.cstug.cz/pdftex` V druhom prípade použijete program dvips, t.j. program konvertujúci DVI súbor do PS, teda PostScriptového súboru. Výsledok necháte spracovať programom Adobe Acrobat Distiller alebo, ešte jednoduchšie, ak používate počítač Mac alebo Windows TeX, môžete inštalovať Acrobat Exchange. Vtedy môžete nadefinovať ,,vytvárač`` PDF súboru ako ďalšiu tlačiareň. V tomto prípade ale nemôžete nadefinovať ďalšie hypertextové spojenia a teda to nie je dobrá cesta, hodí sa iba na jednoduché dokumenty. Preto je treba použiť Adobe Distiller, ktorý podporuje špeciálne postscriptovské operátory, tzv. `pdfmark`, pre prechod informácií do PDF súboru. 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 CTAN: hyperref a druhý je hyper od Michaela Mehlicha (CTAN: hyper). Potom použijete dvips (modifikovaný dvips) a preložíte DVI súbor do PostScriptu, ktorý je akceptovateľný pre program Distiller. Alternatívne, keď chcete použiť iba Acrobat, hyperref má v sebe tzv. ,,native PDF mode``, ktorý pracuje so štandardným dvips (a väčšinou iných prekladačov) a dáva všetky možnosti využitia `pdfmark`. Bohužiaľ Distiller nie je voľne dostupný program. Pokiaľ nemáte Acobat Reader, tak GhostScript (verzia 3.51 a neskoršie) môže zobrazovať PDF súbory. Čoskoro sa dočkáme aj prekladača z DVI do PDF formátu. Inou možnosťou je použiť ### 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 (CTAN: base) Davida Carlislea a GMLbase (`http://www.active-tex.demon.co.uk`). 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í.
| (c) 29.04.2002 16:18 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.