Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ îðèãèíàëüíîãî äîêóìåíòà : http://www.arcetri.astro.it/irlab/doc/library/linux/AppLinux/al144.htm
Äàòà èçìåíåíèÿ: Tue Sep 21 18:08:46 1999
Äàòà èíäåêñèðîâàíèÿ: Sat Dec 22 13:23:48 2007
Êîäèðîâêà:
Appunti Linux: Introduzione a TeX/LaTeX [inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]

112. Introduzione a TeX/LaTeX

TeX Õ un vecchio sistema di editoria elettronica, ma tuttora efficace, portato su diverse piattaforme, GNU/Linux incluso. Si tratta di un programma di editoria a composizione differita, per cui si parte da un sorgente in formato testo, che viene convertito successivamente nel formato finale.

TeX Õ un sistema a cui possono essere applicate delle macro, per semplificare la composizione, utilizzando comandi meno dettagliati. Per questo, a fianco di TeX, nel tempo si Õ abbinato LaTeX, che rappresenta TeX vestito con una serie di macro standard che insieme compongono LaTeX. Attualmente, si tende a confondere le due cose, oppure si fa riferimento semplicemente a LaTeX, intendendo l'insieme delle due.

Negli ultimi tempi, il lavoro attorno a TeX ha prodotto una grande mole di materiale, creando anche una sorta di babele tra le varie distribuzioni di TeX/LaTeX. Le edizioni Unix di queste distribuzioni dovrebbero essere conosciute con il nome teTeX.

112.1 Collocazione

Prima ancora di vederne il funzionamento, Õ il caso si chiarire che non esiste un modo standard di installare TeX/LaTeX. Utilizzando GNU/Linux, si dovrebbe disporre della distribuzione teTeX, ma per il momento, ogni distribuzione GNU/Linux tende a collocarla dove ritiene piÛ opportuno.

Il blocco principale di teTeX dovrebbe trovarsi in una gerarchia che puÐ collocarsi al di sotto di /usr/lib/ o /usr/share/. A titolo di esempio, viene mostrato un elenco di alcune di queste possibilitÞ.

/usr/lib/teTeX/texmf/

/usr/lib/texmf/texmf/

/usr/share/teTeX/texmf/

/usr/share/texmf/

Negli esempi che si mostreranno, quando si farÞ riferimento a questa directory, si indicheranno solo percorsi relativi a iniziare da texmf/. La sigla «texmf» sta per TeX and more, oppure per TeX and friends.

112.2 Funzionamento fondamentale

TeX utilizza un sorgente .tex e genera in particolare un rapporto sull'elaborazione, .log, e il file finale in formato .dvi. I file .dvi vengono convertiti normalmente in PostScript attraverso il programma dvips.

Il programma eseguibile di TeX Õ tex, ma non viene mai usato direttamente. Al suo posto si richiamano altri comandi, come latex, anche se nella maggior parte dei casi si tratta solo di collegamenti al nome tex. Evidentemente, quando il binario tex viene avviato con un nome differente, si comporta in modo diverso, come se avesse ricevuto un'opzione speciale. In pratica, nel caso del nome latex, si fa implicitamente riferimento all'utilizzo delle macro di LaTeX.

112.2.1 File DVI

Il formato DVI rappresenta lo standard per i documenti stampati generati da TeX. Attorno a questo formato sono stati costruiti una grande quantitÞ di programmi di utilitÞ per la conversione ulteriore in formati comprensibili a diversi tipi di stampanti e anche dei visualizzatori in anteprima.

Attualmente, lo standard di fatto del formato per i file contenenti documenti pronti per la stampa Õ PostScript, quindi i file DVI vengono quasi sempre convertiti immediatamente in PostScript.

õ possibile che in futuro questa situazione cambi, soprattutto quando il lavoro su pdfTeX sarÞ maturato maggiormente. In quell'occasione potrebbe capitare che il formato PDF si sostituisca al vecchio DVI.

112.3 Esempio introduttivo

TeX/LaTeX rappresentano un sistema di editoria elettronica che puÐ essere usato in modo superficiale, e quindi semplificato, oppure anche in modo estremamente complesso. Per cominciare, Õ preferibile provare con un esempio molto semplice, che utilizza quindi solo le macro di LaTeX, almeno per poter capire di cosa si sta parlando.

\documentclass{article}

% Inizia il preambolo.

\setlength{\textwidth}{7cm}
\setlength{\textheight}{7cm}

% Fine del preambolo.

\begin{document}

% Inizia il documento vero e proprio.

\section{Introduzione a TeX/LaTeX}

