Obsah
Pro efektivní vytváření dokumentů v DocBooku samozřejmě potřebujeme editor, který nám maximálně usnadní práci. Nyní se podíváme na XML editory, které se ve spojení s DocBookem nejčastěji používají. Ukážeme si, jak je připravit pro editování dokumentů v DocBooku. Mnoho editorů se přitom dnes dodává již se zabudovanou podporou DocBooku – obsahují DTD i styly pro následnou konverzi DocBooku do výstupních formátů.
XMLmind XML Editor je WYSIWYG editor XML, který je pro osobní použití zdarma. Uživatelské rozhraní není sice tak příjemné jako u editorů Epic a XMetaL, ale jeho nedostatky v mnoha případech vyváží cena (je zdarma i pro komerční využití). Navíc se dodává s předkonfigurovanou podporou DocBooku a zvládá editování dokumentů rozdělených pomocí entit nebo XInclude do několika souborů.
Placená verze umožňuje i snadné spouštění konverze DocBooku do různých výstupních formátů.
oXygen je v dnešní době asi jeden z nejlepších editorů XML na úrovni zdrojového kódu. Ihned po instalaci obsahuje podporu DocBooku – DTD i styly.
Nastavení Emacs a PSGML je podrobně popsáno v několika publikacích, proto se jím nebudeme detailně zabývat [SGML-NT], [GNU-WWW].
jEdit je editor napsaný v Javě a nabízí pomocí plug-inů poměrně komfortní prostředí pro editování dokumentů XML, včetně doplňování elementů a atributů na základě DTD. Pro pohodlnou práci s XML je užitečné nastavení, kdy kromě dokumentu vidíme vlevo jeho stromovou strukturu, vpravo se nám nabízejí podle DTD elementy ke vložení a v dolní části vidíme seznam chyb. Toto rozložení můžeme nastavit pomocí příkazu → . Nyní vybereme → . Pro okno Structure Browser nastavíme dokovací pozici left, pro XML Insert right a pro Error List bottom.
Dokument si můžeme nechat kdykoliv zvalidovat nebo zkontrolovat alespoň well-formedness. Stačí jej uložit, při ukládání se automaticky spustí parser a v okně Error List si můžeme prohlédnout jednotlivé chyby.
Pro editování dokumentů v DocBooku je vhodné přidat si do jEditu
katalogový soubor, který zamezí načítání DTD ze sítě. Zvolíme opět
c:\docbook\dtd\docbook.cat
.
Pro automatické doplnění
za neslabičné předložky lze použít
plug-in tildify.
Epic je dodáván již s několika předinstalovanými DTD. Nejlépe nakonfigurované je DTD, které vychází z DocBooku 4 a přidává do něj podporu pro vkládání matematických vzorců. Editor je pro toto DTD velice dobře nakonfigurován a to se netýká jen stylů. Podle kontextu v dokumentu se například mění význam klávesy Enter – v odstavci její stisk způsobí vytvoření nového odstavce, v nadpisu pak vložení prvního odstavce za nadpis, ve výpisu programu přechod na nový řádek. V liště programu přibudou tlačítka pro snadnu změnu formátování či pro vytváření seznamů. Podobné chování lze samozřejmě vytvořit pro libovolné DTD, ale přece jen to jen to určitý čas zabere.
Pokud si k Epicu dokoupíte publikační moduly, umí editor sám docbookové dokumenty formátovat pro tisk, převádět do HTML, HTML Helpu a dalších formátů. Standardně je podporována profilace dokumentu pro různé skupiny čtenářů – v dokumentu stačí pomocí příznaků označit vybrané elementy, při tisku si pak můžeme vybrat profil, pro který se bude výstup generovat.
S Epicem je standardně dodávána i zcela běžná SGML verze DocBooku 4.0. My si v následujícím textu popíšeme, jak do Epicu přidat podporu standardní XML verze DocBooku.
Pokud pro zpracování DocBooku budeme používat i jiné aplikace než Epic, patrně nám nebude vyhovovat použití upravené verze DocBooku. Nezbude nám nic jiného, než do Epicu přidat standardní XML verzi DocBooku.
Pro úspěšnou instalaci potřebujeme Epic Editor a Epic Architect
a samozřejmě DTD pro DocBook. Následující postup předpokládá, že Epic
je nainstalován v adresáři f:\program
files\epic
a že DTD pro DocBook máme v adresáři
e:\sgml\dtd\dbx412
. Pokud máte
soubory v jiných adresářích, musíte v postupu odpovídajícím
způsobem zaměnit adresáře.
Celá instalace se skládá z několika kroků.
Vytvoření adresářů pro naše vlastní DTD
Uživatelem definovaná DTD je dobré nahrát do jiného adresáře, než do toho, kde je Epic nainstalován. Ušetříme si tak problémy při případném reinstalaci nebo upgradu programu.
Na libovolném místě na disku si vytvoříme adresář (např.
f:\epic
) a v něm vytvoříme
čtyři podadresáře se jmény doctypes
, entities
, graphics
a lib
.
Nastavení cest v Epic Editoru a Epic Architectu
Spustíme Epic Editor nebo Epic Architect a z menu vybereme příkaz → . Přepneme se na záložku File a do polí Catalog Path, Graphics Path a Entities Path doplníme cestu k námi vytvořeným adresářům (viz obrázek 10.2 – „Nastavení cest v Epicu“).
Změny uložíme stiskem tlačítka
.Zkompilování DTD DocBook do interního formátu Epicu
DTD bychom měli zkompilovat do pracovního adresáře, odkud se pak
bude instalovat. Epic
Architect si pracovní adresář načítá z proměnné
prostředí HOME
. V našem ukázkovém postupu jsem
proměnnou nastavil na hodnotu e:\home
.
Spustíme Epic Architect. V menu aktivujeme volbu . Vybereme příkaz → . Do dialogového okna vyplníme údaje jako na obrázku 10.3 – „Import DTD pro DocBook“. Stačí vyplnit námi zvolený název, cestu k DTD a cestu ke stylům pro upravený DocBook od ArborTextu – tím vyřešíme problém se zobrazováním dokumentů.
Tlačítkem
pak spustíme import.Průběh importu
Na začátku importu se kompilátor ptá, jaký veřejný identifikátor má používat pro dané DTD (viz obrázek 10.4 – „Nastavení veřejného identifikátoru“).
Během importu Epic Architect nenajde entitu, která obsahuje fragment DTD pro tvorbu tabulek. Cestu k tomuto souboru musíme zadat ručně (viz obrázek 10.5 – „Ruční zadání cesty k entitě, kterou nelze nalézt“).
Nakonec se nás program zeptá na kořenový element. Většinou
budeme v DocBooku asi vytvářet knihy, vybereme proto book
(viz obrázek 10.6 – „Volba kořenového elementu“).
Někdy instalace skončí neúspěšně s chybovým hlášením o špatném DTD.
Epic Architect se v tomto případě chybně přepnul do SGML režimu. Stačí v menu znovu vybrat XML režim ( → ).
Instalace nového DTD do editoru
Po kompilaci ještě musíme DTD nainstalovat. Vybereme příkaz
f:\epic\doctypes
) – obrázek 10.7 – „Výběr místa, kam se má DTD nainstalovat“.
Dále si musíme zvolit jméno, pod kterým nám bude Epic Editor nabízet naše DTD při vytváření nových dokumentů (viz obrázek 10.8 – „Výběr názvu pro naše DTD“). Pokud chceme vytvořit šablonu pro nové dokumenty, musíme zaškrtnout volbu Add.
Na výzvu pro zadání souborů se šablonou, zadáme jako jméno
souboru template.xml
(obrázek
10.9 – „Výběr souborů se šablonou“).
Upravení šablony pro nové dokumenty
V šabloně pro nové dokumenty, která se nám přidá do
Epicu, je špatně doplněný (nebo chybí)
systémový identifikátor. Pro lepší přenositelnost dokumentů je vhodné
nahradit ho standardní hodnotou. Otevřeme soubor e:\epic\doctypes\docbookx\template.xml
a
opravíme ho na:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd"> <book><?Pub Caret1?></book>
V případě potřeby můžeme změnit použité kódování nebo doplnit poněkud větší kostru dokumentu. Instrukce pro zpracování určuje místo, kam se umístí kurzor po otevření nového dokumentu.
Epic se zpracováním českých znaků nemá žádné problémy. Standardně pracuje v kódování UTF-8, ale zvládá i ISO-8859-2. Pokud chceme, aby Epic používal jiné kódování než UTF-8, stačí ve stávajících dokumentech zaměnit informaci o kódování v XML deklaraci, pro nové dokumenty se kódování přebírá ze šablony (více viz předchozí sekce).
Standardně se české znaky ukládají jako odkazy na odpovídající
entity (é
apod.). Pokud
chceme, aby se znaky ukládaly přímo, stačí aktivovat volbu → → → .
XMetaL 1.x a 2.0 používá vlastní katalogové soubory, proto je dobré pro
bezproblémovou práci přidat položky pro DocBook do souboru extid.map
, který je v adresáři
s instalací XMetaLu. Do souboru přidáme řádky:
# # DocBook # "-//OASIS//DTD DocBook XML V4.3//EN" ! "c:\docbook\dtd\docbookx.dtd" ! "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" "c:\docbook\dtd\docbookx.dtd"
Při prvním otevření dokumentu, který používá toto DTD si ho XMetaL zkompiluje. Při první kompilaci mu občas musíme pomoci nalézt nějaké entity, pak už však vše pracuje tak, jak má.
Pro pohodlnou práci v editoru musíme mít odpovídající CSS styl definující zobrazení dokumentu a je dobré upravit pravidla pro DocBook – editor pak rozpozná, co je obrázek, co seznam apod.
Kromě toho lze editor plně přizpůsobit pomocí zabudovaného skriptovacího jazyka (JScript, VBScript a další).
XMetaL 1.x a 2.0 bohužel nepodporuje Unicode, takže v něm nelze rovnou psát dokumenty v češtině. Nicméně lze editor „znásilnit“ tak, aby v něm šlo psát dokumenty v kódování windows-1250.
Nejprve musíme upravit hodnoty několika parametrů v souboru
xmetal.ini
v adresáři s XMetaLem:
export_convert_to_ISOlat1 = false export_convert_to_ISOnum = false export_convert_remainder_to_char_ref = false import_convert_ISOlat1 = false import_convert_ISOnum = false import_convert_char_ref = false
V kaskádovém stylu pak musíme nastavit font, který má ve svém názvu na konci CE.
Nová verze XMetaLu přináší mnohá vylepšení. Konečně jsou
podporovány standardní katalogové soubory. Pro bezproblémové editování
docbookových dokumentů stačí do souboru c:\Program
Files\SoftQuad\XMetaL 2\Rules\catalog
přidat řádku, která
odkazuje na katalog pro DocBook DTD.
CATALOG "c:\docbook\dtd\docbook.cat"
Provozujete-li XMetaL 2.1 ve Windows 2000/NT je k dispozici podpora Unicode. Lze tak bez problémů psát české texty. Editor podporuje pouze kódování UTF-8 a UTF-16.
Chceme-li, aby editor lépe zobrazoval dokumenty a usnadňoval editaci, musíme mít k dispozici kaskádový styl a soubor s úpravami. Ukázka těchto souborů je dostupná na adrese http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/docbook/contrib/tools/xmetal/.
Postup úprav nejnovější verze XMetaLu je podobný jako u předchozích verzí, ale je potřeba mít k dispozici vývojové prostředí XMetaL Developer. Úpravy XMetaLu pro komfortní použití s DocBookem je možné získat na komerční bázi.