[>a2181.html>] [<a2179.html<] [^a2.html^]


Capitolo 140.   Sgmltexi: installazione e utilizzo

Sgmltexi è 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 lavoro derivato dall'esperienza fatta con ALtools e Alml, ovvero i sistemi di composizione di Appunti Linux e di Appunti di informatica libera.

140.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:

Tutti questi file dovrebbero trovarsi esattamente dove previsto; in alternativa si devono realizzare almeno dei collegamenti per ricreare i percorsi stabiliti.

140.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

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:

# We *don't* want to use 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];
}

140.1.2   Dipendenze

È il caso di riepilogare le dipendenze di Sgmltexi da altri applicativi:

140.2   Come si usa il programma frontale

Una volta preparato il sorgente Sgmltexi, bisogna utilizzare il programma sgmltexi per controllare l'elaborazione SGML e gli altri applicativi di composizione di Texinfo.

140.2.1   Esempio iniziale

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.

<!DOCTYPE Sgmltexi PUBLIC "-//GNU//DTD Sgmltexi//EN">
<sgmltexi lang="it">
<head>
    <admin>
        <setfilename content="esempio.info">
        <settitle content="Esempio">
    </admin>
    <titlepage>
        <title>Esempio</title>
        <subtitle>Un esempio per un documento in formato Sgmltexi</subtitle>
        <abstract>
            <p>Questo è solo un esempio di un documento scritto
            utilizzando Sgmltexi.</p>
        </abstract>
        <author>Pinco Pallino &lt;ppinco@dinkel.brot.dg&gt;</author>
        <legal>
            <copyright>Copyright &copy; 2000 Pinco Pallino</copyright>
            <license>
                <p>Permission is granted to copy, distribute and/or
                modify this document under the terms of the GNU Free
                Documentation License, Version 1.1 or any later version
                published by the Free Software Foundation; with no
                Invariant Sections, with no Front-Cover Texts, and with
                no Back-Cover Texts. A copy of the license is included
                in the section entitled "GNU Free Documentation
                License".</p>
            </license>
        </legal>
    </titlepage>
    <contents>
</head>
<body>
<h1>Esempio generale</h1>

<p>Questo è l'esempio tipico di un capitolo di Sgmltexi...</p>

<p>Non c'è molto da scrivere in questo caso...</p>

</body>
</sgmltexi>

Supponendo di avere installato correttamente Sgmltexi (e anche Texinfo), supponendo inoltre che il file si chiami prova.sgml, si possono usare i comandi seguenti:

140.2.2   $ sgmltexi

La sintassi di sgmltexi è quella che si vede nello schema seguente:

sgmltexi [opzioni] sorgente_sgml

In generale, è bene che il nome del file sorgente Sgmltexi abbia l'estensione standard .sgml.

Opzioni
--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, per passare la stessa opzione al programma makeinfo.

--clean

Elimina i file intermedi che non servono, abbinati al nome del sorgente.

--deriv=derivazione

Definisce il nome della derivazione. In mancanza di questa indicazione si sottintende MAIN.

--sgml-include=entità_parametrica | --include=entità_parametrica

Assegna la parola chiave INCLUDE all'entità parametrica 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.

--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.

Esempi

sgmltexi --sgml-syntax prova.sgml

Analizza la validità formale del sorgente prova.sgml.

sgmltexi --ps prova.sgml

Genera un risultato in formato PostScript attraverso l'aiuto di texi2dvi e di dvips.

140.3   Riferimenti

Appunti di informatica libera 2000.07.31 --- Copyright © 2000 Daniele Giacomini --  daniele @ swlibero.org

[>a2181.html>] [<a2179.html<] [^a2.html^]