[successivo] [precedente] [inizio] [fine] [indice generale] [docinfo] [Indice analitico]


Capitolo 12.   Riferimenti, note e altre informazioni

Alml ha una gestione abbastanza ricca delle informazioni che si ricollegano attraverso riferimenti incrociati. La caratteristica fondamentale di Alml è di far sì che tutto ciò che è fruibile in forma elettronica, rimanga accessibile anche in forma stampata su carta. Per esempio, non è prevista la possibilità di annotare un riferimento ipertestuale a una risorsa di cui non si possa vedere l'indirizzo nella forma stampata.

12.1   Riferimenti incrociati e ipertestuali

I riferimenti incrociati si realizzano attraverso l'indicazione di ancore (o etichette se si preferisce il termine) e di puntatori a tali ancore. Esistono diversi modi per definire un'ancora e un riferimento a questa: tutti gli elementi che dispongono di un attributo id, sono ancore oppure sono puntatori alle ancore.

Fino a questo punto sono stati descritti gli elementi che delimitano i titoli dei volumi, delle parti, dei capitoli e delle sezioni; inoltre sono stati visti gli elementi che avvolgono le figure e le tabelle. Tutti questi sono ancore a cui si può puntare, ma per inserire un'ancora nel testo normale, è possibile usare l'elemento vuoto anchor, anche questo provvisto di attributo id. Tuttavia, l'elemento anchor è speciale, perché provvisto anche dell'attributo type, con cui è possibile stabilire se si voglia un'ancora invisibile oppure visibile. L'esempio seguente inserisce un'ancora visibile, mentre se si omette l'attributo type, l'ancora è invisibile in modo predefinito:

<p>Bla bla bla, questo <anchor id="oggetto" type="visible">oggetto
particolare è fatto di alluminio, bla bla bla...</p>

Un'ancora {a}visibile è qualcosa che viene mostrato in modo evidente nella composizione stampata; il suo scopo è quello di poter fare dei riferimenti a posizioni esatte nel testo. Per esempio, la parola «visibile» di questo paragrafo si trova nella posizione 12.1:a. Se l'ancora non fosse visibile, il riferimento che si otterrebbe riguarderebbe soltanto la sezione in cui questa è contenuta.

Esistono diversi elementi vuoti per fare riferimento alle ancore: sectionref, per ottenere un riferimento alla sezione in cui si trova l'ancora; figureref per fare riferimento a una figura; tableref per fare riferimento a una tabella; listingref per fare riferimento a un listato; exampleref per fare riferimento a un esempio.

In particolare, gli elementi figureref, tableref, listingref e exampleref possono essere usati anche senza l'attributo id per fare riferimento all'ultima ancora di una figura, di una tabella o di un listato, come è già stato mostrato nell'uso delle didascalie.

Quando si realizza un documento che può includere o meno una certa porzione a cui puntano alcuni riferimenti, per evitare che vengano mostrati questi collegamenti mancanti, si può usare l'elemento ifref, con il quale si delimita la parte da non comporre se manca il riferimento indicato nell'attributo id.

Tabella 12.1. Gestione dei riferimenti incrociati.

Elemento o
attributo
Contenuto Descrizione
tomeheading Titolo di un volume.
 id Attributo Ancora di riferimento per il titolo del volume.
h0 Titolo di una parte.
 id Attributo Ancora di riferimento per il titolo della parte.
h1 Titolo di un capitolo.
 id Attributo Ancora di riferimento per il titolo di un capitolo.
h2 Titolo di una sezione.
 id Attributo Ancora di riferimento per il titolo di una sezione.
h3 Titolo di una sottosezione.
 id Attributo Ancora di riferimento per il titolo di una sottosezione.
h4 Titolo di una sotto-sottosezione.
 id Attributo Ancora per il titolo di una sotto-sottosezione.
anchor Vuoto Ancora inserita nel testo.
 id Attributo Stringa di identificazione dell'ancora.
 type Attributo Si possono attribuire le parole chiave hidden (predefinita) o visible. Assegnando la seconda parola chiave, si ottiene un'ancora visibile.
