Du kan oversætte SGML filerne til HTML, PDF, Postscript og RTF. Der er også mulighed for at vælge at oversætte SGML til én HTML-fil og ikke til mange, opdelt for hver <sect1>. Oftest har én stor HTML fil ikke megen interesse, idet den ofte bliver meget stor.
Du oversætter din hoved SGML fil (f.eks. bog.sgml) til HTML ved at skrive db2html bog.sgml. Dine HTML filer gemmes i bog under dit nuværende katalog, fordi SGML-filen hedder bog.sgml.
Du skal selv sørge for at kopiere dine billed-filer (f.eks. PNG) til kataloget bog. Typisk kan dette gøres med en Makefile.
Tilsvarende kan man oversætte bog.sgml til PDF ved at skrive db2pdf bog.sgml. Igen skal alle billed-filer (typisk PNG) være placeret der hvor SGML-filerne oversættes. Jeg kopierer normalt alle de filer til et midlertidigt katalog og oversætter der.
Skal man oversætte til Postscript hedder kommandoen db2ps og RTF laves med db2rtf.
Har du lavet fejl i din SGML-tekst, så er den oversætter man har i db2html faktisk til stor hjælp. Vi skal så på et par eksempler.
Eksempel 3-1. Manglende /para
Lad os prøve at oversætte følgende tekst
<!doctype book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
]>
<book id="index" lang="da">
<bookinfo>
<title>Min første Docbook-bog</title>
</bookinfo>
<chapter id="forord">
<title>Mit første kapitel</title>
<para>
Vil du skrive i Docbook ?
</para>
<para>
Ja - men jeg kan ikke huske at slutte mine para-blokke.
</chapter>
</book>
|
Filen eks1.sgml oversættes nu
[root@MinMaskine /root]# db2html eks1.sgml TMPDIR is DBTOHTML_OUTPUT_DIR3088 input file was called eks1.sgml -- output will be in eks1 working on ../eks1.sgml jade:../eks1.sgml:24:9:E: end tag for "PARA" omitted, but OMITTAG NO was specified jade:../eks1.sgml:19:0: start tag was here about to copy cascading stylesheet and admon graphics to temp dir about to rename temporary directory to eks1 |
For det første laves et temporært katalog DBTOHTML_OUTPUT_DIR3088, og resultatet vil ende i eks1/ idet filen hedder eks1.sgml. Man får to ret klare fejlbeskeder. I linie 24 (næstsidste linie) må der ikke komme en </chapter>, når der bør komme en slut PARA, dvs. </para>. Den følgende linie fortæller dernæst at i linie 19 var den <para>, som ikke kunne matches.
Tilføj en </para> før næst-sidste linie og teksten oversætter fejlfrit.
Eksempel 3-2. To ens ID
Lad os prøve at oversætte følgende tekst
<!doctype book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
]>
<book id="index" lang="da">
<bookinfo>
<title>Eksempel</title>
</bookinfo>
<toc id="toc"></toc>
<chapter id="id1">
<title>Mit første kapitel</title>
<para>
Vil du skrive i Docbook ?
</para>
<sect1 id="id1">
<title>Mit første underkapitel</title>
<para>
tekst1
</para>
</sect1>
</chapter>
</book>
|
Filen eks2.sgml oversættes nu
[root@MinMaskine /root]# db2html eks2.sgml TMPDIR is DBTOHTML_OUTPUT_DIR3110 input file was called eks2.sgml -- output will be in eks2 working on ../eks2.sgml jade:../eks2.sgml:19:11:E: ID "ID1" already defined jade:../eks2.sgml:12:13: ID "ID1" first defined here about to copy cascading stylesheet and admon graphics to temp dir about to rename temporary directory to eks2 |
Her ses at ID1 er erklæret to gange - og der oplyses hvilke steder der sker. Omdefiner den ene og oversæt igen.