Linuxdoc Reference <subtitle>Un'introduzione al dtd di linuxdoc</subtitle> Uwe B&oe;hme, <uwe@hof.baynet.de> v1.1, 30 Gennaio 2000 Questo testo è destinato ad essere una guida di riferimento per la definizione del tipo di documento (dtd) di SGML linuxdoc, fornito insieme al sistema di formattazione testi SGML versione 1.0. Dovrebbe essere valido anche per versioni successive, che possono essere trovate presso . Traduzione e adattamenti in italiano a cura di Hugh Hartmann e Vieri Giugni , revisione a cura di Elisabetta Galli Dietro le quinte

Aspetti Legali

. Please contact the authors if you are unable to get the license. This is free documentation. It is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. Questo documento non fa parte di Genesi

Questo documento nasce dal tentativo di imparare di più sulla scrittura di testi su un sistema Linux. L'unico sistema che sembrava adatto alle mie necessità era e il ) la struttura generale è descritta in modo facile e piacevole. Anche [) è stata utile, ). È dettagliata come speravo, ma non è pensata per il dtd = definizione del tipo di documento, e tentare di comprenderlo. Con il passare del tempo ho notato di essermi dimenticato alcune cose o, almeno, di non averle fatte notare abbastanza. Questo cambierà con la prossima revisione. Ogni commento sarà il benvenuto (in particolare ogni aiuto con l'ortografia o la grammatica inglese) via e-mail, all'indirizzo . Introduzione

