Sgmltexi (1) è un DTD e un sistema frontale per la composizione in Texinfo a partire da un formato SGML. L'idea alla base di Sgmltexi è quella di avere la possibilità di scrivere un documento Texinfo attraverso la semplificazione e la guida che può dare un sistema SGML.
All'interno di Sgmltexi, la gestione dei nodi di Texinfo può avvenire in modo automatico e trasparente, generando un menù Info unico nel nodo Top. I nomi dei nodi, quando sono generati automaticamente, usano stringhe del tipo «cap 1», «app A»,...
Sgmltexi ha uno schema preciso: ci possono essere una o più introduzioni iniziali; nella parte centrale c'è un corpo che può essere scomposto in vario modo; ci possono essere delle appendici; al termine possono apparire degli indici analitici. Il corpo è organizzato in capitoli, che possono essere raggruppati in parti ed eventualmente anche in tomi. In tal modo, si possono gestire facilmente anche documenti di grandi dimensioni.
Sgmltexi è un progetto che non viene più sviluppato, in considerazione del fatto che la documentazione GNU tende a migrare verso Docbook, pur garantendo la compatibilità con Texinfo. |
Sgmltexi è composto da due eseguibili Perl: sgmltexi e sgmltexi-sp2texi. Questi due file devono essere collocati in una directory in cui possono essere avviati senza bisogno di indicare il percorso; in pratica in una directory elencata all'interno della variabile di ambiente PATH.
Evidentemente, è necessario l'interprete Perl; precisamente questi programmi cercano il file /usr/bin/perl
. Se il proprio sistema operativo è organizzato diversamente, è necessario intervenire modificando la prima riga dei due eseguibili:
|
Sgmltexi si aspetta di trovare alcuni file:
/etc/sgmltexi/sgmltexi.cat
il catalogo SGML di Sgmltexi;
/etc/sgmltexi/sgmltexi.dcl
la dichiarazione SGML di Sgmltexi;
/etc/sgmltexi/sgmltexi.dtd
il DTD di Sgmltexi;
/etc/sgmltexi/entities/
la directory contenente i file delle entità SGML standard.
Tutti questi file dovrebbero trovarsi esattamente dove previsto; in alternativa si devono realizzare almeno dei collegamenti per ricreare i percorsi stabiliti.
I messaggi di Sgmltexi possono essere tradotti. Per installare i file PO già esistenti è necessario compilarli come nell'esempio seguente:
$
msgfmt -vvvv -o sgmltexi.mo it.po
[Invio]
In questo esempio, il file it.po
viene compilato generando il file sgmltexi.mo
. Questo file può essere collocato in /usr/share/locale/it/LC_MESSAGES/
, o in un'altra posizione analoga in base agli standard del proprio sistema operativo.
Se non è disponibile il modulo Perl-gettext, che serve a Sgmltexi per accedere alle traduzioni, è possibile eliminare il suo utilizzo e simulare la funzione di Gettext. In pratica si commentano le istruzioni seguenti:
|
Inoltre, si tolgono i commenti dalla dichiarazione della funzione fittizia gettext(), come si vede qui:
|
È il caso di riepilogare le dipendenze di Sgmltexi da altri applicativi:
Perl
dal momento che si tratta di un programma scritto in Perl, deve essere presente l'interprete relativo;
SP o Jade
per l'analisi SGML occorre il programma nsgmls che fa parte del pacchetto SP o anche del pacchetto Jade;
Perl-gettext
per accedere ai messaggi tradotti del programma, è necessario il modulo Perl-gettext, salva la possibilità di escluderne l'utilizzo come è già stato mostrato;
TeX e Texinfo
per arrivare a una composizione finale è necessario ovviamente disporre di Texinfo, che potrebbe già essere integrato nella propria distribuzione TeX (di solito si tratta di teTeX).
Una volta preparato il sorgente in formato Sgmltexi, bisogna utilizzare il programma sgmltexi per controllare l'elaborazione SGML e gli altri applicativi di composizione di Texinfo.
Di solito, la cosa migliore per iniziare lo studio di un sistema di composizione, è partire da un esempio banale, funzionante, che consenta di apprendere l'uso elementare degli strumenti relativi.
|
Supponendo di avere installato correttamente Sgmltexi (e anche Texinfo), supponendo inoltre che il file si chiami prova.sgml
, si possono usare i comandi seguenti:
$
sgmltexi --sgml-check prova.sgml
[Invio]
per verificare la correttezza formale dell'SGML;
$
sgmltexi --texi prova.sgml
[Invio]
per ottenere semplicemente il file prova.texinfo
, in formato Texinfo;
$
sgmltexi --info prova.sgml
[Invio]
per ottenere il file prova.info
, in formato Info;
$
sgmltexi --dvi prova.sgml
[Invio]
per ottenere il file prova.dvi
, in formato DVI;
$
sgmltexi --ps prova.sgml
[Invio]
per ottenere il file prova.ps
, in formato PostScript;
$
sgmltexi --pdf prova.sgml
[Invio]
per ottenere il file prova.pdf
, in formato PDF;
$
sgmltexi --html prova.sgml
[Invio]
per ottenere il file prova.html
, in formato HTML;
$
sgmltexi --xml prova.sgml
[Invio]
per ottenere il file prova.xml
, in formato XML di Texinfo;
$
sgmltexi --docbook prova.sgml
[Invio]
per ottenere il file prova.xml
, in formato XML di Docbook.
La sintassi di sgmltexi è quella che si vede nello schema seguente:
sgmltexi [opzioni] sorgente_sgml |
In generale, è bene che il nome del file sorgente in formato Sgmltexi abbia l'estensione standard .sgml
.
|
$
sgmltexi --sgml-syntax prova.sgml
[Invio]
Analizza la validità formale del sorgente prova.sgml
.
$
sgmltexi --ps prova.sgml
[Invio]
Genera un risultato in formato PostScript attraverso l'aiuto di texi2dvi e di dvips.
Daniele Giacomini, Sgmltexi
Gaetano Paolone, Sgmltexi, pacchetto GNU/Linux Debian
«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net