Parte xxiia2.pluto.it/a2/alml.pdf · Distinzione nell’uso dei nomi degli applicativi ......

486
Parte xxii ALML « Introduzione ad ALML ................................... 883 Esigenze che Alml intenderebbe soddisfare .............. 883 Tutto in uno .......................................... 884 Continuità tra documento stampato e documento elettronico 885 Perché SGML ........................................ 885 Capitoli sullo stile usato per a2 ......................... 886 Preparazione e visione generale ........................... 887 Installazione di Alml .................................. 889 Esempio iniziale ...................................... 891 Cosa si genera con la composizione ..................... 898 Sintassi nell’uso del programma frontale ................ 902 Codifica del sorgente .................................. 910 Organizzare un file-make o uno script ................... 911 Formati particolari .................................... 915 Progetti di documentazione che utilizzano il formato di Alml 918 Il documento secondo Alml ............................... 919 Organizzazione generale ............................. 920 Dalla copertina all’indice generale ....... 922 Contenuto .......................................... 940 877

Transcript of Parte xxiia2.pluto.it/a2/alml.pdf · Distinzione nell’uso dei nomi degli applicativi ......

Parte xxii

ALML

Introduzione ad ALML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .883

Esigenze che Alml intenderebbe soddisfare . . . . . . . . . . . . . . 883Tutto in uno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884Continuit tra documento stampato e documento elettronico

885Perch SGML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885Capitoli sullo stile usato per a2 . . . . . . . . . . . . . . . . . . . . . . . . . 886

Preparazione e visione generale . . . . . . . . . . . . . . . . . . . . . . . . . . . 887

Installazione di Alml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889Esempio iniziale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891Cosa si genera con la composizione . . . . . . . . . . . . . . . . . . . . . 898Sintassi nelluso del programma frontale . . . . . . . . . . . . . . . . 902Codifica del sorgente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910Organizzare un file-make o uno script . . . . . . . . . . . . . . . . . . . 911Formati particolari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915Progetti di documentazione che utilizzano il formato di Alml

918

Il documento secondo Alml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .919

Organizzazione generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920Dalla copertina allindice generale . . . . . . . 922Contenuto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940

877

Documento multilingua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956Definizione alternativa della suddivisione del documento 959

Elementi interni alle righe . . . . . . . . . . . . . . . . . 961

Numeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .964Tastiera, men e codice ASCII . . . . . . . . . . . . . . . . . . . . . . 966Indirizzi di posta elettronica . . . . . . . . . . . . . . . . . . . . . . . . . . . 969

Blocchi comuni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971

Elenchi e simili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971Testo letterale o quasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978Modelli sintattici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 988Comandi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993

Altri blocchi e componenti lineari particolari . . . . . . . . . . . . . . . 995

Inserzioni particolari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995Riquadri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000Copia di porzioni del documento . . . . . . . . . . . . . . . . . . . . .1003

Riferimenti, note e altre informazioni . . . . . . . . . . . . . . . . . . . . . 1009

Riferimenti incrociati e ipertestuali . . . . . . . . . . . . . .1009Note e pi pagina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014Riferimenti esterni e citazioni . . . . . . . . . . . . . . . . . . . . . 1014Indici analitici e termini speciali . . . . . . . . . . . . . . . . . . 1018Caratteristiche del software e di altri lavori . . . . . . . . 1024Informazioni su sezioni specifiche del documento . . . . . . 1026Sezioni particolari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029

878

Immagini e video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033

Immagini esterne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041Immagini incorporate Base64 . . . . . . . . . . . . . . . . . . . . . . . . . 1042Immagini incorporate EPS . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043Immagini incorporate XFig . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044Immagini incorporate LilyPond . . . . . . . . . . . . . . . . . . . . . . . 1045Immagini incorporate TeX e LaTeX . . . . . . . . . . . . . . . . . . 1047Immagini incorporate Gnuplot . . . . . . . . . . . . . . . . . . . . . . . . 1049Osservazioni sullincorporazione di codice estraneo . . . . . 1050

Tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1053

Allegati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065

Verifiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069

Capitolo per le verifiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072Impedire la lettura del codice . . . . . . . . . . . . . . . . . . . . . . . . . .1078Esempio di verifica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1078

Esempio di verifica con Alml . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087

Esempio di verifica con Alml bis . . . . . . . . . . . . . . . . . . . . . . . . . 1089

Esempio di verifica con Alml ter . . . . . . . . . . . . . . . . . . . . . . . . . 1091

Presentazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093

Esempio di presentazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093Composizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096

Inserimento letterale di codice TeX e HTML, con eventualeinserimento condizionato . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1103

879

Entit ISO ed entit HTML gestite da Alml . . . . . . . . . . . . . 1109

Alfabeti simbolici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110Alfabeti latini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1132Alfabeti non latini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1139HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145Riferimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157

Insieme di caratteri universale e Alml . . . . . . . . . . . . . . . . . . 1159

Riferimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213

Stile di scrittura del sorgente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215

Blocchi di testo e rientri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215Figure e tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218Titoli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220Sezioni marcate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1221

Alml per i grandi progetti di documentazione . . . . . . . . . . . . . 1223

Estrapolazione di porzioni del file SGML . . . . . . . . . . . . . . 1224Esempio di un progetto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225Aggregazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229

Questioni tecniche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1231

Usare Textchk e Ispell con Alml . . . . . . . . . . . . . . . . . . . . . . . 1231Espandere le potenzialit elaborative di TeX . . . . . . . . . . 1232Programma di supporto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238

Gestione di a2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1257Articolazione dei file del sorgente . . . . . . . . . . . . . . . . . . . . . 1257

880

Inclusione selettiva dei file esterni ed entit speciali . . . . . 1258Composizione guidata con il file-make . . . . . . . . . . . . . . . . . 1262

Convenzioni di a2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1265Unit di misura e moltiplicatori . . . . . . . . . . . . . . . . . . . . . . 1265Casi particolari di testo che non viene enfatizzato . . . . . . . 1268Valori numerici in lettere e in cifre . . . . . . . . . . . . . . . . . . . . 1269Distinzione nelluso dei nomi degli applicativi . . . . . . . . . . 1270Descrizione degli acronimi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273Indice analitico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273Enfatizzazioni e uso degli elementi special . . . . . . . . . . . 1277Rappresentazione del contenuto di file e dei flussi standard

1288Altri problemi di coerenza nelluso degli elementi SGML 1290Sezioni marcate per le annotazioni . . . . . . . . . . . . . . . . . . . . . 1292

Glossario stilistico di a2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1293Termini tecnici particolari . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1297Glossario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1304Forme espressive particolari . . . . . . . . . . . . . . . . . . . . . . . . . . .1350Annotazioni varie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1351Nomi dei caratteri speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1351Nomi da usare in modo uniforme . . . . . . . . . . . . . . . . . . . . . . 1353Riferimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1354Indice del glossario stilistico . . . . . . . . . . . . . . . . . . . . . . . . . . 1355

881

882

Introduzione ad ALML

a2

2013

.11.

11--

-Cop

yrig

ht

Dan

iele

Gia

com

ini-

-app

unti2

@gm

ail.c

omht

tp://

info

rmat

ical

iber

a.ne

t

Esigenze che Alml intenderebbe soddisfare . . . . . . . . . . . . . . . . 883

Tutto in uno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884

Continuit tra documento stampato e documento elettronico . 885

Perch SGML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885

Capitoli sullo stile usato per a2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 886

Alml1 un sistema di composizione SGML, realizzato espressamen-te per lopera a2, ma che, in linea di principio, pu andare bene pervari tipi di esigenze editoriali.

Esigenze che Alml intenderebbe soddisfare

Alml nasce e si sviluppa con lobiettivo di consentire, in pratica, larealizzazione e la gestione di un documento con contenuti molto varie di grandi dimensioni, quale pu essere il gi citato a2.Esiste una grande variet di strumenti per leditoria elettronica, cheper spesso hanno il difetto di essere troppo specifici. Per esempio,se con LaTeX (capitolo 50) si possono fare cose molto belle, biso-gna considerare che non si pu ottenere tutto assieme nello stessomomento, in quanto luso di certi stili condiziona il funzionamentodi altri. Tuttavia, in generale questo problema non si avverte, perchdi norma si realizzano documenti su un tema preciso, che richiedecerte funzionalit e non altre.

Esiste anche una discreta quantit di strumenti generici, molto benstudiati per poter considerare tutto o quasi tutto, ma poi questi

883

http://informaticalibera.nethttp://informaticalibera.nethttp://informaticalibera.nethttp://informaticalibera.net

hanno il difetto di non avere ancora messo in pratica completamentequello che in teoria prevedono di poter fare.

Alml ha lintento di essere uno strumento tipografico abbastanzageneralizzato per poter scrivere di qualunque cosa, se, piuttosto dipretendere lottimo, ci si accontenta di risultati decenti. Di con-seguenza, lobiettivo di Alml quello di essere uno strumento allaportata di un singolo che vuole o che ha la necessit di gestire unlavoro variegato ed eventualmente di grandi dimensioni, con la ra-gionevole tranquillit di poter ottenere in pratica quasi tutto ci che,in teoria, Alml promette di fare.

Tutto in uno

Una caratteristica significativa di Alml quella di consentire, volen-do, di mettere tutto in un solo file SGML, comprese le immagini eaddirittura degli allegati, che potrebbero tradursi in file da scaricaredurante la consultazione in linea. Ci ha sicuramente lo svantaggiodi far lavorare con un file gigantesco, ma ha il vantaggio di non fareperdere tempo nellorganizzazione e nella gestione di un insieme difile che pu diventare troppo numeroso. Ci in pratica un punto afavore dellutilizzo da parte di un singolo, che non abbia la necessitdi avvalersi della collaborazione altrui. Naturalmente si pu obbiet-tare che esiste il rischio di perdere tutti i dati pi facilmente, ma in talcaso si parte dal presupposto che chi fa una cosa del genere, sappiaanche premunirsi da incidenti di questo tipo.

Esiste comunque la possibilit di gestire con Alml un progetto com-posto da pi file, cos come in generale consente un sistema SGMLcomune, ma attraverso programmi accessori ad Alml possibile an-che organizzare unaggregazione di pi documenti autonomi, come

884

possibile lestrapolazione di una porzione pi piccola da uno o pidocumenti.

Continuit tra documento stampato e documentoelettronico

Alml, che un sistema SGML, ha una vaga somiglianza con HTML,ma non d la stessa libert, per garantire la produzione di forma-ti finali differenti, ma coerenti tra di loro. Alml deve poter pro-durre, principalmente, un documento stampabile o un documentoelettronico adatto alla consultazione in linea.