Questo \`e un esempio di documento scritto con LaTeX.
Come si pu\`o vedere \`e gi\`a stato definito uno stile
generale del documento: article.

\subsection{Suddivisione del documento}

Lo stile article prevede una suddivisione in sezioni
sottosezioni ed eventuali sotto-sottosezioni.

\subsection{Paragrafi}

Il testo di un paragrafo termina quando nel sorgente viene
incontrata una riga vuota (una riga bianca).

Questo \`e l'inizio di un nuovo paragrafo e si nota perch\'e
la prima riga \`e leggermente rientrata.

\subsection{Gli ambienti}

LaTeX utilizza gli ambienti per definire dei comportamenti
circoscritti a zone particolari del testo.
Per esempio, la centratura si ottiene utilizzando l'ambiente
center.

\begin{center}
Questo \`e un esempio di testo centrato.
\end{center}

% Fine del documento.

\end{document}

Supponendo di attribuire a questo file il nome primo.tex, si puÐ procedere con la composizione nel modo seguente:

latex primo

Se non vengono rilevati errori, durante l'elaborazione si vedono diverse informazioni sul procedimento della composizione, come nell'esempio seguente:

This is TeX, Version 3.14159 (Web2C 7.2)
(primo.tex
LaTeX2e <1998/06/01>
Babel <v3.6j> and hyphenation patterns for american, french, german, italian,
nohyphenation, loaded.
(/usr/share/texmf/tex/latex/base/article.cls
Document Class: article 1998/05/05 v1.3y Standard LaTeX document class
(/usr/share/texmf/tex/latex/base/size10.clo))
No file primo.aux.

Overfull \hbox (15.23882pt too wide) in paragraph at lines 15--15
[]\OT1/cmr/bx/n/14.4 Introduzione a TeX/LaTeX 

Overfull \hbox (16.99774pt too wide) in paragraph at lines 23--25
\OT1/cmr/m/n/10 sezioni sot-tosezioni ed even-tu-ali sotto-sottosezioni. 
[1] [2] (primo.aux) )
(see the transcript file for additional information)
Output written on primo.dvi (2 pages, 1504 bytes).
Transcript written on primo.log.

Se tutto va bene come nell'esempio, si ottiene il file primo.log contenente tutte le annotazioni generate durante la composizione, soprattutto gli errori, il file primo.aux che serve a LaTeX per delle operazioni varie, come la separazione in sezioni, e il file primo.dvi, ovvero il risultato vero e proprio della composizione, che puÐ essere convertito in PostScript.

dvips -o primo.ps primo

Quello che si ottiene Õ il file primo.ps in formato PostScript. *1*

This is dvips(k) 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com)
' TeX output 1999.01.06:0932' -> primo.ps
<texc.pro>. [1] [2] 


Figura 112.1: Il risultato della composizione del sorgente LaTeX di esempio.

112.4 Comandi e modelli sintattici

In teoria, si potrebbe scrivere un documento TeX utilizzando esclusivamente comandi di questo. In pratica, ciÐ non conviene, e si preferisce usare delle macro per quanto possibile. Scrivere un documento in LaTeX significa questo: utilizzare le macro di LaTeX. Ma anche in questa circostanza si possono ancora inserire comandi TeX puri e semplici, anche se in generale Õ meglio limitare al minimo tale comportamento.

I comandi primitivi di TeX sono difficili da gestire, ma anche le macro di LaTeX hanno una logica piuttosto insolita, e prima di cominciare a descriverle, Õ bene chiarire alcune stranezze.

Le macro, ovvero i comandi di LaTeX, assomigliano vagamente a delle funzioni, il cui effetto puÐ essere di vario tipo; in particolare potrebbe trattarsi di qualcosa che restituisce un valore che viene inserito nel testo nel punto in cui appare, oppure potrebbe tradursi in un comportamento da parte del sistema di composizione. Questi comandi, eventualmente, possono avere delle opzioni, cioÕ degli argomenti facoltativi, e anche degli argomenti obbligatori, come avviene con le chiamate di funzione nei linguaggi di programmazione.

In generale, Õ difficile definire in modo completo come possono essere conformati tali comandi, comunque il modello sintattico seguente dovrebbe darne un'idea sufficiente per cominciare.

\<comando>[<opzioni>]...{<argomenti>}...

Purtroppo, le macro utilizzano effettivamente le parentesi quadre e anche le parentesi graffe, e questo contribuisce a confondere ulteriormente le cose quando si vuole mostrare un modello sintattico. Ma non finisce qui: le opzioni sono effettivamente qualcosa di «opzionale», per cui se ne puÐ fare a meno; ma quando si usano, queste devono essere delimitate con le parentesi quadre. Per quanto riguarda le parentesi graffe, il problema non si manifesta, perchÈ gli argomenti sono obbligatori e le parentesi appaiono sempre nel comando.

L'unica cosa sicura ed evidente, Õ il fatto che un comando inizia con una barra obliqua inversa e segue con il nome che serve a identificarlo.

Data la particolaritÞ dei comandi TeX/LaTeX, i modelli sintattici che si trovano nella documentazione non rispettano le convenzioni normali nell'uso della parentesi quadre e graffe. Ricapitolando: le parentesi quadre rappresentano delle opzioni che possono essere indicate o meno, ma se usate richiedono la presenza delle stesse parentesi quadre; mentre le parentesi graffe vanno inserite nei comandi in modo letterale. Questa regola viene seguita anche in questo capitolo.

Esempi

\itshape

Questo Õ l'esempio di un comando che non permette l'uso di opzioni, nÈ di argomenti. Vale in quanto nominato. In particolare, \itshape serve a fare in modo che dopo il suo utilizzo il testo venga posto al corsivo.

\textit{ciao, come stai?}

Questo Õ il caso di un comando che prevede un argomento, senza opzioni. L'argomento Õ il testo ciao, come stai?, e lo scopo del comando Õ restituire in corsivo l'argomento, senza coinvolgere il testo successivo.

112.4.1 Opzioni e argomenti

Fino a questo punto si Õ visto che le opzioni sono argomenti facoltativi, che se utilizzati, vanno delimitati attraverso delle parentesi quadre. La loro posizione Õ stabilita dalla sintassi del comando stesso, anche se di solito dovrebbero trovarsi prima degli argomenti normali.

Un comando potrebbe prevedere l'uso di piÛ opzioni in sequenza, o alternate con gli argomenti. Ma oltre a questo, un'opzione potrebbe essere interpretata in modo da estrapolare piÛ sotto-opzioni, delimitate generalmente attraverso una virgola.

Sugli argomenti c'Õ poco da aggiungere, tranne ripetere che il loro utilizzo Õ obbligatorio; inoltre, anche in questo caso, ci possono essere situazioni in cui un argomento Õ composto da piÛ sotto-argomenti separati da virgole.

Esempi

\documentclass{book}

Definisce lo stile generale book per un documento che inizia.

\documentclass[a4paper]{book}

Definisce lo stile generale book, specificando l'opzione a4paper.

\documentclass[a4paper,12pt]{book}

Definisce lo stile generale book, specificando l'opzione a4paper,12pt, che in pratica si traduce in due sotto-opzioni, distinte in base alla presenza della virgola.

\newcommand{\dattilografico}[1]{\texttt{#1}}

Questo Õ un comando un po' difficile da interpretare, comunque si puÐ osservare che appare un'opzione dopo un argomento e prima dell'ultimo argomento. õ il caso di precisare che in questo momento, \dattilografico e \texttt{#1} sono solo stringhe che hanno un qualche valore per il comando \newcommand.

\epsfig{file=prova,height=3cm,angle=0}

Questo comando non riguarda direttamente LaTeX, ma proviene da un pacchetto che comunque lo accompagna. Come si puÐ osservare, c'Õ solo un argomento, scomposto in tre sotto-argomenti separati da virgole.

112.5 Sopravvivere nel caos

Quello che Õ stato descritto fino a questo punto Õ solo un assaggio di ciÐ che puÐ capitare di vedere. TeX e LaTeX sono un linguaggio di composizione caotico, e non solo a prima vista. Spesso, anche leggendo attentamente la documentazione originale, ci si trova di fronte a errori apparentemente inspiegabili. Per cercare di comprenderli, occorre imparare a interagire con il programma di composizione, e soprattutto occorre prendere l'abitudine di leggere il file delle registrazioni (il log) anche se la composizione sembra andata a buon fine.

\documentstyle{article}
\begin{document}
\section{Problemi con TeX/LaTeX}
Quanti problemi con LaTeX!
\end{document}

L'esempio mostra un documento LaTeX eccezionalmente breve, che contiene un problema, ma che viene superato temporaneamente. Leggendo il file delle registrazioni si puÐ trovare un avvertimento che riguarda il comando \documentstyle, considerato ormai obsoleto e da non utilizzare.

          Entering LaTeX 2.09 COMPATIBILITY MODE
 *************************************************************
    !!WARNING!!    !!WARNING!!    !!WARNING!!    !!WARNING!!   
 
 This mode attempts to provide an emulation of the LaTeX 2.09
 author environment so that OLD documents can be successfully
 processed. It should NOT be used for NEW documents!
 
 New documents should use Standard LaTeX conventions and start
 with the \documentclass command.
 
 Compatibility mode is UNLIKELY TO WORK with LaTeX 2.09 style
 files that change any internal macros, especially not with
 those that change the FONT SELECTION or OUTPUT ROUTINES.
 
 Therefore such style files MUST BE UPDATED to use
          Current Standard LaTeX: LaTeX2e.
 If you suspect that you may be using such a style file, which
 is probably very, very old by now, then you should attempt to
 get it updated by sending a copy of this error message to the
 author of that file.
 *************************************************************

Un avvertimento non Õ niente di eccezionalmente grave, soprattutto se poi non pregiudica la riuscita della composizione. Ma un avvertimento puÐ segnalare il sorgere di un problema che piÛ avanti puÐ aggravarsi e diventare insuperabile. Se nell'esempio mostrato sopra si aggiunge un comando incompatibile si arriva al punto di crisi.

\documentstyle{article}
\usepackage{epsfig}
\begin{document}
\section{Problemi con TeX/LaTeX}
Quanti problemi con LaTeX!
\end{document}

Come si vede, Õ stato aggiunto il comando \usepackage{epsfig}, il cui scopo Õ solo quello di incorporare lo stile epsfig.sty che si trova da qualche parte, dove LaTeX puÐ trovarlo.

CiÐ che dovrebbe succedere Õ che lo stile richiesto sia incompatibile con una vecchia versione di LaTeX, oppure che sia incompatibile con il funzionamento che si impone a LaTeX quando si utilizza il comando \documentstyle.

! LaTeX Error: LaTeX2e command \usepackage in LaTeX 2.09 document.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.

Ecco la segnalazione di errore. Si puÐ osservare che viene indicato precisamente il punto in cui appare l'errore: si tratta proprio del comando \usepackage che appare nella riga numero 2 del testo sorgente.

l.2 \usepackage
               {epsfig}

Subito dopo appare un invito, composto da un semplice punto interrogativo. Da lË Õ possibile dare qualche comando elementare; in particolare Õ possibile conoscere l'elenco di quelli disponibili con il comando ?, ovvero un altro punto interrogativo.

?[Invio]

Type <return> to proceed, S to scroll future error messages,
R to run without stopping, Q to run quietly,
I to insert something, E to edit your file,
1 or ... or 9 to ignore the next 1 to 9 tokens of input,
H for help, X to quit.

Si possono osservare due comandi molto importanti: H che serve a ottenere chiarimenti, e X che serve a interrompere l'elaborazione.

H[Invio]

This is a LaTeX 2.09 document, but it contains \usepackage.
If you want to use the new features of LaTeX2e, your document
should begin with \documentclass rather than \documentstyle

In tal caso Õ stato richiesto il chiarimento e con questo si vede che \documentstyle Õ la causa dell'errore.

Come si puÐ intuire, l'utilizzo di LaTeX puÐ essere fondato solo sulla prudenza, utilizzando comandi che si conoscono bene, e cercando di stare fuori dai guai. LaTeX permetterebbe di fare acrobazie eccezionali, ma Õ meglio starne lontani, o comunque non farne affidamento, fino a che l'esperienza non lo consente.

112.6 Elementi essenziali di un documento LaTeX

Il sorgente di un documento scritto in TeX, utilizzando le macro di LaTeX, ha una struttura che segue delle regole precise. La prima cosa a essere definita Õ il tipo di documento, ovvero lo stile generale a cui si vuole fare riferimento. A questo segue eventualmente un preambolo, cioÕ l'indicazione piÛ o meno facoltativa di altri elementi stilistici insieme alle informazioni che servono a comporre il titolo del documento. Quindi inizia il documento vero e proprio.

112.6.1 Commenti

I sorgenti TeX e derivati, permettono (opportunamente) l'inserimento di commenti attraverso il simbolo di percentuale (%): tutto ciÐ che appare alla destra viene ignorato.

L'utilitÞ dei commenti sta nella possibilitÞ di annotare il senso di una certa istruzione, proprio come si fa con i linguaggi di programmazione, oppure di annotare qualcosa che riguarda il contenuto stesso del documento. L'utilizzo dei commenti Õ una cosa opportuna con LaTeX, data la sua complessitÞ.

112.6.2 Dichiarazione dello stile generale

Lo stile generale del documento viene definito all'inizio del sorgente LaTeX attraverso la dichiarazione seguente:

\documentclass[<opzioni>]{<classe>}

Le classi possono essere:

Il comando \documentclass ammette l'uso di una sola opzione, ma al suo interno possono essere indicate diverse sotto-opzioni, rappresentate da delle parole chiave, separate attraverso una virgola. Ogni classe di documento puÐ gestire il suo gruppo particolare di sotto-opzioni, ma in generale, sono disponibili quelle seguenti che dovrebbero essere valide in ogni circostanza.

Dimensione dei caratteri:

Dimensione e del foglio:

Altre caratteristiche:

Esempi

\documentclass[a4paper,11pt]{book}

definisce l'uso della classe book, utilizzando un foglio A4 con il corpo normale dei caratteri a 11 punti tipografici; mentre il comando seguente,

\documentclass{book}

definisce l'uso della classe book, senza opzioni, e quindi impostata in modo predefinito.

112.6.3 Preambolo

Il preambolo Õ quella parte di sorgente LaTeX che sta tra la dichiarazione della classe (o dello stile generale) e la dichiarazione di inizio del documento. Normalmente viene usata per specificare l'utilizzo di stili aggiuntivi e per l'inserimento di tutti quegli elementi che compongono il titolo del documento e gli indici eventuali.

Una dichiarazione molto importante del preambolo Õ l'inclusione di uno stile aggiuntivo, secondo la sintassi seguente:

\usepackage[<opzioni>]{<pacchetto>}

Le opzioni utilizzabili dipendono dal tipo particolare di stile a cui si fa riferimento. Un file di stile puÐ anche essere scritto dall'utilizzatore, solitamente partendo da un altro giÞ esistente.

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

L'esempio mostra l'inclusione del pacchetto inputenc allo scopo di ammettere la codifica dei caratteri ISO Latin-1 nel sorgente LaTeX, e del pacchetto fontenc per ottenere una composizione con un tipo di carattere che contenga le lettere accentate e i simboli speciali piÛ importanti utilizzati in Europa.

CosË come Õ possibile aggiungere stili aggiuntivi, Õ possibile utilizzare direttamente delle dichiarazioni riferite a singoli elementi stilistici. Nell'esempio presentato all'inizio, si utilizzavano due dichiarazioni:

\setlength{\textwidth}{7cm}
\setlength{\textheight}{7cm}

In questo caso, si definiva la larghezza e l'altezza del testo, senza fare riferimento a un formato standard.

Il preambolo serve anche per definire gli elementi che fanno parte del titolo del documento. Questi dipendono dal tipo di stile generale utilizzato, ma di solito comprendono almeno il titolo, l'autore e la data, come nell'esempio seguente:

\title{Usare TeX/LaTeX}
\author{Pinco Pallino}
\date{11/11/1911}

112.6.4 Inizio e fine del documento

L'inizio del documento Õ contrassegnato dalla dichiarazione \begin{document} e la fine da \end{document}. Tutto quello che appare dopo la conclusione del documento viene semplicemente ignorato.

Subito dopo l'apertura del documento viene collocata normalmente l'istruzione di creazione del titolo, \maketitle, seguita eventualmente da quello di creazione dell'indice, \tableofcontents.

\begin{document}
\maketitle
\tableofcontents
...
...
\end{document}

112.6.5 Suddivisione del documento

Il corpo del documento puÐ essere normalmente suddiviso, a seconda del tipo di classe utilizzato.

\<livello-di-suddivisione>[<opzioni-eventuali>]{<titolo-della-suddivisione>}

I nomi dei livelli di suddivisione possono essere i seguenti, elencati in ordine decrescente di importanza:

Per esempio,

\section{Introduzione a TeX/LaTeX}

definisce l'inizio di una sezione che ha il titolo indicato tra le parentesi graffe.

In particolare esiste un comando speciale, \appendix che viene utilizzato cosË, senza opzioni, esclusivamente per modificare il modo in cui vengono numerate le suddivisioni, che dal quel punto vengono trattate come parte di un'appendice.

\chapter{Bla bla bla}
...
\appendix
\chapter{Appendice bla bla}
...

L'esempio mostra proprio questo: il capitolo denominato «Appendice bla bla» Õ la prima appendice.

112.6.6 Ambienti

L'istruzione \begin{<ambiente>} delimita l'inizio di un ambiente le cui caratteristiche sono definite dal nome contenuto tra le parentesi graffe. L'istruzione \end{<ambiente>} delimita la fine dell'ambiente dichiarato in precedenza. Per esempio, l'ambiente document definisce la zona in cui appare il corpo del documento.

Gli ambienti vengono utilizzati frequentemente per definire le caratteristiche di paragrafi particolari. L'elenco seguente ne riassume i piÛ semplici:

L'esempio seguente mostra i comandi necessari a centrare il testo «Ciao a tutti!».

\begin{center}
Ciao a tutti!
\end{center}

112.6.7 Elenchi

Alcuni ambienti sono predisposti per la realizzazione di elenchi di vario tipo. Quelli piÛ comuni sono description, enumerate e itemize. L'esempio seguente mostra la definizione di un elenco descrittivo.

\begin{description}
\item Primo elemento
\item Secondo elemento
\end{description}

L'ambiente description richiede l'inserimento al suo interno di una serie di voci il cui inizio Õ marcato dall'istruzione \item. Il risultato che si ottiene Õ simile a quello seguente:

Primo elemento

Secondo elemento

L'esempio seguente mostra la definizione di un elenco numerato.

\begin{enumerate}
\item Primo elemento
\item Secondo elemento
\end{enumerate}

L'ambiente enumerate richiede l'inserimento al suo interno di una serie di voci il cui inizio Õ marcato dall'istruzione \item. Il risultato che si ottiene Õ simile a quello seguente:

1  Primo elemento
2  Secondo elemento

L'esempio seguente mostra la definizione di un elenco puntato.

\begin{itemize}
\item Primo elemento
\item Secondo elemento
\end{itemize}

L'ambiente itemize richiede l'inserimento al suo interno di una serie di voci il cui inizio Õ marcato dall'istruzione \item. Il risultato che si ottiene Õ simile a quello seguente:

*  Primo elemento
*  Secondo elemento

112.6.8 Caratteri

Le caratteristiche principali di un carattere sono lo stile, la serie (forma) e il corpo. Lo stile e la serie puÐ essere definito utilizzando istruzioni del tipo seguente,

\<stile-serie>{<testo>}

oppure, nella forma dichiarativa,

\<stile-serie>

e

\begin{<stile-serie>}...\end{<stile-serie>}

I nomi delle istruzioni cambiano a seconda che si utilizzi un modo oppure l'altro. Per esempio, per scrivere un testo in corsivo, si possono utilizzare questi due modi.

\textit{Testo in corsivo}

\begin{itshape}Testo in corsivo\end{itshape}

In particolare, il secondo tipo rappresenta una forma dichiarativa, che quindi ne permette l'utilizzo senza specificare un ambiente: quando si incontra l'istruzione il testo cambia aspetto e continua cosË fino alla prossima dichiarazione che dovesse cambiare quella caratteristica particolare. CiÐ consente di utilizzare dichiarazioni cumulative. Per esempio, \itshape\bfseries inizia un testo corsivo e neretto.

L'utente dovrebbe evitare di utilizzare la forma dichiarativa, sia per ciÐ che riguarda lo stile e la serie dei caratteri che il corpo.

Seguono alcune istruzioni che utilizzano la forma \<stile-serie>{<testo>} per modificare lo stile e la serie dei caratteri.

Segue l'elenco degli stessi stili e delle serie, attraverso istruzioni del tipo \<stile-serie>, ovvero \begin{<stile-serie>}...\end{<stile-serie>}.

Oltre allo stile e alla serie (la forma) del carattere puÐ essere definito il corpo, e per questo sono disponibili un gruppo di istruzioni relative. La dimensione effettiva corrispondente a ognuna di queste istruzioni dipende dalle definizioni contenute nello stile generale che rappresenta la classe del documento sul quale si sta lavorando.

Le istruzioni che definiscono il corpo dei caratteri possono essere espresse in forma dichiarativa (cioÕ collocate nel testo in modo che abbiano effetto da quel punto in poi, fino a quando dovesse essere incontrata un'istruzione contraria), oppure in forma di ambiente. õ il caso di ripetere che Õ meglio evitare la forma dichiarativa, a meno che ci sia un buon motivo per usarla. I due esempi seguenti chiariscono queste due modalitÞ.

Testo normale \small testo ridotto \large testo ingrandito.\normalsize

Testo normale \begin{small} testo ridotto \end{small}
\begin{large} testo ingrandito.\end{large}

I nomi utilizzabili come istruzioni di dimensionamento del testo sono i seguenti, e rappresentano una sequenza in ordine crescente di grandezza.

112.6.9 Delimitazione dei paragrafi

I paragrafi sono suddivisi normalmente con l'inserimento di una semplice riga bianca (puÐ contenere spazi, caratteri di tabulazione, oppure soltanto il codice di interruzione di riga). Se necessario, si puÐ utilizzare un'istruzione esplicita: \par.

112.7 Oggetti flottanti

LaTeX prevede l'uso di oggetti flottanti a cui generalmente non viene consentito di essere collocati esattamente nel punto dove appaiono nel testo. Infatti, la loro caratteristica piÛ importante Õ quella di non poter essere spezzati nella divisione tra una pagina e l'altra, e da questo, la necessitÞ di poterli riposizionare convenientemente. Questi oggetti sono generalmente solo delle immagini o delle tabelle.

I comandi di dichiarazione di questi elementi prevedono l'uso di un'opzione contenente una sigla che esprime la preferenza nella loro collocazione. Le possibilitÞ tra cui si puÐ scegliere riguardano il posizionamento:

Queste quattro possibilitÞ corrispondono alle sigle: h (here), t (top), b (bottom), p (page).

LaTeX non consente di imporre un'unica possibilitÞ, quindi non si puÐ pretendere che l'oggetto venga collocato sempre solo dove si trova la sua dichiarazione. Quello che si puÐ fare Õ stabilire un ordine di preferenza, utilizzando le sigle citate. Se l'opzione di posizionamento dell'oggetto non viene utilizzata, LaTeX intende l'uso della sigla tbp, cioÕ in alto, in basso o in una nuova pagina, escludendo la posizione naturale. Probabilmente, la maggior parte delle persone preferiranno usare l'opzione htbp, che pone come prima possibilitÞ il collocamento nella posizione in cui l'oggetto viene dichiarato.

112.7.1 Tabelle

La tabella Õ uno di quegli oggetti che vengono gestiti preferibilmente in modo flottante con LaTeX. La tabella flottante, come tale, prevede la possibilitÞ di indicare una collocazione attraverso le sigle h, t, b e p. La gestione delle tabelle di LaTeX non Õ molto semplice, e qui viene mostrato solo un modo semplificato.

La dichiarazione della tabella Õ delimitata dall'ambiente table, all'interno del quale puÐ essere utilizzato il comando \caption per indicare il titolo e una didascalia.

\begin{table}[<posizione>]
...
...
\caption{<didascalia>}
\end{table}

CiÐ che deve essere definito all'interno di questo ambiente Õ il punto piÛ delicato. In linea generale, LaTeX consente l'inserimento di ciÐ che si vuole, solo che di solito si utilizzano dei comandi che servono a definire un reticolo di celle per una tabella come si Õ abituati a immaginarla. Come accennato, viene mostrata una sintassi semplificata.

\begin{table}[<posizione>]
\begin{tabular}{<colonne>}
<colonna-1>&<colonna-2>... \\
<colonna-1>&<colonna-2>&<colonna-3>... \\
...
...
...
\end{tabular}
\caption{<didascalia>}
\end{table}

Come si vede, viene inserito l'ambiente tabular che prevede un argomento attraverso il quale si devono indicare preventivamente le colonne e le separazioni verticali utilizzate:

Per esempio, la sigla |l|c|r| rappresenta l'intenzione di dichiarare tre colonne, delimitate da linee verticali, dove la prima contiene testo allineato a sinistra, la seconda al centro e la terza a destra. In alternativa, |lcr| rappresenta le stesse colonne con gli stessi allineamenti, ma senza le due linee verticali che circoscrivono la colonna centrale.

Sempre nell'ambito dell'uso elementare delle tabelle di LaTeX, Õ bene ricordare la possibilitÞ di inserire delle linee orizzontali di separazione tra una riga e l'altra della tabella. Questo si ottiene con il comando \hline.

Le tabelle di LaTeX permettono di ottenere risultati anche molto complessi, per i quali Õ necessario un po' di studio. Gli esempi seguenti rimangono su questo strato superficiale di utilizzo.

Esempi

\begin{table}[htbp]
\begin{tabular}{ll}
\hline
dispositivo &  descrizione \\ 
\hline
/dev/hda    &  il primo disco fisso IDE/EIDE \\ 
/dev/hda1   &  la prima partizione del primo disco fisso IDE/EIDE \\ 
/dev/hdb    &  il secondo disco fisso IDE/EIDE \\ 
/dev/hdb1   &  la prima partizione del secondo disco fisso IDE/EIDE \\ 
\hline
\end{tabular}
\caption{Alcuni nomi di dispositivo utilizzati da Linux.}
\end{table}

L'esempio mostra una tabella molto semplice, che puÐ essere collocata in qualunque posizione (htbp), composta da due sole colonne allineate a sinistra. La prima riga, per evidenziarla, Õ preceduta e seguita da una linea orizzontale (\hline), e anche la fine della tabella Õ conclusa da un'altra linea orizzontale finale. Prima della conclusione dell'ambiente table, viene inserita una didascalia con il comando \caption.

\begin{table}[htbp]
\begin{center}
\begin{tabular}{|ll|}
\hline
dispositivo &  descrizione \\ 
\hline
/dev/hda    &  il primo disco fisso IDE/EIDE \\ 
/dev/hda1   &  la prima partizione del primo disco fisso IDE/EIDE \\ 
/dev/hdb    &  il secondo disco fisso IDE/EIDE \\ 
/dev/hdb1   &  la prima partizione del secondo disco fisso IDE/EIDE \\ 
\hline
\end{tabular}
\end{center}
\caption{Alcuni nomi di dispositivo utilizzati da Linux.}
\end{table}

Si tratta dello stesso esempio mostrato precedentemente, con la differenza che alla sinistra e alla destra, la tabella Õ racchiusa tra due righe verticali (lo si vede nell'argomento della dichiarazione dell'ambiente tabellare: \begin{tabular}{|ll|}). Inoltre, l'ambiente tabellare Õ centrato, e questo significa che la tabella apparirÞ centrata orizzontalmente nel documento.

\begin{table}[htbp]
\begin{center}
\begin{tabular}{|ll|}
\hline
dispositivo &  descrizione \\ 
\hline
/dev/hda    &  il primo disco fisso IDE/EIDE \\ 
/dev/hda1   &  la prima partizione del primo disco fisso IDE/EIDE \\ 
/dev/hdb    &  il secondo disco fisso IDE/EIDE \\ 
/dev/hdb1   &  la prima partizione del secondo disco fisso IDE/EIDE \\ 
\hline
\end{tabular}
\end{center}
\caption{\label{tabella-dispositivi-vari}
    Alcuni nomi di dispositivo utilizzati da Linux.
}
\end{table}

Rispetto all'esempio precedente, viene aggiunto all'interno della didascalia un'etichetta attraverso il comando \label. In questo modo Õ possibile fare riferimento alla tabella all'interno del documento.

112.7.2 Figure

La figura Õ un altro dei tipici oggetti gestiti in modo flottante da LaTeX. Anche in questo caso si utilizzano le sigle h, t, b e p, per definire la preferenza nella collocazione finale. Come nel caso delle tabelle, viene specificato un ambiente flottante per le figure, e al suo interno vengono aggiunti i comandi necessari a incorporare ciÐ che si vuole rappresentare in qualitÞ di figura, in qualunque forma essa sia.

\begin{figure}[<posizione>]
...
...
\caption{<didascalia>}
\end{figure}

Come nel caso delle tabelle, all'interno dell'ambiente figure puÐ essere collocata una didascalia, rappresentata dal comando \caption.

LaTeX, attraverso le sue macro, non gestisce direttamente l'inclusione di file di immagini. Per questo ci si avvale normalmente di macro esterne, di solito si tratta di epsfig, che fa comunque parte del corredo normale di LaTeX. In tal caso, viene utilizzato il comando \usepackage{epsfig} nel preambolo del documento LaTeX. Il pacchetto epsfig consente l'inserzione di immagini EPS (Encapsulated PostScript) nel testo, con il comando omonimo \epsfig. Questo richiede un argomento composto da diverse parti, separate da virgole; semplificando si puÐ indicare come nella sintassi seguente:

\epsfig{file=<file-eps>,height=<altezza>,angle=<rotazione>}

Il file rappresenta il percorso completo o relativo di un file EPS oppure PostScript, ma senza estensione: il pacchetto epsfig si attende di trovarlo con l'estensione .ps. L'altezza viene espressa nell'unitÞ di misura desiderata, e l'ampiezza viene regolata di conseguenza, in modo relativo. Infine, l'angolo di rotazione permette di girare l'immagine; di solito si lascia il valore zero.

L'uso del pacchetto epsfig Õ compatibile con pdfLaTeX, che incorpora immagini in formato PNG. Questi file vengono cercati nello stesso percorso, ma con estensione .png.

Esempi

\begin{figure}[hbp]
\epsfig{file=figure/prova,height=5cm,angle=0}
\end{figure}

Dichiara un ambiente figure (flottante) che potrÞ essere collocato nella posizione in cui appare, oppure nella parte inferiore della pagina, o ancora in una pagina a sÈ stante. All'interno dell'ambiente inserisce un'immagine, attraverso il comando \epsfig, ottenuta dal file figure/prova.ps, il quale viene ridimensionato in modo che la sua altezza sia di 5 cm, e non viene ruotato in alcun modo.

\begin{figure}[hbp]
\begin{center}
\epsfig{file=figure/prova,height=5cm,angle=0}
\end{center}
\caption{\label{figura-prova} Una figura di prova.}
\end{figure}

Rispetto all'esempio precedente, l'immagine viene centrata in orizzontale, e viene aggiunta una didascalia contenente un'etichetta, che permette di fare riferimento all'immagine.

112.7.3 Contenuto degli ambienti flottanti

Gli ambienti flottanti \table e \figure si distinguono solo per una ragione sottile: la numerazione. VerrÞ descritto meglio in seguito l'uso dei comandi per i riferimenti incrociati all'interno del testo. Per il momento, basti sapere che i riferimenti fatti a etichette contenute nell'ambiente \table seguono una numerazione differente da \figure. *2*

Volendo provare, Õ possibile verificare che si puÐ inserire una tabella, precisamente un ambiente \tabular in un ambiente \figure, e nello stesso modo un'immagine in un ambiente \table. Pensandoci un momento si puÐ intendere che nessuno vieta di realizzare una tabella utilizzando un programma di disegno, e nello stesso modo, un'immagine potrebbe essere costituita da una tabella, o anche da del testo letterale.

Evidentemente dipende dall'autore decidere quale sia l'involucro piÛ adatto per l'oggetto flottante che si sta creando.

Prima di concludere questo argomento, Õ il caso di chiarire che si possono inserire nel testo delle tabelle e delle immagini non flottanti. Evidentemente, basta non inserirle negli ambienti descritti nelle sezioni precedenti; ovvero, basta usare l'ambiente \tabular da solo e il comando \epsfig nel testo normale.

112.8 Etichette e riferimenti

LaTeX mette a disposizione pochi comandi per la creazione di riferimenti incrociati all'interno del testo. Attraverso il comando \label Õ possibile definire un'etichetta alla quale si puÐ fare riferimento con i comandi \ref o \pageref.

Il punto fissato da un'etichetta puÐ essere indicato come parte di un elemento del documento o come contenuto di una pagina particolare. Nel secondo caso si utilizza il comando \pageref che si trasforma nel numero di pagina in cui si trova il testo contenente l'etichetta di destinazione. Quando si vuole fare riferimento a un elemento del documento, inteso come capitolo, sezione, o come figura, tabella, o altro, si usa semplicemente il comando \ref.

\label{<stringa-di-riferimento>}

La sintassi mostra il modo in cui puÐ essere usato il comando \label. Il suo unico argomento Õ una stringa che puÐ essere composta da lettere numeri e simboli di punteggiatura.

La posizione in cui viene collocato il comando \label Õ importante, in quanto sarÞ diverso il comportamento di \ref nel momento in cui dovesse servire. Se l'etichetta viene dichiarata all'interno di testo normale, il riferimento generico a questa restituisce un numero, piÛ o meno articolato, che indica la sezione o il capitolo in cui si trova; se invece questa viene dichiarata all'interno di un ambiente numerato, come una tabella o una figura, il riferimento a questa genera il numero corrispondente a questo elemento.

\pageref{<stringa-di-riferimento>}

\ref{<stringa-di-riferimento>}

La sintassi per i comandi che fanno riferimento a un'etichetta Õ la stessa. Quello che cambia Õ il tipo di riferimento che si ottiene, come giÞ Õ stato descritto.

Esempi

Il programma \texttt{init} \label{programma-init} controlla tutti
gli altri processi.

In questa frase appare un'etichetta che serve a segnalare il punto in cui si parla del programma init (che tra l'altro Õ stato evidenziato utilizzando un carattere dattilografico). Per questo Õ stata usata la stringa programma-init.

Il programma \texttt{init} (che Õ stato introdotto nella sezione
\ref{programma-init}) corrisponde al processo numero 1.

Qui, si vuole fare riferimento alla sezione in cui si parlava di init, e quindi se ne richiama il numero attraverso il comando \ref.

Il programma \texttt{init} (vedere pagina \pageref{programma-init})
corrisponde al processo numero 1.

Come nell'esempio precedente, ma si fa riferimento al numero della pagina.

\begin{figure}[hbp]
\begin{center}
\epsfig{file=figure/prova,height=5cm,angle=0}
\end{center}
\caption{\label{figura-prova} Una figura di prova.}
\end{figure}

All'interno dell'ambiente figure, precisamente nella didascalia, viene dichiarata un'etichetta che permette di fare riferimento al numero della figura, invece che al testo in cui appare.

La figura \ref{figura-prova} mostra...

Il riferimento a un'etichetta posta nell'ambiente di una figura, o di una tabella, o di un altro elemento numerato, restituisce il numero di quell'elemento.

112.9 Personalizzazione

Le spiegazioni date finora sull'uso di LaTeX sono insufficienti per poterne apprezzare effettivamente le potenzialitÞ. Tuttavia, vale la pena di accennare a qualche particolare sulla configurabilitÞ del sistema.

112.9.1 Definizione e ridefinizione

Nel momento in cui si lavora con documenti di grandi dimensioni, oppure si sta preparando una veste grafica per le proprie pubblicazioni, Õ importante creare una serie di istruzioni personalizzate per la creazione di ambienti, anche se queste non sono altro che una copia di istruzioni giÞ esistenti. Il vantaggio di questo modo di procedere sta nella possibilitÞ successiva di cambiare tutta la veste grafica semplicemente modificando il funzionamento delle istruzioni personalizzate.

LaTeX prevede anche la possibilitÞ di ridefinire istruzioni giÞ esistenti, ma in tal caso Õ importante attribuire un senso particolare (e personale) a quelle istruzioni.

L'istruzione \newcommand permette di creare un comando nuovo, mentre \renewcommand permette di ridefinirne uno giÞ dichiarato in precedenza.

\newcommand{<comando>}[<n-argomenti>]{<definizione>}

\newcommand{<comando>}[<n-argomenti>][<argomento-predefinito>]{<definizione>}

\renewcommand{<comando>}[<n-argomenti>]{<definizione>}

\renewcommand{<comando>}[<n-argomenti>][<argomento-predefinito>]{<definizione>}

Se il comando puÐ avere degli argomenti, Õ necessario indicarne il numero, attraverso una sola cifra numerica da 1 a 9; inoltre, Õ possibile specificare il primo argomento predefinito, da utilizzare nel caso non ne sia fornito alcuno. Infine, se si prevedono degli argomenti, questi vengono inseriti nella stringa di definizione del comando utilizzando delle metavariabili nella forma #n, dove il numero rappresenta l'n-esimo argomento.

Una volta dichiarato o ridichiarato il comando, questo puÐ essere utilizzato attraverso una sintassi riassumibile nel modo seguente, dove gli argomenti eventuali, appaiono tra parentesi graffe.

\comando[{<argomento>}]...

L'utilizzo piÛ semplice, riguarda la definizione di un comando senza argomenti, come nell'esempio seguente, dove viene dichiarato \bftt il cui scopo Õ quello di iniziare l'uso di un carattere neretto e dattilografico.

\newcommand{\bftt}{\bfseries\ttfamily}

Come si vede, lo scopo Õ solo quello di sostituire a \bftt, i comandi \bfseries e \ttfamily. Quello che segue Õ un esempio di come potrebbe essere utilizzato.

Il file \bftt mio-file \normalfont contiene...

Secondo l'esempio, la parola «mio-file» viene evidenziata in neretto e dattilografico, e subito dopo, attraverso il comando \normalfont, riprende lo stile normale.

L'esempio seguente definisce un comando che richiede un argomento. CiÐ che si ottiene servirÞ a delimitare una zona in neretto dattilografico.

\newcommand{\bftt}[1]{\textbf{texttt{#1}}}

Lo scopo Õ quello di sostituire al comando \bftt{...}, i comandi \textbf{\texttt{...}}. Quello che segue Õ un esempio di come potrebbe essere utilizzato; si puÐ osservare che in questo caso non occorre riconvertire il testo dopo la zona delimitata con le parentesi graffe.

Il file \bftt{mio-file} contiene...

L'esempio seguente, utilizzando sempre un solo argomento, ha lo scopo di replicarlo cambiandone leggermente lo stile.

\newcommand{\triplo}[1]{\textit{#1} \textbf{#1} \texttt{#1}}

Utilizzandolo nel modo seguente, si ottiene la ripetizione della parola «tanto» per tre volte, e ognuna con uno stile differente: corsivo, neretto e dattilografico.

Ti amo \triplo{tanto}...

Prima di proseguire, vale la pena di vedere un esempio in cui si dichiara un comando che prevede l'uso di piÛ argomenti.

\newcommand{\somma}[3]{\texttt{#1}+\texttt{#2}=\texttt{#3}}

Utilizzando il comando appena creato nel modo seguente, si ottiene esattamente il testo 5+6=11, dove i numeri sono in dattilografico, e i segni sono composti con caratteri normali.

\somma{5}{6}{11}

Oltre a questo Õ possibile definire, o ridefinire, degli ambienti da utilizzare nei comandi \begin{...} e \end{...}. Per queste operazioni si utilizzano le istruzioni \newenvironment e \renewenvironment.

\newenvironment{<ambiente>}[<n-argomenti>]{<def-iniziale>}{<def-finale>}

\newenvironment{<ambiente>}[<n-argomenti>][<argomento-predefinito>]{<def-iniziale>}{<def-finale>}

\renewenvironment{<ambiente>}[<n-argomenti>]{<def-iniziale>}{<def-finale>}

Se la dichiarazione del nuovo ambiente puÐ avere degli argomenti, Õ necessario indicarne il numero, attraverso una sola cifra numerica da 1 a 9, e questi possono essere utilizzati solo nella definizione di inizio, attraverso le metavariabili #n. Come nel caso della dichiarazione di un nuovo comando, Õ possibile specificare il primo argomento predefinito, da utilizzare nel caso non ne sia fornito alcuno.

Una volta dichiarato o ridefinito l'ambiente, questo puÐ essere utilizzato attraverso una sintassi riassumibile nel modo seguente, dove gli argomenti eventuali, appaiono tra parentesi graffe.

\begin{<ambiente>}
<testo-contenuto>
...
\end{<ambiente>}

\begin{<ambiente>}{<argomento>}...
<testo-contenuto>
...
\end{<ambiente>}

L'utilizzo piÛ semplice, riguarda la definizione di un ambiente senza argomenti, come nell'esempio seguente, dove viene dichiarato l'ambiente \bftt il cui scopo Õ quello di iniziare l'uso di un carattere neretto e dattilografico.

\newenvironment{bftt}{\bfseries\ttfamily}{\normalfont}

Come si vede, lo scopo Õ quello di sostituire \begin{bftt} con il comando \bfseries\ttfamily e di rimpiazzare \end{bftt} con il comando \normalfont.

112.9.2 File di stile

La personalizzazione di istruzioni LaTeX puÐ avvenire all'interno del documento stesso, ma generalmente Õ preferibile creare un file di stile da includere con l'istruzione \usepackage{<file-di-stile>}.

Quando si crea un nuovo stile conviene fare una copia di uno di quelli giÞ utilizzati da LaTeX e quindi modificarlo.

Quando si utilizza teTeX, questi file di stile dovrebbero trovarsi nella directory texmf/tex/latex/base/.

112.10 Nazionalizzazione

I problemi legati alla nazionalizzazione del funzionamento di LaTeX riguardano in particolare i termini utilizzati automaticamente (come Chapter, Index e simili) e la separazione in sillabe.

112.10.1 Terminologia

A seconda dello stile generale del documento che si scrive, quasi sempre, il risultato finale contiene parole inserite automaticamente da LaTeX. Questi termini sono definiti all'interno del file di stile che identifica la classe del documento.

Per modificare questo comportamento si puÐ utilizzare uno stile aggiuntivo, scelto tra quelli contenuti nella directory texmf/tex/generic/babel/, oppure si puÐ creare uno stile personalizzato in cui si ridefiniscono le istruzioni che dichiarano questi termini.

Lo stile aggiuntivo viene caricato normalmente con il comando seguente, posto nel preambolo del documento.

\usepackage[italian]{babel}

112.10.2 Sillabazione

La sillabazione Õ configurata attraverso il file texmf/tex/generic/config/language.dat, il quale a sua volta fa riferimento a file contenuti in texmf/tex/generic/hyphen/.

Se all'interno di questo file sembra non essere attivata la sillabazione per la lingua italiana, conviene modificarlo attraverso il sistema di configurazione di teTeX, descritto piÛ avanti in questo capitolo.

Se la lingua italiana, o quella che interessa, risulta giÞ attivata, oppure se Õ stata fatta la procedura per attivarla, si puÐ controllare nel file texmf/web2c/latex.log, soprattutto per determinare il numero corrispondente che gli Õ stato assegnato. Se si trova una riga simile a quella seguente, significa che la sillabazione in italiano Õ disponibile.

\l@italian=\language3

112.10.2.1 Inconvenienti legati alla sillabazione

Se quello che si scrive Õ un documento tecnico pieno di termini che non fanno parte della lingua italiana, forse conviene disabilitare la sillabazione per evitare la suddivisione di termini stranieri in modo errato. Per farlo, dovrebbe essere sufficiente prevedere l'uso della sillabazione nulla (nohyphenation), e attivarla nel documento nello stesso modo in cui si farebbe per un linguaggio normale.

Per esempio, se nel file texmf/web2c/latex.log si trova la riga seguente,

\l@nohyphenation=\language4

molto probabilmente dovrebbe essere sufficiente utilizzare il comando \language4 nel documento. Se perÐ, per qualche ragione questo non dovesse funzionare, si possono sempre usare metodi drastici: configurare il file texmf/tex/generic/config/language.dat commentando tutte le direttive, e annullando in ogni caso il sistema di sillabazione.

112.10.3 Spaziatura orizzontale

Secondo una regola della tipografia del passato, ormai condannata generalmente, era necessario aumentare lo spazio che divide la fine di un periodo dall'inizio del successivo. Per qualche ragione si trovano ancora documenti in lingua inglese che seguono questa regola, anche quando si tratta di file di testo.

Purtroppo TeX segue quella filosofia e tende a rendere piÛ grande lo spazio orizzontale che c'Õ tra un punto finale e la parola successiva se questa ha l'iniziale maiuscola. Oltre a tutto, questo sistema crea delle difficoltÞ nella scrittura degli acronimi o delle abbreviazioni. Si pone rimedio utilizzando il comando \frenchspacing nel preambolo del documento.

112.10.4 Codifica

LaTeX permette l'uso di diverse codifiche, cioÕ diverse sequenze di simboli nei tipi di carattere utilizzati. Il tipo piÛ vecchio Õ OT1, definito anche TeX text; il piÛ recente, e anche quello che viene usato di solito Õ T1, definito anche TeX text extended. L'utilizzo della codifica T1 Õ necessaria se si vuole scrivere un documento che nel sorgente fa uso della codifica ISO latin-1.

La selezione della codifica TeX avviene attraverso il caricamento del pacchetto fontenc, indicando come opzione la sigla della codifica desiderata.

\usepackage[T1]{fontenc}

L'esempio mostra il caricamento della codifica T1, che Õ quella che dovrebbe essere utilizzata nella maggior parte dei casi.

112.10.5 Nazionalizzazione in pratica

La definizione del sistema di sillabazione Õ sempre necessario, mentre si Õ accennato poco sopra al problema dei termini da tradurre. Il modo piÛ semplice per risolvere il problema della nazionalizzazione (dopo avere sistemato la sillabazione) Õ quello di utilizzare le istruzioni seguenti nel preambolo.

\documentclass...
...
\usepackage[italian]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\frenchspacing
...
\begin{document}
...

In questo modo, se Õ stata definita una sillabazione italiana, questa viene attivata automaticamente; i termini come «capitolo», «pagina»,... sono tradotti in italiano; l'insieme dei caratteri che possono essere usati nel sorgente Õ ISO 8859-1 (ovvero «latin1»), avendo richiesto la codifica latin1 e T1, quindi il sorgente puÐ essere scritto utilizzando le lettere accentate senza la necessitÞ di utilizzare codici macro particolari.

Se per qualche ragione si vuole redigere un testo multilingua, Õ possibile utilizzare il pacchetto babel con l'indicazione di piÛ linguaggi, come nel modo seguente:

\usepackage[italian,english]{babel}

Successivamente, per selezionarne uno, basta usare il comando \selectlanguage, con il nome prescelto. CiÐ avrÞ effetto fino all'uso di un altro comando \selectlanguage che cambi tale indicazione.

...
\selectlanguage{italian}
...
\selectlanguage{english}
...

112.11 Configurazione di teTeX

Di fronte alla complicazione di una distribuzione teTeX, potrebbe sembrare assurdo l'idea di metterci le mani, pensando addirittura di modificare le impostazioni generali di teTeX. Tuttavia, quando si maneggiano documenti eccezionalmente voluminosi, come nel caso di questo, potrebbe essere necessario modificare anche ciÐ che non Õ stato pensato per questo.

112.11.1 Modifiche manuali

Alla fine della trasformazione di un documento TeX/LaTeX in DVI, si puÐ leggere nel file delle registrazioni generato un rapporto delle risorse utilizzate durante l'elaborazione. Si osservi l'esempio.

Here is how much of TeX's memory you used:
 2418 strings out of 25906
 45132 string characters out of 446921
 109255 words of memory out of 263001
 5196 multiletter control sequences out of 10000+0
 106774 words of font info for 69 fonts, out of 200000 for 1000
 15 hyphenation exceptions out of 1000
 33i,12n,21p,2494b,1259s stack positions out of 300i,100n,500p,30000b,4000s

Output written on texput.dvi (1844 pages, 7563800 bytes).

Questo Õ proprio il caso di un documento enorme (1844 pagine), ma prima di questo appaiono una serie di valori, dove alternativamente si vede quanto di una data risorsa Õ stato usato e quanto era invece disponibile. Se per qualche ragione si esaurisce una di queste risorse, l'elaborazione si interrompe con una segnalazione di errore che indica quale limite Õ stato superato.

Se succede, si puÐ provare a mettere mano al file di configurazione di teTeX che dovrebbe essere texmf/web2c/texmf.cnf. La prima volta, non Õ tanto facile capire il senso delle direttive che questo contiene, ma con un po' di tentativi si dovrebbe riuscire a risolvere il problema.

Prima di tutto si puÐ osservare che, seguendo lo stile generale di TeX, i commenti sono introdotti dal simbolo di percentuale (%). Nella prima parte del file sono annotati i percorsi dei vari componenti della distribuzione.

% Part 1: Search paths and directories.

% The main tree, which must be mentioned in $TEXMF, below:
TEXMFMAIN = /usr/share/texmf

% A place for local additions to a "standard" texmf tree.  For example:
%   TEXMFLOCAL = /usr/share/texmf.local

% A place where texconfig stores modifications (instead of the TEXMFMAIN
% tree). texconfig relies on the name, so don't change it.
%   TEXMF_CNF = $TEXMF.cnf

% User texmf trees can be catered for like this...
%   HOMETEXMF = $HOME/texmf

...

La lettura di questa parte puÐ rivelare delle informazioni importanti riguardo la propria distribuzione teTeX. PiÛ avanti inizia una parte piÛ delicata: quella che definisce le dimensioni degli array utilizzati da TeX, che di conseguenza rappresentano i limiti a cui si accennava all'inizio di questa sezione.

% Part 3: Array and other sizes for TeX (and Metafont and MetaPost).

...

% Max number of characters in all strings, including all error messages,
% help texts, font names, control sequences.  These values apply to TeX and MP.
pool_size.context = 500000
pool_size.cont-en = 500000
pool_size.cont-nl = 500000
pool_size.cont-de = 500000
%pool_size = 125000		
pool_size = 500000		

...

In questa parte, il valore piÛ importante Õ quello di pool_size, perchÈ puÐ creare problemi soprattutto a pdfTeX, che verrÞ descritto piÛ avanti. Nell'esempio si vede che Õ stato quadruplicato.

112.11.2 # texconfig

texconfig Õ un programma, in forma di script predisposto per configurare gli elementi essenziali della distribuzione teTeX. Si avvia semplicemente, senza bisogno di argomenti. La figura 112.2 mostra il menu principale di texconfig.

texconfig

+---------------------------- teTeX setup utility -----------------------------+
|                                                                              |
|  Hint: all output of external commands (e.g. tex) is logged into             |
|  a file. You can look at this file using LOG. If cursor keys make            |
|  trouble, you may have more luck with +/- and TAB.                           |
|                                                                              |
|                                                                              |
| +--------------------------------------------------------------------------+ |
| |                EXIT    exit                                              | |
| |                PREF    personal preferences                              | |
| |                CONF    show configuration                                | |
| |                REHASH  rebuild ls-R database                             | |
| |                HYPHEN  hyphenation table (tex/latex)                     | |
| |                MODE    default mode (xdvi/dvips/mf)                      | |
| |                XDVI    xdvi configuration                                | |
| |                DVIPS   dvips configuration                               | |
| |                FONT    directories for font creation                     | |
| |                DOC     rebuild html documentation                        | |
| |                FAQ     frequently asked questions + answers              | |
| |                LOG     view logfile                                      | |
+-+--------------------------------------------------------------------------+-+
|                            <  OK  >      <Cancel>                            |
+------------------------------------------------------------------------------+

Figura 112.2: Il menu principale di texconfig.

La funzione indicata con la sigla PREF serve solo a modificare il comportamento di texconfig, permettendo in particolare di selezionare un programma per la modifica del testo alternativo a quello predefinito.

La funzione CONF permette di mostrare la configurazione, consistente nella definizione delle directory contenenti i vari componenti della distribuzione teTeX.

La funzione REHASH permette di ricostruire il file texmf/ls-R, utilizzato per agevolare la ricerca dei componenti installati ad alcuni programmi della distribuzione. In generale, si ricostruisce questo file quando si aggiunte o si toglie qualche file (per esempio i file dei tipi di carattere).

La funzione HYPHEN Õ molto importante, perchÈ permette di stabilire le lingue per cui attivare la suddivisione in sillabe del testo. Selezionando questa funzione si ottiene l'avvio del programma per la modifica di file di testo (presumibilmente VI) con il file texmf/tex/generic/config/language.dat. Si puÐ modificare questo file, e al termine, dopo averlo salvato, vengono avviate automaticamente le procedure necessarie ad attivare in pratica le scelte fatte.

Di solito, si tratta di commentare le righe che fanno riferimento a linguaggi che non si vogliono gestire, e si deve togliere il commento dalla direttiva di attivazione della sillabazione per la lingua italiana.

% File    : language.dat
% Purpose : specify which hypenation patterns to load 
%           while running iniTeX 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CAUTION: the first language will be the default if no style-file
%          (e.g. german.sty) is used.
% Since version 3.0 of TeX, hyphenation patterns for multiple languages are
% possible. Unless you know what you are doing, please let the american
% english patterns be the first ones. The babel system allows you to
% easily change the active language for your texts. For more information,
% have a look to the documentation in texmf/doc/generic/babel.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% The hyphenation pattern files are in the directory:
%	texmf/tex/generic/hyphen


% The US-english patterns should be loaded *always* and as *first* ones.
american ushyph1.tex %

% Let us define USenglish as an alias for american:
=USenglish %

% UK english, TWO LINES!
%british  ukhyph.tex %
%=UKenglish %

% english should always be defined. Either an alias for american or british.
=english %

% French, TWO lines!
french		frhyph.tex frhyphex.tex %
=patois %

german		ghyph31.tex %

% The following languages are disabled by default. Uncomment, what you need.
%bahasa		inhyph.tex %
%catalan	cahyph.tex %
%croatian	hrhyph.tex %
%czech		czhyph2e.tex %
%danish		dkhyphen.tex %
%dutch		nehyph2.tex %
%finnish	fihyph.tex %
%galician	gahyph.tex %
italian		ithyph.tex %
%magyar		huhyph.tex %
%norsk		nohyph.tex %
%polish		plhyph.tex %
%portuges	pthyph.tex %
%romanian	rohyphen.tex %
%russian	ruhyph.tex %
%serbocroatian	shhyphl.tex %
%slovene	sihyph22.tex %
%spanish	sphyph.tex %
%swedish	sehyph.tex %
%turkish	trhyph.tex %

% A "language" without hyphenation:
nohyphenation zerohyph.tex %

Al termine dell'elaborazione si potrÞ verificare nel file texmf/web2c/latex.log la presenza delle righe che dimostrano l'abilitazione della sillabazione per le lingue selezionate nel file di configurazione. In questo caso particolare, la lingua italiana corrisponde al terzo linguaggio a disposizione.

...
\l@american=\language0
...
\l@USenglish =\language0
\l@english =\language0
\l@french=\language1
...
\l@patois =\language1
\l@german=\language2
...
\l@italian=\language3
...
\l@nohyphenation=\language4

La funzione MODE permette di predisporre alcuni programmi per la risoluzione della propria stampante. CiÐ si ottiene semplicemente selezionando il nome di una stampante che dovrebbe corrispondere, o essere molto simile alla propria.

La funzione XDVI permette di configurare xdvi, il programma di visualizzazione dei file DVI, in modo da stabilire il formato del foglio che si utilizza. Basta scorrere un elenco e confermare.

La funzione DVIPS permette di configurare dvips, il programma in grado di convertire file DVI in PostScript. Anche in questo caso, la cosa piÛ importante da stabilire Õ il formato della carta, ma puÐ anche essere indicata la stampante, o il comando di stampa da utilizzare quando dvips viene usato per inviare direttamente un file alla stampa.

L'ultima funzione importante Õ FONT che permette di regolare i permessi di accesso alle directory che contengono i tipi di carattere e anche di configurare altre caratteristiche di questi file.

112.12 pdfTeX/pdfLaTeX

Le distribuzioni piÛ recenti di teTeX comprendono anche pdfTeX e pdfLaTeX. Si tratta di una versione di TeX che puÐ generare sia file DVI che PDF (Portable Document Format). Attualmente, non essendo ancora completo, viene usato generalmente solo per produrre documenti PDF.

La differenza che c'Õ tra pdfTeX e pdfLaTeX sta nel fatto che il secondo Õ in grado di elaborare direttamente file LaTeX, mentre il primo no, e inoltre richiede l'uso di comandi specifici. Nella documentazione che dovrebbe trovarsi nella directory texmf/doc/pdftex/, si trova un esempio di un file scritto proprio per pdfTeX, ed Õ anche la prima verifica che si puÐ fare del funzionamento di pdfTeX.

pdftex example

In situazioni normali, l'elaborazione dovrebbe generare un file PDF.

112.12.1 Configurazione

In generale, Õ auspicabile che la propria distribuzione teTeX sia stata predisposta correttamente anche per l'uso di pdfTeX. I problemi maggiori riguardano la disponibilitÞ dei caratteri, ma questo particolare si puÐ approfondire eventualmente leggendo la documentazione originale di pdfTeX. Molto probabilmente Õ opportuno modificare il file di configurazione generale di pdfTeX (e quindi anche di pdfLaTeX): texmf/pdftex/config/pdftex.cfg.

% pdftex.cfg
output_format 1
compress_level 9
decimal_digits 2
page_width 210mm
page_height 297mm
horigin 1in
vorigin 1.3in
map acrobat.map
map +lw35extra_urw.map
map +charter.map
map +omega.map
map +utopia.map
map +xypic.map
map +hoekwater.map
map +bsr.map
map +bakomaextra.map

Quello che si vede Õ un esempio di questo file. Si osservi, come sempre, che i commenti sono introdotti con il simbolo di percentuale (%).

La direttiva output_format permette di definire il formato che si vuole ottenere. Assegnandovi il valore 1, si richiede espressamente una conversione in PDF; altrimenti, il valore 0 richiede una trasformazione in DVI.

La direttiva compress_level permette di stabilire il livello di compressione del formato PDF che si vuole generare. Il valore 0 rappresenta la volontÞ di non comprimere, mentre 9 Õ il livello massimo di compressione.

Le direttive page_width e page_height rappresentano rispettivamente l'ampiezza orizzontale e l'altezza verticale della pagina. I valori 210 mm e 287 mm rappresentano esattamente le dimensioni di un foglio A4 verticale.

Le direttive horigin e vorigin rappresentano un punto di riferimento per il testo, una sorta di margine sinistro e superiore. Di solito si trova l'indicazione di un pollice (1in) per entrambe le direttive; se si utilizza xpdf per visualizzare il documento PDF che viene generato, potrebbe essere necessario aggiustare leggermente questi valori, come nell'esempio, dove l'origine verticale Õ di 1,3 pollici.

112.12.2 Immagini

Al contrario dell'uso normale di LaTeX, pdfTeX e pdfLaTeX permettono esclusivamente l'inclusione di immagini in formato PNG. Quando si converte un file da LaTeX a PDF, attraverso pdfLaTeX, Õ sufficiente che siano disponibili anche le immagini PNG equivalenti a quelle PostScript, o EPS, utilizzate normalmente da LaTeX, purchÈ queste abbiano l'estensione corretta: .png.

112.13 Riferimenti

---------------------------

Appunti Linux 1999.09.21 --- Copyright © 1997-1999 Daniele Giacomini --  daniele @ pluto.linux.it


1.) Inizialmente Õ bene usare dvips indicando esplicitamente il formato finale, che nel caso di A4 si specifica attraverso l'opzione -t a4, a meno di volere utilizzare il tipo predisposto in fase di compilazione, che di solito Õ letter. In seguito si vedrÞ che con la distribuzione teTeX Õ possibile configurare il funzionamento di dvips e altri programmi di contorno, proprio a proposito della dimensione locale della pagina.

2.) PerchÈ il sistema dei riferimenti funzioni come descritto, Õ necessario che l'etichetta sia contenuta all'interno di un comando \caption, oppure lo segua immediatamente.


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]