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

106
Parte xxii ALML « Introduzione ad ALML ................................... 395 Esigenze che Alml intenderebbe soddisfare .............. 395 Tutto in uno .......................................... 395 Continuità tra documento stampato e documento elettronico 395 Perché SGML ........................................ 396 Capitoli sullo stile usato per a2 ......................... 396 Preparazione e visione generale ........................... 397 Installazione di Alml .................................. 397 Esempio iniziale ...................................... 398 Cosa si genera con la composizione ..................... 401 Sintassi nell’uso del programma frontale ................ 402 Codifica del sorgente .................................. 406 Organizzare un file-make o uno script ................... 406 Formati particolari .................................... 408 Progetti di documentazione che utilizzano il formato di Alml 409 Il documento secondo Alml ............................... 411 Organizzazione generale ............................. 411 Dalla copertina all’indice generale ....... 412 Contenuto .......................................... 419 Documento multilingua ................................ 425 Definizione alternativa della suddivisione del documento 426 Elementi interni alle righe ................. 429 Numeri ............................................ 430 Tastiera, menù e codice ASCII ...................... 431 Indirizzi di posta elettronica ........................... 432 Blocchi comuni ......................................... 433 Elenchi e simili .................................... 433 Testo letterale o quasi ................................ 435 Modelli sintattici .................................. 439 Comandi ........................................... 441 Altri blocchi e componenti lineari particolari ............... 443 Inserzioni particolari ............................... 443 Riquadri ............................................ 444 Copia di porzioni del documento ...................... 446 Riferimenti, note e altre informazioni ...................... 449 Riferimenti incrociati e ipertestuali ............... 449 Note e piè pagina .................................... 451 Riferimenti esterni e citazioni ...................... 451 Indici analitici e termini speciali ................... 452 Caratteristiche del software e di altri «lavori» ......... 455 Informazioni su sezioni specifiche del documento ....... 456 Sezioni particolari ................................... 457 Immagini e video .................................. 459 Immagini esterne ..................................... 462 Immagini incorporate Base64 .......................... 462 Immagini incorporate EPS ............................. 463 Immagini incorporate XFig ............................ 463 Immagini incorporate LilyPond ........................ 464 Immagini incorporate TeX e LaTeX .................... 464 Immagini incorporate Gnuplot ......................... 465 391

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

Parte xxii

ALML

Introduzione ad ALML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..395

Esigenze che Alml intenderebbe soddisfare . . . . . . . . . . . . . .395

Tutto in uno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 395

Continuit tra documento stampato e documento elettronico395

Perch SGML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .396

Capitoli sullo stile usato pera2 . . . . . . . . . . . . . . . . . . . . . . . . .396

Preparazione e visione generale . . . . . . . . . . . . . . . . . . . . . . .. . . .397

Installazione di Alml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 397

Esempio iniziale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 398

Cosa si genera con la composizione . . . . . . . . . . . . . . . . . . . . .401

Sintassi nelluso del programma frontale . . . . . . . . . . . . . . .. 402

Codifica del sorgente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 406

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

Formati particolari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 408

Progetti di documentazione che utilizzano il formato di Alml409

Il documento secondo Alml . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .411

Organizzazione generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . .411

Dalla copertina allindice generale . . . . . . .412

Contenuto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .419

Documento multilingua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..425

Definizione alternativa della suddivisione del documento426

Elementi interni alle righe . . . . . . . . . . . . . . . . .429

Numeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .430

Tastiera, men e codice ASCII . . . . . . . . . . . . . . . . . . . . . .431

Indirizzi di posta elettronica . . . . . . . . . . . . . . . . . . . . . . . .. . . 432

Blocchi comuni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 433

Elenchi e simili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .433

Testo letterale o quasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 435

Modelli sintattici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .439

Comandi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .441

Altri blocchi e componenti lineari particolari . . . . . . . . . .. . . . .443

Inserzioni particolari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 443

Riquadri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 444

Copia di porzioni del documento . . . . . . . . . . . . . . . . . . . . . .446

Riferimenti, note e altre informazioni . . . . . . . . . . . . . . . . .. . . . .449

Riferimenti incrociati e ipertestuali . . . . . . . . . . . . . . .449

Note e pi pagina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .451

Riferimenti esterni e citazioni . . . . . . . . . . . . . . . . . . . . . .451