A titolo di esempio, si pu considerare il caso dei riferimenti iper-testuali, che devono avere un senso, sia quando il documento vie-ne stampato su carta, sia quando il documento viene letto in for-ma elettronica. In questo caso, Alml impone che il riferimento siaben visibile in ogni circostanza, mentre usando HTML, i riferimentipotrebbero essere resi invisibili.

Un altro esempio pi importante dato dai capitoli speciali per larealizzazione di questionari di valutazione, che possono essere re-si sia come documento stampato (e quindi statico), sia come docu-mento interattivo, in grado di generare anche la valutazione in modoautomatico (tramite JavaScript).

Perch SGML

Il sistema tipografico universale e libero del futuro sar basato pro-babilmente su un linguaggio XML, ma lo scopo pratico di Alml nonrichiede le funzionalit di XML e, daltro canto, pu sfruttare funzio-nalit di SGML che invece XML ha abbandonato: le sezioni marcate

885

(sezione 51.1.7). A ogni modo, la dichiarazione SGML di Alml in-corpora alcune caratteristiche tipiche di un sistema XML, in modoparticolare per ci che riguarda la codifica universale dei caratteri.

Capitoli sullo stile usato per a2

Dopo i capitoli che descrivono il funzionamento di Alml, ne appaio-no altri sullo stile di scrittura di a2. Quei capitoli sono solo indicativie non sono aggiornati da diverso tempo; tuttavia rimangono assiemealla documentazione di Alml, per lasciare almeno unidea di come organizzata stilisticamente lopera a2.1 Alml GNU GPL

886

Preparazione e visione generale

a2

2013

.11.

11--

-Cop

yrig

ht

Dan

iele

Gia

com

ini-

-app

unti2

@gm

ail.c

omht

tp://

info

rmat

ical

iber

a.ne

t

Installazione di Alml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889

Gettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890

Esempio iniziale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891

Cosa si genera con la composizione . . . . . . . . . . . . . . . . . . . . . . . 898

Sintassi nelluso del programma frontale . . . . . . . . . . . . . . . . . . . 902

Codifica del sorgente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .910

Organizzare un file-make o uno script . . . . . . . . . . . . . . . . . . . . . .911

Formati particolari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915

Progetti di documentazione che utilizzano il formato di Alml 918

Alml costituito principalmente da un programma Perl (alml) checontrolla lanalizzatore SGML e altri programmi necessari per ar-rivare alla composizione finale del documento. Tuttavia, per potercomprendere tale meccanismo, sarebbe opportuno prima conoscerequanto descritto a proposito dellSGML, di TeX e dei sistemi comunidi composizione basati su SGML.

Alml si avvale di altri programmi per lanalisi SGML e per la gene-razione di alcuni formati finali. In particolare, necessario disporredi nsgmls che fa parte generalmente del pacchetto SP (anche se lapropria distribuzione GNU potrebbe nominarlo in modo differente);inoltre fondamentale la presenza di LaTeX per generare i formatida stampare. La tabella u64.1 riepiloga gli applicativi principali dacui dipende il buon funzionamento di Alml.

887

http://informaticalibera.nethttp://informaticalibera.nethttp://informaticalibera.nethttp://informaticalibera.net

|Tabella u64.1. Applicativi principali da cui dipende Alml.Applicativo CompitoPerl Alml scritto in Perl.Perl-gettext Modulo Perl per lutilizzo di Gettext.

SPVerifica la validit SGML e genera unaprima conversione.

distribuzione TeXSistema di composizione che comprendeTeX, LaTeX e altri lavori derivati.

PSUtilsRiorganizza, ingrandisce e riduce un filePostScript.

Dvipdfm Consente una conversione in PDF a partiredal file DVI.

Uuencode Estrae le immagini incorporate da fileesterni.GraphicsMagick o Image-Magick

Converte i file delle immagini nei formatiappropriati, adattando le dimensioni.

Ghostscript Serve a ImageMagick per la conversione difile PostScript in altri formati.

HTML2ps Consente lincorporazione di codiceHTML nella composizione per la stampa.W3M Converte un file HTML in testo puro.

LilyPond Consente lincorporazione di codice Lily-Pond.

XFig Consente lincorporazione di codice XFig.

Gnuplot Consente lincorporazione di codice Gnu-plot.

Eukleides Consente lincorporazione di codice Eu-kleides.Groff, PS2EPS Consentono lincorporazione di codice

*roff.

PlotUtilsConsente lincorporazione di codice davari programmi del pacchetto PlotUtils.

888

Installazione di Alml

Alml viene fornito attraverso archivi tradizionali di tipo tar+gzip,oppure in archivi Debian, in file con nomi del tipo:

||alml-versione.tar.gz

|

||alml_versione-n_all.deb

|

Estraendo il contenuto dellarchivio, si dovrebbero ottenere in par-ticolare i file e le sottodirectory elencati nella tabella u64.2, cherappresentano lessenziale.

|Tabella u64.2. Contenuto essenziale dellarchivio di distribuzio-ne di Alml.