sectionref Vuoto Riferimento a un'ancora del testo.
 id Attributo Stringa a cui si fa riferimento.
figure Involucro di una figura.
 id Attributo Ancora di riferimento per la figura.
figureref Vuoto Riferimento a un'ancora di una figura.
 id Attributo Stringa a cui si fa riferimento.
table Involucro di una tabella.
 id Attributo Ancora di riferimento per la tabella.
tableref Vuoto Riferimento a un'ancora di una tabella.
 id Attributo Stringa a cui si fa riferimento.
listing Involucro di un listato.
 id Attributo Ancora di riferimento per il listato.
listingref Vuoto Riferimento a un'ancora di un listato.
 id Attributo Stringa a cui si fa riferimento.
exampleref Vuoto Riferimento a un'ancora di un esempio.
 id Attributo Stringa a cui si fa riferimento.
ifref componenti lineari o blocchi Delimita un'area da comporre solo se l'ancora esiste veramente.
 id Attributo Stringa a cui si fa riferimento.

12.2   Note e piè pagina

Alml prevede l'utilizzo di tre tipi di annotazioni: avvertimenti che devono risaltare in un riquadro e due tipi di note a piè pagina. Le note evidenziate sono indicate all'interno di un elemento frame, mentre quelle a piè pagina sono inserite nell'elemento footnote, oppure blockfootnote.

Le note a piè pagina normali sono quelle dell'elemento footnote, che si colloca all'interno delle righe; al contrario, blockfootnote rappresenta un blocco di testo, che rimane solo per compatibilità con il passato.

<frame>
    <p>Attenzione! Si tratta di un'operazione rischiosa.</p>
</frame>

L'esempio precedente mostra l'utilizzo di un riquadro, mentre quello successivo mostra l'uso di un piè pagina normale.

<p>Bla bla bla<footnote>Questa parola si ripete.</footnote> bla bla...</p>

Tabella 12.2. Annotazioni a vario titolo.

Elemento o
attributo
Contenuto Descrizione
frame blocchi Riquadro.
blockfootnote componenti lineari Piè pagina tra i blocchi di testo.
footnote componenti lineari Piè pagina all'interno di una riga di testo.

Purtroppo, nella composizione stampata, le tabelle che si possono disporre su più pagine interferiscono con le note a piè di pagina. Si tratta di un difetto di LaTeX (precisamente del pacchetto longtable). Per risolvere il problema, si è reso necessario raggruppare le note alla fine dei capitoli.

12.3   Riferimenti esterni e citazioni

Alcuni elementi sono specializzati per fare riferimento a qualcosa di esterno. Il caso più comune riguarda l'elemento uri, con il quale si indica un URI:

<p>Bla bla bla <uri><![CDATA[http://www.brot.dg]]></uri> bla bla...</p>

Per indicare il riferimento a una pagina di manuale, si può usare l'elemento man, in modo da ottenere una rappresentazione uguale a quella tradizionale:

<p>Bla bla bla <man>ls<mansect>1</mansect></man> bla bla...</p>

La tabella 12.3 riepiloga questi e altri elementi affini.

Tabella 12.3. Riferimenti esterni.

Elemento o
attributo
Contenuto Descrizione
uri CDATA Riferimento a un URI esterno.
uristr #PCDATA Riferimento a un URI che non funziona.
blockquote blocchi, quoteinfo Citazione.
 quoteinfo componenti lineari Informazioni sulla citazione.
bibref componenti lineari Titolo di un documento.
man #PCDATA, mansect Pagina di manuale.
 mansect #PCDATA Numero della sezione.

L'elemento uristr è una variante di uri, con lo scopo di non generare un riferimento ipertestuale. Ciò può servire per rappresentare un indirizzo di fantasia, oppure un indirizzo reale che non è più valido. Si possono indicare in questo modo anche i nomi di dominio.

L'elemento blockquote è previsto per delimitare una citazione in uno o più blocchi. Alla fine dell'elemento blockquote è prevista la possibilità di usare un solo elemento quoteinfo, con lo scopo di contenere informazioni relative alla citazione:

<blockquote>
    blocchi
    ...
    [<quoteinfo>componenti_lineari...</quoteinfo>]
</blockquote>

12.4   Tracciamento di informazioni particolari

Diversi tipi di elementi nella struttura di Alml sono predisposti per accumulare informazioni da restituire a richiesta. La situazione più semplice è data dalla gestione degli indici analitici, dove con l'elemento indexentry si inserisce una voce nell'indice analitico generale o in un altro individuato da un nome libero:

<h1>
I colori dell'arcobaleno
<indexentry>arcobaleno</indexentry>
<indexentry><code>color</code></indexentry>
</h1>

L'elemento indexentry appartiene al gruppo di quelli che possono essere inseriti all'interno di una riga; nell'esempio si vede la situazione tipica in cui lo si inserisce nel testo di un titolo. In questo caso, sono state indicate due voci dell'indice analitico generale: la parola «arcobaleno» viene inserita in modo normale, mentre la parola «color» viene inserita con un carattere dattilografico.

Ogni indice analitico ha un nome e quello generale, o predefinito, corrisponde a main. L'esempio mostrato sopra sarebbe perfettamente equivalente a quello seguente:

<h1>
I colori dell'arcobaleno
<indexentry index="main">arcobaleno</indexentry>
<indexentry index="main"><code>color</code></indexentry>
</h1>

Per recuperare l'elenco di un indice analitico si utilizza l'elemento printindex, in cui, lo stesso attributo index permette di stabilire quale indice estrapolare.

Tabella 12.4. Gestione degli indici analitici.

Elemento o
attributo
Contenuto Descrizione
indexentry #PCDATA | code Dichiarazione di una voce per l'indice analitico.
 index Attributo Nome dell'indice analitico in cui inserire la voce.
special #PCDATA Termine speciale.
 special Attributo Nome dell'indice analitico in cui inserire la voce.
printindex Vuoto Inserisce l'elenco dell'indice analitico richiesto.
 index Attributo Nome dell'indice analitico richiesto.
 indexcontext Attributo Specifica un contesto tra: all, tome, part, chapter. È predefinito il contesto all, che richiede l'indice completo.
 indexref Attributo Specifica in che modo devono apparire i riferimenti: default, section. In pratica, con la parola chiave section si impone di mostrare numeri di sezione e non le pagine.

Esiste anche un altro elemento che inserisce voci negli indici analitici; si tratta di special, che inserisce una voce nell'indice corrispondente al nome indicato con l'attributo che ha lo stesso nome: special.

12.4.1   Caratteristiche del software e di altri «lavori»

La struttura di Alml dispone di un elemento speciale che si può inserire nel testo lineare, il cui scopo è quello di annotare alcune informazioni sul software e su lavori simili. Si osservi l'esempio seguente:

<p>Stiamo parlando di Mpage,
<workinfo>
<workname>Mpage</workname>
<worklicense>licenza speciale che non ammette le modifiche</worklicense>
<worklicensetext>

    <p>Permission is granted to anyone to make or distribute verbatim
    copies of this document as received, in any medium, provided that
    this copyright notice is preserved, and that the distributor grants
    the recipient permission for further redistribution as permitted by
    this notice.</p>

</worklicensetext>
</workinfo>
un programma che si occupa di...</p>

Solo gli elementi workname e worklicense sono obbligatori, dal momento che il loro contenuto appare in un piè pagina locale. L'elemento worklicensetext è facoltativo e può essere utile per annotare una licenza unica, per la quale non possa essere individuato un riferimento standard; inoltre, un altro elemento, worknotes, permette di annotare qualcosa al riguardo.

Dove lo si ritiene più opportuno, si può collocare l'elemento printworkinfo, per ottenere l'elenco ordinato di queste informazioni accumulate.

Tabella 12.5. Tracciamento di informazioni sul software citato.

Elemento o
attributo
Contenuto Descrizione
workinfo Dichiarazione del blocco di informazioni.
 workname #PCDATA Nome del software o di altro lavoro.
 worklicense #PCDATA Denominazione o descrizione breve della licenza.
 worklicensetext blocchi Testo della licenza specifica.
 worknotes blocchi Annotazioni.
printworkinfo Vuoto Inserisce le informazioni accumulate in modo ordinato.
 workinforef Attributo Specifica in che modo devono apparire i riferimenti: default, section. In pratica, con la parola chiave section si impone di mostrare numeri di sezione e non le pagine.

12.4.2   Informazioni su sezioni specifiche del documento

In situazioni particolari, potrebbe essere necessario, o anche solo utile, tenere traccia dell'origine di una sezione del documento, assieme a delle annotazioni a vario titolo. Per questo si può utilizzare l'elemento docinfo, che questa volta costituisce un blocco.

<docinfo>

    <dl>
    <dt>2002.09.15</dt>
    <dd>

        <p>Il testo viene aggiornato nel contenuto, con l'inserimento
        della sezione «bla bla bla», da parte di Caio Cai
        (caio@brot.dg).</p>

    </dd>
    <dt>2002.09.08</dt>
    <dd>

        <p>Il testo viene modificato per adeguarlo alla nuova veste
        grafica dell'opera, per opera di Caio Cai (caio@brot.dg);
        il contenuto rimane invariato.</p>

    </dd>
    <dt>2002.02.02</dt>
    <dd>

        <p>Il testo originale è di Tizio Tizi e risale al 2002.02.02. Nello
        stesso giorno, il testo ha subito qualche aggiustamento per opera di
        Caio Cai (caio@brot.dg), con il consenso dell'autore.</p>

    </dd>
    </dl>

</docinfo>

L'esempio mostra in particolare l'uso dell'elemento docinfo per annotare lo storico delle modifiche fatte su quella porzione di documento; come si può vedere, vengono indicate prima le azioni più recenti, ma questo dipende solo da una scelta organizzativa.

Per ottenere l'elenco delle informazioni accumulate in questo modo, si utilizza l'elemento vuoto printdocinfo.

Tabella 12.6. Tracciamento di informazioni su sezioni particolari del documento globale.

Elemento o
attributo
Contenuto Descrizione
docinfo blocchi Annotazioni sul documento (volume, parte, capitolo o sezione inferiore).
printdocinfo Vuoto Inserisce nel testo le informazioni accumulate.

12.4.3   Condizioni particolari per il contenuto di una sezione

È previsto un contenitore speciale per indicare le condizioni particolari che riguardano una certa sezione (anche un volume intero). Si tratta dell'elemento specialcondition, all'interno del quale può eventualmente apparire l'elemento vuoto nomod:

<specialcondition><nomod>non è consentita la modifica di questa
sezione</specialcondition>

L'esempio dovrebbe rendere l'idea della cosa. Il testo contenuto nell'elemento specialcondition viene mostrato effettivamente, utilizzando un carattere un po' diverso da quello normale, in modo da risaltare.

L'elemento vuoto nomod serve per tenere traccia in particolare di quelle sezioni che non possono essere modificate. Evidentemente, può essere utile solo se il documento, nella sua globalità, è inteso come modificabile, in base alle condizioni della licenza. In generale non dovrebbe essere necessario, perché se nella sezione che non si può modificare è scritto chiaramente come stanno le cose al riguardo, non dovrebbe servire alcun elenco di tali sezioni; tuttavia, in questo modo, è possibile poi ottenere un elenco dettagliato di tutte le sezioni che non possono essere modificate, con l'elemento vuoto printnomod.

Tabella 12.7. Annotazione delle condizioni particolari di una sezione.

Elemento o
attributo
Contenuto Descrizione
specialcondition #PCDATA | nomod Dichiarazione di condizioni particolari.
 nomod Vuoto Annotazione di sezione non modificabile.
printnomod Vuoto Elenco delle sezioni non modificabili.

Editoria elettronica con Alml 2004.10.10 --- Copyright © 2000-2004 Daniele Giacomini -- <daniele (ad) swlibero·org>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome riferimenti_note_e_altre_informazioni.html

[successivo] [precedente] [inizio] [fine] [indice generale] [docinfo] [Indice analitico]

Valid ISO-HTML!