Si potrebbe chiamarlo per esempio wysiwym, cio` "What you see is what you mean" (quello che si vede è quello che significa). Non si dice al programma che questa riga dovrebbe essere scritta in un carattere più grande, Non è necessario pasticciare con impostazione dei font, interlinee o altre cose connesse direttamente al layout In aggiunta, in tutti i documenti in stile sgml si potranno trovare i . Un documento minimale

In questa sezione si troverà ciò di cui si avrà bisogno per creare un documento minimale conforme al dtd di linuxdoc. Vuole essere un primo contatto. Si può saltare questa sezione, se si conoscono già i fondamenti. Passo dopo passo

I passi da fare per creare un grazioso documento linuxdoc e mapparlo nella forma desiderata sono: Scegliere un semplice editor di testo a piacimento. Creare un file e dargli un nome (o salvarlo successivamente), per esempio Scrivere il documento Salvare il file e chiudere l'editor. Eseguire il correttore digitando sgmlcheck iniziare.sgml. Se vengono restituiti degli errori, riaprire nuovamente il documento nell'editor e provare a correggerlo.I messaggi di errore di daranno un suggerimento sul tipo di errore, insieme alla riga e alla colonna in cui è avvenuto. Eseguire nuovamente il correttore finché non si otterranno più errori. Ora si deve decidere a cosa serve il documento. . digitare|per ottenere@@
Mappatori di SGML-Tools per documenti sgml
Un documento per iniziare

Si inizierà con un semplice documento (i numeri e i due punti all'inizio della riga sono solo esplicativi, non vanno digitati): 1: <!doctype linuxdoc system> 2: <notes> 3: <title>Un piccolo esempio di Linuxdoc&etago;title> 4: <p>Ciao <em>mondo&etago;em>.&etago;p> 5: <p><bf>Ci&etago;bf> siamo.&etago;p> 6: &etago;notes> Ora si darà un'occhiata alle singole righe: Un documento linuxdoc deve iniziare, come tutti i documenti conformi allo SGML, con il preambolo. Volendo si può considerarlo come un necessario pezzo di magia, o si può provare a trovare maggiori informazioni riguardo SGML. Il preambolo indica all'analizzatore SGML quale dtd (definizione del tipo di documento) usare per verificare la sintassi del documento. Si apra la per una descrizione dettagliata riguardo le Anche se non è indispensabile, è una buona idea fornire un Un paragrafo marcato con il tag Un altro paragrafo totalmente marcato, con un'altra parola Qui viene chiuso il tag Lo stesso esempio può essere scritto più brevemente eliminando i tag automaticamente posizionati dall'analizzatore, e utilizzando tag abbreviati: 1: <!doctype linuxdoc system> 2: <notes> 3: <title>Un piccolo esempio Linuxdoc 4: <p>Ciao <em/mondo/. 5: 6: <Ci bf/siamo/. 7: &etago;notes> Ora rivediamo ogni singola riga: Il La classe del documento (anch'essa invariata). Il Il paragrafo chiude implicitamente il /. Il La riga vuota in questo punto è il motivo per cui non è necessario chiudere il precedente Un altro paragrafo (non aperto direttamente), con un altro tag abbreviato Chiusura del tag Ora lavorare con i tag dovrebbe essere un pò più chiaro. Classi di documento

<!element linuxdoc o o (sect | chapt | article | report | book | letter | telefax | slides | notes | manpage ) > Descrive complessivamente la classe del documento, e naturalmente (lasciando stare la definizione doctype) deve essere il primo tag e racchiudere l'intero documento. Alcuni dei tag, cioè ) non hanno alcun senso presi singolarmente, nonostante siano inclusi come parti di classi di documento più, complete: dunque saranno descritti successivamente come parte di altre classi di documento. È meglio decidere prima quale delle classi di documento menzionate sopra è adatta al tipo di documento che si vuole scrivere. Per una dettagliata descrizione delle classi di documento vedere la tabella . Capitolo|Tag della classe@@ ||||||||
Classi di documento
Per me la Il tag Article

<!element article - - (titlepag, header?, toc?, lof?, lot?, p*, sect*, (appendix, sect+)?, biblio?) +(footnote)> Come si può vedere, il tag Il tag Titlepage

<!element titlepag o o (title, author, date?, abstract?)> Il tag Il tag Title

<!element title - o (%inline, subtitle?) +(newline)> Ogni <title>Linuxdoc Reference <subtitle>Un'introduzione al dtd di linuxdoc Il tag Author

<!element author - o (name, thanks?, inst?, (and, name, thanks?, inst?)*)> Solitamente qui si mette il (proprio) nome. La gente dovrebbe sapere chi ha scritto il documento, per questo si mette un tag Il tag Date

Il tag Abstract

). Il tag Header

<!element header - - (lhead, rhead) > <!element lhead - o (%inline)> <!element rhead - o (%inline)> Un tag Il tag Table Of Contents

Il tag List Of Figures

Il tag List Of Tables

Body

. Non c'è un Il tag Appendix

Il tag Bibliography

Il tag Footnote

Il tag Report

<!element report - - (titlepag, header?, toc?, lof?, lot?, p*, chapt*, (appendix, chapt+)?, biblio?) +(footnote)> La classe di documento ). Il resto della struttura è identico alla classe . Il tag Book

<!element book - - (titlepag, header?, toc?, lof?, lot?, p*, chapt*, (appendix, chapt+)?, biblio?) +(footnote) > Come si può notare, l'elemento . Quindi quanto detto in precedenza vale anche se si classifica il proprio documento con un tag Il tag Letter

<!entity % addr "(address?, email?, phone?, fax?)" > <!element letter - - (from, %addr, to, %addr, cc?, subject?, sref?, rref?, rdate?, opening, p+, closing, encl?, ps?)> Anche lo scopo della classe di documento tag|obbligatorio|che cos'è@@ from|si|mittente@ address|no|indirizzo del mittente@ email|no|email del mittente@ phone|no|telefono del mittente@ fax|no|fax del mittente@ to|si|destinatario@ address|no|indirizzo del destinatario@ email|no|email del destinatario@ phone|no|telefono del destinatario@ fax|no|fax del destinatario@ cc|no|copia per conoscenza@ subject|no|oggetto della lettera@ sref|no|riferimenti del mittente@ rref|no|riferimenti del destinatario@ rdate|no|data di ricevimento??@ opening|si|apertura@ paragraphs|si|vedere @ closing|si|chiusura@ encl|no|allegato@ ps|no|post scriptum@
Tag in una lettera
Il tag Telefax

<!element telefax - - (from, %addr, to, address, email?, phone?, fax, cc?, subject?, opening, p+, closing, ps?)> La struttura globale è la stessa della classe Il tag Slides

<!element slides - - (slide*) > La classe Il tag Slide

<!element slide - o (title?, p+) > Un tag ) e uno o più ). Questo è tutto. Il tag Note

<!element notes - - (title?, p+) > È una classe destinata ad appunti personali, la sua struttura è perfino più semplice della classe di documento ). Dopo aver classificato un documento con il tag ) e uno o più ). Il tag Manual Page

<!element manpage - - (sect1*) -(sect2 | f | %mathpar | figure | tabular | table | %xref | %thrm )> Questa classe di documento è destinata alla scrittura di ), per un facile inserimento di pagine di manuale all'interno di una classe di documento Inline

<!entity % inline " (#pcdata | f| x| %emph; |sq| %xref | %index | file )* " > . per informazioni dettagliate. . . . Creare le sezioni

<!element chapt - o (%sect, sect*) +(footnote)> <!element sect - o (%sect, sect1*) +(footnote)> <!element sect1 - o (%sect, sect2*)> <!element sect2 - o (%sect, sect3*)> <!element sect3 - o (%sect, sect4*)> <!element sect4 - o (%sect)> La creazione di si ottiene tramite elementi concordi che formano l'albero delle sezioni. Servono a unire i vari paragrafi del nostro documento, formando un grazioso albero. Il tag di livello più alto e la profondità ammessa varia a seconda della ). La normale gerarchia prevede: chapt sect sect1 sect2 sect3 sect4 Si prenda un libro e si guardi l'indice per vederlo. Ciascuno dei tag tra le ). In esso si possono posizionare sezioni subordinate e ). Alcuni dei tag che creano sezioni possono apparire soltanto in speciali classi di documento (). . Più avanti, quando il proprio documento aumenterà di dimensioni, si potrebbe volerlo. 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. Paragrafo normale

Un paragrafo normale può essere creato in due modi: Tag di paragrafo

Il tag Nuova riga vuota

Una riga vuota tra due paragrafi inizia implicitamente un nuovo 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 <!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> <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> <item>Un punto <item>Un altro <item>L'ultimo </itemize> Si vedrà (a seconda della mappatura) qualcosa come: Un punto Un altro L'ultimo Il tag Enum

<!element enum - - (item+)> Il tag <enum> <item>Un punto <item>Un altro <item>L'ultimo </enum> Si vedrà (a seconda della mappatura) qualcosa come: Un punto Un altro L'ultimo Il tag Descrip

<!element descrip - - (tag?, p+)+ > Il tag <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: Illustrazioni e Tabelle

I tag . h|here|Nella stessa posizione del file SGML@ t|top|All'inizio di una pagina@ b|bottom|Alla fine di una pagina@ p|page|In una pagina separata con sole illustrazioni e tabelle
Posizioni della tabella
Il valore predefinito dell'attributo loc è Il tag Table

<!element table - - (tabular, caption?) > Come si può vedere, una ). Il tag ). Un breve esempio mostrerà come lavorano insieme. <table loc="ht"> <tabular ca="lcr"> Guarda|questa|tabella@ Non|è|carina@ 1.234|colonne|miste &etago;tabular> <caption>Una tabella di esempio &etago;table> Guarda|questa|tabella@ Non|è|carina@ 1.234|colonne|miste
Una tabella di esempio
Il Il tag Figure

<!element figure - - ((eps | ph ), img*, caption?)> L'utilizzo del tag Il tag Encapsulated Postscript™

<!attlist eps file cdata #required height cdata "5cm" angle cdata "0"> Il tag Un esempio: <figure loc="here"> <eps file="logo" height="4cm" angle="15"> <img src="logo.gif"> <caption>Inclusione di un encapsulated postscript™ &etago;figure> Il tag Inclusione di un file encapsulated postscript™. Il tag . 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 . <figure loc="ht"> <ph vspace="5cm"> <caption>Uno spazio vuoto. &etago;figure> Restituisce:

Uno spazio vuoto per incollare una fotografia
A questo punto potrebbe essere il caso di cercare forbici e colla. Il tag Tabular