[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]

120. DocBook: introduzione ai suoi strumenti

DocBook è un DTD abbastanza famoso, che come tale rappresenta uno standard importante. DocBook è nato con lo scopo di descrivere documenti di carattere tecnico, e attualmente il suo sviluppo è mantenuto dal Davenport Group.

Come è noto, il DTD è solo la prima fase di un processo molto lungo, che porta alla fine alla composizione tipografica. La fama di DocBook è tale per cui gli strumenti a disposizione sono molti, e soprattutto differenti. Quando si installa un ipotetico pacchetto «DocBook» nel proprio sistema, ci si limita a collocare da qualche parte i file che compongono il DTD, eventualmente assieme alla sua documentazione, ma se mancano gli strumenti che sono in grado di utilizzarlo, si può fare poco o nulla.

Il DTD DocBook è molto sofisticato e complesso. Qui non si vuole entrare nel dettaglio della spiegazione della sua organizzazione interna, e nemmeno dell'uso dei suoi elementi SGML. Queste informazioni possono essere tratte dalla sua documentazione che dovrebbe accompagnarlo, e che comunque è disponibile presso http://www.oasis-open.org/docbook/.

120.1 Installazione del DTD

È stato descritto in precedenza in che modo potrebbero distribuirsi i file di diversi DTD, assieme a quelli delle entità, e in che modo queste informazioni vadano raccolte nel catalogo SGML. L'installazione del DTD DocBook implica la collocazione dei file del DTD e l'annotazione nel catalogo. Si presume che prima siano stati installati i file delle entità standard (ISO 8879), che sono precisamente 19. *1*

Si veda eventualmente quanto è stato descritto nel capitolo 117, e in particolare nella sezione 117.6.

Ciò che va aggiunto al catalogo generale è contenuto normalmente nel file docbook.cat, e come già è stato spiegato, dovrebbe essere lo stesso sistema di installazione dei pacchetti della propria distribuzione GNU/Linux a provvedere per questa sistemazione. Eventualmente, si può sempre fare a mano.

120.2 Esperimenti con il DTD e convalida

Per cominciare a fare qualche esperimento con il DTD DocBook, occorre almeno uno strumento di convalida, di solito il pacchetto SP di James Clark. Nella propria distribuzione GNU/Linux, questo pacchetto potrebbe essere disponibile da solo (come avviene nella distribuzione Debian), oppure assieme a Jade (come avviene nella distribuzione Red Hat). Quello che conta è, per iniziare, che sia disponibile l'eseguibile nsgmls.

Senza entrare nel dettaglio dell'SGML di DocBook, si può prendere l'esempio seguente come base per gli esperimenti.

<!DOCTYPE BOOK PUBLIC "-//Davenport//DTD DocBook V3.0//EN">
<book id=book>
<bookinfo>
  <bookbiblio>
    <title>Il mio primo libro con DocBook</title>
    <authorgroup>
      <author>
        <surname>Pallino</surname>
	<firstname>Pinco</firstname>
      </author>
    </authorgroup>
    <editor>
      <surname>Cai</surname>
      <firstname>Caio</firstname>
    </editor>
  </bookbiblio>
  <legalnotice>
    <para>Copyright &copy; 1999 Pinco Pallino</para>

    <para>This information is free; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
    published by the Free Software Foundation; either version 2 of the
    License, or (at your option) any later version.</para>
  </legalnotice>
</bookinfo>

<chapter>
<title>Primo capitolo</title>

<para>Contenuto del primo capitolo, bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.</para>

<para>bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla.</para>

<sect1>
<title>Prima sezione del primo capitolo</title>

<para>Contenuto della prima sezione, bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.</para>

<para>bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla.</para>

</sect1>
</chapter>
<appendix>
<title>Prima appendice</title>

<para>Contenuto della prima appendice, bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.</para>

<para>bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla.</para>

</appendix>

</book>

La verifica si fa nel modo già visto tante altre volte. Supponendo di voler fare riferimento al catalogo contenuto nel file /usr/lib/sgml/catalog, e supponendo di avere chiamato il sorgente SGML libro.sgml:

nsgmls -s -c /usr/lib/sgml/catalog libro.sgml

Eventualmente, se il pacchetto di programmi che conteneva SP è stato compilato in modo coerente con l'impostazione SGML della propria distribuzione, potrebbe non essere necessario indicare espressamente il file del catalogo:

nsgmls -s libro.sgml

A questo punto, disponendo di un analizzatore SGML che funziona correttamente con questo DTD, si potrebbero realizzare i propri strumenti per la trasformazione in un risultato adatto alla consultazione: cartacea o elettronica. Di solito, si fa affidamento per questo su Jade.

120.3 Jade

Jade è un applicativo in grado di elaborare i dati provenienti da SP, e attualmente, trattandosi di un lavoro dello stesso autore, James Clark, di solito include anche SP. Lo scopo di Jade è quello di generare un risultato finale pronto per la lettura, oppure pronto per l'ultima fase di composizione elettronica. Per arrivare a questo, utilizza dei «fogli di stile», scritti secondo il linguaggio DSSSL.

I fogli di stile necessari a Jade per poter elaborare un documento SGML redatto secondo il DTD DocBook, vengono installati normalmente attraverso un pacchetto apposito, il cui nome potrebbe essere «stylesheets», «docbook-stylesheets», o qualcosa di simile. In ogni caso, le dipendenze tra i pacchetti dovrebbero impedire di dimenticarsene.