Indici analitici e termini speciali . . . . . . . . . . . . . . . . . . .452

Caratteristiche del software e di altri lavori . . . . . . . . .455

Informazioni su sezioni specifiche del documento . . . . . . .456

Sezioni particolari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 457

Immagini e video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .459

Immagini esterne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 462

Immagini incorporate Base64 . . . . . . . . . . . . . . . . . . . . . . . . . .462

Immagini incorporate EPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .463

Immagini incorporate XFig . . . . . . . . . . . . . . . . . . . . . . . . . . . .463

Immagini incorporate LilyPond . . . . . . . . . . . . . . . . . . . . . . . .464

Immagini incorporate TeX e LaTeX . . . . . . . . . . . . . . . . . . . .464

Immagini incorporate Gnuplot . . . . . . . . . . . . . . . . . . . . . . . . .465

391

Osservazioni sullincorporazione di codice estraneo . . . .. . 466

Tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 467

Allegati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .471

Verifiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .473

Capitolo per le verifiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 474

Impedire la lettura del codice . . . . . . . . . . . . . . . . . . . . . . . . .. .476

Esempio di verifica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..476

Esempio di verifica con Alml . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 481

Esempio di verifica con Alml bis . . . . . . . . . . . . . . . . . . . . . . . . .. 483

Esempio di verifica con Alml ter . . . . . . . . . . . . . . . . . . . . . . . . .. 485

Presentazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .487

Esempio di presentazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 487

Composizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 488

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

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

Alfabeti simbolici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .493

Alfabeti latini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .502

Alfabeti non latini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .505

HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .508

Riferimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .512

Insieme di caratteri universale e Alml . . . . . . . . . . . . . . . . . .. 513

Riferimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .535

Stile di scrittura del sorgente . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .537

Blocchi di testo e rientri . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 537

Figure e tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 538

Titoli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 539

Sezioni marcate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .539

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

Estrapolazione di porzioni del file SGML . . . . . . . . . . . . . . .541

Esempio di un progetto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .542

Aggregazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 543

Questioni tecniche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 545

Usare Textchk e Ispell con Alml . . . . . . . . . . . . . . . . . . . . . . . .545

Espandere le potenzialit elaborative di TeX . . . . . . . . . . .545

Programma di supporto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .548

Gestione di a2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .555

Articolazione dei file del sorgente . . . . . . . . . . . . . . . . . . . . .. .555

Inclusione selettiva dei file esterni ed entit speciali . . .. . . .555

Composizione guidata con il file-make . . . . . . . . . . . . . . . . . .557

Convenzioni di a2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .559

Unit di misura e moltiplicatori . . . . . . . . . . . . . . . . . . . . . . ..559

Casi particolari di testo che non viene enfatizzato . . . . . . .. 560

Valori numerici in lettere e in cifre . . . . . . . . . . . . . . . . . . . ..560

Distinzione nelluso dei nomi degli applicativi . . . . . . . . .. . 561

Descrizione degli acronimi . . . . . . . . . . . . . . . . . . . . . . . . . . .. .562

Indice analitico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 562

Enfatizzazioni e uso degli elementi special . . . . . . . . . . .. 564

Rappresentazione del contenuto di file e dei flussi standard568

Altri problemi di coerenza nelluso degli elementi SGML .569

Sezioni marcate per le annotazioni . . . . . . . . . . . . . . . . . . . . .. 570

Glossario stilistico di a2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .571

Termini tecnici particolari . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .572

392

Glossario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .575

Forme espressive particolari . . . . . . . . . . . . . . . . . . . . . . . . .. . .595

Annotazioni varie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 595

Nomi dei caratteri speciali . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 596

Nomi da usare in modo uniforme . . . . . . . . . . . . . . . . . . . . . . .596

Riferimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .597

Indice del glossario stilistico . . . . . . . . . . . . . . . . . . . . . . .. . . . 597

393

394

Introduzione ad ALML

a2

2013

.11.

11--

-Co

pyr

igh

tD

an

iele

Gia

com

ini-

-a

pp

un

ti2@

gm

ail.

comht

tp://

info

rmat

ical

iber

a.ne

t

Esigenze che Alml intenderebbe soddisfare . . . . . . . . . . . . . .. . 395

Tutto in uno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .395

