Avanti Indietro Indice

7. Paragrafi


<!entity % sectpar
        " %par; | figure | tabular | table | %mathpar; |
          %thrm; | %litprog; ">

<!entity % par       
        "  %list; | comment | lq | quote | tscreen " >

<!entity % litprog " code | verb " >

Ciascuno dei tag qui descritti forma un paragrafo.

Per ovvie ragioni, un paragrafo normalmente

Qui si spiega il comportamento delle eccezioni figure e tabular .
inizia e finisce con una riga vuota.
In quale altro modo si potrebbe sapere che è un paragrafo?

Ci sono alcuni tag che formano sempre un paragrafo, e un modo per formare implicitamente un paragrafo. Ci sono vari tipi di paragrafi, perchè non tutti i tipi di paragrafo possono apparire in ogni classe di documento, in ogni posto.

I diversi tipi di paragrafi sono spiegati nelle prossime sezioni. Per maggiori dettagli su %litprog; si veda Programmazione istruita.

7.1 Paragrafo normale

Un paragrafo normale può essere creato in due modi:

Tag di paragrafo

Il tag <p> inizia un nuovo paragrafo. Questo tag è obbligatorio se si vuole terminare un'intestazione di sezione senza chiudere esplicitamente il tag sect. In questo caso il tag <p> chiude automanticamente il tag <sect>.

Nuova riga vuota

Una riga vuota tra due paragrafi inizia implicitamente un nuovo paragrafo. Si faccia attenzione con gli elenchi descrittivi. In questo caso un tag <tag> vuoto non diventerà un paragrafo usando una riga vuota.

7.2 Paragrafi stile elenco


<!entity % list
        " list | itemize | enum | descrip " >

Questi quattro tag indicano l'inizio di un paragrafo in stile elenco. All'interno di ciascun elenco le singole voci sono separate da un tag item.
<!element item o o ((%inline; | %sectpar;)*, p*) >

Come si può vedere, una voce può contenere a sua volta paragrafi (e quindi anche altri elenchi, perfino di tipo differente).

Il tag List


<!element list - - (item+)>

Il tag list verrà mappato come un elenco spoglio senza punti, numeri o altre cose.

Per vederlo, ecco un piccolo esempio:


<list>
<item>Un punto
<item>Un altro
<item>L'ultimo
</list>

