[successivo]
[precedente]
[inizio]
[fine]
[indice generale]
[docinfo]
[Indice analitico]
Capitolo 15. Gestione di «Appunti di informatica libera»
Questo capitolo descrive l'organizzazione del sorgente di Appunti di informatica libera, in modo da consentire una comprensione migliore del funzionamento di Alml.
15.1
Articolazione dei file del sorgente
Il sorgente di Appunti di informatica libera è composto da un file principale, molto grande, che fa riferimento ad altri file esterni per vari motivi:
.
|-- riduzioni/
| `-- ...
|
|-- figure/
| `-- *.png
|
|-- ortografia/
| |-- errorieccezioni
| |-- minimo.aff
| |-- minimo.hash
| |-- minimo.sml
| |-- particolari
| `-- vocabolario
|
|-- ospiti/
| `-- lavoro_ospitato/
| `...
|
|-- .textchk.rules --> ortografia/errorieccezioni
|-- .textchk.special --> ortografia/particolari
|-- Makefile
`-- a2-nnnnn.sgml
|
|
I file .textchk.rules
e .textchk.special
, ovvero ortografia/errorieccezioni
e ortografia/particolari
, servono per l'uso di Textchk; mentre i file rimanenti nella directory ortografia/
riguardano Ispell.
15.2
Inclusione selettiva dei file esterni ed entità speciali
L'inclusione dei file esterni, nel blocco principale, avviene per mezzo di istruzioni SGML del tipo seguente, dove si dichiara un'entità a cui si abbina il contenuto di un file intero:
<!ENTITY CONTR-LDR-free SYSTEM "ospiti/LDR/inclusi/LDR-corpo-free.sgml">
|
|
Altri pezzi ricorrenti di codice SGML sono dichiarati come entità interne, come questa:
<!ENTITY ALCOPY.TEXT
'
<endofchapter>&ALOPERA; 2004.05.20 <![%SHORTTYPESETTING;[test]]> ---
<em>Copyright © &ALPERIODO; Daniele Giacomini --
daniele @ swlibero.org </em><![%ANNOTAZIONI;[ --- si prega di non diffondere
questa bozza]]></endofchapter>
'>
|
|
A seconda della circostanza, può essere necessario includere tali file o tali entità, oppure evitare la cosa. Per esempio, in una composizione che genera un file HTML unico non è il caso di ripetere certe informazioni sul copyright alla fine di ogni capitolo. Per questa e per altre ragioni, si utilizzano delle entità parametriche che nel sorgente vengono dichiarate in modo da disabilitarle:
<!ENTITY % HTML "IGNORE">
<!ENTITY % PLAINHTML "IGNORE">
<!ENTITY % POSTSCRIPT "IGNORE">
<!ENTITY % PLAINPOSTSCRIPT "IGNORE">
<!ENTITY % LEGGIMI "IGNORE">
<!ENTITY % ANNOTAZIONI "IGNORE">
<!ENTITY % SENZACONTROLLO "IGNORE">
<!ENTITY % OBSOLETO "IGNORE">
|
|
Queste entità parametriche controllano la dichiarazione di entità normali e l'inclusione di testo normale, come si può vedere nell'estratto semplificato che segue:
<![%POSTSCRIPT;[
<!ENTITY ALCOPYINGTOMO "&ALCOPYINGTOMO.TEXT;">
<!ENTITY ALCOPYINGPARTE "&ALCOPYINGPARTE.TEXT;">
<!ENTITY ALCOPY "&ALCOPY.TEXT;">
<!ENTITY ALDEDICA "&ALDEDICA.TEXT;">
<!ENTITY LDRCOPYINGTOMO SYSTEM "ospiti/LDR/formalita/copying-tomo.sgml">
<!ENTITY LDRCOPYINGPARTE SYSTEM "ospiti/LDR/formalita/copying-parte.sgml">
<!ENTITY LDRCOPY SYSTEM "ospiti/LDR/formalita/copy.sgml">
]]>
<![%PLAINPOSTSCRIPT;[
<!ENTITY ALCOPYINGTOMO "">
<!ENTITY ALCOPYINGPARTE "">
<!ENTITY ALCOPY "">
<!ENTITY ALDEDICA "&ALDEDICA.TEXT;">
<!ENTITY LDRCOPYINGTOMO SYSTEM "ospiti/LDR/formalita/copying-tomo.sgml">
<!ENTITY LDRCOPYINGPARTE "">
<!ENTITY LDRCOPY "">
]]>
|
|
Se tutte le entità parametriche viste in precedenza restano al valore originale (IGNORE), nessuna delle dichiarazioni che si vedono qui viene presa in considerazione. Se invece una di queste entità contiene il valore INCLUDE, allora le dichiarazioni relative hanno significato.
Il sistema controlla l'abilitazione di queste entità parametriche attraverso l'opzione --sgml-include=entità_parametrica, come per esempio nel comando necessario a generare una composizione in PostScript:
$
alml --ps --verbose
\
\--sgml-include=POSTSCRIPT
\
\--sgml-include=SENZACONTROLLO
\
\--sgml-include=OBSOLETO
\
\mio_file.sgml
[Invio]
Questa abilitazione preventiva prende il sopravvento sulla dichiarazione di esclusione (IGNORE) interna al sorgente e si ottiene il risultato desiderato.
Anche la dichiarazione delle entità normali segue la regola per cui vale ciò che è stato definito per primo. Pertanto, per evitare problemi, dopo la dichiarazione condizionata all'attivazione delle entità parametriche, viene ripetuta una dichiarazione di tali entità in modo predefinito:
<!ENTITY ALCOPYINGTOMO "&ALCOPYINGTOMO.TEXT;">
<!ENTITY ALCOPYINGPARTE "&ALCOPYINGPARTE.TEXT;">
<!ENTITY ALCOPY "&ALCOPY.TEXT;">
<!ENTITY ALDEDICA "&ALDEDICA.TEXT;">
<!ENTITY LDRCOPYINGTOMO SYSTEM "ospiti/LDR/formalita/copying-tomo.sgml">
<!ENTITY LDRCOPYINGPARTE SYSTEM "ospiti/LDR/formalita/copying-parte.sgml">
<!ENTITY LDRCOPY SYSTEM "ospiti/LDR/formalita/copy.sgml">
|
|
Successivamente, nel corpo del file principale appare il richiamo alle entità relative per indicare il punto di inserzione del loro contenuto:
<tomeheading>
Primo approccio, architettura e filosofia del sistema operativo
</tomeheading>
&ALCOPYINGTOMO;
<h0>
Il software e le licenze
</h0>
&ALCOPYINGPARTE;
<h1>
...
|
|
Le tabelle 15.1 e 15.2 riepilogano le entità parametriche che controllano il sorgente di Appunti di informatica libera e le entità normali più importanti.
Tabella 15.1. Significato delle entità parametriche più importanti, usate nel sorgente di Appunti di informatica libera.
Macro SGML | Significato se attiva |
%HTML;
| Composizione HTML normale. |
%PLAINHTML;
| Composizione HTML su una pagina unica. |
%POSTSCRIPT;
| Composizione PostScript o PDF normale. |
%PLAINPOSTSCRIPT;
| Composizione PostScript speciale per risparmiare spazio. |
%LEGGIMI;
| Controlla l'inclusione di alcune note introduttive. |
%ANNOTAZIONI;
| Composizione con annotazioni per uso interno. |
%SENZACONTROLLO;
| Composizione completa di ciò che non viene controllato ortograficamente. |
%OBSOLETO;
| Composizione completa di informazioni ritenute obsolete o incomplete. |
Tabella 15.2. Significato di alcune entità importanti, usate nel sorgente di Appunti di informatica libera.
Macro SGML | Contenuto |
&ALOPERA;
| Il nome dell'opera. |
&ALOPERAEMAIL;
| L'indirizzo o gli indirizzi di posta elettronica di riferimento. |
&ALPERIODO;
| L'anno o gli anni del copyright. |
&ALEDIZIONE;
| Edizione, scritta possibilmente come data. |
15.3
Composizione guidata con il file-make
Il pacchetto dei sorgenti di Appunti di informatica libera include il file Makefile
, per facilitare la composizione dell'opera. La tabella 15.3 riepiloga i comandi principali.
Tabella 15.3. Comandi relativi al file-make di Appunti di informatica libera.
Comando | Risultato |
make clean | Ripulisce da tutti i file non indispensabili. |
make check | Analizza la sintassi SGML. |
make spell | Utilizza Ispell per l'analisi del vocabolario. |
make textchk | Utilizza Textchk per l'analisi sintattica. |
make urichk | Utilizza Checkbot per il controllo degli URI. |
make draftdvi | Composizione bozza in DVI. |
make dvi | Composizione finale in DVI. |
make draftps | Composizione bozza in PostScript. |
make ps | Composizione finale in PostScript. |
make longps | Composizione finale in PostScript compatto e ridotto. |
make extralongps | Composizione finale in PostScript compatto e ultra ridotto. |
make largeps | Composizione finale in PostScript, orizzontale, compatto e ridotto. |
make extralargeps | Composizione finale in PostScript, orizzontale, compatto e ultra ridotto. |
make draftpdf | Composizione bozza in PDF. |
make pdf | Composizione finale in PDF. |
make drafthtml | Composizione bozza in HTML. |
make html | Composizione finale in HTML. |
make html-text | Composizione finale in HTML a pagina singola. |
make text | Composizione finale in formato testo puro. |
Editoria elettronica con Alml 2004.05.20 --- Copyright © 2000-2004 Daniele Giacomini -- daniele @ swlibero.org
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome gestione_di_171_appunti_di_informatica_libera_187.html
[successivo]
[precedente]
[inizio]
[fine]
[indice generale]
[docinfo]
[Indice analitico]