Continuit tra documento stampato e documento elettronico. 395

Perch SGML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 396

Capitoli sullo stile usato pera2 . . . . . . . . . . . . . . . . . . . . . . . . . . .396

Alml 1 un sistema di composizione SGML, realizzato espressamen-te per loperaa2, 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 citatoa2.Esiste una grande variet di strumenti per leditoria elettronica, cheper spesso hanno il difetto di essere troppo specifici. Per esempio,se con LaTeX (capitolo50) 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 poiquestihanno 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 fileda 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 lanecessitdi avvalersi della collaborazione altrui. Naturalmente sipu 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 possibile lestrapolazione di una porzione pi piccola dauno 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 poterpro-durre, principalmente, un documento stampabile o un documentoelettronico adatto alla consultazione in linea.

395

A titolo di esempio, si pu considerare il caso dei riferimenti iper-testuali, che devono avere un senso, sia quando il documentovie-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 specialiper 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(sezione51.1.7). A ogni modo, la dichiarazione SGML di Alml in-corpora alcune caratteristiche tipiche di un sistema XML, inmodoparticolare 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 dia2. Quei capitoli sono solo indicativie non sono aggiornati da diverso tempo; tuttavia rimangono assiemealla documentazione di Alml, per lasciare almeno unidea dicome organizzata stilisticamente loperaa2.1 Alml GNU GPL

396

Preparazione e visione generale

a2

2013

.11.

11--

-Co

pyr

igh

tD

an

iele

Gia

com

ini-

-a

pp

un

ti2@

gm

ail.

comht

tp://

info

rmat

ical

iber

a.ne

t

Installazione di Alml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .397

Gettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .398

Esempio iniziale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .398

Cosa si genera con la composizione . . . . . . . . . . . . . . . . . . . . . .. 401

Sintassi nelluso del programma frontale . . . . . . . . . . . . . . .. . . .402

Codifica del sorgente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .406

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

Formati particolari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .408

Progetti di documentazione che utilizzano il formato di Alml 409

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.

|Tabella u64.1. Applicativi principali da cui dipende Alml.Applicativo Compito

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

UuencodeEstrae le immagini incorporate da fileesterni.

GraphicsMagick o Image-Magick

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

GhostscriptServe a ImageMagick per la conversione difile PostScript in altri formati.

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

GnuplotConsente lincorporazione di codice Gnu-plot.

EukleidesConsente lincorporazione di codice Eu-kleides.

Groff, PS2EPS Consentono lincorporazione di codice*roff.

PlotUtilsConsente lincorporazione di codice davari programmi del pacchetto PlotUtils.

Installazione di Alml

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

|| alml- versione.tar.gz

|

|| alml_ versione- n_all.deb

|

397

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-rectorybin/ , devono essere raggiungibili attraverso il percorso diricerca del sistema, rappresentato dalla variabile di ambientePATH .Pertanto vanno collocati opportunamente, oppure vanno predispostidei collegamenti adeguati.

Quanto contenuto nella directoryshare/sgml/ , va collocato nelladirectory /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 simbolicoalml.cat , che nella suacollocazione finale deve trovarsi nella directory /usr/share/sgml/alml/ . Normalmente questo punta al filealml.cat.debian , ma in caso di problemi conviene modificarlo in modoche punti aalml.cat.normal .

Gettext

I messaggi di Alml possono essere tradotti. Se si dispone delfi-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 programmialml e alml-extra :| # 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 disponibilepressoallegati/a2/alml-esempio-iniziale.sgml). Il testo umoristicocontenuto di dominio pubblico.

398

| | | | | 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 pubbl ico,| pertanto ci si pu fare quello che si vuole.

| | Indice generale| | | | Introduzione al documento| ||

Questo documento scritto per dimostrare il funzioname nto di Alml,| utilizzando frasi che, storpiando vecchi detti comuni, pot rebbero| diventare i detti di domani.

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

Sono scremato dalla fatica: il lavoro mobilita luomo, m a 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 a nonima:| bisogna fare attenzione ai branchi di nebbia.

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

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

||

Una volta ho urtato la macchina sul paraguail, poi sono fi nito sulle| banchine spargitraffico e cos ho perso la marmitta paralit ica... Meno| male che lauto aveva liceberg incorporato. Pur troppo, 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 .

||