File o directory Descrizionebin/* File eseguibili.doc/* Esempi e documentazione eventuale.etc/*

File di configurazione da inserire a partiredalla directory /etc/.

man/* Pagine di manuale relative agli eseguibili.share/sgml/* File e directory da collocare in /usr/share/sgml/alml/.

Gli eseguibili che nel pacchetto di distribuzione si trovano nella di-rectory bin/, devono essere raggiungibili attraverso il percorso diricerca del sistema, rappresentato dalla variabile di ambiente PATH.Pertanto vanno collocati opportunamente, oppure vanno predispostidei collegamenti adeguati.

Quanto contenuto nella directory share/sgml/, va collocato nella

889

directory /usr/share/sgml/alml/, oppure vanno realizzati deicollegamenti equivalenti.

In generale, se la propria distribuzione GNU/Linux non predi-sposta per la gestione delle entit standard ISO 8879, convienemodificare il collegamento simbolico alml.cat, che nella suacollocazione finale deve trovarsi nella directory /usr/share/sgml/alml/. Normalmente questo punta al file alml.cat.debian, ma in caso di problemi conviene modificarlo in modoche punti a alml.cat.normal.

Gettext

I messaggi di Alml possono essere tradotti. Se si dispone del fi-le PO relativo alla lingua preferita, necessario compilarlo comenellesempio seguente:$ msgfmt -vvvv -o alml.mo it.po [ Invio ]

In questo esempio, il file it.po viene compilato generando ilfile alml.mo. Trattandosi evidentemente della traduzione italia-na, questo file pu essere collocato in /usr/share/locale/it/LC_MESSAGES/, o in unaltra posizione analoga in base aglistandard del proprio sistema operativo.

Se non disponibile il modulo Perl-gettext,1 che serve a Alml peraccedere alle traduzioni, possibile eliminare il suo utilizzo e simu-lare la funzione di Gettext. In pratica si commentano le istruzioniseguenti allinizio dei programmi alml e alml-extra:

890

|# We *dont* want to use gettext.|#use POSIX;|#use Locale::gettext;|#setlocale (LC_MESSAGES, "");|#textdomain ("alml");

Inoltre, si tolgono i commenti dalla dichiarazione della funzionefittizia gettext(), come si vede qui:|sub gettext|{| return $_[0];|}

Esempio iniziale

Un esempio iniziale pu servire per comprendere il funzionamentogenerale di Alml (il file in questione dovrebbe essere disponibilepresso allegati/a2/alml-esempio-iniziale.sgml ). Il testo umoristicocontenuto di dominio pubblico.|||| | Strafalcioni e sciocchezze varie| strafalcione, svarione, detto, scherzo| 7mm| | Branchi di nebbia| I detti di oggi| Anonimo | 1111.11.11| |

Il testo contenuto in questo documento di dominio pubblico,| pertanto ci si pu fare quello che si vuole.

| | Indice generale||||Introduzione al documento

891

http://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.sgmlhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.sgmlhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.sgmlhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.sgmlhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.sgmlhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.sgml

|||

Questo documento scritto per dimostrare il funzionamento di Alml,|utilizzando frasi che, storpiando vecchi detti comuni, potrebbero|diventare i detti di domani.

|||||Attenzione ai branchi di nebbia... nella testa|nebbia|||

Sono scremato dalla fatica: il lavoro mobilita luomo, ma qui si|batte la fiaccola. Non fatemi uscire dai gamberi e stendiamo un velo|peloso: non bisogna foschilizzarsi cos.

||

Durante le notti di pediluvio, arrivano certe zampate di caldo... C|il divieto di balenazione e allimprovviso arriva unonda anonima:|bisogna fare attenzione ai branchi di nebbia.

|||Tappeti rullanti|metropolitana|treno|automobile|||

In metropolitana ci sono i tappeti rullanti, ma la domenica certi|treni vengono oppressi.

||

Una volta ho urtato la macchina sul paraguail, poi sono finito sulle|banchine spargitraffico e cos ho perso la marmitta paralitica... Meno|male che lauto aveva liceberg incorporato. Purtroppo, per,|mi hanno fatto la multa per guida in stato di brezza.

|||Abete alto|dolce|sapone|||

Mi dispiace, non posso mangiare dolci, perch ho labete alto e|non posso permettermi neanche una zolla di zucchero nel caff.

892

||

Sono pieno di malattie: ho le piastrelle basse; ho lo zagarolo|nellocchio; ho una spalla lustrata; ho le vene vorticose... Ormai credo|di essere spizzotremito; mi hanno prescritto di fare i raggi|ultraviolenti.

||

Allora sono andato in farmacia per comprare il sapone clinicamente|intestato, ma poi ho preso del bicarbonato di soia e della tintura di|odio per combattere gli isterismi della cellulite.

|||||Gondole voraci|||

Al ristorante ho ordinato un piatto di pasta con le gondole voraci,|una frittura di crampi, funghi traforati, un dolce con luva passera|ricoperto da zucchero al vento (cotto nel forno a microbombe), pesche|sciroccate, una birra doppio smalto e del latte pazzamente stremato.|Alla fine, mi sono fatto mettere gli avanzi nella carta spagnola.

||

Non mi voglio divulgare, ma di fronte a queste cose rimango|putrefatto... Cos ho deciso che quando muoio mi faccio cromare.

|||||Indice analitico||||||

Se tutto viene copiato correttamente nel file ipotetico alml-esempio-iniziale.sgml, con il comando seguente si ottiene lacomposizione in PostScript, attraverso LaTeX e Dvips:$ alml --ps alml-esempio-iniziale.sgml [ Invio ]

893

Con il comando seguente, si ottiene la composizione in PDF,attraverso LaTeX e Dvipdfm:$ alml --pdf alml-esempio-iniziale.sgml [ Invio ]

Con il comando seguente, si ottiene la composizione in HTML, supi file distinti:$ alml --html alml-esempio-iniziale.sgml [ Invio ]

Il risultato che si dovrebbe ottenere, in formato PDF, pu es-sere prelevato presso allegati/a2/alml-esempio-iniziale.pdf (vienedistribuito assieme alledizione HTML dellopera).

|Figura u64.6. Prima pagina (copertina) del risultato dellacomposizione.

894

http://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.pdfhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.pdfhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.pdfhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.pdfhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.pdfhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-iniziale.pdf

|Figura u64.7. Seconda e terza pagina del risultato dellacomposizione.

895

|Figura u64.8. Quarta e quinta pagina del risultato dellacomposizione.

896

|Figura u64.9. Sesta e settima pagina del risultato dellacomposizione.

897

|Figura u64.10. Ottava e nona pagina del risultato dellacomposizione.

Cosa si genera con la composizione

Lutilizzo di Alml pu generare file differenti a seconda del tipodi operazione che viene richiesta. La tabella u64.11 riepiloga i fileprincipali.

|Tabella u64.11. Alcuni file generati dallutilizzo di Alml. Il filenome.sgml deve essere gi presente.

File Descrizione

nome.sgmlIl sorgente SGML principale da cui hannoorigine gli altri file.

898

File Descrizione

nome.aux File ausiliario e temporaneo della compo-sizione attraverso LaTeX.

nome.diag File diagnostico generato da alml.

nome.pagerefFile temporaneo con i riferimenti allepagine nella composizione con LaTeX.

nome.pagelocFile contenente i riferimenti alle pagineper individuare i volumi e le parti, quandoquesti vanno estratti separatamente.

nome.log File diagnostico generato da LaTeX.

nome.sp File intermedio, ottenuto dallelaborazioneSGML di SP.

nome.sp2

File intermedio, ottenuto rielaborando il fi-le nome.sp, per sostituire le entit di tipoSDATA in codice appropriato per il tipodi composizione prescelto.

nome.dvi Composizione in DVI, finale o transitoria.nome.pdf Composizione in PDF.nome.ps Composizione in PostScript.

nome.tex Composizione transitoria in formato La-TeX.

nome.htmlnome.htm

Primo file della composizione in HTML.nomen.htmlnomen.htm

n-esimo file della composizione in HTML.

nome_capitolo.htmlnome_capitolo.htm

Collegamento simbolico al file HTML ilcui titolo corrisponde sostanzialmente alnome del collegamento stesso.

n.jpgn-esimo file delle immagini relativo allacomposizione in HTML.

nome_figura.jpgCollegamento simbolico al file JPG il cuititolo corrisponde sostanzialmente al nomedel collegamento stesso.

899

File Descrizione

n.midin.mid

n-esimo file MIDI, relativo alla com-posizione in HTML, generato da codiceLilyPond incorporato.

nome_brano.midinome_brano.mid

Collegamento simbolico al file MIDI il cuititolo corrisponde sostanzialmente al nomedel collegamento stesso.

n.ogvn-esimo file video Ogg relativo allacomposizione in HTML.

nome_video.ogvCollegamento simbolico al file OGV il cuititolo corrisponde sostanzialmente al nomedel collegamento stesso.

n.psn-esimo file delle immagini relativo allacomposizione in PostScript o PDF.

n.pdfn-esimo file delle immagini relativo allacomposizione in PostScript o PDF.

*~ File temporaneo non meglio precisato.

bene sottolineare che il file indicato come nome.sgml deve esse-re gi presente perch si possa usare Alml; inoltre, il sorgente SGMLprincipale potrebbe a sua volta incorporare altri file SGML.

Se il sorgente SGML fa riferimento a immagini collocate in fileesterni, necessario che queste siano in uno dei formati previsti(in generale, i formati pi comuni sono accettati) e che si trovi-no in unaltra directory rispetto a quella in cui sta il file sorgenteprincipale.

900

A seconda del tipo di composizione finale, Alml converte le im-magini nel formato appropriato, il pi delle volte avvalendosi perquesto di ImageMagick, creando una serie di file nella directorycorrente. Per la composizione in PostScript e in PDF servono im-magini EPS; per la composizione HTML vengono generati file informato JPG.

I file esterni delle immagini da includere nella composizione, devonotrovarsi in una directory differente da quella in cui si trova il sorgenteprincipale, per non ritrovarli mescolati assieme a quelli che vengonogenerati da Alml, nella directory corrente, con nomi del tipo n.jpg, n.ps o n.pdf.

Alle volte si possono incontrare problemi inspiegabili nellinse-rimento di immagini, che si possono manifestare in modo parti-colare nella composizione in PDF. Spesso si superano questi pro-blemi in modo sbrigativo usando ImageMagick e facendo un pas-saggio intermedio nel formato JPG, allo scopo di perdere delleinformazioni. Per esempio, disponendo del file pippo.png cherisulta corretto e perfettamente visibile con gli strumenti normali,ma che si comporta in modo strano nella composizione PDF, puconvenire il passaggio seguente:$ convert pippo.png pippo.jpg [ Invio ]

$ convert pippo.jpg pippo.png [ Invio ]

Al termine, il file pippo.jpg pu essere eliminato.

901

Sintassi nelluso del programma frontale

Il programma frontale attraverso cui si gestisce il sistema dicomposizione Alml alml:

||alml opzioni sorgente_sgml|alml --help|alml --version

|

Come si vede dal modello sintattico, a parte i casi delle opzioni--help e --version, sempre richiesta lindicazione di un filesorgente SGML, a cui applicare un qualche tipo di elaborazione.

Si osservi che per la composizione destinata alla stampa, possibilelavorare solo con i formati A4 e lettera (8,5 in 11 in), che posso-no essere orientati verticalmente oppure orizzontalmente. Eccezio-nalmente, per la sola composizione PostScript, possibile selezio-nare il formato A5x4 verticale. Per questo, si vedano in particolarele opzioni --paper e --paper-orientation.

|Tabella u64.12. Opzioni principali.Opzione Descrizione

|--helpMostra la guida rapida in-terna e conclude il funzio-namento.

|--versionMostra le informazionisulla versione e concludeil funzionamento.

902

Opzione Descrizione

|--clean

Rimuove alcuni filetemporanei abbinati alfile sorgente indicato. Sitratta per la precisione dinome.pageref, nome.diag, nome.aux,nome.log, nome.sp enome.sp2.

|--verbose

Segnala il procedere del-lelaborazione con infor-mazioni dettagliate. In ge-nerale tali informazionisono ottenibili dal filenome.diag; tuttavia, inpresenza di file sorgentidi grandi dimensioni, puservire per sapere a chepunto lelaborazione.

|--input-encoding={latin1|utf8}

Dichiara il formato dei fi-le sorgenti SGML utiliz-zati per la composizio-ne; in mancanza di questaopzione, il formato vienedeterminato in base allostato della configurazionelocale.

903

Opzione Descrizione

|--paper={a4|letter|a5x4}

Permette di specificare ledimensioni della carta inbase a un nome stan-dard. Il formato predefini-to A4, che corrisponden-te alla parola chiave a4;il formato a5x4 funzio-na solo in abbinamento a--ps.

|--paper-orientation={portrait|landscape}

Permette di specificarelorientamento della carta.

|--static|--dynamic

Le due opzioni sono con-trapposte. Nel primo ca-so si ha una composizio-ne normale; nel secondo,se viene generato un for-mato PostScript o PDF, siabilitano le funzioni dina-miche per le presentazioni(in pratica, si abilita lusodellelemento PAUSE).

|--embedded-script-enable

Abilita lesecuzione discript incorporati nelsorgente. Trattandosidi una funzionalit chepu essere pericolosa,deve essere abilitata conquesta opzione, in modoesplicito.

904

Opzione Descrizione

|--draft

Quando il contesto lo per-mette, serve per ottene-re una composizione par-ticolare, con pi informa-zioni utili alla correzioneo alla revisione del testo.A differenza di quanto sipotrebbe essere portati apensare, in questo modolelaborazione pi com-plessa del normale, pro-prio per portare in risaltotali informazioni.

|--sgml-include=entit_parametrica

Attraverso questa opzio-ne, che pu essere usataanche pi volte, possi-bile includere delle en-tit parametriche. Per laprecisione, come se nelsorgente venisse dichia-rata unentit parametri-ca corrispondente, asse-gnandole la parola chia-ve INCLUDE. Ci vie-ne usato per controlla-re linclusione di porzio-ni di sorgente, secondo leconvenzioni dellSGML.

905

Opzione Descrizione

|--page-numbering={plain|default|tome}

Questa opzione permettedi definire in che mo-do gestire la numerazio-ne delle pagine nei forma-ti di composizione carta-cei. In condizioni norma-li, la numerazione rea-lizzata attraverso sequen-ze differenti: una per laparte iniziale fino alla finedellintroduzione, una peril corpo (comprese le ap-pendici) e una finale pergli indici analitici. Asse-gnando la parola chiaveplain si fa in modo chela numerazione sia unica,cosa che potrebbe essereconveniente per il forma-to PDF. Nel caso parti-colare della parola chia-ve tome, si ottiene unanumerazione separata deivolumi, con la conseguen-za che alcuni indici, a se-conda del contesto, oltrea indicare la pagina ag-giungono un prefisso cor-rispondente al numero delvolume in cui si trova.

906

Opzione Descrizione

|--sgml-syntax|--sgml-check

Una qualunque di questedue opzioni permette diottenere la verifica forma-le del sorgente, in base alDTD.

|--spCon questa opzione sivuole raggiungere solo unformato intermedio per ilcontrollo diagnostico delfunzionamento di Alml.

|--tex|--latex

Con questa opzione sivuole raggiungere solo unformato intermedio in La-TeX per il controllo dia-gnostico del funzionamen-to di Alml.

|--dvi

Genera un risultato in for-mato DVI. Lelaborazionecrea una serie di file EPS ePDF per le immagini, se-condo i modelli n.ps en.pdf.

|--ps|--postscript

Genera un risultato in for-mato PostScript. Lelabo-razione crea una serie difile EPS e PDF per leimmagini, secondo i mo-delli n.ps e n.pdf;una volta ottenuto il fi-le PostScript finale, questifile non servono pi.

907

Opzione Descrizione

|--pdf

Genera un risultato in for-mato PDF. Lelaborazionecrea una serie di file EPS ePDF per le immagini, se-condo i modelli n.ps en.pdf; una volta ottenu-to il file PDF finale, questifile non servono pi.

|--html

Genera un risultato in for-mato HTML, articolato inpi file, dove il primo nome.html e gli altri so-no nomen.html. Inol-tre, viene fatta una copiadei file delle immagini, se-condo il modello n.jpg(le due numerazioni sonoindipendenti).

|--htm

Genera un risultato in for-mato HTML, simile aquello che si ottiene con--html, dove per leestensioni dei file hannosolo tre caratteri (.htm,.mid, ecc.).

908

Opzione Descrizione

|--html-text

Genera un risultato informato HTML speciale,in un file unico, senzariferimenti a immaginiesterne. Il file ottenutopu essere consultato conLinks e con questo puessere convertito in untesto puro e semplice,attraverso il comando:links -dumpnome.html >nome.txtOppure:w3m -dump nome.html> nome.txt

|Tabella u64.13. Opzioni accessorie.Opzione Descrizione

|--html-check|--html401-check

Se sono stati installatii file necessari, consen-te la verifica formale diun file HTML secondo lespecifiche della versione4.01.

909

Opzione Descrizione

|--html320-check

Se sono stati installatii file necessari, consen-te la verifica formale diun file HTML secondo lespecifiche della versione3.2.

|--xml-check

Se sono stati installati i fi-le necessari, consente laverifica formale di un fi-le XML secondo le speci-fiche del DTD relativo (at-tualmente solo XHTML).

Codifica del sorgente

Il sorgente SGML usato da Alml pu essere scritto secondo la codi-fica ISO 8859-1 (Latin-1), oppure la codifica UTF-8. In pratica, nelsecondo caso si pu usare la codifica universale, dove per solo unapiccola porzione di punti di codifica ha una corrispondenza effettivanella composizione.

Allo stato attuale possibile scrivere usando lingue che si avvalgonodellalfabeto latino, il greco e il russo, come si pu vedere meglio nelcapitolo u79.

Esiste comunque la necessit che tutti i file che compongono il sor-gente SGML siano scritti nella stessa codifica: tutti ISO 8859-1, op-pure tutti UTF-8. In generale, non si presenta la necessit di usare lacodifica UTF-8, nemmeno quando si volesse selezionare un caratte-re a cui non risulta associata alcuna entit standard. Infatti, in questicasi, si pu usare un riferimento numerico nella forma:

910

||hhhh;

|

In pratica, volendo fare riferimento al punto di codifica U+266E informa numerica (\), si potrebbe scrivere .

Dal momento che non c un modo pratico per distinguere automati-camente se un file sia scritto usando luna o laltra codifica, possi-bile usare lopzione --input-encoding per specificarlo espres-samente. Tuttavia, se questa opzione non viene usata, Alml fa dellecongetture basandosi sullo stato attuale della variabile di ambien-te LANG e delle variabili LC_*; in pratica, tenta di determinarlodalla configurazione locale.

Organizzare un file-make o uno script

Un file-make personalizzato pu facilitare luso di Alml. Viene pro-posto un esempio elementare, riferito al file example.sgml, in cuisi pu vedere anche lutilizzo proposto di alml.|# file name prefix.|DOC_PREFIX=example||# Notice that "text" generates an HTML file with the same name|# for the first HTML page. This is why it is before the standard|# HTML typesetting.|#|all: \|clean \|text \|html \|ps \|pdf||clean:| @echo "Cleaning..." ; \| find . -name core -exec rm -f \{\} \; ; \| rm -f $(DOC_PREFIX)*.tex ; \

911

| rm -f $(DOC_PREFIX)*.dvi ; \| rm -f $(DOC_PREFIX)*.sp ; \| rm -f $(DOC_PREFIX)*.sp2 ; \| rm -f $(DOC_PREFIX)*.ps ; \| rm -f $(DOC_PREFIX)*.pdf ; \| rm -f $(DOC_PREFIX)*.txt ; \| rm -f $(DOC_PREFIX)*.log ; \| rm -f $(DOC_PREFIX)*.aux ; \| rm -f $(DOC_PREFIX)*.tmp ; \| rm -f $(DOC_PREFIX)*.diag ; \| rm -f $(DOC_PREFIX)*.pageref ; \| rm -f $(DOC_PREFIX)*.pageloc ; \| rm -f *.html *.htm ; \| rm -f *.bak ; \| rm -f *.jpg ; \| rm -f *.ps ; \| rm -f *.midi *.mid ; \| rm -f *\~||check:| @alml --sgml-check \| --verbose \| $(DOC_PREFIX).sgml||dvi:| @alml --dvi \| --verbose \| $(DOC_PREFIX).sgml||ps:| @alml --ps \| --verbose \| $(DOC_PREFIX).sgml||pdf:| @alml --pdf \| --verbose \| --page-numbering=plain \| $(DOC_PREFIX).sgml||html:| @alml --html \| --verbose \| $(DOC_PREFIX).sgml

912

||htm:| @alml --htm \| --verbose \| $(DOC_PREFIX).sgml||text:| @alml --html-text \| --verbose \| $(DOC_PREFIX).sgml ; \| w3m -dump \| $(DOC_PREFIX).html \| > $(DOC_PREFIX).txt

Si pu osservare in particolare lobiettivo clean che elimina tutti ifile non indispensabili e in particolare tutti i file il cui nome terminaper .html e per .ps.

Se per esempio si utilizza il comando make ps, si ottiene la com-posizione in PostScript, generando in particolare il file example.ps.

Uno script da usare sostanzialmente come il file-make proposto,potrebbe essere realizzato cos:|#!/bin/sh|#|ACTION=$1|#|DOC_PREFIX=example|#|if [ "$ACTION" = "" ]|then| echo "Please, specify an action:"| echo "$0 ACTION"| exit|elif [ "$ACTION" = "clean" ]|then| echo "Cleaning..."| find . -name core -exec rm -f \{\} \;| rm -f $DOC_PREFIX*.tex

913

| rm -f $DOC_PREFIX*.dvi| rm -f $DOC_PREFIX*.sp| rm -f $DOC_PREFIX*.sp2| rm -f $DOC_PREFIX*.ps| rm -f $DOC_PREFIX*.pdf| rm -f $DOC_PREFIX*.txt| rm -f $DOC_PREFIX*.log| rm -f $DOC_PREFIX*.aux| rm -f $DOC_PREFIX*.tmp| rm -f $DOC_PREFIX*.diag| rm -f $DOC_PREFIX*.pageref| rm -f $DOC_PREFIX*.pageloc| rm -f *.html *.htm| rm -f *.bak| rm -f *.jpg| rm -f *.ps| rm -f *.midi *.mid| rm -f *\~| #|elif [ "$ACTION" = "check" ]|then| alml --sgml-check \| --verbose \| $DOC_PREFIX.sgml| #|elif [ "$ACTION" = "dvi" ]|then| alml --dvi \| --verbose \| $DOC_PREFIX.sgml| #|elif [ "$ACTION" = "ps" ]|then| alml --ps \| --verbose \| $DOC_PREFIX.sgml| #|elif [ "$ACTION" = "pdf" ]|then| alml --pdf \| --verbose \| --page-numbering=plain \| $DOC_PREFIX.sgml| #

914

|elif [ "$ACTION" = "html" ]|then| alml --html \| --verbose \| $DOC_PREFIX.sgml| #|elif [ "$ACTION" = "htm" ]|then| alml --htm \| --verbose \| $DOC_PREFIX.sgml| #|elif [ "$ACTION" = "text" ]|then| alml --html-text \| --verbose \| $DOC_PREFIX.sgml| w3m -dump \| $DOC_PREFIX.html \| > $DOC_PREFIX.txt

Formati particolari

Lopzione --paper di alml consente di definire il formato del-la pagina per la composizione destinata alla stampa. Generalmen-te si possono usare solo i formati A4 e lettera, rispettivamente conle opzioni --paper=a4 e --paper=letter. Eccezionalmen-te, quando si intende generare un formato PostScript, possibi-le produrre un formato A5x4 verticale, ovvero 21 cm 59,4 cm(--paper=a5x4).

Il formato A5x4 pu essere utile, rielaborando il file PostScript inmodo da ridurlo e da accoppiarlo su un foglio A4 singolo. Per otte-nere questo risultato ci si pu avvalere di alml-extra, usandolocome nel comando seguente:$ alml-extra --a5x4-to-a7x4-2-a4 nome.ps [ Invio ]

915

In tal caso, il file nome.ps il file PostScript in formato A5x4 e siottiene il file nome.a7x4-2-a4.ps, in formato A4, che in praticacontiene due colonne formato A7x4 (10,5 cm 29,7 cm).

916

|Figura u64.16. Esempio di come pu apparire una pagina checontiene due colonne in formato A7x4.

917

Progetti di documentazione che utilizzano ilformato di Alml

Lelenco successivo riporta alcuni progetti di documentazioni cheutilizzano Alml:

Gianluca Giusti, Programmare in PHPhttp://www.urcanet.it/brdp/php_manual/

Gaetano Paolone, Linux domande e rispostehttp://linuxfaq.it

Fulvio Ferroni, Programmazione dei socket di rete in GNU/Linuxhttp://linuxdidattica.org/docs/altre_scuole/planck/socket/

Fulvio Ferroni, Samba e OpenLDAPhttp://linuxdidattica.org/docs/altre_scuole/planck/samba/

Massimo Piai, Informatica per sopravviverehttp://linuxdidattica.org/piai/xs/

1 Nelle distribuzioni Debian si tratta del pacchettoliblocale-gettext-perl.

918

http://www.urcanet.it/brdp/php_manual/http://www.urcanet.it/brdp/php_manual/http://www.urcanet.it/brdp/php_manual/http://www.urcanet.it/brdp/php_manual/http://www.urcanet.it/brdp/php_manual/http://www.urcanet.it/brdp/php_manual/http://www.urcanet.it/brdp/php_manual/http://www.urcanet.it/brdp/php_manual/http://linuxfaq.ithttp://linuxfaq.ithttp://linuxfaq.ithttp://linuxfaq.ithttp://linuxdidattica.org/docs/altre_scuole/planck/socket/http://linuxdidattica.org/docs/altre_scuole/planck/socket/http://linuxdidattica.org/docs/altre_scuole/planck/socket/http://linuxdidattica.org/docs/altre_scuole/planck/socket/http://linuxdidattica.org/docs/altre_scuole/planck/socket/http://linuxdidattica.org/docs/altre_scuole/planck/socket/http://linuxdidattica.org/docs/altre_scuole/planck/socket/http://linuxdidattica.org/docs/altre_scuole/planck/socket/http://linuxdidattica.org/docs/altre_scuole/planck/socket/http://linuxdidattica.org/docs/altre_scuole/planck/samba/http://linuxdidattica.org/docs/altre_scuole/planck/samba/http://linuxdidattica.org/docs/altre_scuole/planck/samba/http://linuxdidattica.org/docs/altre_scuole/planck/samba/http://linuxdidattica.org/docs/altre_scuole/planck/samba/http://linuxdidattica.org/docs/altre_scuole/planck/samba/http://linuxdidattica.org/docs/altre_scuole/planck/samba/http://linuxdidattica.org/docs/altre_scuole/planck/samba/http://linuxdidattica.org/docs/altre_scuole/planck/samba/http://linuxdidattica.org/piai/xs/http://linuxdidattica.org/piai/xs/http://linuxdidattica.org/piai/xs/http://linuxdidattica.org/piai/xs/http://linuxdidattica.org/piai/xs/http://linuxdidattica.org/piai/xs/

Il documento secondo Alml

a2

2013

.11.

11--

-Cop

yrig

ht

Dan

iele

Gia

com

ini-

-app

unti2

@gm

ail.c

omht

tp://

info

rmat

ical

iber

a.ne

t

Organizzazione generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920

Dalla copertina allindice generale . . . . . . . . . 922

Esempio quasi completo per la compilazione dellintestazione930

Margini e giustezza nella composizione stampata . . . . . . . . . 935Corpo del carattere nella composizione stampata . . . . . . . . . 938

Contenuto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940

Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941Corpo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941Appendici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949Indici analitici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949Suddivisioni speciali . . . . . . . . . . . . . . . . . . . . . . . . . . 949

Documento multilingua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956

Cambiamento temporaneo del linguaggio . . . . . . . . . . . . . . .957

Definizione alternativa della suddivisione del documento . . 959

Il DTD di Alml organizzato per gestire documenti molto grandi,che possono essere suddivisi in volumi, parti e capitoli. Tuttavia, lasuddivisione in volumi o in parti resta facoltativa, mentre la divisionein capitoli obbligatoria.

Quando devono essere indicate delle dimensioni che prevedono laspecificazione dellunit di misura, si usano le sigle elencate nellatabella u65.1.

919

http://informaticalibera.nethttp://informaticalibera.nethttp://informaticalibera.nethttp://informaticalibera.net

|Tabella u65.1. Sigle delle unit di misura utilizzabili con Alml.Sigla Unit di misura corrispondente

|pt Punti tipografici corrispondenti a 1/72,27 di pollice.|bp Punti tipografici corrispondenti a 1/72 di pollice (bigpoint).|pc Pica corrispondenti a 1/6 di pollice.|in Pollici.|cm Centimetri.|mm Millimetri.

Organizzazione generale

Secondo il DTD di Alml, il documento ha una struttura generale bendefinita:

920

||

|

|

|...

||[|...

|]|

|...

||[|...

|]|[|...

|]|

|

In questa struttura, gli elementi head e body sono obbligatori,mentre gli altri possono essere omessi, se non sono necessari.

Si pu intuire il senso della cosa: lelemento head serve a conte-nere informazioni amministrative, oltre a ci che deve apparire nelleprimissime pagine (il titolo dellopera, il copyright ecc.); lelemen-to intro permette di inserire dei capitoli speciali da trattare co-me introduzioni o prefazioni, che come tali non risultano numerate;lelemento body permette di inserire capitoli, oppure parti, o vo-lumi; lelemento appendix permette di inserire capitoli da tratta-re come appendici, numerate convenzionalmente in modo letterale;infine, lelemento index permette di inserire capitoli speciali per

921

linclusione degli indici analitici.

|Figura u65.2. Schema ad albero degli elementi principali di undocumento Alml.

||alml [lang="lingua"] [spacing="normal|french|uniform"]| |--head| |--[intro]| |--body| |--[appendix]| --[index]

|

Dalla copertina allindice generale

Lelemento che delimita il documento nella sua interezza, alml,pu contenere due attributi facoltativi: lang e spacing. Lat-tributo lang permette di definire il linguaggio generale con cui stato scritto il documento, attraverso una sigla secondo lo standardISO 639 (tabella 13.4), ma se le informazioni su un certo linguaggionon sono disponibili, si applicano comunque le convenzioni inglesi.

Lattributo spacing permette di definire il modo in cui vengonogestiti gli spazi alla fine dei periodi (dopo il punto fermo). Assegnan-do la parola chiave normal, si ottiene la spaziatura normale dellaconvenzione inglese, in cui lo spazio dopo un punto ha una larghez-za maggiore degli altri; in alternativa, assegnando la parola chia-ve uniform, oppure french, si ottiene una spaziatura uniforme,come richiede la tradizione tipografica italiana e anche di altri paesi.

In generale, un documento scritto in lingua italiana dovrebbeutilizzare lelemento alml in questo modo:

922

|

La figura u65.4 e la tabella u65.5 mostrano in breve lelenco deglielementi che riguardano lintestazione del documento; cosa che con-tiene tutte le informazioni per realizzare la copertina, fino ad arrivareallindice generale.

|Figura u65.4. Schema ad albero degli elementi di un documentoAlml, con il dettaglio dellintestazione.

||alml [lang="lingua"] [spacing="normal|french|uniform"]| |--head| | |--[admin]| | | |--[description]| | | |--[keywords]| | | |--[htmlmeta name="nome" lang="linguaggio"]...| | | |--[printedfontsize type="contesto"]...| | | |--[printedpagesize type="contesto"]...| | | |--[chapterdefinition]| | | |--[partdefinition]| | | --[tomedefinition]| | |--title| | |--[shorttitle]| | |--[subtitle]...| | |--author...

| | |--date| | |--[edition]| | |--[version]| | |--[frontcovertop]| | |--[abstract]| | |--[frontcoverbottom]

923

| | |--[backcover]| | |--[textbeforelegal]| | |--legal| | |--[dedications]| | |--[textafterdedications]| | --[maincontents levels="n" nopages="true|false"]| |--[intro]| |--body| |--[appendix]| --[index]

|

|Tabella u65.5. Elementi SGML dalla copertina allindicegenerale.

Elemento Descrizione

|alml [lang="..."] [spacing="..."]

Contenitore del documen-to. Lattributo lang pucontenere la sigla del lin-guaggio espressa secon-do lo standard ISO 639.Lattributo spacing pucontenere una parola chia-ve, a scelta tra: normal,french e uniform.

|head Intestazione del documen-to.|admin Informazioni amministra-tive.|description Descrizione in breve deldocumento.

924

Elemento Descrizione

|keywords Elenco di parole chiave.

|htmlmeta name="..." lang="..."

Contenuto di un elementoHTML META. Gli attri-buti name e lang van-no usati nello stesso mo-do previsto per lelementoMETA di HTML.

|chapterdefinition Definizione alternativa delcapitolo.|partdefinition Definizione alternativadella parte.|tomedefinition Definizione alternativa delvolume.

|printedfontsize type="..."Corpo del carattere in pun-ti. Il carattere a cui si fa ri-ferimento quello indica-to nellattributo type.

|printedpagesize type="..."

Dimensione di quantoindicato nellattributotype, che in generalesi riferisce alla defini-zione dei margini e dellagiustezza.

|title Titolo del documento.

|shorttitleSigla o abbreviazionedel titolo dellopera; utile nella composizioneHTML.

|subtitle Sottotitolo.925

Elemento Descrizione

|author Autore.|date Data del lavoro.|edition Edizione, da usare se que-sta diversa dalla data.|version

Versione, se la si vuoleindicare in modo diversodalla data di edizione.

|frontcovertop Blocco che precede il tito-lo.

|abstract

Descrizione del contenu-to. Si osservi che attual-mente questa informa-zione non viene utilizza-ta in fase di composizio-ne.

|frontcoverbottomTesto aggiuntivo di co-pertina, da mostrare do-po il titolo e dopo le altreindicazioni standard.

|backcover Contenuto della copertinafinale.|textbeforelegal Testo prima delle informa-zioni legali.|legal Informazioni legali (copy-right, condizioni, ecc.).|dedications Pagina delle dediche.|textafterdedications Testo successivo alle dedi-che.

926

Elemento Descrizione

|maincontents [levels="..."][nopages="..."]

Inserimento dellindicegenerale, specificando iltitolo da dare a tale indice.Lattributo levels spe-cifica il livello di dettagliodellindice. Lattributonopages specifica se sivogliano vedere i numeridi pagina come riferi-mento nella composizionestampata; pu assumere ivalori true o false.

Si pu osservare che tutte le informazioni sono contenute nellele-mento head, allinizio del quale prende posto un altro contenito-re denominato admin. Al suo interno sono previsti elementi rela-tivi a informazioni amministrative, in particolare description ekeywords, il cui scopo quello di generare degli elementi METAcorrispondenti nella composizione HTML:

|| ...| | | ...|

Inoltre, si possono aggiungere anche altri elementi META di HTML,attraverso lelemento HTMLMETA, come si vede nellesempioseguente:

927

|| | GNU/Linux e altro software libero|| Linux, GNU/Linux, Unix, software, software libero,| free software|| Document| 15 days| ALL| | ...| ...|

Gli elementi chapterdefinition, partdefinition etomedefinition vengono descritti pi avanti in questo capitolo(sezione u0.5).

Lelemento printedfontsize consente di definire laltezza delcarattere indicato attraverso lattributo type, per la composizionestampata.

Lelemento printedpagesize consente di definire I margini e lagiustezza per la composizione stampata, in base al contesto indicatodallattributo type.

Lelemento title serve a indicare il titolo del documento; gli ele-menti eventuali subtitle permettono di inserire dei sottotitolisuccessivi.

Lelemento abstract, facoltativo, permette linserimento di unadescrizione, pi o meno articolata, composta da blocchi di te-sto. Tuttavia, questa informazione non viene usata in fase dicomposizione.

928

Successivamente possibile inserire uno o pi elementi author,uno per il nominativo di ogni coautore.

Gli elementi date, edition e version, servono per indica-re una data, unedizione e una versione del lavoro. In generale sufficiente luso dellelemento data.

Lelemento frontcovertop permette linserzione di blocchi pri-ma del titolo; cos, lelemento frontcoverbottom consente difare la stessa cosa dopo il titolo e le altre indicazioni standard. Lele-mento backcover permette di definire il contenuto della copertinafinale.

Gli elementi successivi riguardano la seconda pagina assoluta equelle successive.

Nella seconda pagina appaiono di solito le informazioni sul co-pyright, nella parte bassa, mentre nella parte superiore potrebberoesserci altre informazioni, come una breve descrizione degli auto-ri. Lelemento textbeforelegal permette di inserire blocchi ditesto da collocare nella prima parte della seconda pagina, mentrelelemento legal fatto per le informazioni legali, a partire dalcopyright.

Dopo le informazioni legali possibile inserire una paginadi dediche, attraverso lelemento dedications. Eventualmen-te, se necessario, possibile aggiungere altre notizie allinternodellelemento textafterdedications che segue le dediche.

Infine, possibile collocare lelemento maincontents per ottene-re linserimento dellindice generale. Lattributo levels permettedi definire il livello di dettaglio desiderato dellindice: il numero zerorappresenta il minimo e fa in modo di ottenere informazioni fino al-

929

le parti, mentre valori superiori aumentano il dettaglio. Assegnandoallattributo nopages il valore true, si richiedere espressamen-te leliminazione dei riferimenti ai numeri di pagina; cosa che puessere utile soltanto nella composizione per la stampa. Allinternodellelemento si inserisce il titolo da dare allindice.

Esempio quasi completo per la compilazionedellintestazione

Viene mostrato qui un esempio quasi completo delluso degli ele-menti che si inseriscono allinterno di head (il file in questio-ne dovrebbe essere disponibile presso allegati/a2/alml-esempio-intestazione.sgml ). Di proposito, il contenuto del documento completamente mancante, nel senso che lelemento body vuoto.|||| | Compilazione di unintestazione con Alml| Alml, SGML, composizione| 20mm| 8mm| 8mm| 8mm| 7mm| | Intestazione| int| Come iniziare con Alml| Pinco Pallino| 1111.11.11| 1212.12.12| 1.1| |

i libri di Alml

| |

930

http://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.sgmlhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.sgmlhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.sgmlhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.sgmlhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.sgmlhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.sgml

|

La compilazione delle informazioni di un documento| sempre complicato allinizio dello studio di un sistema| SGML o XML di composizione.

|

Questo libro, attraverso un esempio pratico, spiega come| utilizzare proprio gli elementi dellintestazione.

| | |

!"$%&/()=?^*+

|

!"$%&/()=?^*+

|

!"$%&/()=?^*+

|

!"$%&/()=?^*+

| | |

Questo libro privo di contenuti, attraverso un solo esempio| pratico, dimostra come utilizzare gli elementi dellintestazione| di Alml.

| | |

Pinco Pallino laureato in scienza del vuoto mentale| e insegna nullafacenza applicata.

| | |

Copyright Pinco Pallino,

|

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

| | |

Alla mia bella Gigia, con tanto amore.

| | |

Sette, sei, cinque, quattro, tre, due, uno,... via!

| | Indice generale||||

931

Nelle figure successive viene mostrato il risultato della composizio-ne in un formato PostScript o PDF, in modo indifferente. Si supponeche il file sorgente sia stato chiamato head.sgml e che sia statousato uno dei due comandi seguenti:$ alml --ps alml-esempio-intestazione.sgml [ Invio ]

$ alml --pdf alml-esempio-intestazione.sgml [ Invio ]

Il risultato che si dovrebbe ottenere, in formato PDF, pu esse-re prelevato presso allegati/a2/alml-esempio-intestazione.pdf (vienedistribuito assieme alledizione HTML dellopera).

932

http://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.pdfhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.pdfhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.pdfhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.pdfhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.pdfhttp://appuntilinux.mirror.garr.it/mirrors/appuntilinux/a2/allegati/a2/alml-esempio-intestazione.pdf

|Figura u65.9. La copertina e la pagina del colofone (che ap-pare subito dopo la copertina). Nella pagina della copertinasi pu osservare che: in alto, prima del titolo, viene messoil contenuto di frontcovertop; disponendo della versionedelledizione, appare il contenuto degli elementi version eedition; nella parte sottostante appare il contenuto dellele-mento frontcoverbottom. Nella pagina del colofone si ve-de in alto il contenuto di textbeforelegal e in basso ilcontenuto di legal.

933

|Figura u65.10. La pagina delle dediche, ovvero la pagi-na associata allelemento dedications, assieme alla pa-gina successiva, corrispondente al contenuto dellelementotextafterdedications.

934

|Figura u65.11. La quarta di copertina (copertina posteriore),corrispondente allelemento backcover.

Margini e giustezza nella composizione stampata

possibile definire i margini e la giustezza (la larghezza del testo)della composizione stampata, senza dover intervenire modificandolo stile TeX. Si utilizza per questo lelemento printedpagesize,allinterno dellelemento admin, nellintestazione del documento,specificando il contesto con lattributo type. Si osservi lesempioin cui si mostrano tutti i valori disponibili per lattributo type:

935

|| | ...| 2.5cm| 3.0cm| 3.5cm| 15cm| ...| | ...|

Il tipo topmargin il margine superiore, fino alla base del te-sto normale (la riga di intestazione viene collocata automatica-mente); il tipo bottommargin il margine inferiore; il tipointernalmargin il margine sinistro per le pagine destre e ilmargine destro per le pagine sinistre; il tipo bodywidth la giu-stezza, ovvero la larghezza della colonna in cui scorre effettivamenteil testo.

|Tabella u65.13. Valori dellattributo type dellelementoprintedpagesize.

Valore Contesto a cui si fa riferimento

|topmargin Margine superiore.|bottommargin Margine inferiore.|internalmargin Margine interno.|bodywidth Giustezza.

Il margine esterno non viene indicato, perch si preferisce indicare lagiustezza, essendo un valore che meglio non vari automaticamente,dal momento che da questo dipendono anche le dimensioni che si

936

assegnano ad altri componenti contenuti nel testo.

|Figura u65.14. Valori dellattributo type dellelementoprintedpagesize.

Il formato della carta viene definito al di fuori del sorgente SGML,attraverso le opzioni di Alml. Ci permette di produrre composizionidifferenti a seconda del tipo di carta disponibile. Tuttavia, evidenteche le dimensioni adottate per la carta devono essere compatibili coni margini e la giustezza richiesti nel sorgente SGML.

937

Corpo del carattere nella composizione stampata

possibile definire il corpo del carattere, nella composizionestampata, in alcune situazioni importanti, senza dover interveni-re modificando lo stile TeX. Si utilizza per questo lelementoprintedfontsize, allinterno dellelemento admin, nellin-testazione del documento, specificando il contesto con lattributotype. Si osservi lesempio:

|| | ...| 4mm| 3.5mm| ...| | ...|

Il tipo normal il carattere normale del testo; il tipo table il carattere utilizzato nelle tabelle di Alml. La distanza tra le ri-ghe viene impostata automaticamente al 120 % della dimensione delcarattere utilizzato.

La dimensione del carattere deve essere armoniosa rispetto al restodel documento. Bisogna provare per rendersi conto se il risultatoche si ottiene accettabile oppure no.

938

|Tabella u65.16. Valori dellattributo type dellelementoprintedfontsize.

Valore Carattere a cui si fa riferimento

|title Titolo dellopera che appare in copertina.|subtitle Sottotitolo che appare in copertina.|author Autori che appaiono in copertina.|edition Data, edizione e versione che appaiono incopertina.|tomeheading Titolo dei volumi nella loro pagina iniziale.|h0 Titolo delle parti nella loro pagina iniziale.|h1 Titolo dei capitoli.|h2 Titolo delle sezioni di primo livello.|h3 Titolo delle sottosezioni.|h4 Titolo delle sotto-sottosezioni.|normal Testo normale.|table Testo delle tabelle.|object Testo interno agli elementi object.

939

Contenuto

Il contenuto del documento si articola in tre blocchi fondamenta-li: intro, body e appendix. In coda, possono apparire degliindici analitici, racchiusi nel blocco dellelemento index.

Questa classificazione in blocchi va a compensare la mancanza dielementi atti a circoscrivere lestensione delle sezioni in cui si ar-ticola il testo. La mancanza di una strutturazione dettagliata dellesezioni1 fa s che in presenza di errori di sintassi SGML, lanalizza-tore tenda a segnalare in seguito una quantit di errori inesistenti chenon vanno considerati. In tali situazioni, si correggono i primi errorievidenti e poi si ripete la verifica SGML.

|Figura u65.17. Schema ad albero semplificato degli elemen-ti di un documento Alml, dove di mostra la suddivisione deicontenuti.

||alml [lang="lingua"] [spacing="normal|french|uniform"]| |--head| |--[intro]| | --capitolo...

| |--body| | --{volume...|parte...|capitolo...}| |--[appendix]| | --capitolo...

| --[index]| --capitolo...

|

940

Introduzione

Dopo lelemento head prevista la possibilit di inserire lele-mento intro, il cui scopo quello di delimitare uno o pi capitolispeciali, da intendere come prefazioni o introduzioni a vario titolo.

Per la definizione del capitolo, si veda quanto descritto a propositodellelemento body.

Corpo

Il corpo vero e proprio del documento contenuto nellelementobody, il quale si pu articolare in volumi, parti o capitoli. Sta al-lautore scegliere quale livello di suddivisione superiore adottare. evidente che se si usa una suddivisione in volumi, si prevede unasottoclassificazione in parti, che poi si dividono in capitoli; se si usauna suddivisione in parti, obbligatoria una sottoclassificazione incapitoli.

Eccezionalmente, un volume pu contenere solo capitoli, senzaparti, quando per qualche ragione ci necessario.

Volumi, parti, capitoli e sezioni inferiori sono delimitate material-mente attraverso la dichiarazione del titolo relativo, come avviene inHTML. Le tabelle e gli schemi successivi descrivono gli elementirelativi.

941

|Figura u65.18. Schema di un volume.||volume| |--tomeheading [id="ancora"] [lang="lingua"] [bookmark="segnalibro"]| | --testo_lineare| |--[blocco_generico]...| --{parte...|capitolo...}

|

|Tabella u65.19. Dichiarazione dei titoli dei volumi, con lapossibilit di aggiungere un indice del contenuto.

Elemento Descrizione

|tomeheading [id="ancora"] [lang="..."][bookmark="..."]

Titolo del volume. Lattri-buto id consente di spe-cificare unancora di rife-rimento; lattributo langconsente di specificare lalingua del volume; lattri-buto bookmark consen-te di specificare un se-gnalibro alternativo per lacomposizione in formatoPDF.

942

Elemento Descrizione

|tomecontents [levels="livelli"][nopages="true|false"]

Elemento vuoto per otte-nere linserimento dellin-dice generale del volume.Lattributo levels spe-cifica il livello di detta-glio dellindice; lattribu-to nopages consente dinon mostrare i numeri dipagina nella composizioneper la stampa.

|Figura u65.20. Schema di una parte.||parte| |--h0 [id="ancora"] [lang="lingua"] [bookmark="segnalibro"]| | --testo_lineare| |--[blocco_generico]...| --capitolo...

|

|Tabella u65.21. Dichiarazione dei titoli delle parti, con lapossibilit di aggiungere un indice del contenuto.

943

Elemento Descrizione

|h0 [id="ancora"] [lang="..."] [bookmark="..."]

Titolo della parte. Lattri-buto id consente di spe-cificare unancora di rife-rimento; lattributo langconsente di specificare lalingua della parte; lattri-buto bookmark consen-te di specificare un se-gnalibro alternativo per lacomposizione in formatoPDF.

|partcontents [levels="livelli"][nopages="true|false"]

Elemento vuoto per otte-nere linserimento dellin-dice generale della parte.Lattributo levels spe-cifica il livello di detta-glio dellindice; lattribu-to nopages consente dinon mostrare i numeri dipagina nella composizioneper la stampa.

944

|Figura u65.22. Schema di un capitolo e della sua suddivisioneinferiore.

||capitolo| |--h1 [id="ancora"] [lang="lingua"] [bookmark="segnalibro"]| | --testo_lineare| |--[blocco_generico]...| |--[sezione...]| | |--h2 [id="ancora"] [bookmark="segnalibro"]| | | --testo_lineare| | |--[blocco_generico]...| | --[sottosezione...]| | |--h3 [id="ancora"] [bookmark="segnalibro"]| | | --testo_lineare| | |--[blocco_generico]...| | --[sotto_sottosezione...]| | |--h4 [id="ancora"] [bookmark="segnalibro"]| | | --testo_lineare| | --[blocco_generico]...| --[endofchapter]

|

|Tabella u65.23. Elementi relativi alla definizione di un capitolo.

945

Elemento Descrizione

|h1 [id="ancora"] [lang="..."] [bookmark="..."]

Titolo del capitolo. Lattri-buto id consente di spe-cificare unancora di rife-rimento; lattributo langconsente di specificare lalingua del capitolo; lat-tributo bookmark con-sente di specificare un se-gnalibro alternativo per lacomposizione in formatoPDF.

|chaptercontents [levels="livelli"][nopages="true|

false"]

Elemento vuoto per otte-nere linserimento dellin-dice generale del capitolo.Lattributo levels spe-cifica il livello di detta-glio dellindice; lattribu-to nopages consente dinon mostrare i numeri dipagina nella composizioneper la stampa.

|h2 [id="ancora"] [bookmark="..."]

Titolo della sezione.Lattributo id consentedi specificare unancoradi riferimento; lattributobookmark consentedi specificare un segna-libro alternativo per lacomposizione in formatoPDF.

946

Elemento Descrizione

|h3 [id="ancora"] [bookmark="..."]

Titolo della sottosezione.Lattributo id consen-te di specificare unanco-ra di riferimento; lattri-buto bookmark consen-te di specificare un se-gnalibro alternativo per lacomposizione in formatoPDF.

|h4 [id="ancora"] [bookmark="..."]

Titolo della sotto-sottosezione. Lattributoid consente di spe-cificare unancora diriferimento; lattributobookmark consentedi specificare un segna-libro alternativo per lacomposizione in formatoPDF.

|extramaincontents [levels="livelli"][nopages="true|

false"]

Elemento vuoto per otte-nere linserimento di unindice generale comples-sivo. Lattributo levelsspecifica il livello di detta-glio dellindice; lattribu-to nopages consente dinon mostrare i numeri dipagina nella composizioneper la stampa.

947

Elemento Descrizione

|endofchapterTesto lineare da inserire,eventualmente, alla fine diun capitolo, con delle noteparticolari.

Nella parte iniziale delle classificazioni principali (volumi, par-ti e capitoli), possibile collocare la richiesta di inserimento diun indice generale specifico. Si ottiene questo con gli elementi:tomecontents, partcontents e chaptercontents ( di-sponibile anche lelemento extramaincontents che riguardalopera intera e pu essere collocato ovunque). Ognuno di questi ele-menti prevede lattributo levels, con il quale possibile stabilireil livello di dettaglio di tali indici, tenendo presente che con il nume-ro zero si ottengono voci fino alle parti, con uno si ottengono anchei capitoli, mentre con valori superiori si accede alle sezioni di livelloinferiore. Anche in questo caso possibile inibire la segnalazionedelle pagine (nel caso di composizione per la stampa), utilizzandolattributo nopages.

Lelemento endofchapter avrebbe lo scopo di consentire lin-serimento di una riga di informazioni alla fine del capitolo; pre-cisamente, nella composizione per la stampa, alla base dellul-tima pagina del capitolo. Purtroppo, per, in presenza di riqua-dri fluttuanti pu succedere di vedere il contenuto dellelementoendofchapter alla fine di una pagina, mentre nelle successivevengono collocati i riquadri fluttuanti rimasti in sospeso; inoltre, pucapitare di avere una pagina completamente vuota, ma contenentesoltanto quanto inserito nellelemento endofchapter.

948

Appendici

Dopo il corpo possibile inserire lelemento appendix, il cui sco-po quello di delimitare uno o pi capitoli speciali, da intenderecome appendici.

Indici analitici

Alml consente la definizione di diversi tipi di indici analitici. Perquesti previsto uno spazio speciale collocato dopo le appendici, seci sono, o in caso contrario subito dopo il corpo. Si tratta dellele-mento index, che prevede linserimento di capitoli, come nel casodelle appendici.

Linserimento di un elenco riferito a un indice analitico particolare siottiene con lelemento vuoto printindex. Viene descritto meglioin seguito luso di questo elemento, perch Alml in grado di gestirepi indici analitici differenti.

Suddivisioni speciali

Oltre alle suddivisioni standard nella forma hn, ne sono disponi-bili altre per scopi particolari. Sono previsti capitoli speciali per lepresentazioni (diapositive o lucidi per lavagna luminosa), i prospettischematici riassuntivi (tavole sintetiche e simili), i questionari (perle verifiche didattiche), oltre a due tipi di sezioni per domande erisposte.

949

|Figura u65.24. Schema di un capitolo speciale per diapositive.||capitolo| |--slideh1 [id="ancora"] [lang="lingua"] [bookmark="segnalibro"]| | --testo_lineare| |--[blocco_generico]...| --[endofchapter]

|

|Figura u65.25. Schema di un capitolo speciale per schedeinformative generiche.

||capitolo| |--sheeth1 [id="ancora"] [lang="lingua"] [bookmark="segnalibro"]| | --testo_lineare| |--[blocco_generico]...| --[endofchapter]

|

950

|Figura u65.26. Schema di un capitolo contenente domande erisposte.

||capitolo| |--h1 [id="ancora"] [lang="lingua"] [bookmark="segnalibro"]| | --testo_lineare| |--[blocco_generico]...| |--[sezione...]| | |--faqh2 [id="ancora"] [bookmark="segnalibro"]| | | --testo_lineare| | |--qh2 [id="ancora"] [bookmark="segnalibro"]| | | --testo_lineare| | |--[blocco_generico]...| | --[sottosezione...]| | |--faqh3 [id="ancora"] [bookmark="segnalibro"]| | | --testo_lineare| | |--qh3 [id="ancora"] [bookmark="segnalibro"]| | | --testo_lineare| | --[blocco_generico]...| --[endofchapter]

|

951

|Figura u65.27. Schema parziale di un capitolo contenente unquestionario.

||capitolo| |--testh1 [id="ancora"] [lang="lingua"] [bookmark="segnalibro"]| | | [testtime="tempo"] [testtimepenalty="penalit"]| | | [testwindow="0|0"] [testanswaretime="tempo"]| | | [testmaxscore="punteggio_massimo"]| | | [testcodehide="0|1|2|3"]| | --testo_lineare

| |--dati_descrittivi...

| | |--[blocco_generico]| | --[testinfo]| |--domanda...

| | |--[domanda_risposta_singola]| | | |--testlistquestion| | | |--[blocco_generico]...| | | --testlist...

| | |--[domanda_risposta_multipla]| | | |--testmultiquestion| | | |--[blocco_generico]...| | | --testmulti...

| | --[domanda_risposta_testuale]| | |--testtextquestion| | |--[blocco_generico]...| | --testtext...

| |--testsend| --[endofchapter]

|

952

|Tabella u65.28. Dichiarazione dei titoli di capitoli e di sezionispeciali.

Elemento Descrizione

|slideh1 [id="ancora"] [lang="..."] [bookmark="..."]

Titolo della diapositiva. Lattri-buto id consente di specificareunancora di riferimento; lattri-buto lang consente di specifi-care la lingua del capitolo; lattri-buto bookmark consente di spe-cificare un segnalibro alternativoper la composizione in formatoPDF.

|sheeth1 [id="ancora"] [lang="..."] [bookmark="..."]

Titolo della scheda sintetica. Lat-tributo id consente di specifica-re unancora di riferimento; lat-tributo lang consente di specifi-care la lingua del capitolo; lattri-buto bookmark consente di spe-cificare un segnalibro alternativoper la composizione in formatoPDF.

953

Elemento Descrizione

|testh1 [id="ancora"] [lang="..."] [bookmark="..."]

[testtime="..."] [testtimepenalty="..."]

[testwindow="0|1"][testanswaretime="tempo"][testmaxscore="massimo"]

[testcodehide="n"]

Titolo del questionario. Lattri-buto id consente di specifica-re unancora di riferimento; lat-tributo lang consente di spe-cificare la lingua del capitolo;lattributo bookmark consen-te di specificare un segnalibroalternativo per la composizio-ne in formato PDF; lattributotesttime consente di indica-re il tempo massimo in secondi;testtimepenalty permette dispecificare la penalit da sottrar-re al punteggio per ogni secondodi ritardo; testwindow consen-te di far eseguire la verifica in unafinestra priva di men e di ico-ne; testanswaretime consen-te di stabilire il tempo a dispo-sizione per la stampa del risulta-to; testmaxscore serve a in-dicare ad Alml qual il punteg-gio massimo che pu produrre laverifica; testmaxscore servea indicare ad Alml qual il pun-teggio massimo che pu produr-re la verifica; testcodehideconsente di rendere difficilmenteinterpretabile il codice HTML eJavaScript, attribuendo un valoreintero maggiore di zero.

|faqh2 [id="ancora"] [lang="..."]

Titolo del gruppo di domande erisposte. Lattributo id consen-te di specificare unancora di rife-rimento; lattributo bookmarkconsente di specificare un segna-libro alternativo per la composi-zione in formato PDF.

954

Elemento Descrizione

|faqh3 [id="ancora"] [lang="..."]

Domanda a cui segue una ri-sposta. Lattributo id consentedi specificare unancora di rife-rimento; lattributo bookmarkconsente di specificare un segna-libro alternativo per la composi-zione in formato PDF.

|qh2 [id="ancora"] [lang="..."]

Titolo di un gruppo di domande.Lattributo id consente di spe-cificare unancora di riferimento;lattributo bookmark consentedi specificare un segnalibro al-ternativo per la composizione informato PDF.

|qh3 [id="ancora"] [lang="..."]Domanda. Lattributo idconsente di specificare unan-cora di riferimento; lattributobookmark consente di specifi-care un segnalibro alternativo perla composizione in formato PDF.

Gli elementi slideh1, sheeth1 e testh1 si usano al posto diun capitolo normale. La differenze pi importante rispetto allele-mento h1, sta nel fatto che non possono contenere altre suddivisio-ni in sezioni. Si osservi che, pur non avendo modo di controllare ladimensione del contenuto, bene che ogni diapositiva e ogni sche-da occupi una sola pagina nella composizione per la stampa, mentrenel caso di un questionario di verifica, non esiste questo problemaestetico.

Lelemento faqh2 va usato al posto di h2, allinterno di un ca-pitolo normale. Permette di introdurre un gruppo di domande e ri-sposte, precedendole eventualmente da qualche blocco di testo in-troduttivo. Lelemento qh2 simile a faqh2 e va usato quando

955

le domande che raggruppa non hanno propriamente il senso di unafaq.

Lelemento faqh3 serve a contenere il testo di una domanda, an-che se potrebbe essere pi lungo di un titolo normale. Il testo vienerappresentato in modo evidenziato, ma non tanto quanto un elemen-to h3 normale. Dopo lelemento faqh3 ci si aspetta di trovarela risposta alla domanda. Lelemento qh3 simile a faqh3 e vausato quando la domanda non ha il senso di una faq.

Nel capitolo u77 descritto meglio come realizzare delle diapositive,mentre nel capitolo u73 descritto come realizzare un questionario.

Documento multilingua

Lattributo lang viene indicato normalmente nellelemento almlper definire il linguaggio complessivo del lavoro, ma il linguaggiopu essere modificato nellambito dei volumi, delle parti o dei capi-toli. Per questo, lattributo lang pu essere usato anche negli ele-menti tomeheading, h0 e h1, con lo scopo di fare riferimentoal volume, alla parte o al capitolo a cui questi titoli si riferiscono.Pertanto, si osservi che lattributo lang attribuisce il valore dellascelta linguistica a tutto il volume, alla parte o al capitolo relativo,senza limitarsi allambito dellelemento che ne delimita il titolo.

Un volume, una parte o un capitolo che non abbiano la definizio-ne esplicita di un linguaggio, ereditano la definizione del livellogerarchicamente precedente.

La motivazione pi importante per la quale stato introdotto que-sto attributo nella dichiarazione dei volumi, delle parti e dei capito-

956

li, sta nel fatto che cos la composizione in HTML genera file conintestazioni adeguate, anche per lindicizzazione delle informazioni.

La sigla della lingua va attribuita secondo lo standard ISO 639 (ta-bella 13.4). Se non stata prevista la traduzione dei termini rela-tivi alla composizione nella lingua richiesta, questi si ottengono ininglese.

Lesempio seguente mostra la dichiarazione esplicita di un capitoloche da considerare in lingua inglese:

|Here I am

La definizione del volume, della parte o del capitolo viene adat-tata alla lingua, solo se questa non stata modificata attra-verso gli elementi tomedefinition, partdefinition echapterdefinition, descritti pi avanti in questo capitolo.

Cambiamento temporaneo del linguaggio

Quando si inserisce un testo di un linguaggio che non appartiene al-lEuropa occidentale, pu essere necessario selezionare il linguaggioper ottenere una composizione corretta. Pertanto, oltre alla selezionedel linguaggio allinizio dei volumi, delle parti e dei capitoli, pos-sibile modificare il linguaggio di un blocco di testo o di una porzionelineare, rispettivamente con gli elementi div e span. Gli esem-pi seguenti mostrano luso di entrambi per ottenere la composizioneper la stampa di alcune lettere in cirillico:

957

|||

а А б Б в В г Г д Д| е Е ё Ё ж Ж з З...

||

...|

Bla bla bla: а А б Б в В|г Г д Д е Е ё Ё ж Ж з|З... bla bla bla.

Bla bla bla: ... bla bla bla.Pu succedere che il cambiamento di linguaggio crei confusionea LaTeX, che viene usato per ottenere la composizione da stampare.Si possono osservare degli errori inspiegabili nel file .log gene-rato durante il procedimento di composizione, in corrispondenza divocali accentate:|! Missing \endcsname inserted.|| \global|l.16570 cui corrisponde lentit\a| parametrica|The control sequence marked should|not appear between \csname and \endcsname.

Se questo avviene successivamente a un testo scritto con un linguag-gio particolare (proprio come si verifica in questa spiegazione), sipu tentare di dichiarare nuovamente il linguaggio con un elementodiv, oppure span:

958

|

Bla bla bla: а А б Б в В|г Г д Д е Е ё Ё ж Ж з|З... bla bla bla.

||||

Bla bla bla... perch, poich, c,... bla bla bla.

|||

Definizione alternativa della suddivisione deldocumento

Alml pensato per la realizzazione di documenti di grandi dimen-sioni. In questo senso, la sua struttura normale quella di un li-bro, articolato in capitoli che si possono raggruppare in parti e vo-lumi. Queste suddivisioni prevedono una denominazione attribuitaautomaticamente, corrispondente a capitolo, parte e volume;eventualmente, se tale struttura va definita invece attraverso terminidifferenti, si possono sostituire le definizioni delle suddivisioni conaltre pi appropriate.

Per questo si usano gli elementi chapterdefinition,partdefinition e tomedefinition, allinterno delle infor-mazioni amministrative. Lesempio seguente dovrebbe permetteredi comprendere il problema; per la precisione si tratta di una rivistatelematica ipotetica:

959

|| | Rivista di informatica libera| informatica libera, software libero| articolo| numero| anno| | RIL, rivista di informatica libera| Pinco Pallino | 2011.11.11| |

Copyright Pinco Pallino,

| | Table of contents|

Si pu osservare che le parole articolo, numero e anno, sonostate inserite usando lettere minuscole e in forma singolare. Ci ne-cessario, perch liniziale maiuscola viene ottenuta automaticamen-te quando opportuno; inoltre, questi termini vengono usati semprequando si fa riferimento a un solo oggetto.

La numerazione dei volumi, delle parti e dei capitoli indipenden-te, per cui non ci si pu aspettare che al cambio di un volume o diuna parte, i capitoli riprendano la numerazione a partire da uno.

1 Qui si intendono sezioni a qualsiasi livello, compresi i capitoli, leparti e i volumi.

960

Elementi interni alle righe

a2

2013

.11.

11--

-Cop

yrig

ht

Dan

iele

Gia

com

ini-

-app

unti2

@gm

ail.c

omht

tp://

info

rmat

ical

iber

a.ne

t

Numeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964

Tastiera, men e codice ASCII . . . . . . . . . . . . . . . . . . . . . . . . .966

Indirizzi di posta elettronica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 969

Esistono due gruppi fondamentali di elementi: contenitori a bloccoe contenitori lineari. Nel primo caso si possono immaginare dei ret-tangoli che contengono qualcosa, mentre nel secondo si tratta gene-ralmente di sequenze di caratteri che scorrono e vanno a capo quandoserve. Il caso tipico di elemento che costituisce un blocco il pa-ragrafo, p, che a sua volta contiene componenti lineari, mentre ilcaso tipico di elemento che pu essere inserito esclusivamente in uncontesto lineare lenfatizzazione, em. La tabella successiva riepi-loga gli elementi comuni che riguardano inserzioni allinterno dellariga.

|Tabella u66.1. Elementi inseriti allinterno delle righe.Elemento Descrizione

|emDelimita un testo che de-ve essere reso in modoenfatizzato normale.

|strongDelimita un testo che de-ve essere reso in modoenfatizzato rafforzato.

|bigDelimita un testo che deveapparire relativamente pigrande.

961

http://informaticalibera.nethttp://informaticalibera.nethttp://informaticalibera.nethttp://informaticalibera.net

Elemento Descrizione

|smallDelimita un testo che deveapparire relativamente pipiccolo.

|acronym Delimita un acronimo.|dacronym Delimita la descrizione diun acronimo.

|kbdDelimita un testo che rap-presenta la pressione di untasto o di una combinazio-ne di tasti.

|vkbdDelimita un testo che rap-presenta la selezione vir-tuale di un tasto o di unacombinazione di tasti.

|kpDelimita un testo che rap-presenta la pressione di untasto o di una combinazio-ne di tasti della porzionenumerica della tastiera.

|asciicode Delimita un testo che rap-presenta un codice ASCII.|button

Delimita un testo che rap-presenta la selezione di unbottone grafico.

|menuitemDelimita un testo che rap-presenta la voce di unmen.

|codeCodice: delimita un te-sto con la stessa funzio-ne dellelemento CODE diHTML.

962

Elemento Descrizione

|sampStringa: delimita un te-sto con la stessa funzio-ne dellelemento SAMP diHTML.

|fileDelimita il testo che rap-presenta il percorso di unfile o di una directory.

|dfn Delimita un testo da inten-dere come definizione.

|strdfnDelimita un testo da in-tendere come definizio-ne espressa in una linguastraniera.

|special special="nome"Delimita un testo che haun significato speciale eappartiene a un gruppo ditermini definito dal nomeassegnato allattributo.

|sup|pwr

Questi due elementi, de-limitano un testo che de-ve essere elevato ad api-ce. Nel secondo caso, siintende che debba trattarsidi una potenza.

|sub Delimita un testo che deveessere abbassato a pedice.

963

Elemento Descrizione

|email

Delimita un testo da trat-tare come indirizzo di po-sta elettronica da masche-rare. Si usa delimitandoil contenuto in una sezio-ne marcata di tipo CDATAe serve a mascherare gliindirizzi ai sistemi auto-matici di raccolta di taliinformazioni.

|numDelimita un numero nor-male, composto da ci-fre numeriche, punto ovirgola e segno iniziale.

|exa Delimita un numero inbase sedici.|dec Delimita un numero inbase dieci.|oct Delimita un numero inbase otto.|bin Delimita un numero inbase due.

Nelle sezioni successive viene approfondito luso di alcuni di questielementi.

Numeri

La rappresentazione uniforme di valori numerici, specie quando siopera spesso con basi di numerazione insolite, diventa un aspettodelicato. Alml prevede alcuni elementi da utilizzare allinterno del-

964

le righe per delimitare valori nu