Si vedrà (a seconda della mappatura) qualcosa come:

  • Un punto
  • Un altro
  • L'ultimo
  • Il tag Itemize


    <!element itemize - - (item+)>
    

    Il tag itemize verrà mappato come un elenco puntato, che viene solitamente usato per elenchi nei quali l'ordine delle voci non è importante.

    Un piccolo esempio:


    <itemize>
    <item>Un punto
    <item>Un altro
    <item>L'ultimo
    </itemize>
    

    Si vedrà (a seconda della mappatura) qualcosa come:

    Il tag Enum


    <!element enum - - (item+)>
    

    Il tag enum verrà mappato come una lista numerata.

    Un piccolo esempio:


    <enum>
    <item>Un punto
    <item>Un altro
    <item>L'ultimo
    </enum>
    

    Si vedrà (a seconda della mappatura) qualcosa come:

    1. Un punto
    2. Un altro
    3. L'ultimo

    Il tag Descrip


    <!element descrip - - (tag?, p+)+ >
    

    Il tag descrip verrà mappato come un elenco descrittivo. Il concetto in questo caso è leggermente diverso rispetto agli altri tipi di elenchi citati prima.

    Qui si posiziona un tag (questa volta il nome del tag è letteralmente tag), che è descritto più avanti.

    Un piccolo esempio:


    <descrip>
    <tag/sgml/structured general markup language.
    <tag/html - hypertext markup language/
    Una implementazione di sgml.
    Contiene alcuni concetti su come collegare informazioni in modo molto conveniente.
    È questo che lo ha reso tanto importante, nonchè lo standard per i
    documenti pubblicati tramite internet.
    <tag/internet/Una internet connessa globalmente (internet intesa come termine
    tecnico)
    </descrip>
    

    Si vedrà (a seconda della mappatura) qualcosa come:

    sgml

    structured general markup language.

    html - hypertext markup language

    Una implementazione di sgml. Contiene alcuni concetti su come collegare informazioni in un modo molto conveniente. È questo che lo ha reso tanto importante, nonchè lo standard per i documenti pubblicati tramite internet.

    internet

    Una internet connessa globalmente (internet intesa come termine tecnico)

    7.3 Illustrazioni e Tabelle

    I tag <figure> e <table> creano paragrafi molto speciali. Non sempre sono inseriti nel normale flusso di testo. Entrambi i tag possono contenere un attributo loc (location) che indica come manipolare il flusso di questo paragrafo particolare.

    Il valore dell'attributo loc è una stringa di quattro lettere al massimo, in cui ogni lettera dichiara una posizione nella quale l'illustrazione o la tabella può apparire, come descritto nella tabella Posizioni della tabella.


    hhereNella stessa posizione del file SGML
    ttopAll'inizio di una pagina
    bbottomAlla fine di una pagina
    ppageIn una pagina separata con sole illustrazioni e tabelle
    Posizioni della tabella

    Il valore predefinito dell'attributo loc è top.

    Il tag Table


    <!element table   - - (tabular, caption?) >
    

    Come si può vedere, una tabella consiste nello stesso tag <table>, che include un tag <tabular> e opzionalmente un tag <caption>.

    Il tag <tabular> può anche essere posizionato senza un tag <table>, come descritto in dettaglio nella sua sezione (si veda Il tag Tabular).

    Il tag caption si usa anche per posizionare la voce per l' elenco delle tabelle, se ne è stato dichiarato uno (si veda Il tag lista di tabelle).

    Un breve esempio mostrerà come lavorano insieme.

    <table loc="ht">
    <tabular ca="lcr">
    Guarda|questa|tabella@
    Non|è|carina@
    1.234|colonne|miste
    </tabular>
    <caption>Una tabella di esempio
    </table>
    


    Guardaquestatabella
    Nonècarina
    1.234colonnemiste
    Una tabella di esempio

    Il caption "Una tabella di esempio" sarebbe il nome nella lista delle tabelle.

    Il tag Figure


    <!element figure - - ((eps | ph ), img*, caption?)>
    

    L'utilizzo del tag <figure> è equivalente a quello del tag <table>. Invece del tag <tabular> si può utilizzare o il tag <eps> o il tag <ph>.

    Il tag Encapsulated Postscript(TM)


    <!attlist eps
            file cdata #required
            height cdata "5cm"
            angle cdata "0">
    

    Il tag <eps> serve a includere un file esterno in formato encapsulated postscript(TM) nel documento.

    Gli attributi del tag <eps> sono:

    file

    L'attributo file richiede il nome di un file encapsulated postscript(TM) che termini con il suffisso .ps. Il suffisso obbligatorio .ps non deve essere scritto.

    height

    L'altezza dello spazio che il file andrà ad occupare. Se non lo si specifica, il valore predefinito sarà 5 cm. Si faccia attenzione a non inserire spazi tra il numero e l'unità di misura (i, cm).

    angle

    L'angolo viene indicato in gradi sessagesimali (0-360) e all'aumento del numero il file viene ruotato in senso orario.

    Un esempio:

    <figure loc="here">
    <eps file="logo" height="4cm" angle="15">
    <img src="logo.gif">
    <caption>Inclusione di un encapsulated postscript(TM)
    </figure>
    

    Il tag img verrà ignorato dalla mappatura LaTeX e sarà utile per l'html, poichè molti browser non riconoscono l'eps.

    Inclusione di un file encapsulated postscript(TM).

    Il tag caption andrà nella lista delle illustrazioni come descritto nella sezione Il tag lista di immagini.

    Il tag placeholder


    <!attlist ph
            vspace cdata #required>
    

    Questo tag non posiziona alcunchè, ma inserisce uno spazio vuoto adatto per incollare manualmente figure nel buon vecchio modo. L'attributo vspace assegna lo spazio lasciato libero. Caveat: L'argomento numerico dell'attributo vspace necessita di un'unità di misura direttamente dietro al numero. Non si lasci uno spazio (come detto per l'attributo height in Il tag Encapsulated Postscript(TM).

    <figure loc="ht">
    <ph vspace="5cm">
    <caption>Uno spazio vuoto.
    </figure>
    

    Restituisce:

    Uno spazio vuoto per incollare una fotografia

    A questo punto potrebbe essere il caso di cercare forbici e colla.

    7.4 Il tag Tabular


    <!element tabular - - 
           (hline?, %tabrow, (rowsep, hline?, %tabrow)*, caption?) >
    

    Il tag <tabular> viene interpretato come un paragrafo a se stante, se viene scritto da solo. Insieme al tag <table> diventa parte del paragrafo del tag <table> (vedere Il tag Table).

    All'interno del tag tabular possono esserci righe e colonne che separano il testo. Devono esserci almeno una colonna e una riga.

    Altrimenti non risulterebbe molto utile.

    Il tag <tabular> ha un attributo ca obbligatorio per l'allineamento di colonna. L'allineamento di colonna contiene un solo carattere per ogni colonna nel loro ordine da sinistra a destra. I caratteri che si possono posizionare per colonna sono descritti nella tabella Allineamento di colonna


    carattereallineamento
    lleft (sinistra)
    ccentered (centrato)
    rright (destra)
    Allineamento di colonna

    In teoria si dovrebbe poter posizionare un | nell'attributo ca per disegnare una linea orizzontale di separazione per due colonne. Il problema: non funziona. L'analizzatore lo accetta bene, solo che l'output in LaTeX mapperà | come {$|$}, che naturalmente è l'impostazione di quattro colonne erroneamente allineate per tutte e quattro le colonne. Proverò a capire come risolverlo.

    Le colonne all'interno del tag <tabular> sono separate da un separatore di colonna, il tag <colsep>. Il carattere | viene tradotto come <colsep>, così lo si può usare al suo posto.

    Meno battitura, più divertimento.

    Ciò che vale per le colonne vale anche per le righe. Si separano le righe con un separatore di riga, il tag <rowsep>. Il carattere @ viene tradotto con <rowsep>.

    Opzionalmente si può posizionare una linea orizzontale con il tag <hline>. Si faccia attenzione a questo tag: gli strumenti SGML lo trasformeranno correttamente sia posizionandolo davanti alla riga che si vuole sotto la linea, che dietro la fine della riga che si vuole al di sopra. Ma l'unico modo per scriverlo senza provocare un "errore" dell'analizzatore è scriverlo direttamente e senza spazi o riga vuota dietro il separatore di riga.

    <tabular ca="lcr">
    Guarda|questa|tabella@<hline>
    Non|è|gradevole@
    1.234|colonne|miste@
    </tabular>
    

    I risultati sono visibili nella tabella Esempio di tabella per il tag Tabular


    Guardaquestatabella
    Nonègradevole
    1.234colonnemiste
    Esempio di tabella per il tag Tabular

    Attenzione:

    nella mappatura per LaTeX tutto funziona bene se si posiziona un tag tabular senza un tag table; solo nelle altre mappature (per esempio html) verrà disordinato.

    7.5 Paragrafi matematici


    <!entity % mathpar " dm | eq " >
    

    Un paragrafo matematico consiste o di una formula visualizzata tramite un tag <dm>,

    No, scusate, non per il marco tedesco! ;-)
    o di una equazione tramite il tag <eq>. Lavorano entrambi allo stesso modo.

    Entrambi i tag contengono una formula matematica. Vedere Formule matematiche per i tag validi.

    Nota:

    Poichè nè Netscape nè Microsoft hanno ritenuto necessario aggiungere la mappatura matematica ai loro browser (come richiesto e definito da w3c), non c'è in html un modo piacevole di mappare, o almeno di mostrare a video, i simboli matematici. Quindi, guardando la versione online, ci si può liberamente meravigliare di questo controsenso. Forse si vorrà dare uno sguardo alla versione postscript.

    Il tag Displayed Formula

    Questo tag mostra una formula matematica come un paragrafo. La formula viene mappata al centro come linea singola.

    Non ci sono garanzie per questo. Si sa, la mappatura è una questione di gusti.

    <dm>(a+b)<sup/2/=a<sup/2/+2ab+b<sup/2/</dm>
    
    Viene mappato come: (a+b)2=a2+2ab+b2

    Il tag Equation

    <dm>(a+b)<sup/2/=a<sup/2/+2ab+b<sup/2/</dm>
    
    Viene mappato come: (a+b)2=a2+2ab+b2

    7.6 Paragrafo Teorema


    <!entity % thrm 
            " def | prop | lemma | coroll | proof | theorem " >
    
    <!element def - - (thtag?, p+) >
    <!element prop - - (thtag?, p+) >
    <!element lemma - - (thtag?, p+) >
    <!element coroll - - (thtag?, p+) >
    <!element proof - - (p+) >
    <!element theorem - - (thtag?, p+) >
    

    Come si può vedere i diversi tipi di paragrafi theorema sono praticamente identici. L'unica eccezione leggermente diversa è proof, che non possiede un thtag. Per tutte le altre versioni il thtag fornisce il tag del paragrafo teorema.

    Si provi a utilizzare solo questo, che è adatto al significato di ciò che si sta digitando.

    <thrm>
    <thtag>Alexander's thrm</thtag>
    Sia <f>&lt;fi/G/</f> un insieme di obiettivi secondari ottenibili non banali,
    e &mu; un ordinamento su <f>&lt;fi/G/</f>. &mu; \
    astrattamente indicativo se e solo se è una linearizzazione di
    <f><lim><op>&mu;</op><ll><fi/G/</ll><ul>&ast;</ul></lim></f>.
    </theorema>
    

    thrm viene rimpiazzato dal tag adeguato.

    Forse qualcuno esperto di matematica rimarrà scioccato dal mio abuso dei tipi, ma sono pigro e ho semplicemente copiato gli esempi:

    Definizione (def): Definizione di Alessandro

    Sia G un insieme di obiettivi secondari ottenibili non banali, e µ un ordinamento su G. µ è astrattamente indicativo se e solo se è una linearizzazione di µG

    .

    Proposizione (prop): Proposizione di Alessandro

    Sia G un insieme di obiettivi secondari ottenibili non banali, e µ un ordinamento su G. µ è astrattamente indicativo se e solo se è una linearizzazione di µG

    .

    Lemma (lemma): Lemma di Alessandro

    Sia G un insieme di obiettivi secondari ottenibili non banali, e µ un ordinamento su G. µ è astrattamente indicativo se e solo se è una linearizzazione di µG

    .

    Corollario (coroll): Corollario di Alessandro

    Sia G un insieme di obiettivi secondari ottenibili non banali, e µ un ordinamento su G. µ è astrattamente indicativo se e solo se è una linearizzazione di µG

    .

    Teorema di Alessandro

    Sia G un insieme di obiettivi secondari ottenibili non banali, e µ un ordinamento su G. µ è astrattamente indicativo se e solo se è una linearizzazione di µG

    .

    La riprova è questa, senza thtag:

    Sia G un insieme di obiettivi secondari ottenibili non banali, e µ un ordinamento su G. µ è astrattamente indicativo se e solo se è una linearizzazione di µG

    .

    7.7 Paragrafi Code e Verbatim

    Sono entrambi tag di un paragrafo e con un comportamento molto simile. All'interno di questi tag molti caratteri speciali non necessitano della forma nominata come nella sezione Simboli speciali. Le eccezioni sono:

    1. &etago; -> </ -> fine del tag aperto
    Forse più avanti l'elenco si allungherà.

    A differenza della normale mappatura di un paragrafo, gli spazi vuoti e gli a capo verranno mappati letteralmente (come saranno scritti nel sorgente).

    Inoltre (con riferimento al layout manuale), il tipo di carattere per la mappatura sarà non-proporzionale.

    Si veda la differenza tra IIWW e IIWW.

    Nota:

    Ripeto, non sono un oratore nato e nemmeno amo molto la matematica. Così ho solo scritto alcuni controsensi, che possono provocare il mal di testa e far venire i capelli grigi alle persone che vogliono utilizzare questo documento per imparare a formulare teorie matematiche o fisiche.

    Ci si senta liberi di inviare esempi migliori.

    Il tag Code


    <!element code - - rcdata>
    

    Si utilizzi il tag code per scrivere un esempio di codice sorgente all'interno del testo.

    Un esempio di codice

    <code>


    #include <stdio.h>
    int main() {
        printf("Ciao mondo");
        return 1;
    }
    

    </code>

    Il tag Verbatim


    <!element verb - - rcdata>
    

    Si utilizzi il tag verbatim per qualunque cosa che non sia codice sorgente (si utilizzi Il tag code per questo) che necessita la buona vecchia spaziatura, tipo la stampata del terminale, la grafica ASCII ecc.

    Un esempio di verbatim:

    <verb>

    /////////
    | *   * |
    |   |   |
    | <---> |
     \_____/
    
    </verb>


    Avanti Indietro Indice