Sono pieno di malattie: ho le piastrelle basse; ho lo zaga rolo| 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 cli nicamente| intestato, ma poi ho preso del bicarbonato di soia e della tin tura di| odio per combattere gli isterismi della cellulite.

|| | | | Gondole voraci| ||

Al ristorante ho ordinato un piatto di pasta con le gondol e 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 s tremato.| Alla fine, mi sono fatto mettere gli avanzi nella carta spagn ola.

||

Non mi voglio divulgare, ma di fronte a queste cose rimang o| putrefatto... Cos ho deciso che quando muoio mi faccio crom are.

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

Se tutto viene copiato correttamente nel file ipoteticoalml-

399

esempio-iniziale.sgml , con il comando seguente si ottiene lacomposizione in PostScript, attraverso LaTeX e Dvips:

$ alml --ps alml-esempio-iniziale.sgml [ Invio]

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 pressoallegati/a2/alml-esempio-iniziale.pdf(vienedistribuito assieme alledizione HTML dellopera).

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

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

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

400

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

|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 deltipodi operazione che viene richiesta. La tabella u64.11 riepiloga i fileprincipali.

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

File Descrizione

nome.sgml Il sorgente SGML principale da cui hannoorigine gli altri file.

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

nome.diag File diagnostico generato daalml .

nome.pageref File temporaneo con i riferimenti allepagine nella composizione con LaTeX.

nome.pageloc File 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.html nome.htm

Primo file della composizione in HTML.

nomen.html nomen.htm

n-esimo file della composizione in HTML.

401

File Descrizione

nome_capitolo.html nome_capitolo.htm

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

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

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

n.midi n.mid

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

nome_brano.midi nome_brano.mid

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

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

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

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

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

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 servonoim-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 questipro-blemi in modo sbrigativo usando ImageMagick e facendo un pas-saggio intermedio nel formato JPG, allo scopo di perdere delleinformazioni. Per esempio, disponendo del filepippo.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.

Sintassi nelluso del programma frontale

Il programma frontale attraverso cui si gestisce il sistemadicomposizione Alml alml :

|| alml opzioni sorgente_sgml

| alml --help| alml --version

|

402

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, possibilelavoraresolo 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, possibileselezio-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.

|--clean

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

|--verbose

Segnala il procedere del-lelaborazione con infor-mazioni dettagliate. In ge-nerale tali informazionisono ottenibili dal file nome.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.

|--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 chiavea4 ;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 lusodellelementoPAUSE).

|--embedded-script-enable

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

403

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.

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

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

404

Opzione Descrizione

|--dvi

Genera un risultato in for-mato DVI. Lelaborazionecrea una serie di file EPS ePDF per le immagini, se-condo i modelli n.ps e n.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.

|--pdf

Genera un risultato in for-mato PDF. Lelaborazionecrea una serie di file EPS ePDF per le immagini, se-condo i modelli n.ps e n.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.).

|--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.txt Oppure: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.

|--html320-check

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

405

Opzione Descrizione

|--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 siavvalgonodellalfabeto latino, il greco e il russo, come si pu vederemeglio nelcapitolou79.

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:

|| 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 variabiliLC_* ; 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 fileexample.sgml , in cuisi pu vedere anche lutilizzo proposto dialml .| # 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 ; \| 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 \

406

