Make
a donation:
IBAN: IT36M0708677020000000008016 - BIC/SWIFT:
ICRAITRRU60 - VALERIO DI STEFANO or Privacy PolicyCookie PolicyTerms and Conditions a2 --- Sgmltexi: installazione e utilizzo
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.
312.1
Installazione di Sgmltexi
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:
#!/usr/bin/perl
...
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.
312.1.1 Gettext
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:
# Non si vuole usare gettext.
#use POSIX;
#use Locale::gettext;
#setlocale (LC_MESSAGES, "");
#textdomain ("sgmltexi");
Inoltre, si tolgono i commenti dalla dichiarazione della funzione fittizia gettext(), come si vede qui:
sub gettext
{
return $_[0];
}
312.1.2
Dipendenze
È 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).
312.2
Come si usa il programma frontale
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.
Opzione
Descrizione
--help
Mostra una guida sintetica e termina di funzionare.
--version
Mostra le informazioni sulla versione e termina di funzionare.
--force
Quando il contesto lo consente, forza le situazioni. Può essere utile in particolare per la composizione in formato Info e in formato HTML, per passare la stessa opzione al programma makeinfo.
--number-sections
Numera le sezioni quando ciò non è previsto in modo normale.
--clean
Elimina i file intermedi che non servono, abbinati al nome del sorgente.
--verbose
Mostra più informazioni durante l'elaborazione.
--input-encoding=codifica
Stabilisce la codifica del file in ingresso, tenendo conto che sono ammissibili solo le parole chiave ISO-8859-n, dove n va da 1 a 10.
--sgml-include=entità_parametrica
--include=entità_parametrica
Assegna la parola chiave INCLUDE all'entità parametrica SGML indicata. Questo serve ad abilitare l'inclusione di porzioni di sorgente SGML che sono controllate in questo modo.
--paper=formato_composizione
Serve a definire in qualche modo il formato finale stampato di composizione. Sono disponibili le parole chiave seguenti: letter, a4, a4wide, a4latex e small.
--setchapternewpage={on\ \|off|odd}
Definisce l'inizio dei capitoli nella composizione per la stampa, ignorando il marcatore <setchapternewpage content="..."> all'interno del sorgente del documento.
--footnotestyle={end|separate}
Definisce la collocazione delle note a piè pagina, ignorando il marcatore <footnotestyle content="..."> all'interno del sorgente.
Attiva o disattiva le intestazioni, specificando eventualmente l'uso di intestazioni uguali o distinte. Questa opzione fa ignorare il marcatore <headings content="..."> all'interno del sorgente del documento.
--sgml-syntax
--sgml-check
Controlla la correttezza formale del sorgente SGML, mostrando gli errori trovati.
--sp
Genera un risultato «post-SP», nel senso che restituisce soltanto quanto ottenuto dall'analizzatore SGML, a scopo diagnostico.
--texi
--texinfo
Genera un sorgente Texinfo.
--dvi
Compone generando un risultato in formato DVI.
--ps
--postscript
Compone generando un formato in PostScript.
--pdf
Compone generando un formato PDF.
--info
Generate un risultato in formato Info.
--text
Genera un risultato in formato testo puro.
--html
Genera un risultato in formato HTML.
--xml
Genera un risultato in formato XML di Texinfo.
--docbook
Genera un risultato in formato XML Docbook.
$ 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.