Stile di scrittura del sorgente

Il DTD di Alml suggerisce una logica nella stesura del sorgente. In questo capitolo si annotano dei suggerimenti sulla sistemazione degli elementi nel sorgente, allo scopo di ottenere una struttura ordinata, in funzione delle caratteristiche di questi.

Blocchi di testo e rientri

In generale, un blocco di testo viene scritto a partire dalla prima colonna del file, oppure viene incolonnato più a destra, di quattro caratteri alla volta, se si tratta di un sottoblocco di qualche tipo. Si osservi l'esempio seguente:

<frame>

    <p>Bisogna fare attenzione alle...
    ...
    ...</p>

</frame>

L'elemento frame serve a contenere uno o più blocchi interni; questi vanno indicati con un rientro.

Alla regola del rientro devono fare eccezione quei blocchi in cui lo spazio iniziale ha significato. In questo modo, gli elementi pre, verbatimpre, asciiart e syntax devono iniziare sempre dalla prima colonna.

I blocchi di testo con un contenuto di tipo lineare ed elementi interni a questo, dovrebbero mostrare la loro natura, avvolgendo il testo stesso, senza aggiungere rientri ulteriori. Per esempio, si usa l'elemento p in questo modo:

<p>Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla...</p>

Al contrario, sarebbe spiacevole scrivere una cosa del genere:

<p>
    Bla bla bla bla...
</p>

I blocchi di testo, allineati in base alla necessità, vanno poi organizzati in modo da evitare di uscire dalla portata visiva di uno schermo normale; in pratica dovrebbero trovarsi entro le prime 80 colonne, come nell'esempio seguente:

<frame>

    <p>I blocchi di testo, allineati in base alla necessità, vanno poi
    organizzati in modo da evitare di uscire dalla portata visiva di uno
    schermo normale; in pratica dovrebbero trovarsi entro le prime
    <num>80</num> colonne.</p>

</frame>

Per favorire l'uso di funzionalità adatte del proprio programma di scrittura, allo scopo di reimpaginare i paragrafi e gli altri blocchi di testo, è necessario staccare i blocchi di testo tra di loro e dal loro contenitore, proprio come nell'esempio appena mostrato.

Elenchi

Gli elenchi di Alml sono definiti in modo da contenere sempre blocchi di testo. In tal modo, la struttura più coerente con quanto affermato a proposito dei rientri e dell'impaginazione dei blocchi, è quella dello schema seguente per ciò che riguarda gli elenchi puntati e numerati:

<ul>|<ol>
<li>

    blocco

    [blocco]
    ...

</li>
[<li>

    blocco

    [blocco]
    ...

</li>]
...
</ul>|</ol>

Per gli elenchi descrittivi, la situazione è abbastanza simile:

<dl>
<dt>voce</dt>
<dd>

    blocco

    [blocco]
    ...

</dd>
[<dt>voce</dt>
<dd>

    blocco

    [blocco]
    ...

</dd>]
...
</dl>

Figure e tabelle

Le figure interne al testo seguono la sorte di tutti gli altri elementi del genere, mentre le figure contenute nell'elemento object possono spostarsi sulla superficie della pagina. In questo senso, conviene indicarle sempre a partire dalla prima colonna, anche quando si chiede espressamente che rimangano fisse nella posizione in cui si trovano nel sorgente. L'elemento object è predisposto per contenere altri elementi, che però non è il caso di indicare con rientri. L'esempio seguente mostra la situazione comune in cui la figura è rappresentata dall'elemento img; in particolare merita attenzione la didascalia.

<object id="f-esempio-5">
<caption>

    Figura <objectref>. Bla bla bla...

</caption>
<imgblock>
<img imgfile="esempio-5" width="40%">
</imgblock>
</object>

In effetti, la didascalia è contenuta in un elemento caption che costituisce un blocco di testo. In precedenza è stata descritta la regola per cui i blocchi di testo devono essere realizzati ponendo il marcatore iniziale e quello finale in aderenza al testo contenuto, reimpaginando il tutto in base all'incolonnamento. Tuttavia, quello che si vede nell'esempio è lo stile proposto, che vale quindi come eccezione nel caso delle didascalie di figure, tabelle e listati.

Per le tabelle valgono le stesse considerazioni in relazione alle didascalie, mentre si propone una struttura particolare per l'elenco degli elementi che compongono le varie righe.

<object id="t-alml-isolat1-2">
<caption>

    Tabella <objectref>. Entità <special special="name">ISOlat1</special>:
    <bibref>added latin 1</bibref>. Seconda parte.

</caption>
<tabular col="3" columnfractions="0,309 0,191 0,500" border="1">
<thead>
  <trow>Macro SGML
<colsep>Risultato
<colsep>Descrizione
</trow>
</thead>
<tbody>
  <trow>&amp;ntilde;
<colsep>&ntilde;
<colsep>small n, tilde
</trow>
...
  <trow>&amp;yuml;
<colsep>&yuml;
<colsep>small y, dieresis or umlaut mark
</trow>
</tbody>
</tabular>
</object>

L'esempio mostra una situazione tipica. Si può osservare l'allineamento particolare del marcatore <trow> per avere il testo di tutte le celle della tabella allineato sulla stessa colonna del sorgente.

Allo scopo di facilitare la riorganizzazione di una tabella, è bene evitare di spezzare le righe di testo di una cella, quando queste superano la dimensione dello schermo.

Titoli

Gli elementi che contengono il titolo di una sezione (come per esempio tomeheading, h0, h1, h2, ecc.), vengono indicati nel sorgente secondo la struttura seguente, che mostra in particolare il caso del capitolo:

<h1 [id="stringa_identificativa"]>
titolo
[<indexentry [index="indice"]>voce_indice</indexentry>]
...
</h1>

Per facilitare un rielaborazione eventuale del sorgente, dovuta a una modifica del DTD di Alml, conviene lasciare il testo del titolo su una sola riga, anche se questo può essere lungo; inoltre, per lo stesso motivo, anche se il contenuto dell'elemento del titolo è di tipo lineare, conviene separare i marcatori dal testo del titolo, così come si vede dallo schema mostrato. Infine, per facilitare l'organizzazione delle voci da inserire nell'indice analitico, conviene collocare gli elementi indexentry preferibilmente nell'elemento del titolo, dopo il testo che lo descrive, in modo da guidare il lettore all'inizio della sezione che contiene la parola cercata.

Sezioni marcate

Le sezioni marcate devono essere delimitate correttamente e quando queste sono annidate, si possono creare problemi nel riconoscere la fine di questa o quella sezione. Per evitare ambiguità, è bene segnalare la macro dell'entità parametrica relativa:

<[%nome_entità_parametrica;[

blocco_protetto

[blocco_protetto]
...

]]><!--%nome_entità_parametrica;-->

Quando una sezione marcata controlla una porzione di testo normale, è sufficiente che sia evidente l'ambito della sezione stessa. Per esempio:

<p>Bla bla bla <![%NS;[ciao ciao]]> bla bla bla...</p>

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net