| $(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|| 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 lobiettivoclean 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 comandomake ps , si ottiene la com-posizione in PostScript, generando in particolare il fileexample.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| 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" ]

407

| then| alml --pdf \| --verbose \| --page-numbering=plain \| $DOC_PREFIX.sgml| #| 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 dialml-extra , usandolocome nel comando seguente:

$ alml-extra --a5x4-to-a7x4-2-a4 nome.ps [ Invio]

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

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

408

Progetti di documentazione che utilizzano ilformato di Alml

Lelenco successivo riporta alcuni progetti di documentazioni cheutilizzano Alml:

Gianluca Giusti,Programmare in PHP

http://www.urcanet.it/brdp/php_manual/

Gaetano Paolone,Linux domande e risposte

http://linuxfaq.it

Fulvio Ferroni,Programmazione dei socket di rete in GNU/Linux

http://linuxdidattica.org/docs/altre_scuole/planck/socket/

Fulvio Ferroni,Samba e OpenLDAP

http://linuxdidattica.org/docs/altre_scuole/planck/samba/

Massimo Piai,Informatica per sopravvivere

http://linuxdidattica.org/piai/xs/

1 Nelle distribuzioni Debian si tratta del pacchetto liblocale-gettext-perl .

409

410

Il documento secondo Alml

a2

2013

.11.

11--

-Co

pyr

igh

tD

an

iele

Gia

com

ini-

-a

pp

un

ti2@

gm

ail.

comht

tp://

info

rmat

ical

iber

a.ne

t

Organizzazione generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 411

Dalla copertina allindice generale . . . . . . . . .412

Esempio quasi completo per la compilazione dellintestazione415

Margini e giustezza nella composizione stampata . . . . . . . . .417

Corpo del carattere nella composizione stampata . . . . . . . . .418

Contenuto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 419

Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .419

Corpo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .419

Appendici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .422

Indici analitici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .422

Suddivisioni speciali . . . . . . . . . . . . . . . . . . . . . . . . . .423

Documento multilingua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 425

Cambiamento temporaneo del linguaggio . . . . . . . . . . . . . . .426

Definizione alternativa della suddivisione del documento .. 426

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, mentrela divisionein capitoli obbligatoria.

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

|Tabella u65.1. Sigle delle unit di misura utilizzabili conAlml.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:

||

|

|

| ...

| | [ | ...

| ]|

| ...

| | [ | ...

| ]| [ | ...

| ]|

|

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

411

Si pu intuire il senso della cosa: lelementohead 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;lelementobody permette di inserire capitoli, oppure parti, o vo-lumi; lelementoappendix permette di inserire capitoli da tratta-re come appendici, numerate convenzionalmente in modo letterale;infine, lelemento index permette di inserire capitoli speciali perlinclusione degli indici analitici.

|Figura u65.2. Schema ad albero degli elementi principali diundocumento 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 lostandardISO 639 (tabella 13.4), ma se le informazioni su un certo linguaggionon sono disponibili, si applicano comunque le convenzioniinglesi.

Lattributo spacing permette di definire il modo in cui vengonogestiti gli spazi alla fine dei periodi (dopo il punto fermo).Assegnan-do la parola chiavenormal , 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 lelementoalml in questo modo:

|

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 ]

412

| | |-- [ 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.|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 nellattributo type , 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.|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.

413

Elemento Descrizione

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

|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-mentohead , allinizio del quale prende posto un altro contenito-re denominatoadmin . Al suo interno sono previsti elementi rela-tivi a informazioni amministrative, in particolaredescription ekeywords , il cui scopo quello di generare degli elementiMETAcorrispondenti nella composizione HTML:

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

Inoltre, si possono aggiungere anche altri elementiMETA di HTML,attraverso lelementoHTMLMETA , come si vede nellesempioseguente:

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

Gli elementi chapterdefinition , partdefinition e tomedefinition vengono descritti pi avanti in questo capitolo(sezioneu0.5).

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

Lelementoprintedpagesize consente di definire I margini e lagiustezza per la composizione stampata, in base al contestoindicatodallattributo type .

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

414

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

Successivamente possibile inserire uno o pi elementiauthor ,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 dellelementodata .

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-mentobackcover 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 sulco-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 lelementodedications . Eventualmen-te, se necessario, possibile aggiungere altre notizie allinternodellelemento textafterdedications che segue le dediche.

Infine, possibile collocare lelementomaincontents 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-le parti, mentre valori superiori aumentano il dettaglio. Assegnandoallattributo nopages il valore true , si richiedere espressamen-te leliminazione dei riferimenti ai numeri di pagina; cosache 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 degliele-menti che si inseriscono allinterno dihead (il file in questio-ne dovrebbe essere disponibile pressoallegati/a2/alml-esempio-intestazione.sgml). Di proposito, il contenuto del documento completamente mancante, nel senso che lelementobody 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

| | |

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 com e| utilizzare proprio gli elementi dellintestazione.

| | |

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

415

|

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

|

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

|

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

| | |

Questo libro privo di contenuti, attraverso un solo esem pio| pratico, dimostra come utilizzare gli elementi dellintes tazione| 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 Licen se,| Version 1.1 or any later version published by the Free Softwa re| Foundation; with no Invariant Sections, with no Front-Cove r| 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| | | |

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 chiamatohead.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 pressoallegati/a2/alml-esempio-intestazione.pdf(vienedistribuito assieme alledizione HTML dellopera).

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

416

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

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

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 lelementoprintedpagesize ,allinterno dellelementoadmin , nellintestazione del documento,specificando il contesto con lattributo type . Si osservi lesempioin cui si mostrano tutti i valori disponibili per lattributo type :

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

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

417

|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 preferisceindicare lagiustezza, essendo un valore che meglio non vari automaticamente,dal momento che da questo dipendono anche le dimensioni che siassegnano ad altri componenti contenuti nel testo.

|Figura u65.14. Valori dellattributo type dellelementoprintedpagesize .

Il formato della carta viene definito al di fuori del sorgenteSGML,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.

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 dellelementoadmin , nellin-testazione del documento, specificando il contesto con lattributo type . 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 distanzatra le ri-ghe viene impostata automaticamente al 120 % della dimensione delcarattere utilizzato.

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

|Tabella u65.16. Valori dellattributo type dellelementoprintedfontsize .

Valore Carattere a cui si fa riferimento

|title Titolo dellopera che appare in copertina.418

Valore Carattere a cui si fa riferimento

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

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

|

Introduzione

Dopo lelementohead 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 propositodellelementobody .

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 prevedeunasottoclassificazione in parti, che poi si dividono in capitoli; se si usauna suddivisione in parti, obbligatoria una sottoclassificazione incapitoli.

419

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.

|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 lang consente di specificare lalingua del volume; lattri-buto bookmark consen-te di specificare un se-gnalibro alternativo per lacomposizione in formatoPDF.

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

Elemento Descrizione

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

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

420

Elemento Descrizione

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

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

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

Titolo del capitolo. Lattri-buto id consente di spe-cificare unancora di rife-rimento; lattributo lang consente 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.

421

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. Lattributo id 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 levels specifica il livello di detta-glio dellindice; lattribu-to nopages consente dinon mostrare i numeri dipagina nella composizioneper la stampa.

|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 lelementoextramaincontents 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 checon il nume-ro zero si ottengono voci fino alle parti, con uno si ottengonoanchei 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 nellelementoendofchapter .

Appendici

Dopo il corpo possibile inserire lelementoappendix , 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.

422

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

Suddivisioni speciali

Oltre alle suddivisioni standard nella formahn , 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.

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

|

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

|

423

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

|

|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-butobookmark 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-butobookmark consente di spe-cificare un segnalibro alternativoper la composizione in formatoPDF.

|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; lattributo testtime 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; testcodehide consente di rendere difficilmenteinterpretabile il codice HTML eJavaScript, attribuendo un valoreintero maggiore di zero.

424

Elemento Descrizione

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

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

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

Domanda a cui segue una ri-sposta. Lattributo id consentedi specificare unancora di rife-rimento; lattributo bookmark consente 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 id consente di specificare unan-cora di riferimento; lattributobookmark consente di specifi-care un segnalibro alternativo perla composizione in formato PDF.

Gli elementislideh1 , sheeth1 e testh1 si usano al posto diun capitolo normale. La differenze pi importante rispettoallele-mentoh1 , 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 ognische-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 dih2 , allinterno di un ca-pitolo normale. Permette di introdurre un gruppo di domandee ri-sposte, precedendole eventualmente da qualche blocco di testo in-troduttivo. Lelementoqh2 simile a faqh2 e va usato quandole 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. Lelementoqh3 simile a faqh3 e vausato quando la domanda non ha il senso di una faq.

Nel capitolou77 descritto meglio come realizzare delle diapositive,mentre nel capitolou73 descritto come realizzare un questionario.

Documento multilingua

Lattributo lang viene indicato normalmente nellelementoalml per 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 edei capito-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.

425

Lesempio seguente mostra la dichiarazione esplicita di uncapitoloche 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 elementidiv e span . Gli esem-pi seguenti mostrano luso di entrambi per ottenere la composizioneper la stampa di alcune lettere in cirillico:

| ||

а А б Б в В г Г д &Dc y;| е Е ё Ё ж Ж з З...||

...

|

Bla bla bla: а А б Б &vc y; В| г Г д Д е Е ё Ё ж & ZHcy; з| З... 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 , oppurespan :

|

Bla bla bla: а А б Б &vc y; В| г Г д Д е Е ё Ё ж & ZHcy; з| З... 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 elementichapterdefinition ,partdefinition e tomedefinition , allinterno delle infor-mazioni amministrative. Lesempio seguente dovrebbe permettere

426

di comprendere il problema; per la precisione si tratta di una rivistatelematica ipotetica:

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

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

427

428

Elementi interni alle righe

a2

2013

.11.

11--

-Co

pyr

igh

tD

an

iele

Gia

com

ini-

-a

pp

un

ti2@

gm

ail.

comht

tp://

info

rmat

ical

iber

a.ne

t

Numeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 430

Tastiera, men e codice ASCII . . . . . . . . . . . . . . . . . . . . . . . . .431

Indirizzi di posta elettronica . . . . . . . . . . . . . . . . . . . . . . . .. . . . . .432

Esistono due gruppi fondamentali di elementi: contenitoria bloccoe contenitori lineari. Nel primo caso si possono immaginaredei ret-tangoli che contengono qualcosa, mentre nel secondo si tratta gene-ralmente di sequenze di caratteri che scorrono e vanno a capoquandoserve. 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.

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

|sampStringa: delimita un te-sto con la stessa funzio-ne dellelementoSAMP 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.

429

Elemento Descrizione

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

|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 tipoCDATAe 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-le righe per delimitare valori numerici, eventualmente conbasi dinumerazione particolari, come si vede nella tabella successiva:

|Tabella u66.2. Elementi inseriti allinterno delle righe per larappresentazione uniforme di valori numerici.

Elemento Descrizione

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

|exaDelimita un numero in ba-se sedici. Pu contenereanche gli elementivar ,em e strong .

|decDelimita un numero in ba-se dieci. Pu contenereanche gli elementivar ,em e strong .

|octDelimita un numero in ba-se otto. Pu contenereanche gli elementivar ,em e strong .

|binDelimita un numero in ba-se due. Pu contenereanche gli elementivar ,em e strong .

Il caso dellelementonum speciale: si fa riferimento a un numeroin base dieci in cui non si mostra la base di numerazione, ma siusauna modalit di rappresentazione standard. Per questa ragione, il

430

numero in questione deve essere inserito come previsto, utilizzandola virgola o il punto come separatore della parte decimale,1 aggiun-gendo il segno allinizio, se necessario, senza usare altrispazi o altricaratteri. Il numero viene elaborato separando le cifre a terne.

Per quanto riguarda gli altri elementi per la rappresentazione di valo-ri numerici, a seconda del tipo di composizione si utilizza un mododiverso per mostrare la base di numerazione. Si osservi lesempioseguente:

|

Il numero 1234 si pu esprimere secondo vari e basi di| numerazione: 10011010010, oppure 2322< /oct>, oppure| 1234, oppure 4D2.

Ecco il risultato dopo la composizione:

Il numero 1234 si pu esprimere secondo varie basi di numerazione:100110100102, oppure 23228, oppure 123410, oppure 4D216.

Tastiera, men e codice ASCII

Alml prevede diversi elementi per indicare linterazione con la ta-stiera, con i programmi e per individuare dei codici ASCII speciali.Si distingue tra tastiera reale, tastiera virtuale, codiciASCII, bottonigrafici e voci di men dei programmi.

|Tabella u66.5. Elementi che riguardano luso della tastiera,lindividuazione di codici ASCII e luso dei programmi.

Elemento Descrizione

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

Segue la descrizione di alcuni esempi.

|

Attraverso le combinazioni di tasti| Ctrl Alt + e| Ctrl Alt - si pu controllare la| risoluzione dello schermo grafico.

Attraverso le combinazioni di tasti [Ctrl Alt + ] e [Ctrl Alt - ] si pucontrollare la risoluzione dello schermo grafico.

|

La combinazione virtuale Meta_bracketleft si ottiene| come Alt [, che in pratica pu essere ottenuta co me| Alt AltGr, oppure| Alt AltGr8. Naturalmente, quando il sim bolo da| combinare si trova nel quarto livello, occorre inserire nel la| combinazione reale anche il tasto Maiuscole.< /p>

La combinazione virtuale si ottiene come [Alt [ ],che in pratica pu essere ottenuta come [Alt AltGr ], oppure[ Alt AltGr 8]. Naturalmente, quando il simbolo da combinare si tro