%%%------------------------------------------------------------------ %%%--------------------- VERSIONE ORIGINALE ------------------------- %%% NomeFile: l2tabu.tex %%% Autore: Mark Trettin %%% Creato: 17 Feb 2003 19:01:58 %%% Stampato: <19 Dec 2004 23:01:22 (CET) (mark)> %%% Versione: $Id: l2tabu.tex,v 1.8 2004/12/19 22:01:40 mark Exp $ %%% %%% Copyright (C) 2003, 2004, 2005 by Mark Trettin %%%------------------------------------------------------------------ %%% DA FARE: %%% - \input{../asdf/} al posto di \input ../asdf/ %%%------------------------------------------------------------------ %%%---------------------- VERSIONE ITALIANA ------------------------- %%% NomeFile: l2tabuit.tex %%% Traduttore: Emanuele Zannarini %%% Creato: 29 Set 2003 20:00:00 %%% Stampato: <05 Gen 2005 00.00.00 (emanuele)> %%% Versione: l2tabuit.tex,v 1.8.4 2005/01/05 00:00:00 %%% %%% Traduzione e adattamento alla lingua italiana: %%% Copyright (C) 2003, 2004, 2005 Emanuele Zannarini %%% (GuIT - Gruppo Utilizzatori Italiani di TeX - www.guit.sssup.it) %%% %%% NOTA: desidero ringraziare l'intero staff di GuIT per avermi dato %%% un'insostituibile aiuto nella fase di revisione del %%% documento, in particolare ringrazio Emanuele Vicentini, %%% Emiliano Giovanni Vavassori, e Fabiano Busdraghi. %%%------------------------------------------------------------------ \documentclass[11pt,a4paper,pagesize,tablecaptionabove,abstracton,pointlessnumbers]{scrartcl} %------------- Configurazione di Base (Italiano, 8bit) -------------- \usepackage[italian]{babel} % Passiamo all'italiano \usepackage[latin1]{inputenc} % Codifica di input: latin1 %%% Times/Helvetica/Courier *solo* per minimizzare la dimensione di questo %% file, dal momento che questi fonts non devono essere incorporati nel %% documento compilato \usepackage{mathptmx} % Times/Matematico \rmdefault \usepackage[scaled=.90]{helvet} % Scalatura di Helvetica \sfdefault \usepackage{courier} % Courier \ttdefault \usepackage[T1]{fontenc} % Fonts T1 \usepackage[force,almostfull]{textcomp} % caratteri aggiuntivi \newcommand{\TimesRant}{Ah, prima che sorgano delle domande: sì ho usato solo i caratteri Times/Helvetica\footnote{Acrobat Reader lo identifica come Arial.}/Courier per \emph{ridurre} il più possibile le dimensioni del documento. \texttt{;-)}} \typearea[current]{current} % Calcolo nuova area di stampa %------------ Pacchetti aggiuntivi (grafica, tabelle) --------------- \usepackage{xspace} % spazio automatico dopo i comandi \usepackage{booktabs,array} % tabelle più carine \usepackage[italian]{varioref} % riferimenti a pagine in italiano \usepackage[nofancy]{rcsinfo} % Informazioni RCS nel titolo \usepackage{enumerate} \usepackage{calc} % occorrono dei calcoli \usepackage{eurosym} % Simbolo dell'Euro %------------------------- Formattazione -------------------------- %%% Didascalie \setkomafont{caption}{\normalcolor\small\sffamily\slshape} \setkomafont{captionlabel}{\normalcolor\upshape\small\sffamily\bfseries} %------------------------ Opzioni del PDF ------------------------- \ifpdfoutput{% % Necessita una classe KOMA-Script \usepackage{hyperref} % Impostazione di hyperref per pdf \hypersetup{% pdfauthor={(c) 2003, 2004, 2005 Mark Trettin ed Emanuele Zannarini},% pdftitle={Elenco dei ``peccati'' degli utenti di \LaTeXe, o Comandi e pacchetti obsoleti ed altri errori da evitare},% pdfsubject={Alcune dritte su LaTeX2e},% bookmarksopen=true,% Temp backref=true, pdffitwindow=true,% pdfpagelayout=OneColumn,% colorlinks=true,% linkcolor=red,% linktocpage=true,% backref=true,% pdfstartview=FitV,% bookmarksopen=true,% bookmarksopenlevel=2,% bookmarksnumbered=false,% urlcolor=blue% } \usepackage[activate=normal]{pdfcprot} % character protruding using pdftex \newcommand{\EMail}[1]{\href{mailto:#1?Subject=[l2tabu.pdf]}{email: \texttt{#1}}} \newcommand{\News}[1]{\href{news:#1}{\texttt{#1}}} \newcommand{\MID}[2]{\href{http://groups.google.com/groups?as_umsgid=#1}% {ID del messaggio: \texttt{<#2>}}} % \usepackage{color} % Per l'anteprima LaTeX }% %--------------------------- Opzioni PS --------------------------- {% \usepackage{hyperref} \newcommand{\EMail}[1]{\href{mailto:#1}{Email: \texttt{#1}}} \newcommand{\News}[1]{\href{news:#1}{\texttt{#1}}} \newcommand{\MID}[2]{\href{M-ID: <#1>}{ID del messaggio: \texttt{<#2>}}} } \usepackage{color} % Da "commentare" in caso di anteprima LaTeX \definecolor{verdeguit}{rgb}{0,0.6,0} % Definizione verde di GuIT %------------------------ Versione "BOZZA" ------------------------ %\usepackage[draft]{pdfdraftcopy} %\draftstring{BOZZA} %%\draftcolor{red} %\draftfontsize{150} %\draftfontfamily{ptm} %\draftangle{45} %\draftfontattrib{\upshape\bfseries} %------------------------- Nuovi Comandi -------------------------- \newcommand{\TB}{\textbackslash} %%% Documentazione: SansSerif \newcommand{\Doku}[1]{\textsf{#1}\xspace} %%% Paket ,Klasse, Bibstil (pacchetti, classi, stili bib): SansSerif, Slanted %\newcommand{\Paket}[2][sty]{\textsf{\textsl{#2.#1}}\xspace} \newcommand{\Paket}[1]{\textsf{\textsl{#1.sty}}\xspace} \newcommand{\Klasse}[1]{\textsf{\textsl{#1.cls}}\xspace} \newcommand{\Bst}[1]{\textsf{\textsl{#1.bst}}\xspace} %%% Opzioni: SansSerif \newcommand{\Option}[1]{\textsf{#1}\xspace} %%% \Use{graphicx} --> \usepackage{graphicx} %%% \UseO{dvips}{graphicx} --> \usepackage[dvips]{graphicx} \newcommand{\Use}[1]{\texttt{\TB usepackage\{#1\}}} \newcommand{\UseO}[2]{\texttt{\TB usepackage[#1]\{#2\}}} \newcommand{\UseV}[2]{\texttt{\TB usepackage\{#1\}[#2]}} \newcommand{\UseOV}[3]{\texttt{\TB usepackage[#1]\{#2\}[#3]}} %%% Bibliografia \newcommand{\Bib}[1]{\texttt{\TB bibliographystyle\{#1\}}} %%% Per gli ambienti \newcommand{\Env}[2]{\raggedright\texttt{\TB begin\{#1\}\\ #2\\ \TB end\{#1\}}} %%% \newcommand \newcommand{\NewCom}[3][]{\texttt{\TB newcommand{#1}\{\TB#2\}\{#3\}}} \newcommand{\ReNewCom}[3][]{\texttt{\TB renewcommand{#1}\{\TB#2\}\{#3\}}} %%% Rubato da scrguide ;-) \DeclareRobustCommand*{\Macro}[1]{\mbox{\texttt{\char`\\#1}}} \DeclareRobustCommand*{\LMacro}[2]{\mbox{\texttt{\char`\\#1\{#2\}}}} \DeclareRobustCommand*{\GMacro}[2]{\mbox{\texttt{\{\char`\\#1\ #2\}}}} % DANTE \providecommand{\CTANserver}{ftp.dante.de} % Rendo CTAN:// come un alias di ftp://\CTANserver/tex-archive/ \makeatletter \def\url@#1{\expandafter\url@@#1\@nil} \def\url@@#1://#2\@nil{% \def\@tempa{#1}\def\@tempb{CTAN}\ifx\@tempa\@tempb \hyper@linkurl{\Hurl{#1:#2}}{ftp://\CTANserver/tex-archive/#2}% \else \hyper@linkurl{\Hurl{#1://#2}}{#1://#2}% \fi } \makeatother %%% Definisco un verde per evidenziare le soluzione corretta %\definecolor{gruen}{rgb}{0,0.66,0} \definecolor{gruen}{rgb}{0,0.55,0} \definecolor{rot}{rgb}{1,0,0} %\definecolor{black}{rgb}{0,0,0} \newcommand{\FIXME}[1]{\marginline{FIXME: #1!}} \newsavebox{\Quelle} \newenvironment{bspcode}[1]{% \sbox{\Quelle}{\footnotesize Sorgente: #1} \center \rule{\linewidth}{1.5pt} }{% \rule{\linewidth}{1.5pt} \usebox{\Quelle} \endcenter% } %%% Macro per i suggerimenti correttivi: \newcommand{\Ersetze}[2]{\par\noindent Sostituite: \textcolor{red}{#1} con \textcolor{gruen}{#2}} \newcommand{\Ersetzx}[3][.5\textwidth]{% \par\noindent% \begin{minipage}[t]{#1} \raggedright Sostituite:\\ \textcolor{rot}{#2} \end{minipage}% \hfill% \begin{minipage}[t]{(\linewidth - #1)-.02\linewidth} \raggedright con\\ \textcolor{gruen}{#3} \end{minipage}% } % Ampiezza per le istruzioni di "Rimpiazzo" :-( \newsavebox{\Breite} %%% Hack di Heiko Oberdiek per acroread sotto linux \pdfstringdefDisableCommands{% \edef\quotedblbase{\string"}% \edef\textquotedblleft{\string"}% } %%% Una modifica grossolana per comporre un URL in una linea %%% *senza* l'aggiunta di spazi. :-( \newcommand{\biburl}[1]{\hfill\\URL:~\url{#1}} %-------------- Definizione di colonne nelle tabelle --------------- % Occorre un array \newcolumntype{v}[1]{>{\raggedright\hspace{0pt}}p{#1}} % colonne v, % tipo colonne p, ma % giustificate a destra \newcolumntype{V}[1]{>{\footnotesize\raggedright\hspace{0pt}}p{#1}} \newcolumntype{N}{>{\footnotesize}l} \newcolumntype{C}{>{\footnotesize}c} %--------------------------- Logo GuIT ----------------------------- \usepackage[link]{guit} % Gruppo Utilizzatori Italiani di TeX \guitcolor[rgb]{0,0.6,0} %----------------------------- Titolo ------------------------------ \subject{\textsf{l2tabuit v.~\rcsInfoRevision}\\% Guida pratica per un uso corretto di \LaTeX} \title{Elenco dei ``peccati'' degli utenti di \LaTeXe\\{% \LARGE% Lo so che è sbagliato, ma voi NON dovete farlo... o\\Comandi, pacchetti obsoleti ed errori da evitare}} \author{Edizione originale tedesca\\ di Mark Trettin\thanks{\EMail{Mark.Trettin@gmx.de}} \and% Edizione italiana\thanks{Tradotto e adattato dalla versione 1.8 originale in lingua tedesca ed esteso secondo i contenuti della versione 1.8.3 in lingua inglese di Jürgen Fenn.}\\ di Emanuele Zannarini\thanks{\EMail{ezannarini@libero.it}}} \date{ % \parbox[t]{0.75\textwidth}{\centering{}}\\[1em] \rcsInfoLongDate} %----------------------- Inizio del Documento ---------------------- \begin{document} %\begin{Form}\end{Form} \pagestyle{headings} %%% Controllo della versione attraverso le Info RCS \rcsInfo $Id: l2tabuit.tex,v 1.8.4 2005/01/05 00:00:00 emanuele Exp $ \maketitle \begin{abstract} \noindent \emph{Questa è la versione italiana di \textsf{l2tabu}}. Frequentando il gruppo di discussione relativo a \TeX\ in lingua tedesca\footnote{\News{de.comp.text.tex}.} ho constatato che un certo numero di discussioni interessavano comandi e pacchetti considerati ormai obsoleti o `superati'. Dunque ho deciso di scrivere questa piccola guida per offrire una panoramica all'utilizzo pratico di \LaTeX. In questo articolo cerco di illustrare gli sbagli più comuni che si commettono nell'utilizzo di \LaTeX, fornendo alternative che consentano di evitarli. Questo documento non intende in alcun modo rimpiazzare le varie guide introduttive, come ad esempio \Doku{l2short}~\cite{l2kurz:99} o le \Doku{De-TeX-FAQ}~\cite[versione 72]{faq:03} o ancora le \Doku{UK FAQ}~\cite[versione 3.13]{ukfaq:99}. Il mio intento è appena quello di dare alcuni consigli su come scrivere del `buon' codice \LaTeX. Sarò lieto di ricevere suggerimenti, migliorie o commenti. \TimesRant \end{abstract} %% Copyright {\setlength{\parindent}{0pt} \footnotesize \vfill Copyright \copyright{} 2003, 2004, 2005 di Mark Trettin ed Emanuele Zannarini. \bigskip Questo materiale è soggetto a licenza e può essere distribuito solamente nei termini ed alle condizioni specificate nella \emph{Open Publication License}, versione 1.0 o successive (l'ultima versione è disponibile al seguente indirizzo: \url{http://www.opencontent.org/openpub/}). %\clearpage %\vfill Si ringraziano Ralf Angeli, Christoph Bier, Christian Faulhammer, Emanuele Zannarini, Jürgen Fenn\footnote{Autore dell'edizione in inglese: \url{CTAN://info/l2tabu/english/l2tabuen.pdf}}, Ulrike Fischer, Yvon Henel\footnote{Autore dell'edizione in francese: \url{CTAN://info/l2tabu/french/l2tabufr.pdf}}, Yvonne Hoffmüller, David Kastrup, Markus Kohm, Thomas Lotze, Frank Mittelbach, Heiko Oberdiek, Walter Schmidt, Stefan Stoll, Knut Wenzig e Reinhard Zierke per i trucchetti, le osservazioni, e le correzioni. \emph{% Emanuele Vicentini, Emiliano Giovanni Vavassori, Fabiano Busdraghi e l'intero staff di \GuIT*{} (\GuITtext) hanno contribuito, con i loro preziosi suggerimenti, alla revisione della prima edizione in lingua italiana del presente documento.} Se ho dimenticato qualcuno che ha contribuito alla pubblicazione di questo documento, per favore mi spedisca un'email.}\par \clearpage\enlargethispage{2em} \tableofcontents \clearpage \section{`Peccati capitali'} \label{sec:todsunden} In questa sezione ho raccolto probabilmente gli errori peggiori che, sempre più spesso, si incontrano sul gruppo di discussione tedesco \News{de.comp.text.tex} (N.d.t: e anche su quello italiano \News{it.comp.software.tex}) e che al solito accendono il fuoco della rabbia negli occhi del lettore o lo portano a disperarsi fino a farlo piangere, con le lacrime che gli scendono dagli occhi.\texttt{;-)} \subsection{\Paket{a4}, \Paket{a4wide}} \label{sec:paketa4-paketa4wide} Questi `due' pacchetti non dovrebbero mai più essere usati. Dovreste cancellarli dalla vostra distribuzione \LaTeX\ astenendovi dalla tentazione di ripristinarli in un momento successivo. Al loro posto utilizzate l'opzione di classe \Option{a4paper}. Dal punto di vista tipografico, il risultato prodotto dall'utilizzo di questi pacchetti, o da altri a loro simili, è più che opinabile, infatti non forniscono una buona struttura (layout) per il documento. Ciò che è peggio è che di queste estensioni ne circolano versioni diverse e alcune di esse risultano essere tra loro incompatibili, provocando variazioni sui margini di pagina. Infatti ogni versione diversa imposta l'area stampabile del foglio in modo differente dalle restanti altre, quindi non potreste mai essere certi che il vostro documento appaia allo stesso modo sia nel caso in cui lo compiliate sul vostro sistema, sia nel caso venga compilato su un altro sistema (differente dal vostro) a seguito dello scambio del file sorgente \LaTeX. \Ersetze{\Paket{a4}, \normalcolor o \color{red} \Paket{a4wide}} {\normalcolor l'opzione di classe \color{gruen} \Option{a4paper}} \subsection{Modifica del layout di pagina} \label{sec:layoutanderungen} I margini di pagina prodotti dalle classi standard (\Klasse{article}, \Klasse{report}, \Klasse{book}) sono di solito troppo ampi per coloro che utilizzano fogli di carta in formato standard A4 per la stampa dei loro documenti (come ad esempio gli europei). In alternativa si potrebbero utilizzare rispettivamente le classi (\Klasse{scrartcl}, \Klasse{scrreprt}, \Klasse{scrbook}), incluse nella collezione \KOMAScript\ di classi ed estensioni. Tali classi sono state realizzate privilegiando molti aspetti tipografici del documento tipicamente europei. Un'altra possibilità è quella di utilizzare il pacchetto \Paket{typearea}, incluso anch'esso nella collezione \KOMAScript, abbinato a qualsiasi altra classe. La documentazione relativa, \Doku{scrguide}~\cite{kohm:03}, fornisce maggiori informazioni. Questa guida è stata composta veramente usando la classe \Klasse{scrartcl}. Se davvero avete la necessità di impostare dei margini di stampa differenti da quelli prodotti con pacchetto \Paket{typearea}, allora usate \Paket{geometry} oppure \Paket{vmargin}, poiché queste estensioni sistemano i margini secondo proporzioni ragionevoli. Evitate di modificare la struttura del documento utilizzando il comando \Macro{oddsidemargin} e compagnia. Non cambiate mai il ``contenuto'' di \Macro{hoffset} o di \Macro{voffset}, in alcuna circostanza, a meno che non sappiate realmente in che modo \TeX\ si comporterà a fronte di questi cambiamenti. \subsection{Modifiche ai pacchetti ed alle classi} \label{sec:ander-von-paket} Non modificate mai direttamente le classi \LaTeX\ (p.e.~\Klasse{article}, \Klasse{scrbook}) o i pacchetti (file di stile, p.e.~\Paket{varioref}, \Paket{color})! Se non siete in grado di realizzare voi stessi una `classe di contenimento' o un file \texttt{.sty}, dovreste \emph{copiare} la classe o il file di stile, modificare \emph{la copia} e salvarla come file \emph{differente}, scegliendo un nome \emph{diverso} dall'originle. Per saperne di più su come creare classi di contenimento, vedere le \Doku{De-TeX-FAQ}~\cite[Domanda 5.1.5]{faq:03}. \paragraph{Suggerimento} \label{sec:hinweis} Generalmente le classi e i pacchetti aggiunti in seguito all'installazione della distribuzione si dovrebbero installare all'interno della struttura \emph{locale} delle directory \TeX\ (p.e.~per sistemi Unix: \texttt{/usr/local/share/texmf/}) oppure nella directory \texttt{\$HOME} personale (p.e.~per sistemi Unix: \texttt{/home/mark/texmf}), per fare sì che le modifiche apportate ad essi non vengano annullate a seguito di un aggiornamento dell'intera distribuzione \TeX. Se tali modifiche vi occorrono solo per un particolare progetto e/o volete passarle ad altri, allora potete anche solo includere la classe e/o i pacchetti modificati nella directory di lavoro relativa al progetto. Vedere le \Doku{De-TeX-FAQ}~\cite[Domanda 5.1.4]{faq:03}, oppure le \Doku{UK FAQ}\cite[`Installing \LaTeX\ files', sezione K, `Where to put new files', domanda 77]{ukfaq:99}. \subsection{Modifica della spaziatura interlinea tramite \texttt{\TB baselinestretch}} \label{sec:ander-des-zeil} Secondo una buona regola pratica i parametri relativi al documento si dovrebbero modificare solo agendo dal ``livello\footnote{Per ``livello'' si intende il \emph{livello software} o di programmazione del documento. Il livello di programmazione più basso coinvolge la ridefinizione di comandi \TeX\ o \LaTeX\ standard; un livello di programmazione intermedio potrebbe essere considerato quello elativo alla gestione del documento attraverso i consueti comandi standard disponibili in \LaTeX; il livello più elevato di programmazione è quello che sfrutta classi e pacchetti (o \emph{estensioni}) al fine di sopperire alle necessità di configurazione e/o gestione del documento evitando di utilizzare comandi \LaTeX\ per creare o modificare impostazioni e/o funzionalità già esistenti.} più elevato'' possibile disponibile all'interno dell'interfaccia utente. Dunque, se desiderate variare la spaziatura interlinea del vostro documento, potete farlo su tre livelli: \begin{enumerate} \item usando il pacchetto \Paket{setspace}; \item o tramite il comando \LaTeX\ \LMacro{linespread}{}; \item oppure attraverso una nuova definizione di \Macro{baselinestretch}. \end{enumerate} La ridefinizione di parametri, come ad esempio \Macro{baselinestretch}, opera sul più basso livello disponibile -- sul quale sarebbe opportuno che operassero solo le classi ed i pacchetti. Il comando \Macro{linespread} è stato messo a disposizione con lo scopo consentire la modifica della spaziatura interlinea, pertanto costituisce una alternativa migliore rispetto alla soluzione precedente. L'uso del pacchetto \Paket{setspace} si configura come la soluzione ideale tra quelle proposte in quanto tale estensione si prende cura, oltre che dell'impostazione della spaziatura interlinea, anche della gestione degli spazi nelle note di pié pagina e negli ambienti di tipo lista, che di solito non vorreste alterare quando modificate la spaziatura interlinea nel testo del vostro documento. A questo punto, se vi occorre solamente aumentare lo spazio verticale tra una linea e l'altra, diciamo per esempio che vorreste impostare una spaziatura a doppia interlinea, potete farlo nel modo più semplice utilizzando il pacchetto \Paket{setspace}. Altrimenti, se il vostro intento è solo quello di utilizzare famiglie di caratteri non appartenenti al gruppo dei Computer Modern, allora potreste apportare alcuni piccoli aggiustamenti alla spaziatura interlinea tramite il solo comando \LMacro{linespread}{}. Per fare un esempio, con il font Palatino, \LMacro{linespread}{1.05} dovrebbe costituire un aggiustamento appropriato. \subsection{Rientro del paragrafo e spaziatura tra i paragrafi (\texttt{\TB{}parindent}, \texttt{\TB{}parskip})} \label{sec:absatz-und-abst} Può anche avere senso cambiare il rientro della prima linea di ogni paragrafo (\Macro{parindent}), tuttavia se lo fate ricordate che: \begin{itemize} \item Non dovete mai usare lunghezze assolute (p.e.~`mm') per impostare o modificare la dimensione il rientro iniziale del paragrafo. Utilizzate lunghezze che dipendano dalla dimensione del carattere, come ad esempio `em'. Ciò \emph{non} significa che variando il rientro verrà automaticamente modificata la dimensione del carattere, ma significa piuttosto che variando la dimensione del carattere, verrà impostato automaticamente un rientro compatibile con tale dimensione. \item La soluzione meno laboriosa che consente di attuare modifiche di questo genere è quella che si serve in ogni caso della sintassi propria di \LaTeX, evitando l'utilizzo di ``comandi estranei''. Operando in questo modo, per fare un esempio, si renderà più semplice un'eventuale operazione di analisi sintattica (``parsing'') di un file \LaTeX\ attraverso un programma esterno o uno script. Il vostro codice, in questo modo risulterà anche più semplice da rivedere e correggere. Facendo ciò si cercano di evitare anche problemi o conflitti legati all'incompatibilità con altri pacchetti (p.e.~\Paket{calc}). \Ersetze{\Macro{parindent}\texttt{=1em}}{\LMacro{setlength}{\Macro{parindent}}\{1em\}} \end{itemize} % Tuttavia nel caso preferiate aggiungere ulteriore spazio tra i paragrafi per evidenziare l'inizio di un nuovo paragrafo (`a rientro nullo') \emph{non} utilizzate \color{red} \begin{verbatim} \setlength{\parindent}{0pt} \setlength{\parskip}{\baselineskip} \end{verbatim} \normalcolor % L'istruzione \Macro{parskip} dovrebbe essere evitata poiché modifica anche le impostazioni relative agli ambienti di tipo lista, all'indice dei contenuti, alle intestazioni, ecc\dots Il pacchetto \Paket{parskip}, comunque, come anche le classi \KOMAScript, fanno del loro meglio per evitare questi effetti secondari indesiderati. Per saperne di più su come utilizzare le opzioni relative alle classi \KOMAScript\ (\Option{parskip}, \Option{halfparskip}, ecc\dots) fate riferimento a \Doku{scrguide}~\cite{kohm:03}. Quando usate una delle classi di \KOMAScript\ \emph{non} avete la necessità di caricare \Paket{parskip}. \subsection{Separazione di formule matematiche dal testo normale con \texttt{\$\$\dots\$\$}} \label{sec:abges-form-mit} Evitate questo! \texttt{\$\$\dots\$\$} è un comando di plain \TeX\ e modifica la spaziatura verticale tra le formule rendendola inconsistente. Questo è il motivo per il quale in \LaTeX\ dovrebbe essere evitato (vedere Sezione~\vref{sec:mathematiksatz} e in particolare notate l'avvertimento in merito a \texttt{displaymath} da parte del pacchetto \Paket{amsmath}). Per di più l'opzione di classe \Option{fleqn} non funzionerà più correttamente. \Ersetze{\texttt{\$\$\dots\$\$}}{% \parbox[t]{.3\textwidth}{% \Macro{[}\texttt{\dots}\Macro{]}\\ \textcolor{black}{oppure con}\\ \Env{displaymath}{\dots}}} \subsection{\texttt{\TB def} contro \texttt{\TB newcommand}} \label{sec:def-vs.-newcommand} Usate \emph{sempre} \NewCom{}{\dots} per definire i vostri comandi\footnote{Vedere \cite[sezione 2.7.2]{clsguide:99}, \cite[sezione 3.4]{usrguide:01}.}. \emph{Evitate} l'uso di \Macro{def}\LMacro{}{\dots}. Il problema principale di \Macro{def} è che non viene effettuato alcun controllo sull'esistenza di altre istruzioni definite con lo stesso nome, pertanto un comando già definito potrebbe venire sovrascritto senza alcun avvertimento in merito all'errore. I comandi esistenti si possono ridefinire con \ReNewCom{}{\dots}. Se usate \Macro{def} e sapete \emph{perché} lo fate, molto probabilmente siete a conoscenza dei pro e dei contro legati all'utilizzo di questa istruzione, pertanto potrete tranquillamente ignorare ciò che è riportato in questa sottosezione. \subsection{Utilizzo di \texttt{\TB sloppy}} \label{sec:verw-von-textttt} Francamente parlando, il comando \Macro{sloppy} non dovrebbe essere utilizzato indiscriminatamente in ogni punto del documento e a maggior ragione non dovreste usarlo nel preambolo. Per risolvere problemi relativi ad interruzioni di riga in paragrafi singoli (e per migliorare la qualità di tipo--composizione del documento) dovreste: \begin{enumerate} \item controllare che vengano caricate sia le opportune regole di sillabazione (p.e.~\Paket{babel} con l'opzione \Option{italian}), sia i caratteri tipo T1 (vedere le \Doku{De-TeX-FAQ}\cite[Domanda 5.3 e seguenti]{faq:03}, o le \Doku{UK FAQ}\cite[``Hyphenation'', sezione Q.7]{ukfaq:99}); \item riformulare, ovvero riscrivere la frase in altre parole. Non è obbligatorio cambiare necessariamente la frase nella quale compare il problema, infatti può essere sufficiente cambiare/riformulare la frase precedente oppure quella seguente; \item variare, con moderazione, alcuni dei parametri che intervengono nel meccanismo di calcolo di \TeX, e che lo portano a decidere se attuare o meno l'interruzione di riga. Axel Reichert ha suggerito la seguente soluzione\footnote{Naturalmente potrete cambiare questi valori a seconda del vostro gusto personale, evitando di manipolare troppo \TB\texttt{emergencystretch}, altrimenti potreste ottenere un testo giustificato in maniera eccessivamente `libera' e flessibile, proprio come farebbe un altro abbastanza \emph{noto} elaboratore di testi.} sul gruppo di discussione \News{de.comp.text.tex}\footnote{Il messaggio si identifica con \MID{a84us0$plqcm$7@ID-30533.news.dfncis.de}{a84us0\$plqcm\$7@ID-30533.news.dfncis.de}.}: \begin{minipage}[t]{\linewidth} \begin{verbatim} \tolerance 1414 \hbadness 1414 \emergencystretch 1.5em \hfuzz 0.3pt \widowpenalty=10000 \vfuzz \hfuzz \end{verbatim} \end{minipage}\pagebreak\clearpage % \begin{minipage}[t]{\linewidth} \begin{verbatim} \raggedbottom \end{verbatim} % \hspace{\baselineskip} % Certo, lo so che questo è scorretto! ;-) \end{minipage}%\par Tenete pesente che eventuali avvertimenti, restituiti da LaTeX in fase di compilazione e relativi alle impostazioni suddette, dovrebbero essere presi \emph{seriamente} in considerazione, e quindi \emph{dovreste} riformulare il vostro discorso in altro modo, o usando altre parole. \end{enumerate} % Nel caso in cui quanto visto finora non dovesse esservi di alcun aiuto, allora potreste tentare di sistemare il paragrafo usando l'ambiente \texttt{sloppypar}, in modo che il testo risulti più ``libero'', ``malleabile'', come mostrato nell'esempio che segue. \begin{figure}[htp] % Se ti domandassi il motivo dell'aggiunta di \fussy % o la mancanza di \sloppy: "usa la forza Luke!" \parbox per % default compone il testo al proprio interno in modalità % \sloppy, dunque per ripristinare le regole standard relative % all'interruzione di linea si richiede l'aggiunta di \fussy. \begin{minipage}[t]{.45\textwidth} \centering {\fontsize{10pt}{12pt}\fontencoding{OT1}\selectfont \fbox{\parbox{16.27em}{\fussy% tatata tatata tatata tatata tatata tatata tata\-tata tatata tatata tatata tatata tatata tatata tata\-tata tatata tatata tatata tatata ta\-tatatatt\-ta tatata tatata tatata tatata tatata tatata ta\-ta\-ta\-ta}}} \caption{Impostazioni standard di \LaTeX}% \label{fig:beispiel-mit-latex}% \end{minipage}% \hfill% \begin{minipage}[t]{.45\textwidth} \centering {\fontsize{10pt}{12pt}\fontencoding{OT1}\selectfont \fbox{\parbox{16.27em}{% tatata tatata tatata tatata tatata tatata tata\-tata tatata tatata tatata tatata tatata tatata tata\-tata tatata tatata tatata tatata ta\-tatatatt\-ta tatata tatata tatata tatata tatata tatata ta\-ta\-ta\-ta}}} \caption{Risultato prodotto da \texttt{\string\sloppy}} \label{fig:beisp-mit-textttstr} \end{minipage} \end{figure} In figura~\ref{fig:beispiel-mit-latex} e \vref{fig:beisp-mit-textttstr} ho cercato di illustrare l'effetto prodotto da \Macro{sloppy} su una porzione di testo. L'evidenza di tale effetto dipende anche dal tipo di carattere che si utilizza per comporre il testo. Infatti quando si usa il carattere ``Times'', l'effetto negativo prodotto da \Macro{sloppy} non risulta essere tanto accentuato come nel caso cui si utilizzino i fonts della famiglia ``Computer Modern''. Tale effetto, in linea di principio, dovrebbe apparire in ogni caso abbastanza evidente. Markus Kohm ha inviato un esempio, sul gruppo di discussione \News{comp.text.tex}, dove mostra le conseguenze di questo effetto in maniera ancora migliore. Con il suo consenso l'ho riportato in appendice~\vref{sec:beispiel-zu-sloppy}. %----------------------- Sezione "Obsoleta" ------------------------- \clearpage \section{Comandi e pacchetti obsoleti} \label{sec:obsoletes} Markus Kohm ha scritto uno programma in Perl che consente di verificare online i propri file in cerca degli errori più comuni. Vedere \url{http://kohm.de.tf/markus/texidate.html}. Tenete presente comunque, che questo script non è un completo `analizzatore\footnote{Dall'inglese ``\emph{parser}''.} della sintassi' di \TeX, pertanto esso cercherà solamente gli errori più ovvi. Quindi, d'ora in avanti, per prima cosa verificate la correttezza del vostro file \TeX\ sorgente e poi, eventualmente, potete chiedere aiuto esponendo il vostro problema su un gruppo di discussione o inviando una richiesta d'aiuto ad una mailing list. \subsection{Comandi} \label{sec:befehle} \subsubsection{Cambiare lo stile del carattere} \label{sec:ander-des-schr} In Tabella~\vref{tab:befehle-zur-anderung} sono riportati sia i vecchi che i nuovi comandi usati per cambiare lo stile del carattere in \LaTeXe. Le istruzioni identificate come `locali' si applicano solo al loro argomento, mentre le istruzioni definite `globali/di scambio' si applicano all'intera porzione di testo che le segue fino alla fine del documento. \paragraph{Perchè non si dovrebbero usare i comandi obsoleti?} \label{sec:warum-sollte-man} I comandi obsoleti non supportano le funzionalità del nuovo sistema di selezione dei font (NFSS) di \LaTeXe. \GMacro{bf}{foo}, per esempio, annulla tutte le impostazioni relative al carattere che erano state settate prima di stampare \emph{foo} in stile grassetto. Questo è il motivo per cui non potete definire uno stile grassetto-corsivo semplicemente con le istruzioni \GMacro{it}{\Macro{bf Test}}. (Quest'ultima definizione produrrà: {\it\bf Test}.) I nuovi comandi \LMacro{textbf}{\LMacro{textit}{Test}} si comporteranno invece come ci si aspettava, realizzando: \textbf{\textit{Test}}. Infine per i vecchi comandi non era presente una ``correzione del corsivo'', vedi ad esempio la differenza tra {\it Raf}fermo (\GMacro{it}{Raf}\texttt{fermo}) e \textit{Raf}fermo (\LMacro{textit}{Raf}\texttt{fermo}). Per maggiori informazioni riguardo al NFSS vedere \cite{fntguide:00}. \begin{table}[htp]% L'impaginazione dei paragrafi è cambiata :-\ \begin{minipage}{\textwidth} \renewcommand{\footnoterule}{} \centering \caption{Comandi per cambiare lo stile del carattere} \label{tab:befehle-zur-anderung} \begin{tabular}{@{}lll@{}} \toprule \multicolumn{1}{@{}N}{obsoleti}& \multicolumn{2}{C@{}}{Rimpiazzati in \LaTeXe\ con}\\ \cmidrule(l){2-3} & \multicolumn{1}{N}{locali} & \multicolumn{1}{N@{}}{globali/di scambio}\\ \cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(l){3-3} \GMacro{bf}{\dots} & \LMacro{textbf}{\dots} & \Macro{bfseries}\\ --- & \LMacro{emph}{\dots} & \Macro{em}\footnote{Può tornare utile per definire nuovi comandi. Nel testo continuo è tuttavia preferibile usare \LMacro{emph}{\dots} in sostituzione di \Macro{em}.}\\ \GMacro{it}{\dots} & \LMacro{textit}{\dots} & \Macro{itshape}\\ --- & \LMacro{textmd}{\dots} & \Macro{mdseries}\\ \GMacro{rm}{\dots} & \LMacro{textrm}{\dots} & \Macro{rmfamily}\\ \GMacro{sc}{\dots} & \LMacro{textsc}{\dots} & \Macro{scshape}\\ \GMacro{sf}{\dots} & \LMacro{textsf}{\dots} & \Macro{sffamily}\\ \GMacro{sl}{\dots} & \LMacro{textsl}{\dots} & \Macro{slshape}\\ \GMacro{tt}{\dots} & \LMacro{texttt}{\dots} & \Macro{ttfamily}\\ --- & \LMacro{textup}{\dots} & \Macro{upshape}\\ \bottomrule \end{tabular} \end{minipage} \end{table} \subsubsection{Frazioni in matematica: (\texttt{\TB over} contro \texttt{\TB frac})} \label{sec:textb-over-vs} Evitate di usare il comando \Macro{over}. \Macro{over} è un'istruzione dotata di una sintassi propria, differente da quella standard di \LaTeX, pertanto, se tale istruzione compare nel documento, ne rende difficile (o addirittura impossibile) l'analisi sintattica, producendo così del codice confuso e veramente poco leggibile. Il pacchetto \Paket{amsmath}, ridefinisce il comando \verb+\frac{}{}+ e notifica un messaggio d'errore ogni qualvolta si utilizzi \Macro{over}. Un altro punto a favore di \verb+\frac{}{}+ è dato dal fatto che il numeratore e il denominatore della frazione riusultano più semplici da comporre, specialmente nel caso di frazioni complesse. \Ersetze{\texttt{\$a \TB over b\$}}% {\texttt{\$\TB frac\{a\}\{b\}\$}} \subsubsection{Centratura del testo con \texttt{\TB centerline}} \label{sec:centerline} Il comando \Macro{centerline} è un'altra istruzione \TeX\ che si dovrebbe evitare in \LaTeX. In primo luogo \Macro{centerline} è incompatibile con alcuni pacchetti \LaTeX, come ad esempio con \Paket{color}, e in secondo luogo potrebbe produrre risultati inattesi o che piuttosto vorreste evitare. Per esempio: \begin{center} \begin{minipage}[t]{.45\textwidth} \begin{verbatim} \begin{enumerate} \item \centerline{Un punto} \end{enumerate} \end{verbatim} \end{minipage}% \hfill % \hspace{.05\textwidth}% \fbox{ \begin{minipage}[t]{.45\textwidth} \begin{enumerate} \item \centerline{Un punto} \end{enumerate} \end{minipage}} \end{center} \Ersetze{\LMacro{centerline}{\dots}}% {\parbox[t]{.3\textwidth}{% \GMacro{centering}{\dots}\\ \textcolor{black}{oppure con}\\ \Env{center}{\dots} }} \paragraph{Nota:} \label{sec:anmerkung-5} Per la centratura di Figure, e Tabelle, vedere la sezione~\vref{sec:gleit-figure-table}. \subsection{Classi e pacchetti} \label{sec:pakete} \subsubsection{\Klasse{scrlettr} contro \Klasse{scrlttr2}} \label{sec:paketscrl-vs.-pakets} La classe \Klasse{scrlettr}, appartenente alla collezione \KOMAScript\ è diventata obsoleta ed è stata rimpiazzata da \Klasse{scrlttr2}. Per ottenere una struttura del documento \emph{simile} a quella della classe precedente usate l'opzione di classe \Option{KOMAold} che consente di attivare una modalità compatibile. \sbox{\Breite}{\texttt{\TB documentclass\{scrltter\}}} \Ersetzx[\wd\Breite]{\texttt{\TB documentclass\{scrlettr\}}}% {\texttt{\TB documentclass[KOMAold]\{scrlttr2\}}} \paragraph{Nota:} \label{sec:anmerkung-3} Per nuove lettere e modelli si dovrebbe usare la nuova interfaccia dal momento che è chiaramente più flessibile. La trattazione delle differenze fra le due interfacce utente non rientra nelle competenze di questa guida, pertanto per maggiori dettagli vedere \Doku{scrguide}~\cite{kohm:03}. \subsubsection{\Paket{epsf}, \Paket{psfig}, \Paket{epsfig} contro \Paket{graphics}, \Paket{graphicx}} \label{sec:grafikeinbindung} I pacchetti \Paket{epsf} e \Paket{psfig} sono stati rimpiazzati rispettivamente dai pacchetti \Paket{graphics} e \Paket{graphicx}. \Paket{epsfig} è solo un ``involucro''\footnote{Per ``involucro'' qui si intende un file \texttt{.sty} che al suo interno carica una o più estensioni (file \texttt{.sty}) in modo da modellare determinate funzioni.} che, richiamando il pacchetto \Paket{graphicx}, elabora i vecchi documenti nei quali veniva usato \Paket{psfig}. Dal momento che \Paket{epsfig} carica \Paket{graphicx} al suo interno, allora \Paket{epsfig} \emph{potrebbe} ancora essere usato, anche se non dovreste farlo all'interno di nuovi documenti. Infatti, in questo casi, è preferibile utilizzare i pacchetti \Paket{graphics} o \Paket{graphicx} poiché \Paket{epsfig} è mantenuto solamente per ragioni di compatibilità, come già accennato. Per quanto riguarda le differenze tra \Paket{graphics} e \Paket{graphicx} vedere \Doku{grfguide}~\cite{graphicx:99}. Per suggerimenti sulla centratura della grafica vedere la sezione~\vref{sec:gleit-figure-table}. \sbox{\Breite}{\LMacro{psfig}{file=Bild,\dots}} \Ersetze{\parbox[t]{\wd\Breite}{\Use{psfig}\\% \LMacro{psfig}{file=image,\dots}}}% {\parbox[t]{.45\textwidth}{% \Use{graphicx}\\% \texttt{\TB includegraphics[\dots]\{image\}}}} \subsubsection{\Paket{doublespace} contro \Paket{setspace}} \label{sec:zeilenabstande} Per modificare la spaziatura interlinea usate il pacchetto \Paket{setspace}. Il pacchetto \Paket{doublespace} è diventato obsoleto e proprio \Paket{setspace} lo ha sostituito. Vedere la sezione~\vref{sec:ander-des-zeil}. \Ersetze{\Use{doublespace}}{\Use{setspace}} \subsubsection{\Paket{fancyheadings}, \Paket{scrpage} contro \Paket{fancyhdr}, \Paket{scrpage2}} \label{sec:lebende-kolumn} Il pacchetto \Paket{fancyheadings} è stato sostituito da \Paket{fancyhdr}. Un'estensione alternativa, per la modifica delle intestazioni, è offerta dal pacchetto \Paket{scrpage2}, incluso nella collezione \KOMAScript. \Paket{scrpage} è da evitare in quanto già obsoleto. Per la documentazione relativa a \Paket{scrpage2} vedere \Doku{scrguide}~\cite{kohm:03}. \Ersetze{\Use{fancyheadings}}{\Use{fancyhdr}} \Ersetze{\Use{scrpage}}{\Use{scrpage2}} \subsubsection{La famiglia di pacchetti \Paket{caption}} \label{sec:die-caption-famile} Il pacchetto \Paket{caption2} non dovreste più adoperarlo poiché tuttora è disponibile una nuova versione (v3.x) di \Paket{caption}. Per accertarvi di utilizzare proprio l'ultima versione di \Paket{caption}, caricatelo nel preambolo come mostrato qui di seguito. \Ersetze{\Use{caption}}{\UseV{caption}{2004/07/16}} Se prima usavate \Paket{caption2}, ora potete dare un'occhiata alla documentazione del pacchetto \Paket{caption}: \Doku{caption}~\cite[sezione~8]{caption:04}. \subsubsection{\Paket{isolatin}, \Paket{umlaut} contro \Paket{inputenc}} \label{sec:eingabe-von-umlauten} \paragraph{Alcune considerazioni di carattere generale} \label{sec:generelles} Ci sono principalmente quattro possibili modi per inserire gli \emph{umlaut}\footnote{Gli \emph{umlaut} sono doppi punti che vengono posti sulle vocali per modificarne la pronuncia (p.e.~ä, ö, ü, Ä, Ö, Ü); quelli caratteristici della scrittura in lingua tedesca sono anche detti \emph{German umlauts}. Essi differiscono dalle dieresi che, invece, vengono usate per separare il ``suono'' di due vocali vicine (p.e.~nella parola inglese ``naïve'').} tedeschi ed altri caratteri non ASCII: \begin{enumerate} \item \verb+H{\"u}lle+: ha il vantaggio di funzionare sempre e su qualunque tipo di sistema. I principali svantaggi sono che la \emph{spaziatura fra le lettere}\footnote{Può essere positiva o negativa e dipende dal particolare carattere da inserire; in inglese è detta `Kerning'.} risulta disturbata, inoltre è una forma estremamente complicata da inserire manualmente da tastiera e si dimostra di scarsa leggibilità quando situata all'interno di codice sorgente. Questa variante dovrebbe essere \emph{sempre} evitata per quanto detto in merito ai problemi di spaziatura. \item Con \verb+H\"ulle+ o \verb+H\"{u}lle+ i problemi di spaziatura sollevati in precedenza ora non si pongono. Le due forme si possono utilizzare su ogni sistema. In ogni modo, questo è solo un ``raggiro'' per l'input e la leggibilità risulta pessima proprio come per la precedente soluzione. Questa variante è la più significativa per un utilizzo all'interno di file di stile o nella definizione di comandi, dal momento che è una soluzione \emph{indipendente} sia dalla codifica utilizzata che dai pacchetti caricati.\label{item:die-eingabe-der} \item Con il pacchetto \Paket{(n)german}, o con l'opzione \Option{(n)german} in \Paket{babel}, i \emph{German umlauts} possono essere inseriti facilmente (\verb+H"ulle+). Ancora, il vantaggio di questa forma è che funziona su tutti i sistemi. Siccome su ogni sistema \TeX\ è disponibile o \Paket{babel} o \Paket{(n)german} non dovrebbero esserci problemi, nemmeno di compatibilità. Come prima, questo è un ``raggiro'' per l'input e gli svantaggi sono quindi la ``pesantezza'' nell'inserimento e la scarsa leggibilità. Questa variante si adopera abbastanza bene nel testo continuo, ma dovrebbe essere evitata nelle definizioni dei comandi e nel preambolo. \item L'inserimento diretto (\verb+Hülle+). I vantaggi di questa variante sono ovvi. Potete leggere e scrivere ``normalmente'' il testo del documento sorgente. Per contro, dovete dire a \LaTeX\ quale codifica d'ingresso state usando. Potrebbero anche sorgere dei problemi quando si scambiano files tra sistemi differenti. Questo, in sé, \emph{non} è un problema per \TeX\ o per \LaTeX, ma potrebbe causare dei \emph{disagi agli editors per quanto riguarda la corretta visualizzazione del testo} sui diversi sistemi. Per esempio, il simbolo corrente dell'euro \euro, codificato in iso-8859-15 (latin9), in un editor su un sistema windows (CP1252) potrebbe essere \emph{visualizzato} come \textcurrency. Questa variante è molto comoda per il testo continuo, tuttavia dovrebbe essere evitata nelle definizioni di comandi e nel preambolo. \end{enumerate} % In definitiva, nei comandi, nei preamboli e nei file di stile si dovrebbero usare \verb+H\"ulle+ oppure \verb+H\"{u}lle+, mentre nel resto del testo potete utilizzare \verb+H"ulle+ o \verb+Hülle+. \paragraph{Codifica dell'input} \label{sec:eingabekodierung-1} \emph{Non} usate i pacchetti \Paket{isolatin1}, \Paket{isolatin} o \Paket{umlaut} per specificare la codifica d'ingresso utilizzata nel documento sorgente! Questi pacchetti sono obsoleti e potrebbero non essere disponibili su ogni sistema. Al loro posto usate invece \Paket{inputenc}, con le sue 4 opzioni: \begin{description} \item[latin1/latin9] per sistemi di tipo Unix (latin1 è disponibile anche per MS--Windows e Mac OS\,X) \item[ansinew] per MS--Windows \item[applemac] per Macintosh\footnote{Si raccomanda agli utenti Macintosh OS\,X l'utilizzo della codifica `latin1', poiché consente di evitare problemi di compatibilità quando si opera con documenti scambiati tra piattaforme diverse. In tal caso occorre, prima di tutto, verificare che le impostazioni dell'editor relative alla codifica siano corrette. A lungo andare potreste decidere di optare per il passaggio alla codifica `unicode', ma tenete presente che il pacchetto \Paket{inputenc} la supporta in maniera ancora provvisoria e i lavori d'implementazione sono attualmente in corso. Alcuni utenti si dimostrano soddisfatti dall'utilizzo dell'estensione \Paket{ucs}, inclusa nel pacchetto \textsf{unicode}.} \item[cp850] per OS/2 \end{description} \Ersetze{\Use{isolatin1}}{\UseO{latin1}{inputenc}} \Ersetze{\Use{umlaut}}{\UseO{latin1}{inputenc}} \subsubsection{\Paket{t1enc} contro \Paket{fontenc}} \label{sec:schriftkodierung} In generale si è parlato a sufficienza dell'argomento sia nelle \Doku{De-TeX-FAQ}~\cite[Domande 5.3.2, 5.3.3, 10.1 e seguenti]{faq:03}, che nelle \Doku{UK FAQ}~\cite[`Why shouldn't I?', sezione U.3, `Why use \emph{fontenc} rather than \emph{t1enc}', domanda 328]{ukfaq:99}, pertanto tutto ciò che rimane da dire, in breve, è che \Paket{t1enc} risulta essere obsoleto e lo dovete sostituire con \Paket{fontenc}! \Ersetze{\Use{t1enc}}{\UseO{T1}{fontenc}} \subsubsection{\Bst{natdin} contro \Bst{dinat}} \label{sec:liter-nach-din} Il file di stile \Bst{natdin} è stato rimpiazzato da \Bst{dinat}. \Ersetze{\Bib{natdin}}{\Bib{dinat}} \subsection{Caratteri} \label{sec:schriften} `\LaTeX\ e fonts' è un argomento di notevole dibattito e interesse. La maggior parte delle discussioni che nascono sui gruppi di discussione \News{it.comp.software.tex}, \News{de.comp.text.tex} e \News{it.comp.software.tex}, iniziano con la domanda relativa al perché i caratteri del proprio documento pdf appaiano così ``frastagliati'' quando esso viene visualizzato con Adobe Acrobat\textsuperscript{\textregistered} Reader. Molte risposte focalizzano la loro attenzione sui pacchetti \Paket{times} oppure \Paket{pslatex}, tuttavia l'impiego di questi pacchetti comporta l'utilizzo di collezioni di caratteri completamente diversi rispetto a quelli di partenza. Per una panoramica sul nuovo schema di selezione dei font di \LaTeX (NFSS) si rimanda a \cite{fntguide:00}. Per fare in modo che la forma dei caratteri appartenenti alla famiglia `Computer Modern' venga rappresentata in maniera nitida da \emph{acroread}, vedere le \Doku{De-TeX-FAQ}~\cite[Domande 9.2.3]{faq:03} o la \Doku{UK FAQ}~\cite[`The wrong type of fonts in PDF', domanda 100]{ukfaq:99}. \subsubsection{\Paket{times}} \label{sec:pakettimes} Il pacchetto \Paket{times} è obsoleto (vedere \Doku{psnfss2e} \cite{psnfss:02}). Esso imposta la famiglia di caratteri Times come \Macro{rmdefault}, Helvetica come \Macro{sfdefault} e Courier come \Macro{ttdefault}. In modo matematico, però, \emph{non} utilizza i corrispondenti caratteri. Per di più la famiglia Helvetica non è scalata correttamente quindi tali caratteri appaiono troppo grandi rispetto a quelli delle altre famiglie. Pertanto se volete usare la combinazione Times/\/Helvetica/\/Courier dovete fare in questo modo: \sbox{\Breite}{\UseO{scaled=.95}{helvet}} \Ersetze{\Use{times}}% {\parbox[t]{\wd\Breite}{% \Use{mathptmx}\\ \UseO{scaled=.90}{helvet}\\ \Use{courier}}} \paragraph{Nota.} \label{sec:anmerkung-1} Il fattore di scala per il pacchetto \Paket{helvet}, in combinazione con \Paket{Times}, dovrebbe essere un numero compreso tra $0.90$ and $0.92$. \subsubsection{\Paket{mathptm}} \label{sec:mathptm} \Paket{mathptm} è il predecessore di \Paket{mathptmx}, pertanto utilizzate quest ultimo se volete comporre formule matematiche in Times. \Ersetze{\Use{mathptm}}{\Use{mathptmx}} \subsubsection{\Paket{pslatex}} \label{sec:paketpslatex} Il pacchetto \Paket{pslatex} opera al suo interno in maniera equivalente a \Paket{mathptm}$+$ \Paket{helvet} (scalato). Tuttavia, esso utilizza un carattere Courier scalato in modo troppo stretto. Il principale svantaggio che si incontra usando \Paket{pslatex} è che esso \emph{non} opera con le codifiche T1 e TS1. \Ersetze{\Use{pslatex}}{\parbox[t]{\wd\Breite}{\Use{mathptmx}\\\UseO{scaled=.90}{helvet}\\\Use{courier}}} \paragraph{Nota su tutte le combinazioni di caratteri Times/Helvetica.} \label{sec:anmerkung-zu-allen} Evitate in ogni caso di caricare il pacchetto \Paket{courier}. Per la famiglia Typewriter potete continuare ad usare i soliti caratteri \texttt{cmtt}. \subsubsection{\Paket{palatino}} \label{sec:paketpalatino} Il pacchetto \Paket{palatino} si comporta allo stesso modo di \Paket{times}, ovviamente eccetto per l'impostazione di \Macro{rmdefault} a Palatino. Anche questo pacchetto è ormai obsoleto, pertanto non dovrebbe essere mai più utilizzato. \Ersetze{\Use{palatino}}{\parbox[t]{\wd\Breite}{\Use{mathpazo}\\\UseO{scaled=.95}{helvet}\\\Use{courier}}} \paragraph{Nota.} \label{sec:anmerkung-2} Il fattore di scala per il pacchetto \Paket{helvet}, in combinazione con il carattere Palatino, dovrebbe essere impostato a $0.95$. Helvetica \emph{non} è il `miglior' carattere sans-serif a disposizione da utilizzare congiuntamente con Palatino; è piuttosto il migliore carattere sans-serif disponibile \emph{gratuitamente}. Chiunque possieda un CD--ROM di CorelDraw\textsuperscript{\textregistered} (preferibilmente una vecchia versione) può utilizzare abbastanza bene Palatino con Frutiger\footnote{Bitstream Humanist 777, bfr} o Optima\footnote{Bitstream Zapf Humanist, bop}. Walter Schmidt nella sua homepage fornisce già pronto all'uso tutto il materiale occorrente per usare alcuni caratteri PostScript con \TeX\footnote{Caratteri per \TeX: \url{http://home.vr-web.de/was/fonts}}. \subsubsection{\Paket{mathpple}} \label{sec:paketmathpple} Questo pacchetto è stato il predecessore di \Paket{mathpazo}. Alcuni simboli risultano mancanti, così al loro posto vengono usati dei caratteri presi dalla famiglia Euler. Altri simboli, invece, non sono adatti all'impiego con la famiglia Palatino dal momento che alcune metriche del carattere non sono corrette. Per maggiori dettagli riferirsi a \Doku{psnfss2e}~\cite{psnfss:02}. \subsubsection{Composizione di lettere greche in stile tondo} \label{sec:aufr-griech-buchst} I passaggi seguenti, che ho evidenziato in rosso, non sono obsoleti nel senso che ``non dovreste usarli più d'ora in avanti'', tuttavia la composizione del testo ora si è resa molto più semplice grazie al pacchetto \Paket{upgreek}. Per maggiori informazioni sull'uso del pacchetto vedere la documentazione \Doku{upgreek}~\cite{upgreek:01}. \minisec{Trucchetti per \Paket{pifont}} %\nopagebreak[4] \sbox{\Breite}{\NewCom{uppi}{\LMacro{Pisymbol}{psy}\{112\}}} \Ersetzx[\wd\Breite]{% \Use{pifont}\\ \NewCom{uppi}{\LMacro{Pisymbol}{psy}\{112\}}\\ \Macro{uppi}\\ \textcolor{black}{oppure}\\ \NewCom[{[1]}]{upgreek}{\%\\ ~\Macro{usefont}\{U\}\{psy\}\{m\}\{n\}\#1}\\ \LMacro{upgreek}{p} }% {% \Use{upgreek}\\ \$\Macro{uppi}\$ } \smallskip \minisec{Trucchetti per \Paket{babel}} \Ersetzx[\wd\Breite]{% \UseO{greek,\dots}{babel}\\ \NewCom[{[1]}]{upgreek}{\%\\ ~\LMacro{foreignlanguage}{greek}\{\#1\}}\\ \LMacro{upgreek}{p} } {% \Use{upgreek}\\ \$\Macro{uppi}\$ } \subsubsection{\Paket{euler} vs. \Paket{eulervm}} \label{sec:euler-eulervm} Per la composizione di formule matematiche dovete utilizzare il pacchetto \Paket{eulervm} sostituendolo a \Paket{euler}. \Paket{eulervm} è una estensione di \LaTeX{} per l'utilizzo dei caratteri `eulervm', fonts virtuali\footnote{Letteralmente: `virtual fonts'.} ad uso matematico basati sia sul carattere Euler, che sui Computer Modern. Tale pacchetto oltre a sfruttare una quantità minore delle risorse allocate da \TeX, rispetto alle tradizionali estensioni, fornisce anche i comandi perfezionati \texttt{$\backslash$hslash} e \texttt{$\backslash$hbar}. Per maggiori dettagli fate riferimento alla documentazione del pacchetto \Doku{eulervm}~\cite{eulervm:04}. \Ersetze{\Use{euler}}{\parbox[t]{\wd\Breite}{\Use{eulervm}}} %-------------------- section "Miscellenous" --------------------- \clearpage \section{Miscellanea} \label{sec:verschiedenes} Questa sezione -- fatta eccezione della sottosezione \vref{sec:der-anhang} -- fornisce suggerimenti di carattere ancor più generale rispetto a quelli della sezione dei ``Peccati Capitali'' a pagina \pageref{sec:todsunden} e seguenti. \subsection{Oggetti flottanti: figure e tabelle} \label{sec:gleit-figure-table} Per centrare un abiente flottante dovreste usare \Macro{centering} al posto di \newline\LMacro{begin}{center} \dots{} \LMacro{end}{center} poiché quest'ultimo ambiente interporrebbe uno spazio verticale supplementare che voi vorreste piuttosto evitare, nella maggior parte dei casi. \sbox{\Breite}{\LMacro{includegraphics}{bild}} \Ersetze{\parbox[t]{\wd\Breite}{% \Env{figure}{\Env{center}{\LMacro{includegraphics}{bild}}}}}% {\parbox[t]{\wd\Breite}{% \Env{figure}{\Macro{centering}\\% \LMacro{includegraphics}{bild}}}} \paragraph{Nota.} \label{sec:anmerkung-4} Comunque, centrando una regione contenuta all'interno di testo continuo, oppure all'interno di in un ambiente \verb+titlepage+, questo spazio supplementare potrebbe risultare utile! \subsection{L'appendice} \label{sec:der-anhang} L'appendice è introdotta dal \emph{comando} \Macro{appendix}. Fate bene attenzione che essa \emph{non} è costituita da un ambiente. \sbox{\Breite}{\LMacro{begin}{appendix}} \Ersetze{\parbox[t]{\wd\Breite}{% \Env{appendix}% {\LMacro{section}{Blub}}}}% {\parbox[t]{.33\textwidth}{% \Macro{appendix}\\ \LMacro{section}{Blub}}} \subsection{Composizione di formule matematiche} \label{sec:mathematiksatz} Generalmente, per comporre formule matematiche piuttosto complesse dovreste usare il pacchetto \Paket{amsmath}. Esso offre diversi nuovi ambienti atti a rimpiazzare prima di tutto l'ambiente \texttt{eqnarray}. I principali vantaggi del pacchetto sono i seguenti: \begin{itemize} \item La spaziatura interna ed esterna agli ambienti è più consistente e regolare. \item La numerazione delle equazioni è posizionata in maniera tale da non risultare più sovrapposta. \item I nuovi ambienti, come ad esempio \texttt{split}, rendono possibile la frammentazione di equazioni molto lunghe in maniera semplice. \item La semplicità nel definire nuovi operatori (come p.e.~\Macro{sin} ecc\dots) con gli opportuni intervalli di spaziatura. \end{itemize} \paragraph{Avvertimento} \label{sec:warnung} Quando utilizzate il pacchetto \Paket{amsmath} non dovete \emph{mai} usare gli ambienti \texttt{displaymath}, \texttt{eqnarray} o \texttt{eqnarray*} poiché essi non sono supportati da \Paket{amsmath}. In caso contrario ciò potrerebbe generare intervalli di spaziatura inconsistenti. \texttt{\TB [\dots\TB]} è adattato correttamente da \Paket{amsmath} e quindi può essere usato al posto di \texttt{displaymath}. \texttt{eqnarray} e \texttt{eqnarray*} possono essere sostituiti da \texttt{align} e \texttt{align*}. Per una completa panoramica sul pachetto \Paket{amsmath} vedere \Doku{amsldoc}~\cite{amsldoc:99}. \sbox{\Breite}{\LMacro{includegraphics}{bild}} \Ersetze{% \parbox[t]{\wd\Breite}{% \Env{eqnarray}{% a \&=\& b \TB\TB\\ b \&=\& c \TB\TB\\ a \&=\& c } }}% {\parbox[t]{\wd\Breite}{% \Env{align}{% a \&= b \TB\TB\\ b \&= c \TB\TB\\ a \&= c } }} \subsection{Come usare \texttt{\TB graphicspath}} \label{sec:die-verwendung-von} Le ragioni che seguono vi illustrano il motivo per il quale dovreste accuratamente evitare l'utilizzo dell'istruzione \Macro{graphicspath}, rimpiazzandola semplicemente attraverso l'impostazione della variabile d'ambiente \texttt{TEXINPUTS}\footnote{In riferimento alla risposta di David Carlisle al `Bug-Report' di Markus Kohm, disponibile all'indirizzo\newline \url{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/2618}}: \begin{enumerate} \item Alcune piattaforme diverse prevedono separatori \emph{diversi} nei nomi dei percorsi (path). Infatti, mentre MS~Windows e Linux/Unix utilizzano entrambi a titolo di separatore il carattere slash `/', i sistemi Macintosh utilizzano il carattere due punti `:'. \item L'algoritmo di ricerca di \TeX\ risulta essere più lento rispetto a quello implementato dalla libreria kpathsea (anche se i microprocessori attuali sono così veloci da rendere trascurabili questi tempi d'attesa). \item La memoria allocata da \TeX\ è limitata e dal momento che ogni immagine ne utilizza una parte (che non verrà rilasciata per l'intera durata del processo di compilazione del documento) e a fronte di un grande numero d'immagini presenti nel documento, è possibile che tale memoria giunga all'esaurimento ed interrompa l'elaborazione. \end{enumerate} % Dalla Shell di Bourne, la variabile d'ambiente \texttt{TEXINPUTS} si imposta in questo modo: \begin{verbatim} $ TEXINPUTS=Immagini:$TEXINPUTS latex datei.tex \end{verbatim} dove \texttt{Immagini} è il nome della directory che contiene i files delle immagini che volete includere nel vostro documento, oppure aggiungete a \verb+~/.profile+ la seguente linea di testo \begin{verbatim} export TEXINPUTS=./Immagini:$TEXINPUTS \end{verbatim}%$ In quest ultimo caso i files contenuti nella directory \texttt{Immagini}, sotto-directory di quella corrente, verranno trovati proprio come se fossero presenti nella directory attuale di lavoro. \noindent Per sistemi fino a MS~Windows~98, la variabile d'ambiente si imposta aggiungendo l'istruzione \begin{verbatim} set TEXINPUTS=.\Immagini;%TEXINPUTS% \end{verbatim} al file \texttt{autoexec.bat}. In sistemi basati su tecnologia MS~Windows~NT, la variabile d'ambiente \texttt{TEXINPUTS} si può impostare cliccando con il tasto destro del mouse su \textsf{Risorse del computer $\rightarrow$ Proprietà del sistema $\rightarrow$ Avanzate $\rightarrow$ Variabili d'ambiente}. %\footnote{In alternativa, su Windows~2000 potete anche cliccare su %\textsf{Start} $\rightarrow$ \textsf{Impostazioni} $\rightarrow$ %\textsf{Pannello di controllo} $\rightarrow$ \textsf{Sistema}.} Questi sono solamente alcuni suggerimenti che indicano un possibile modo di procedere, infatti è possibile impostare la variabile \texttt{TEXINPUTS} in svariati modi. Per saperne di più consultate la documentazione del vostro sistema operativo o della vostra distribuzione \TeX. \subsection{Istruzioni specifiche alla lingua -- \texttt{\TB(*)name}} %\footnote{Sottosezione tradotta ed adattata alle convenzioni per la %scrittura in lingua italiana.} \label{sec:die-macroname-makros} Dal momento che sui gruppi di discussione relativi a \TeX\ c'è qualcuno che occasionalmente pone la domanda su come, per esempio, sia possibile cambiare la dicitura `References' in `Riferimenti bibliografici', a questo proposito ho riportato in tabella~\vref{tab:von-paketng-btw} i comandi necessari ad effettuare questo tipo di aggiustamenti. %\footnote{Nota del traduttore: questa sezione è stata adattata alle %convenzioni tipografiche della \emph{lingua italiana}.} \begin{table}[t] \begin{minipage}{\textwidth} \centering \caption{Comandi definiti dal pacchetto \Paket{babel} con l'opzione \Option{italian}} \label{tab:von-paketng-btw} \begin{tabular}{@{}lll@{}} \toprule \multicolumn{1}{@{}N}{Nome del comando} & \multicolumn{1}{N}{Definizione originale} & \multicolumn{1}{N@{}}{\Paket{babel} con l'opzione \Option{italian}} \\ \cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(l){3-3} \Macro{prefacename} & Preface & Prefazione \\ \Macro{refname}\footnote{Solo per la classe \texttt{article}.} & References & Riferimenti bibliografici \\ \Macro{abstractname} & Abstract & Sommario \\ \Macro{bibname}\footnote{Solo per le classi \texttt{report} e \texttt{book}.} & Bibliography & Bibliografia \\ \Macro{chaptername} & Chapter & Capitolo \\ \Macro{appendixname} & Appendix & Appendice \\ \Macro{contentsname} & Contents & Indice \\ \Macro{listfigurename} & List of Figures & Elenco delle figure \\ \Macro{listtablename} & List of Tables & Elenco delle tabelle \\ \Macro{indexname} & Index & Indice analitico \\ \Macro{figurename} & Figure & Figura \\ \Macro{tablename} & Table & Tabella \\ \Macro{partname} & Part & Parte \\ \Macro{enclname} & encl & Allegati \\ \Macro{ccname} & cc & e~p.~c. \\ \Macro{headtoname} & To & Per \\ \Macro{pagename} & Page & Pag. \\ \Macro{seename} & see & vedi \\ \Macro{alsoname} & see also & vedi anche \\ \bottomrule \end{tabular} \end{minipage} \end{table} Ad esempio, se voleste cambiare `List of Figures', che tradotto in italiano risulta `Elenco delle figure', in `Figure', potreste usare il seguente comando \begin{verbatim} \renewcommand*{\listfigurename}{Figure} \end{verbatim} Le altre definizioni si possono cambiare in maniera analoga. Quando nel preambolo si carica il pacchetto \Paket{babel} allora risulta più opportuno l'utilizzo del comando \Macro{addto}. Per maggiori dettagli vedere le \Doku{De-TeX-FAQ}~\cite[Domanda 8.5.9]{faq:03} o la documentazione del pacchetto \Paket{babel}. \begin{verbatim} \addto{\captionsitalian}{% \renewcommand*{\listfigurename}{Figure}} \end{verbatim} \clearpage \appendix \section{Un esempio che illustra l'effetto del comando \texttt{\TB sloppy}} \label{sec:beispiel-zu-sloppy} Questo è il codice sorgente dell'esempio pubblicato all'inizio da Markus Kohm: \begin{bspcode}{\MID{8557097.gEimXdBtjU@ID-107054.user.dfncis.de}{8557097.gEimXdBtjU@ID-107054.user.dfncis.de}}% \footnotesize \begin{verbatim} \documentclass{article} \setlength{\textwidth}{20em} \setlength{\parindent}{0pt} \begin{document} \typeout{First without \string\sloppy\space and underfull \string\hbox} tatata tatata tatata tatata tatata tatata ta\-ta\-tata tatata tatata tatata tatata tatata tatata tata\-tata tatata tatata tatata tatata ta\-tatatatt\-ta tatata tatata tatata tatata tatata tatata ta\-ta\-ta\-ta \typeout{done.} \sloppy \typeout{Second with \string\sloppy\space and underfull \string\hbox} tatata tatata tatata tatata tatata tatata ta\-ta\-tata tatata tatata tatata tatata tatata tatata tata\-tata tatata tatata tatata tatata ta\-tatatatt\-ta tatata tatata tatata tatata tatata tatata ta\-ta\-ta\-ta \typeout{done.} \end{document} \end{verbatim} \end{bspcode} \clearpage \begin{thebibliography}{99}\addcontentsline{toc}{section}{Riferimenti bibliografici}% \bibitem{amsldoc:99} \textsc{American Mathematical Society}: \emph{User's Guide for the {\texttt{amsmath}} Package}. Dicembre 1999, Versione~2.0. \biburl{CTAN://macros/latex/required/amslatex/}.\\ La traduzione in lingua italiana è disponibile all'indirizzo: \biburl{CTAN://info/italian/amsldoc/} \bibitem{graphicx:99} \textsc{David~P. Carlisle}: \emph{Packages in the `graphics' bundle}. Gennaio 1999. \biburl{CTAN://macros/latex/required/graphics/}. \bibitem{ukfaq:99}\textsc{Robin Fairbairns}: \emph{The UK \TeX\ FAQ. Your 375 Questions Answered.} WWW, Versione~3.13, 4 Gennaio 2005, \biburl{http://www.tex.ac.uk/faq}. \bibitem{kohm:03} \textsc{Markus Kohm}, \textsc{Frank Neukam} e \textsc{Axel Kielhorn}: \emph{Das KOMA-Script Paket}. Settembre 2004, Versione~2.9t. Traduzione in lingua inglese: \emph{The KOMA-Script Bundle}. \biburl{CTAN://macros/latex/supported/koma-script/}. \bibitem{clsguide:99} \textsc{The \LaTeX3 Project Team}: \emph{\LaTeXe{} for class and package writers}. Marz0 1999. \biburl{CTAN://macros/latex/doc/clsguide.pdf} \bibitem{fntguide:00} \textsc{The \LaTeX3 Project Team}: \emph{\LaTeXe{} font selection}. Settembre 2000. \biburl{CTAN://macros/latex/doc/fntguide.pdf} \bibitem{usrguide:01} \textsc{The \LaTeX3 Project Team}: \emph{\LaTeXe{} for authors}. Luglio 2001. \biburl{CTAN://macros/latex/doc/usrguide.pdf} \bibitem{faq:03} \textsc{Bernd Raichle}, \textsc{Rolf Niepraschk}, \textsc{Thomas Hafner}: \emph{Fragen und Antworten (FAQ) über das Textsatzsystem {\TeX\ }und DANTE, Deutschsprachige Anwendervereinigung {\TeX\ }e.V.} WWW, Settembre 2003, Versione~72. \biburl{http://www.dante.de/faq/de-tex-faq/}. \bibitem{eulervm:04} \textsc{Walter Schmidt}: \emph{The Euler Virtual Math Fonts for use with {\LaTeX}}. Gennaio 2004, Versione~3.0a. \biburl{CTAN://fonts/eulervm/} \bibitem{upgreek:01} \textsc{Walter Schmidt}: \emph{The {\textsf{upgreek}} package for {\LaTeXe}}. Maggio 2001, Versione~1.0. \biburl{CTAN://macros/latex/contrib/supported/was/}. \bibitem{psnfss:02} \textsc{Walter Schmidt}: \emph{Using common PostScript fonts with {\LaTeX}}. Aprile 2002, PSNFSS Versione 9.0. \biburl{CTAN://macros/latex/required/psnfss/psnfss2e.pdf} \bibitem{l2kurz:99} \textsc{Walter Schmidt}, \textsc{Jörg Knappen}, \textsc{Hubert Partl} e \textsc{Irene Hyna}: \emph{{\LaTeXe}-Kurzbeschreibung}. Aprile 1999, Versione~2.1. \biburl{CTAN://info/lshort/german/}.\\ Traduzione in lingua italiana: ``\emph{Una (mica tanto) breve introduzione a {\LaTeXe}}''. \biburl{CTAN://info/lshort/italian/} \bibitem{caption:04} \textsc{Axel Sommerfeld}: \emph{Typesetting captions with the caption package}. Luglio 2004, Versione~3.0c. \biburl{CTAN://macros/latex/contrib/caption/}. \end{thebibliography} \end{document} %%% Local variables: %%% mode: LaTeX %%% TeX-master: t %%% coding: iso-8859-1 %%% End: