% !TEX root =  ./it-lshort.tex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Contents: Specialities of the LaTeX system
% $Id$
% Tradotto liberamente in italiano da Claudio Beccari
% 2019-07-27
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\chapter{Specialities}
\chapter{Funzionalità speciali}
\begin{intro}
Quando si costruisce un lungo documento, \LaTeX\ aiuta con alcune funzionalità speciali come la generazione di uno o più indici analitici,  di bibliografie e metodi di citazione professionali.
Si può avere una descrizione più completa di queste speciali funzionalità e delle estensioni di \LaTeX\ in {\manual} e {\companion}.
\end{intro}

%%%%%%%%%%

\section{Bibliografia}


Si produce la bibliografia con l'ambiente \ei{thebibliography}.
\begin{lscommand}
\ci{begin}\Marg{thebibliography}\marg{stringa}\\ 
\meta{riferimento\ped{1}}\\
\meta{riferimento\ped{2}}\\
\dots\\
\ci{end}\Marg{thebibliography}
\end{lscommand}
Ogni \meta{riferimento} comincia con
\begin{lscommand}
\ci{bibitem}\oarg{etichetta}\marg{marker}
\end{lscommand}
Il \meta{marker} è poi usato per citare l'opera, o il libro, o l'articolo, nel documento.
\begin{lscommand}
\ci{cite}\marg{marker}
\end{lscommand}

Se non si usa l'\meta{etichetta} opzionale, i riferimenti verranno etichettati con una numerazione progressiva, altrimenti con \meta{etichetta}. Il parametro \meta{stringa} serve per prendere la misura della più lunga etichetta o del numero più lungo che viene usato per marcare (e citare) ogni opera.\footnote{Il comando \ci{TB} può essere definito in uno di pacchetti richiesti nel preambolo, oppure può essere definito dall'utente; serve per scrivere il titolo della rivista \TB\ con un carattere lineare.}

\begin{example}
Knuth~\cite{art:Kn} ha scritto 
che \dots
\begin{thebibliography}{9}
\bibitem{art:Kn} E.D.~Knuth 
\emph{Titolo}
\TB, vol.~28, num.~3,(2015)
\end{thebibliography}
\end{example}



\chaptermark{Funzionalità speciali} % Dobbiamo ripristinare la testatina
% Perché l'esempio precedente l'ha ridefinita con  “BIBLIOGRAFIA”.


Per progetti più ampi è meglio riferirsi al programma Bib\TeX\ (nato insieme al \LaTeX), che è incluso in tutte le distribuzioni del sistema \TeX\ aggiornate e complete. Esso permette di gestire un database bibliografico estraendone solo le opere citate in un dato documento. L'aspetto grafico di una bibliografia creata con Bib\TeX\ si basa sul concetto di file di stile; questi file permettono di creare bibliografie conformi a un ampio spettro di forme consolidate. Meglio ancora, si può ricorrere  alle recenti aggiunte: il programma \texttt{biber} e il pacchetto \pai{biblatex}, che da soli possono produrre una varietà di stili molto più ampia di quelli che si possono ottenere con Bib\TeX.


\section{Indici analitici}
\label{sec:indexing}

Una funzionalità utilissima in molti libri è la presenza di uno o più indici analitici. Con \LaTeX\ e il programma esterno \texttt{makeindex} si può generare un indice analitico molto facilmente. In questa introduzione si descrivono le basi della generazione di tali indici. Per una visione più approfondita si suggerisce di riferirsi al \companion\index{makeindex program}\index{makeidx package}. Più modernamente si può ricorrere al pacchetto \pai{imakeidx} che consente di creare simultaneamente uno o più indici analitici e di comporli in modo sincrono.


Per attivare questo tipo di indicizzazione di \LaTeX,  occorre caricare il pacchetto \pai{makeidx} con
\begin{lscommand}
\ci{usepackage}\Marg{makeidx}
\end{lscommand}
\noindent Esso permette di disporre degli strumenti per raccogliere i dati da inserire nell'indice; bisogna attivarli inserendo nel preambolo il comando
\begin{lscommand}
\ci{makeindex}
\end{lscommand}
 
Il contenuto dell'indice analitico viene specificato mediante comandi del tipo
\begin{lscommand}
\ci{index}\Marg{\meta{chiave}@\meta{lemma formattato}}
\end{lscommand} 
\noindent dove \meta{lemma formattato} apparirà nell'indice e la \meta{chiave} serve per l'ordinamento alfabetico. Il \meta{lemma formattato} è facoltativo. Se manca (e il carattere \texttt{@} non si deve più usare) viene usata la \meta{chiave}. Bisogna inserire i comandi \ci{index} con i loro argomenti nei punti a cui si vuole che l'indice analitico faccia riferimento. La tabella ~\ref{tab:index} spiega la sintassi e mostra alcuni esempi.


\begin{table}[!tp]
\caption{Indice analitico: sintassi e alcuni esempi}
\label{tab:index}\centering \bigskip

\begin{tabular}{@{}lll@{}}
  \textbf{Esempio} &\textbf{Lemma} &\textbf{Commento}\\\hline
  \rule{0pt}{1.05em}\verb|\index{ciao}| &ciao, 1 &lemma semplice\\
  \verb|\index{ciao!Mario}|   &\hspace*{2ex}Mario, 3 &lemma secondario sotto ‘ciao’ \\
\ci{index}\Marg{Lele\texttt{@}\ci{textsl}\Marg{Lele}}  &\textsl{Lele}, 2& lemma formattato\\
\ci{index}\Marg{Dani@\ci{textbf}\Marg{Dani}}  &\textbf{Dani}, 7& lemma formattato\\
\ci{index}\Marg{Caesar@\ci{textit}\Marg{Cæsar}} &\textit{Cæsar}, 33& lemma formattato\\
\ci{index}\Marg{bonta@bontà}  &bontà, 4       & chiave diversa dal lemma\\
\ci{index}\Marg{Isa|textbf}   &Isa, \textbf{3}& numero di pagina formattato\\
\ci{index}\Marg{Joe|textit}.  &Joe, \textit{5}& numero di pagina formattato
\end{tabular}
\end{table}

Quando il file sorgente viene elaborato da \LaTeX, ogni comando \ci{index} scrive l'informazione corretta insieme al numero di pagina in un file speciale. Questo file ha lo stesso nome del file sorgente, ma ha estensione differente (\texttt{.idx}). Questo file \eei{.idx} deve poi essere elaborato con il programma \texttt{makeindex}:%
\footnote{Se si usa il pacchetto \pai{imakeidx} queste operazioni sono eseguite automaticamente da \LaTeX. Si consulti la documentazione con \texttt{texdoc imakeidx}.\label{note:indexing}}
\begin{lscommand}
  \texttt{makeindex} \emph{nome del file sorgente senza estensione}
\end{lscommand}

Il programma \texttt{makeindex} elabora il file \texttt{.idx} e genera il file \eei{.ind} con i lemmi in ordine alfabetico, senza duplicati e con le sequenze di pagine consecutive raggruppate in un ‘intervallo’. \LaTeX\ deve essere eseguito ancora una volta affinché l'indice composto venga stampato dove si trova il comando:
\begin{lscommand}
  \ci{printindex}
\end{lscommand}



Si noti che il comando \ci{index} può modificare la composizione del testo se non è usato correttamente. Ecco un esempio:
%\begin{example}
\begin{example}
Una parola \index{parola}. A
confronto con  parola\index{parola}.
Si noti la posizione del punto fermo.
\end{example}

\section{Testatine e piedini personalizzati}
\label{sec:fancy}

Il pacchetto \pai{fancyhdr}\footnote{Già presente in ogni installazione completa e aggiornata del sistema \TeX.} fornisce alcuni semplici comandi per personalizzare le testatine e i piedini del documento. Si guardi alla testatina di questa pagina per vederne un'applicazione.

\begin{figure}[!htb]
\begin{lined}{\textwidth}
\begin{verbatim}
\documentclass{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
% Con queste impostazioni ci assicuriamo che le testatine
% con il titolo del capitolo e del paragrafo corrente
% siano composti in lettere minuscole. Di default le classi
% standard li compongono in maiuscolo inclinato.
\renewcommand{\chaptermark}[1]{%
        \markboth{#1}{}}
\renewcommand{\sectionmark}[1]{%
        \markright{\thesection\ #1}}
\fancyhf{}  % cancella le impostazioni correnti
\fancyhead[LE,RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt} % spazio per il filetto
\fancypagestyle{plain}{%
   \fancyhead{} % scarta testatina e piedino per lo stile plain
   \renewcommand{\headrulewidth}{0pt} % scarta il filetto
}
\end{verbatim}
\end{lined}
\caption{Esempio di impostazione di \pai{fancyhdr}}\label{fig:fancyhdr}
\end{figure}

Ci vuole qualche trucchetto per avere il titolo del capitolo e quello del paragrafo corrente nelle testatine. \LaTeX\ svolge questo compito con un procedimento in due fasi. Nelle definizioni delle testatine si usano i comandi \ci{rightmark} e \ci{leftmark} per la testatina di destra e quella di sinistra, che devono contenere rispettivamente il titolo del paragrafo corrente e quello del capitolo. I valori di queste macro vengono riscritti ogni volta che vengono eseguiti rispettivamente i comandi \ci{section} e \ci{chapter}.

Per avere la massima flessibilità, i comandi \ci{chapter} e \ci{section}  non ridefiniscono direttamente \ci{leftmark} e \ci{rightmark},  ma usano \ci{chaptermark} e \ci{sectionmark} (o \ci{subsetionmark} per la classe \texttt{article}) per ridefinire le macro da usare nelle testatine. 

Perciò, se si vuole cambiare lo stile del nome del capitolo nella testatina, bisogna ridefinire il comando \ci{chaptermark}.

La figura~\ref{fig:fancyhdr} mostra il setup per il pacchetto \pai{fancyhdr} al fine di avere le testatine come appaiono in questo manualetto. In ogni caso, si suggerisce di ricorrere  alla sua documentazione mediante il solito comando \texttt{texdoc fancyhdr}.

%%%%%%%

\section{Il pacchetto \texttt{verbatim}}

Precedentemente si è descritto l'\emph{ambiente} \ei{verbatim}. In questo paragrafo si espone il funzionamento del \emph{pacchetto} \pai{verbatim}, che contiene un rifacimento dell'ambiente originale \ei{verbatim} per aggirarne le limitazioni. Questo di per sé non è sorprendente, ma il pacchetto \pai{verbatim} aggiunge alcune nuove funzionalità, e questo è il motivo per il quale se ne parla in questo capitolo.

Per esempio, il comando
\begin{lscommand}
\ci{verbatiminput}\marg{nome del file}
\end{lscommand}
\noindent permette di includere il contenuto del file (esterno) \meta{nome del file} come se fosse all'interno di un ambiente \ei{verbatim}.

Per comporre in modo verbatim esistono anche i pacchetti  \pai{fancyvrb} e \pai{listings}, alla cui documentazione si rinvia il lettore.

Siccome il pacchetto \pai{verbatim} è parte del gruppo degli ‘strumenti’, dovrebbe essere presente in ogni distribuzione del sistema~\TeX.

\section{Installare altri pacchetti}
\label{sec:Packages}

Alcune installazioni parziali del sistema \TeX\ sono già dotate di diversi pacchetti aggiuntivi; le distribuzioni complete (e aggiornate) contengono \emph{tutti} i pacchetti disponibili. In ogni caso il sito \url{https://www.ctan.org/} contiene tutti i pacchetti che nel tempo sono stati creati per il sistema~\TeX.

I pacchetti come per esempio \pai{geometry}, \pai{hyphenat}, e molti altri, sono tipicamente composti di due file, uno con estensione \texttt{.ins}\footnote{Il file \texttt{.ins} servirebbe per estrarre il codice dal file documentato \texttt{.dtx}, ma oggi spesso il file \texttt{.dtx} è “auto"estraente” e il file \texttt{.ins} non è più necessario.} e uno con estensione \texttt{.dtx}. Spesso è presente anche un file \texttt{README} (o \texttt{README.txt}) con una breve descrizione del pacchetto. Per prima cosa bisogna leggere questo file.

Dopo aver copiato i file del pacchetto nella macchina in uso, bisogna elaborarli in modo che $(a)$ la distribuzione (parziale) installata sia informata del nuovo pacchetto; e $(b)$ si disponga della documentazione. Qui si spiega la prima parte.

\begin{enumerate}
\item Se il file \texttt{.dtx} \emph{non} è auto\-estraente, compilare con \LaTeX\ il file \texttt{.ins} estraendo il file \texttt{.sty} e poi compilare il file \texttt{.dtx} (generalmente) con \pdfLaTeX\ per ottenere la documentazione.
%
\item Spostare il file \eei{.sty} in una cartella dove il sistema \TeX\ installato nella propria macchina possa trovarlo. Generalmente questa è una sotto\-cartella contenuta in \texttt{\ldots/\meta{localtexmf}/tex/latex/} (gli utenti Windows devono cambiare le barre in barre inverse). Il nome effettivo della cartella \meta{localtex} può variare a seconda dell'installazione del sistema \TeX; spesso l'installazione non ne crea una e tocca all'utente crearsela.
%
\item Aggiornare il database dei nomi dei file. Il comando per eseguire questo aggiornamento dipende dalla distribuzione del sistema \TeX\ installata: per MiK\TeX\ bisogna eseguire \texttt{initexmf -{}-update-fndb}, oppure si usi l'interfaccia grafica;  \TeX\ Live non richiede aggiornamento se \meta{localtexmf} è la radice dell'albero personale innestato correttamente nella propria \texttt{\$HOME}; questa dipende dal sistema operativo: \texttt{\string~} per Linux: \texttt{\string~/Library} per Mac; \texttt{C:\bs Users\bs\meta{username}\bs} per sistemi Windows  da Win8 in poi.
%
\item Controllare se le compilazioni precedenti hanno prodotto un file \texttt{.idx}. Se non c'è tale file, la documentazione non dispone di indice analitico e basta passare direttamente al passo~\ref{step:final}.
%
\item Per generare l'indice analitico, si apra un terminale e si dia il comando\\[1ex] \fbox{\texttt{makeindex -s gind.ist} \meta{nome}}\\[1ex]
dove \meta{nome} è quello del file  principale senza alcuna estensione.
%
\item Eseguire di nuovo la compilazione del file \texttt{.dtx} affinché il file PDF contenga anche l'indice analitico ben composto.\label{step:next}
%
\item Spostare il file PDF in una sottocartella del proprio albero personale lungo il ramo \texttt{\dots/\meta{localtexmf}/doc/latex/} e si proceda con il database dei nomi dei file come indicato per il file \texttt{.sty}. La lettura di questa documentazione dovrebbe essere eseguibile direttamente con il comando \texttt{texdoc}~\meta{nome}.\label{step:final}
\end{enumerate}

Talvolta fra i file prodotti dalla compilazione del file \texttt{.dtx} può esserci anche un file con l'estensione \texttt{.glo}. Allora fra i passi~\ref{step:next} e ~\ref{step:final} si esegua da terminale il comando:\\[1ex]
%
\fbox{\texttt{makeindex -s gglo.ist -o \meta{nome}.gls \meta{nome}.glo}}\\[1ex]
%
e poi si ri"compili ancora una volta il file \texttt{.dtx}  prima di eseguire il passo~\ref{step:final}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Contents: Chapter on pdfLaTeX
% French original by Daniel Flipo 14/07/2004
% Liberamente tradotto in italiano da Claudio Beccari
% 2019-07-25
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section[\LaTeX\ e PDF]{\LaTeX\ e PDF\footnote{Sezione originariamente composta da Daniel Flipo.}}
\label{sec:pdftex}\index{PDF}
%\secby{Daniel Flipo}{Daniel.Flipo@univ-lille1.fr}%


PDF è un formato di documento portabile (leggibile su qualunque macchina) che accetta l'\wi{ipertesto}. Similmente a quello che succede in una pagina web, alcune parole sono marcate come collegamenti ipertestuali. Sono dei collegamenti ad altri punti nello stesso documento o persino a documenti esterni. Se si clicca su questi collegamenti ipertestuali, si viene portati direttamente alla destinazione del link. Nel contesto di \LaTeX, questo significa che tutte le istanze di \ci{ref}  e \ci{pageref} diventano “hyperlink”. In più l'indice generale, l'indice analitico e altre simili strutture diventano collezioni di hyperlink.

La maggior parte delle pagine che si trovano in rete sono scritte in HTML (\emph{HyperText Markup Language}), Questo formato ha due svantaggi importanti quando si scrivono documenti scientifici.
\begin{enumerate}
\item L'inclusione di formule matematiche in un documento HTML normalmente non è possibile. Anche se esiste uno standard per farlo, la maggior parte dei browser non lo usa o non dispongono dei font necessari per questo scopo.
%
\item Stampare un documento HTML è possibile ma il risultato dipende molto dalla piattaforma e dal browser. I risultati sono generalmente lontanissimi dalla qualità  che ci aspettiamo di ottenere nel mondo \LaTeX.
\end{enumerate}%%%%%


Ci sono stati diversi tentativi per creare traduttori dal linguaggio \LaTeX\ ad HTML. Alcuni erano abbastanza buoni nel senso che erano capaci di produrre pagine web leggibili partendo da un file sorgente \LaTeX. Ma tutti prendevano delle scorciatoie per arrivare al risultato. Non appena si usano funzionalità appena un po' più complesse di quelle predisposte nel nucleo di \LaTeX\ e/o si usano pacchetti esterni il tutto cade a pezzi.  Gli autori che vogliono mantenere la qualità tipografica dei loro documenti anche quando pubblicano sul web, si rivolgono al formato PDF (\emph{Portable Document Format}) che conserva il layout del documento e permette la “navigazione” mediante i collegamenti ipertestuali. La maggior parte dei browser moderni sono già dotati di estensioni per mostrare direttamente i documenti~PDF.

Tutti i motori di composizione del sistema \TeX\ possono generare direttamente file in formato PDF. Se si è letta questa guida fino a questo punto, si ha già abbastanza familiarità con questo processo.

\subsection{Collegamenti ipertestuali o \emph{hyperlink}}
\label{ssec:pdfhyperref}

Il pacchetto \pai{hyperref} aggiunge due funzionalità molto utili ai documenti~PDF.
\begin{enumerate}
\item Il formato della carta è impostato secondo l'opzione espressa nella chiamata alla classe.
%
\item Tutti i riferimenti incrociati del documento diventano  hyperlink.
\end{enumerate}

Basta aggiungere \cs{usepackage}\Marg{hyperref} come ultimo comando nel preambolo del file sorgente.

Sono disponibili molte opzioni per personalizzare il comportamento del pacchetto \pai{hyperref}:
\begin{itemize}
\item o mediante una lista di opzioni separate da virgole nella chiamata del pacchetto: \ci{usepackage}\oarg{opzioni}\Marg{hyperref}; oppure
%
\item dopo aver caricato il pacchetto, con una o più righe di impostazioni della forma \ci{hypersetup}\marg{opzioni}.
\end{itemize}

In quel che segue i valori default sono composti in tondo. Inoltre per il programma di lettura si indica uno dei programmi della Adobe, che ha creato lo standard del formato PDF rendendolo pubblico; essa produce i lettori Adobe Reader  (gratuito) e Adobe Acrobat (commerciale).

\begin{flushleft}\def\textit#1{\textnormal{\itshape#1}}%
\begin{description}
%
  \item [\texttt{bookmarks (=true,\textit{false})}] 
     Mostra o nascondi i segnalibri quando si apre il documento.
%
  \item [\texttt{unicode (=false,\textit{true})}] 
     Consenti di usare caratteri non appartenenti all'alfabeto latino 
     esteso nei segnalibri del lettore.
%
  \item [\texttt{pdftoolbar (=true,\textit{false})}]
     Mostra o nascondi la barra degli strumenti del lettore.
%
  \item [\texttt{pdfmenubar (=true,\textit{false})}]
    Mostra o nascondi la barra del menu del lettore.
%
  \item [\texttt{pdffitwindow (=false,\textit{true})}]
     Imposta l'ingrandimento iniziale con cui viene aperto il file PDF.
%
  \item [\texttt{pdftitle (=\marg{titolo})}]
    Definisci il titolo che viene esposto nella finestra \texttt{Document
    Info} del lettore.
%
  \item [\texttt{pdfauthor (=\marg{nome cognome})}]
    Imposta il nome dell'autore.
%
  \item [\texttt{pdfnewwindow (=false,\textit{true})}]
    Specifica se il lettore deve aprire un'altra finestra quando un link
    porta ad un punto fuori del documento corrente.
%
  \item [\texttt{colorlinks (=false,\textit{true})}]
    Circonda i link con una cornice colorata (\texttt{false}) o colora direttamente il testo del link (\texttt{true}). I colori di questi link possono essere personalizzati mediante le opzioni seguenti (si mostrano i colori di default):\footnote{Per questa guida si sono scelti altri colori un po' più scuri di quelli indicati in questa descrizione.}
    \begin{description}
    \item [\texttt{linkcolor (=red)}] 
      Colora i link interni (paragrafi, pagine, ecc.).
    \item [\texttt{citecolor (=green)}]
      Colora i link delle citazioni (bibliografia).
    \item [\texttt{filecolor (=magenta)}] 
      colora i link ai file.
    \item [\texttt{urlcolor (=cyan)}] 
     colora gli URL (email, web).
    \end{description}
\end{description}
\end{flushleft}

Se si accettano le impostazioni di default si usi:
\begin{code}
\begin{verbatim}
\usepackage{hyperref}
\end{verbatim}
\end{code}

Per avere i segnalibri aperti e i link colorati, ricordando che il valore \texttt{true} può essere omesso, si usi:
\begin{code}
\begin{verbatim}
\usepackage[bookmarks,colorlinks]{hyperref}
\end{verbatim}
\end{code}

Quando si creano documenti da stampare, i link colorati non sono una buona idea, perché in una stampante in bianco e nero appaiono in grigio, così da essere difficili da leggere. Piuttosto, si usino le cornici colorate che appaiono sullo schermo, ma non vengono stampate.
\begin{code}
\begin{verbatim}
\usepackage{hyperref}
\hypersetup{colorlinks=false}
\end{verbatim}
\end{code}
\noindent oppure li si imposti di colore nero:
\begin{code}
\begin{verbatim}
\usepackage{hyperref}
\hypersetup{colorlinks,%
            citecolor=black,%
            filecolor=black,%
            linkcolor=black,%
            urlcolor=black,%
            pdftex}
\end{verbatim}
\end{code}

Se si vogliono aggiungere informazioni alla sezione \texttt{Document Info} del file PDF, si possono usare, per esempio, le seguenti impostazioni.
\begin{code}
\begin{verbatim}
\usepackage[pdfauthor={Pierre Desprogres},%
            pdftitle={Des femmes qui tombent},%
            pdftex]{hyperref}
\end{verbatim}
\end{code}

\vspace{\baselineskip}

In aggiunta ai link automatici per i riferimenti incrociati, è possibile inserire dei link espliciti usando
\begin{lscommand}
\ci{href}\marg{url}\marg{testo}
\end{lscommand}
\noindent Il codice
\begin{code}
\begin{verbatim}
Il sito \href{http://www.ctan.org}{CTAN}.
\end{verbatim}
\end{code}
produce in uscita “\href{http://www.ctan.org}{CTAN}”; cliccando sulla parola “\textcolor{collegamento}{CTAN}”, il lettore visualizza la pagina web indicata.

Se la destinazione di un link non è un URL ma un file locale, si può usare  ancora \ci{href} ma senza specificare la parte \texttt{http://}; per esempio:
\begin{verbatim}
  Il documento completo è \href{manuale.pdf}{qui}
\end{verbatim}
che produce il testo “Il documento completo è \textcolor{citazione}{qui}”. Un clic sulla parola “\textcolor{citazione}{qui}” fa sì che il visualizzatore apra il file \texttt{manuale.pdf} (il file collegato è relativo al presente documento; se si vuole collegare un file che si trova altrove, bisogna comunque specificare il suo indirizzo relativo alla cartella del presente documento, oppure l'indirizzo assoluto del file).

L'autore di un articolo potrebbe volere che i lettori possano spedirgli dei messaggi di posta elettronica; egli userebbe \ci{href} dentro l'argomento del comando \ci{author} nella pagina del titolo del suo documento:
\begin{code}
\begin{verbatim}
\author{Mario Rossi 
   $<$\href{mailto:mario.rossi@server.domain}%
           {mailto:mario.rossi@server.domain}%
   $>$}
\end{verbatim}
\end{code}
Si noti che si è inserito nel comando anche l'indirizzo email che appare sia come  link, sia nella pagina stessa dove appare il nome dell'autore. Se si fosse scritto\\
\verb+\href{mailto:mario.rossi@server.domain}{Mario Rossi}+
\\
il link avrebbe funzionato bene nel lettore, ma a stampa l'indirizzo email non sarebbe stato visibile.

\subsection{Problemi con i link}

Messaggi come questo:
\begin{verbatim}
! pdfTeX warning (ext4): destination with the same
  identifier (name{page.1}) has been already used,
  duplicate ignored
\end{verbatim}
vengono emessi quando un contatore viene reimpostato, per esempio quando si  reimposta il contatore delle pagine a~1 dopo aver composto la pagina del titolo, e si vuole ricominciare a numerare le pagine da~1;  in questo caso l'informazione “page~1” non sarebbe più univoca; perciò viene emesso il messaggio che il “\verb+duplicate+ has been \verb+ignored+.”

La contromisura consiste nell'usare l'opzione \texttt{plainpages=false} fra quelle di \texttt{hyperref}. Sfortunatamente questa impostazione risolve il problema solo con i numeri di pagina. Una soluzione più radicale consiste nell'usare l'opzione \texttt{hypertexnames=false}, ma questo renderebbe inefficaci tutti i link di pagina nell'indice analitico.

\subsection{Problemi con i segnalibri}

Il testo mostrato nei segnalibri nella schermata del visualizzatore non ha l'aspetto che si desidererebbe che avesse. Questo succede perché i segnalibri sono “solo semplice testo” e quindi solo un numero limitato di caratteri è disponibile per il loro testo rispetto  a quanto sarebbe disponibile con \LaTeX. Il pacchetto \pai{hyperref} generalmente si accorge di questo problema ed emette un messaggio:
\begin{code}
\begin{verbatim}
Package hyperref Warning:
Token not allowed in a PDFDocEncoded string:
\end{verbatim}
\end{code}
Si aggira il problema fornendo una stringa di testo che sostituisce quella che risulta non valida:
\begin{lscommand}
\ci{texorpdfstring}\marg{testo per \TeX}\marg{testo per segnalibro}
\end{lscommand}


Le espressioni matematiche sono la prima causa per questo genere di problemi:
\begin{code}
\begin{verbatim}
\section{\texorpdfstring{$E=mc^2$}{E = mc ** 2}}
\end{verbatim}
\end{code}
che cambia il titolo \verb+$E=mc^2$+ in “E = mc ** 2” nel segnalibro.


Se si scrive il file sorgente con la codifica Unicode e se si usa l'opzione  \verb+unicode+ per il pacchetto \pai{hyperref} per usare i caratteri Unicode nei segnalibri, si dispone di una varietà di caratteri molto maggiore tramite \ci{texorpdfstring}.

\section[Lavorare con \hologo{XeLaTeX} e \texorpdfstring{\LuaLaTeX}{LuaLaTeX}]{Lavorare con \XeLaTeX\ e \LuaLaTeX\footnote{Sezione originariamente composta da Axel Kielhorn.}}
\label{sec:xetex}\index{PDF}\index{XeTeX@\hologo{XeTeX}}\index{XeLaTeX@\hologo{XeLaTeX}}
%\secby{Axel Kielhorn}{A.Kielhorn@web.de}%


Molto di quanto detto nei paragrafi precedenti è valido anche quando si usa \hologo{XeLaTeX} o \LuaLaTeX.

\subsection{I font}

Oltre ai soliti font basati sulle metriche di \TeX, \hologo{XeLaTeX} e \LuaLaTeX\ usano anche qualsiasi font noto al sistema operativo. Se si dispone, per esempio, del font \texttt{Linux Libertine} lo si può usare con il codice seguente:
%
\begin{code}
\begin{verbatim}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine}
\end{verbatim}
\end{code}
%
inserito nel preambolo. Normalmente questo codice consente di usare anche il corsivo, il neretto e il corsivo neretto usando i soliti comandi \ci{textit} e  \ci{textbf}. Quando il font è di tipo OpenType si ha accesso anche a molte funzionalità che in passato richiedevano l'uso di font virtuali. La caratteristica più importante di questi font risiede nel loro insieme di caratteri molto esteso che, oltre a quelli latini, può contenere anche quelli per il greco e il cirillico, oltre ad altri caratteri molto più esotici, insieme alle loro specifiche legature.

La maggior parte dei font OpenType dispone di almeno due tipi di cifre: quelle normali tutte della stessa altezza, 0123456789, (in italiano spesso dette \emph{maiuscole}), e quelle chiamate \emph{old style} (in italiano spesso chiamate \emph{minuscole}, \oldstylenums{0123456789}, che si estendono anche sotto la linea di base. Possono contenere cifre proporzionali, dove lo spazio orizzontale occupato dalla cifra “1” è minore di quello occupato dalla cifra “0”; o cifre monospaziate, dove tutte le cifre occupano lo stesso spazio orizzontale e che, quindi, sono molto utili per incolonnare dati numerici nelle tabelle. Si possono impostare con i comandi seguenti:
%
\begin{code}\setfontsize{9.25}
\begin{verbatim}
\newfontfamily\LLln[Numbers=Lining]{\meta{font}}
\newfontfamily\LLos[Numbers=OldStyle]{\meta{font}}
\newfontfamily\LLlnm[Numbers=Lining,Numbers=Monospaced]{\meta{font}}
\newfontfamily\LLosm[Numbers=OldStyle,Numbers=Monospaced]{\meta{font}}
\end{verbatim}
\end{code}

Quasi tutti i font OpenType contengono le legature standard (ff, fi, fl, ffi, ffl) ma spesso contengono anche rare legature di interesse storico come quelle che legano coppie di lettere come st, ct, tz; Alcune di queste legature sono visibili nella figura~\ref{fig:legature antiche} nella pagina~\pageref{fig:legature antiche}. Potrebbero essere fuori luogo in un testo di tipo tecnico-scientifico, ma vanno bene per certi tipi di testi letterari. Per disporre di queste legature si può usare uno dei seguenti comandi.

\begin{figure}[!hb]
\unitlength=0.01\linewidth\centering
\begin{picture}(100,8)
%\put(0,0){\framebox(100,8){}}
\put(0,0){\includegraphics[width=48\unitlength]{oldstyletext}}
\put(52,0){\includegraphics[width=48\unitlength]{veryoldstyletext}}
\end{picture}
\caption[Legature antiche]{Legature antiche: a sinistra alcune legature; a destra la `s' lunga e legature ancora più antiche}\label{fig:legature antiche}
\end{figure}

%
\begin{code}\setfontsize{10.5}
\begin{verbatim}
\setmainfont[Ligatures=Rare]{\meta{font}}
\setmainfont[Ligatures=Historic]{\meta{font}}
\setmainfont[Ligatures=Historic,Ligatures=Rare]{\meta{font}}
\end{verbatim}
\end{code}

Non tutti i font contengono entrambi i tipi di legature; si consulti la documentazione del font, oppure, più semplicemente, si provi ad usarle e si veda il risultato. Talvolta queste legature dipendono dalla lingua; per esempio, la legatura ‘fk’ è usata in polacco, ma non in inglese. Bisogna, perciò, aggiungere:
\begin{code}
\begin{verbatim}
\setmainfont[Language=Polish]{(font)}
\end{verbatim}
\end{code}

Alcuni font (come l'Adobe Garamond Premier Pro, di tipo commerciale) contengono segni alternativi attivati di default da \hologo{XeLaTeX} nella versione distribuita con \TeX\ Live a partire dal 2010. Il risultato, per esempio, è una lettera “Q” con una coda discendente che sporge a destra fin sotto alla successiva “u”. Per disabilitare questa caratteristica bisogna specificare espressamente la disabilitazione delle caratteristiche \emph{contextuals}.
\begin{code}
\begin{verbatim}
\setmainfont[Contextuals=NoAlternate]{(font)}
\end{verbatim}
\end{code}

La maggior parte delle cose dette per \hologo{XeLaTeX} vale anche per \hologo{LuaLaTeX}. Per saperne di più, è bene leggere la documentazione del pacchetto \pai{fontspec}.

\subsection{Dove si trovano i font OpenType?}

Con l'installazione di \TeX\ Live si dispone di una certa scelta di font OpenType, raccolti nella cartella \url{.../texmf-dist/fonts/opentype}. Di solito è necessario installarli, cioè di informare il sistema operativo della loro esistenza; questa operazione, ovviamente, dipende dal sistema operativo. Per esempio, la collezione di \TeX\ Live non contiene il font DejaVu, che, però, può essere scaricato dal sito  \url{http://dejavu-fonts.org/}. Scaricatolo, bisogna installarlo altrimenti resta inaccessibile.

Si faccia attenzione che ogni font sia installato \emph{una volta sola}, altrimenti possono succedere cose “interessanti”.

Si può usare qualsiasi font presente nel calcolatore, ma bisogna ricordare che altri utenti potrebbero non disporre degli stessi font. Per esempio, Il font Zapfino usato negli esempi del pacchetto \pai{fontspec} è disponibile sulle macchine Mac, ma non è disponibile sulle macchine Windows.\footnote{È però disponibile una versione commerciale chiamata Zapfino Extra.}

\subsubsection{Immettere caratteri Unicode}

Il numero di caratteri contenuti in un font è cresciuto, ma il numero di tasti di una normale tastiera è rimasto invariato, perciò, come si immettono i caratteri non accessibili direttamente con la tastiera?

Se si deve scrivere un lungo documento in una lingua straniera, si può installare un driver di tastiera adatto a quella lingua, e stampare le posizioni dei caratteri nei vari tasti. (Molti sistemi operativi hanno una specie di tastiera virtuale; basta prenderne un'immagine dello schermo (\emph{screenshot}).)

Se si deve usare saltuariamente un carattere “esotico”, basta selezionarlo nella tavolozza dei caratteri.

Alcuni ambienti di lavoro (per esempio, il sistema “X~Windows”) mettono a disposizione diversi metodi per introdurre  caratteri insoliti. Alcuni editor (per esempio, Vim e Emacs) ne mettono a disposizione. Bisogna leggere la documentazione di questi strumenti di lavoro.

\subsection{Compatibilità fra \hologo{XeLaTeX} o \hologo{LuaLaTeX} e \hologo{pdfLaTeX}}

Ci sono alcune differenze fra \hologo{pdfLaTeX} e gli altri due programmi di composizione.

\begin{itemize}
\item I file sorgente da comporre con \XeLaTeX\ o \LuaLaTeX\ devono essere salvati con la codifica Unicode (UTF-8) mentre \pdfLaTeX\ accetta file sorgente salvati con varie codifiche; è buona pratica quella di usare la codifica Unicode anche quando si lavora con \pdfLaTeX.\footnote{Dal 2018 è la codifica di default anche per \pdfLaTeX.}
%
\item Il pacchetto \pai{microtype} con \hologo{XeLaTeX} produce solo la protrusione, mentre con \hologo{pdfLaTeX} e \hologo{LuaLaTeX} funziona completamente con protrusione e espansione.
%
\item Dal 2018, con i font OpenType la situazione con \pai{microtype} è migliorata molto, ma funziona alla perfezione solo con i font Latin Modern; con altri font le funzionalità sono leggermente inferiori ma ottime lo stesso.
\end{itemize}


\section[Le presentazioni]{Le presentazioni\footnote{Sezione originariamente composta da Daniel Flipo.}}
\label{sec:beamer}
%\secby{Daniel Flipo}{Daniel.Flipo@univ-lille1.fr}

Si possono presentare i risultati di un lavoro scientifico proiettando delle “trasparenze” su uno schermo mediante un \emph{epidiascopio} (volgarmente detto “lavagna luminosa”); oppure si possono proiettare sullo schermo direttamente dal proprio laptop mediante un apposito proiettore digitale.

I tre programmi \pdfLaTeX\index{pdfLaTeX@\pdfLaTeX}, \XeLaTeX\index{XeLaTeX@\XeLaTeX} e \LuaLaTeX\index{LuaLaTeX@\LuaLaTeX} attraverso la classe \pai{beamer} permettono di creare delle presentazioni in formato PDF in una maniera simile a quella che si potrebbe ottenere con Impress o PowerPoint, se si è in vena di farlo, ma ottenendo un risultato in formato PDF portatile, perché  basta portarsi dietro una chiavetta e usare uno dei numerosi sistemi di proiezione che dispongono di un visualizzatore per il formato PDF.

La classe \pai{beamer} usa i pacchetti \pai{graphicx}, \pai{xcolor} e \pai{hyperref} con opzioni adatte alle presentazioni su schermo. Inoltre i font usati sono adatti alle presentazioni.\footnote{Ancor di più lo sono i font \texttt{LXfonts}, pacchetto \pai{LXfonts}, presenti in ogni installazione completa e aggiornata del sistema \TeX; essi sono derivati da quelli che Knuth ha sviluppato per le sue stesse presentazioni.}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Nel codice che segue, oltre alla traduzione in italiano si sono
% cambiati i nomi (che nell'originale erano nomi di persone vere
% e di enti veri) e si è aggiunto un disegno fasullo in sostituzione
% del logo USTL.pdf che non era presente. In questo modo l'esempio
% diventa neutrale rispetto all'identità delle persone e degli enti.
\begin{codice}[!htb]
\begin{verbatim}
\documentclass[10pt]{beamer}
\mode<beamer>{%
  \usetheme[hideothersubsections,
            right,width=22mm]{Goettingen}
}

\title{Una presentazione molto semplice}
\author[D. Filippone]{Daniele Filippone}
\institute{U.S.T.L. \& GUT}
\titlegraphic{\includegraphics[width=20mm]{USTL}}
\date{2005}

\begin{document}

\begin{frame}<handout:0>
  \titlepage
\end{frame}

\section{Un esempio}

\begin{frame}
  \frametitle{Cose da fare la domenica pomeriggio}
  \begin{block}{Si potrebbe \ldots}
    \begin{itemize}
      \item passeggiare col cane\dots \pause
      \item leggere un libro\pause
      \item giocare col gatto\pause
    \end{itemize}
  \end{block}
  e molte altre cose.
\end{frame}
\end{document}
\end{verbatim}
  \caption{Esempio di codice per la classe \pai{beamer}}
  \label{fig:code-beamer}
\end{codice}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Quando si compila il codice~\ref{fig:code-beamer} con \pdfLaTeX, si ottiene un file PDF con una prima pagina col titolo e una seconda pagina che mostra un elenco puntato le cui righe vengono mostrate in successione temporale via via che si procede con la presentazione. {Con il codice~\ref{fig:code-beamer} si ottengono due quadri divisi in sei schermate, come mostrato nella figura~\ref{fig:Esempio-beamer-assemblato}.}

\begin{figure}[!htb]\centering
\includegraphics[width=\textwidth]{EsempioBeamerAssemblato}
\caption{Due quadri con sei schermate}\label{fig:Esempio-beamer-assemblato}
\end{figure}

Uno dei vantaggi di \pai{beamer} consiste nel fatto che produce direttamente il file di uscita in formato PDF, usabile direttamente senza bisogno di passare attraverso \PSi

Con la classe \pai{beamer} si possono produrre diverse versioni (\emph{modi}) del documento a partire dallo stesso file sorgente. Questo può contenere istruzioni speciali per i diversi modi indicate fra parentesi uncinate. Sono disponibili i seguenti modi.
{\def\Item[#1]{\item[\textnormal{\ttfamily#1}]}
\begin{description}
\Item[beamer] 
per la presentazione PDF descritta sopra.
\Item[trans] 
per stampare ogni slide su un foglio di metacrilato (trasparenza).
\Item[handout] 
per distribuire all'uditorio una versione stampata su carta.
\end{description}}

Il modo di default è \texttt{beamer}; lo si cambia semplicemente impostando un modo diverso come opzione globale; per esempio con: \\[1ex] 
\verb|\documentclass[10pt,handout]{beamer}|\\[1ex] nel caso che si vogliano distribuire i fogli stampati.

L'aspetto della presentazione dipende dal tema scelto. Si scelga uno dei temi che accompagnano la collezione di \pai{beamer} o se ne crei uno personalizzato; si veda la documentazione nel file \texttt{Beameruserguide.pdf} per maggiori informazioni.

È opportuno dare un'occhiata approfondita al codice~\ref{fig:code-beamer}.


Usando il modo \texttt{<beamer>}, la compilazione della presentazione viene mostrata con il tema \texttt{Goettinghen} per disporre del pannello di navigazione integrato con l'indice della presentazione. Le opzioni specificate per questo tema permettono di scegliere le dimensioni del pannello (22\,mm in questo esempio) e la sua posizione (a destra del corpo della schermata). L'opzione \texttt{hideothersubsections} lascia vedere solo le sottosezioni della sezione corrente. Non ci sono opzioni speciali per la composizione in modo \texttt{<transparency>} né per il modo \texttt{<handout>}. Queste vengono composte nel loro layout standard.

I comandi \ci{title}\Marg{}, \ci{author}\Marg{}, \ci{institute}\Marg{} e \ci{titlegraphic}\Marg{} servono per inserire le debite informazioni nel quadro del titolo. Gli argomenti facoltativi dei comandi \ci{title} e \ci{author} sono quelli che compaiono nel pannello laterale del tema \texttt{Goettingen}.

I titoli e i sottotitoli nel pannello sono creati mediante i normali comandi \verb|\section| e \verb|\subsection|, che però vanno inseriti nel file sorgente \emph{fra} e \emph{non dentro} i quadri, specificati  mediante l'ambiente \ei{frame}.

Le piccole icone al piede di ogni quadro servono anche loro per un'agevole navigazione durante la presentazione; la loro presenza non dipende dal particolare tema scelto.

Il contenuto di ogni quadro viene descritto dentro l'ambiente \ei{frame}. Questo accetta un argomento facoltativo fra parentesi uncinate (\texttt{<} e \texttt{>}) per specificare un modo di composizione, così da sopprimere certi quadri in alcuni modi. Nell'esempio, il primo quadro non viene mostrato quando si compone in modo \texttt{<handout>} grazie alla specificazione \texttt{<handout:0>}.
 
È fortemente raccomandato di specificare un titolo per ogni quadro successivo al quadro del titolo della presentazione. Questo si può fare sia con un argomento fra parentesi graffe che segue l'apertura dell'ambiente oppure con il comando \ci{frametitle};  in sostanza, si può scegliere fra queste due sintassi:
\begin{lscommand}
\ci{begin}\Marg{frame}\marg{titolo del quadro}
\end{lscommand}
\noindent oppure
\begin{lscommand}
\ci{begin}\Marg{frame}\\
\ci{frametitle}\marg{titolo del quadro}
\end{lscommand}
Se fosse necessario un sottotitolo, si usi l'ambiente \ei{block} come mostrato nell'esempio. Si noti che i comandi \ci{section} e \ci{subsection} non producono nulla dentro i quadri veri e propri.

Il comando \ci{pause} (nel codice del secondo quadro dell'esempio) permette di mostrare l'elenco puntato una voce alla volta; \textsf{beamer} ottiene questo risultato scomponendo il quadro in diverse schermate, come si vede nella figura~\ref{fig:Esempio-beamer-assemblato}, in modo che in ogni successiva schermata dello stesso quadro, quanto è stato esposto nelle schermate precedenti non cambi posizione nelle schermate successive.

In ogni caso, è necessario leggere attentamente la documentazione del pacchetto \pai{beamer} eseguendo da terminale il comando \texttt{texdoc beameruserguide} per avere una visione completa di che cosa è disponibile  con questo pacchetto. Esso viene continuamente aggiornato e gli aggiornamenti appaiono rapidamente nella distribuzione di \TeX~Live; questo è un motivo in più per mantenere aggiornata l'installazione completa del proprio sistema~\TeX.

\endinput