In generale, i fogli di stile non si toccano.

Anche l'installazione di Jade richiede l'aggiornamento nel catalogo generale SGML. Dovrebbe trattarsi del file dsssl.cat, il cui contenuto viene aggiunto manualmente, o automaticamente, al catalogo generale del sistema SGML della propria distribuzione GNU/Linux.

120.3.1 Utilizzo di Jade

Si è accennato al fatto che Jade utilizza SP. Per la precisione, è Jade che avvia l'eseguibile nsgmls (cioè SP), passandogli tutti gli argomenti della riga di comando che lo riguardano.

jade [<opzioni>] <file-sgml>

L'eseguibile jade, per funzionare, ha bisogno di un foglio di stile iniziale, da abbinare al documento SGML, in base al tipo di trasformazione che si vuole ottenere. Se questa informazione non viene fornita (con l'opzione -d), jade cerca un file con la stessa radice di quello SGML, con estensione .dsl. Di solito, dal momento che si utilizzano fogli di stile già pronti, se ne farà riferimento nella riga di comando.

Alcune opzioni specifiche

Oltre alle opzioni di SP, Jade riconosce in particolare le opzioni seguenti.

-d <file-delle-specifiche-dsssl>

Questa opzione permette di indicare il file contenente il foglio di stile DSSSL che si vuole sia utilizzato per l'elaborazione. Quando si utilizzano fogli di stile già pronti, l'uso di questa opzione è praticamente obbligatorio.

-t <tipo-di-trasformazione>

Questa opzione permette di definire il tipo di trasformazione che si intende ottenere; ciò attraverso una parola chiave che segue l'opzione come argomento. In particolare, meritano attenzione:

-o <file-risultato>

Quando la trasformazione che si intende fare genera un solo file, questa opzione consente di definirne il nome, che altrimenti è lo stesso del sorgente, con l'estensione modificata opportunamente, in base al tipo di contenuto.

Esempi

jade -d /usr/lib/sgml/stylesheets/cygnus-both.dsl -t rtf libro.sgml

Viene avviata la trasformazione del file libro.sgml in RTF, generando quindi il file libro.rtf, utilizzando il foglio di stile /usr/lib/sgml/stylesheets/cygnus-both.dsl, che rappresenta la scelta standard per DocBook.

jade -d /usr/lib/sgml/stylesheets/cygnus-both.dsl -t tex libro.sgml

Come nell'esempio precedente, con la differenza che viene generato il file libro.tex in formato TeX (adatto a JadeTeX).

jade -d /usr/lib/sgml/stylesheets/cygnus-both.dsl -t sgml -i html libro.sgml

In questo caso si generano una serie di file HTML, i cui nomi sono standard, e si riconoscono perché hanno l'estensione .htm. Si osservi l'utilizzo della conversione in SGML, con l'aggiunta dell'opzione -i. Questa viene passata direttamente a SP, e serve per dichiarare l'entità parametrica denominata html, che viene riconosciuta poi nel foglio di stile.

120.3.2 JadeTeX

JadeTeX è un componente del sistema di composizione TeX. Di solito è separato in un pacchetto indipendente rispetto alla distribuzione TeX che si utilizza, ma quando lo si installa, è importante che si tratti di un pacchetto della stessa serie del tipo di TeX che si utilizza. In altri termini, a meno di essere degli esperti di TeX, non conviene installare un pacchetto JadeTeX preparato da una distribuzione GNU/Linux differente da quella che si utilizza effettivamente.

Lo scopo di JadeTeX è quello di generare una composizione in formato DVI, o in PDF, partendo da un sorgente TeX ottenuto da Jade:

jadetex <sorgente-tex-generato-da-jade>

pdfjadetex <sorgente-tex-generato-da-jade>

Evidentemente, nel primo caso si ottiene una composizione in DVI, mentre nel secondo in PDF. *2*

120.3.3 Script più comodi

Jade dovrebbe essere accompagnato da alcuni script che semplificano il suo utilizzo per DocBook. Si tratta di db2ps, db2pdf, db2rtf, db2html e altri. Il significato dei nomi è evidente: «da DocBook a»... La loro sintassi è molto semplice:

db2ps <file-sgml-docbook>

db2pdf <file-sgml-docbook>

db2rtf <file-sgml-docbook>

db2html <file-sgml-docbook>

Intuitivamente si comprende che ciò che si ottiene è, a seconda dei casi, un file in PostScript, PDF o RTF, dove la radice del nome è la stessa del sorgente, mentre l'estensione cambia di volta in volta. Nel caso della trasformazione in HTML, si ottiene una directory contenente una serie di file HTML.

120.4 Riferimenti

---------------------------

Appunti Linux 1999.09.21 --- Copyright © 1997-1999 Daniele Giacomini --  daniele @ pluto.linux.it


1.) Di solito si tratta del pacchetto denominato «sgml-base», o qualcosa di simile. Questo pacchetto potrebbe contenere anche molti più file di quelli previsti dallo standard ISO 8879.

2.) Nel momento in cui questo viene scritto, JadeTeX non ha ancora raggiunto un livello di sviluppo soddisfacente.


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]