latex - Department of Mathematics

Transcript

latex - Department of Mathematics
LATEX
Una piccola introduzione per i neofiti
Luca Formaggia
[email protected]
MOX
Dipartimento di Matematica
Politecnico di Milano
mox.polimi.it
LAT X – p. 1/61
Summario
◮ Un pò di storia
◮ bibliografia essenziale
◮ Cosa NON sono TEXe LATEX
◮ Struttura di un file LATEX
◮ Il corpo del documento: modo testo
◮ il modo matematico
◮ Personalizzazioni
◮ Usare le etichette
◮ La bibliografia: BibTeX
◮ Altre informazioni
LAT X – p. 2/61
Un pò di storia
Alla fine degli anni ’70 il Prof. Donald Knuth stava scrivendo il
secondo volume della serie The Art of Computer Programming
quando si accorse della bassa qualità del prodotto.
Come ogni vero computer scientist decise che la cosa migliore era
di scrivere un proprio programma per la composizione di testi, che
chiamò TEX, e uno per la creazione/gestione di fonti tipografiche,
MetaFont.
TEX e MetaFont sono alla base di LATEX.
Usando le parole di Don Knuth TEX è stato ideato for the creation
of beautiful books - and especially for books that contain a lot of
mathematics
Molto si più su Donald Knuth e su TEX può essere trovato su
http://www-cs-faculty.stanford.edu/~knuth/
LAT X – p. 3/61
La storia continua..
TEX è a tutti gli effetti un linguaggio di programmazione che
permette un controllo estremamente fine della impaginazione e
la definizione di contatori per formule, figure o quant’altro. Ma,
sopratutto è estendibile
mands o macro)
con l’aggiunta di nuove funzioni (com-
LATEXè un insieme di macro sviluppate da Leslie Lamport con lo
scopo di facilitare la creazione di articoli e rapporti scientifici.
L’attuale versione di LATEX è chiamata LATEX2e.
L’estendibilità di TEX e la sua integrazione con un sistema (a sua
volta estensibile!) di gestione di fonti tipografiche ha fatto si che
si siano sviluppati numerosi packages per le più svariate applicazioni: dalla scrittura di trasparenze per presentazioni, al disegno
di schacchiere per il gioco degli scacchi, alla stesura di spartiti musicali! Si veda il sito CTAN: www.ctan.org.
LAT X – p. 4/61
Cosa NON sono TEXe LATEX
Non sono programmi di videoscrittura. Il testo va prodotto con un normale
editore, anche se oggigiorno esistono dei programmi open source (p. es. LyX
su Linux e Windows), freeware (WinEDT su Windows) o commerciali
(Scientific Word su Windows) che permettono di semplificare la preparazione
del documento con l’ausilio di interfacce grafiche.
Non si imparano in un giorno!. Ma una volta appresi permettono di
velocizzare la produzione di documenti contenenti parecchie formule
matematiche (ma non solo!).
LAT X – p. 5/61
Bibliografia essenziale
◮ Michel Goossens, Frank Mittelbach e Alexander Samarin. The LATEX
Companion. Addison-Wesley, Reading, Massachusetts, 1994,
ISBN 0-201-54199-8. Contiene moltissime informazioni su pacchetti e
loro uso. Non per prima lettura.
◮ George Grätzner, Math into LATEX. III Ed., Birkauser-Springer,
2000.Molto centrato sulla matematica. Contiene una estesa
presentazione di AMS-LATEX.
◮ Dello stesso autore: More math into LATEX, IV Ed., Spinger, 2007.
◮ L. Lamport, LaTex - A Document Preparation System II Ed.,
Addison-Wesley, 1994. Un classico. Oggigiorno forse un pò obsoleto.
LAT X – p. 6/61
Struttura di un file LATEX
LAT X – p. 7/61
Struttura di un file LATEX
Dichiarazione della classe .
La
\documentclass[12pt]{article}
classe definisce il tipo di documento,
predefinendone la struttura generale
e i comandi di sectioning. Tipiche
classi sono article, report, book. Tra
parentesi quadre ([]) le opzioni della
classe.
Definizione dei packages
\usepackage{a4wide}
\usepackage{t1enc}
\usepackage{amsmath,amsfonts}
\usepackage{amssymb,amsthm}
\usepackage[dvips]{graphicx}
.
I
packages introducono nuove potenzialità definendo nuovi comandi
(graphicx introduce dei comandi
per inserire immagini nel testo), o
modificano delle caratteristiche della
classe (a4wide cambia la struttura
della pagina per un formato A4 con
bordi ridotti.
LAT X – p. 8/61
Struttura di un file LATEX(II)
Comandi definiti dall’utente
L’utente può definire (o ridefinire)
dei comandi che poi utilizzerà
nel corpo del documento. Tipicamente viene fatto nel preamble.
\newcommand{\Diric}{$\Gamma_D$}
\newcommand{\Neum}{$\Gamma_N$}
\newcommand{\Div}[1]{{ \nabla \cdot #1}}
\newcommand{\Divu}{\Div{\mathbf{u}}}
\renewcommand{\thesection}{\alpha{section}}
\setlength{\parindent}{0mm}
Si può anche modificare il valore
di lunghezze o contatori definiti
dalla classe o definirne dei nuovi
(utilizzo avanzato).
Questa parte può essere messa
in un file mycommands.sty
ed
essere
caricata
con
\usepackage{mycommands}.
LAT X – p. 9/61
Struttura di un file LATEX(III)
Corpo del documento
\begin{document}
\begin{abstract}
Quest’articolo tratta
della risoluzione
di $F(u)=0$ nel caso in cui...
\end{abstract}
Compreso tra \begin{document} e
\end{document} contiene il documento vero e proprio.
I comandi \section \subsection
etc. strutturano il documento secondo
il formato della classe (eventualmente
modificato dall’utente o da packages
caricati nel preamble).
\section{Introduzione}
....
\begin{equation}
u^{k+1}\leftarrow \frac{F(u^k)}{F^\prime(u^k)}
\end{equation}
I comandi per generare indici e bibli\subsection{Un caso particolare}
ografia vengono posti tipicamente alla
...
fine e spesso sono indicati come back
\tableofcontent
matter.
\bibliography{biblio}
\end{document}
LAT X – p. 10/61
Alcuni packages
babel
graphicx
Supporto multilingua.
In particolare
\usepackage[italian]babel carica il
supporto per la lingua Italiana.
Introduce comandi per l’inserimento di immagini (in formato Encapsulated PostScript
-ma non solo-) per altri effetti grafici, come i
\{colorbox}
amsmath,amsfonts,amssymb
t1enc
times
theorem o amsthm
Introducono i simboli matematici (e le fonti
tipografiche) della American Mathematical
Society.
Supporto per le lettere accentate (è, à, ö,
etc.)
Usa fonti tipografiche TrueType, con default
TimesRoman: usare se si vuole produrre
PDF
Definisce degli environment per Teoremi,
Lemmi, Corollari etc.
LAT X – p. 11/61
Classi LATEX
article
book
Articoli scientifici
Libro
report
rapporti tecnici
Ogni classe gestisce le sezioni in modo diverso.
Opzioni principali
opzione
dim. carattere
dim. pagina
drafting
orientazione
recto-verso
n. colonne
alcuni valori
10pt, 11pt, 12pt
letterpaper
a4paper
draft,final
landscape, portrait
twoside, oneside
onecolumn, twocolumn
default
10pt
letterpaper
final
portrait
twoside
onecolumn
LAT X – p. 12/61
Modi di scrittura
LATEXriconosce due modi di scrittura: text mode e math mode a sua volta
suddivisi come segue
8
(
>
Paragraph
>
>
Text
mode
>
<
left-to-right (LR)
(
>
In line
>
>
Math
mode
>
:
Display
In paragraph mode la formattazione dei paragrafi è gestita da LATEXin funzione
della giustificazione scelta (per default usa giustificazioen centrata uniforme.)
In LR mode (es. in un \mbox{}) il testo rimane sulla stessa linea. Il modo
matematico è introdotto da comandi appositi e gestito con regole particolari.
LAT X – p. 13/61
Paragraph mode
Nel corpo del documento si può scrivere un testo in modo libero, ci pensa
LATEXa formattarlo, in particolare and andare a capo nel punto giusto. Bisogna
però seguire le seguenti regole:
◮ Le linee vuote (o con solo spazi all’interno) marcano la fine di un
paragrafo, così come il comando \\ o il comando \par.
◮ Alcuni caratteri hanno un significato speciale (metacharacters).
$
&
%
#
_
{ ...}
\
Introduce una formula matematica.
Usato per formattare tabelle.
Introduce un commento. Il testo fino al capolinea successivo viene
ignorato.
Introduce un parametro di una macro.
Usato per i pedici nel modo matematico.
(Scope delimiters: usate per delimitare una porzione di testo su cui
agisce un comando in forma dichiarativa (detto anche modifier ) .
Identifica un comando.
LAT X – p. 14/61
E se volessi scrivere {?
Tutti i caratteri speciali, con l’eccezione di ~ e ~ possono essere scritti
premettendo il simbolo ~.
Quindi \{ produce {.
Per quanto riguarda \, esso può essere scritto usando \textbackslash.
Attenzione peró: non è il backslash tipografico, quest’utlimo si ottiene con
\texttt{\symbol{92}} o con (meglio) \texttt{\char‘\\}. Il symbolo
~ in modo testo si ottiene con il comando \texttt{\char‘\~}
In generale il comando \char‘\x dice di interpretare x come carattere e
quindi mai come simbolo. Negli esempi precedenti \texttt serviva per
specificare la famiglia di font da utilizzare per la visualizzazione del carattere.
LAT X – p. 15/61
Commands (macro) e environment
In TEXsi distingue tra macro, che hanno il formato
\macro[argomenti opzionali]{arg1}{arg2}. . .
Per esempio
\section{Una nuova sezione}
\parbox[c]{3cm}{Un paragrafo in una ‘‘scatola’’ di 3 cm.}
e gli environment che sono sempre delimitati dalla coppia \begin e \end.
Per esempio:
\begin{tabular}{ll}
\hline\hline
1 Uno
1 & Uno\\\hline
2 Due
2 & Due \\\hline\hline
\end{tabular}
Spesso sia macro che environment sono presenti in due forme: quella
normale e quella modificata (starred), ottenuta aggiungendo ∗ al nome. Per
esempio \section*{} produce l’intestazione di una sezione senza
aggiornarne il contatore.
LAT X – p. 16/61
Comandi in forma dichiarativa
Un comando senza argomenti viene chiamato declaration o anche modifier
poichè agisce dal punto in cui viene dichiarato in avanti. Per limiterne lo scopo
viene usualmante racchiuso in parentesi graffe (non è necessario all’interno di
un envoronment perchè un environment crea uno scopo di applicazione di
comandi.)
Esempio: \itshape è il comando che cambia il carattere con la sua versione
in italico (serif), quindi {\itshape serif font} produce serif font.
LAT X – p. 17/61
Modificare i caratteri (modo testo)
All’interno di un documento LATEX usa tre famiglie all’interno di un gruppo di
caratteri, normalmente definito da un font package (es.
\usepackage{times} carica le True-Type Times). Per default LATEX usa le
computer modern font, originalmente ideate da D. Knuth.
Le tre famiglie sono:
◮ Roman. tipicamente serif e upright
◮ Sans-serif. Versione sans-serif
◮ Typewriter. Versione typewriter
Il default è normalmente stabilito dal font package. Per esempio i caratteri
delal famiglia helvetica sono sans-serif. Quindi se uno usa il pacchatte helv le
versione Roman è implementata usando l’equivalente Times.
Esiste poi la forma
SMALL CAPITAL .
LAT X – p. 18/61
Cambiare la forma (shape) del carattere (modo testo)
LAT X – p. 19/61
Cambiare dimensione (modo testo)
Normalmente un argomento della classe permette di stabilire la dimensione di
default del carattere, in punti (pt).
Dei modificatori permettono di cambiare
LAT X – p. 20/61
Cambiare serie
I caratteri si distinguono ulteriormente in diverse serie. Di fatto abbiamo le
◮ \textbf{grassetto} o {\bfseries grassetto} che produce
grassetto
◮ \textmd{normale} o {\mdseries normale} che produce la serie
normale (è un comando ovviamente poco usato!)
Vi sono pui dei comandi di più basso livello che permettono di selezionare
caratteri e forniscono la massima flessibilità. Per esempio si può scrivere un
paragrafo in caratteri arabici.
LAT X – p. 21/61
The italic correction
Il LATEXè uno strumento tipografico avanzato, quindi prevede tutti i trucchi tipici
dei tipografi! In particolare se si mischiano fonts in italico e non si puo‘ avere
degli effetti esteticamente indesiderati. Si usa allora il comando \/ che
introduce, se necessario, un piccolo spazio addizionale.
Ecco un esempio di quello che succede:
a {\itshape serif} font
a {\itshape serif \/} font
a serif font
a serif font
LAT X – p. 22/61
Gli spazi
Dato che LATEXper default spazia le parole in modo da produrre righe della
stessa lunghezza (quando è possibile) esistono dei comandi per produrre
spazi nel testo. In particolare \ introduce uno spazio inestendibile, ~ produce
uno spazio inestendibile e che non spezza una parola: Mario~Rossi verrà
scritto Mario Rossi senza che il cognome possa andare a capo riga. Infine \@
davanti a un punto produce la spaziatura dopo il punto corrispondente al fine
linea (LATEXnon lo fa se la lettera precedente il punto è maiuscola, perchè la
interpreta come iniziale di un nome).
È possibile avere spazi orizzontali e verticali con i comandi \hspace{1.cm},
\hspace*{1.cm}, \vspace{1.cm}, \vspace*{1.cm}.
Per specificare lunghezze si possono usare diverse unità di misura (assolute o
relative)
cm
truecm
ex
Centimetri
Centimetri (veri)
Altezza di x
mm
in
em
Millimetri
Pollici
Larghezza di una m
Inoltre il comando \phantom{frase} produce lo spazio normalmente
occupato da frase.
LAT X – p. 23/61
Spazi e lunghezze
Altri spazi verticali utili sono \smallskip, \medskip e \bigkip, che fanno
quello che dicono di fare.
Vi sono poi molte lunghezze predefinite che possono essere usate con profitto.
Le principali sono:
\textwidth
\textheight
\linewidth
\parindent
\hoffset
\voffset
la lunghezza a disposizione per il testo
l’altezza a disposizione del testo
la lunghezza di una linea della pagina
la spazio di indentazione
il margine verso l’interno della pagina- 1 in.
il margine dal bordo superiore della pagina -1 in.
Un pacchetto molto utile è layout, che introduce il comando \layout che
stampa la struttura corrente della pagina. Utile per controllare.
LAT X – p. 24/61
Modificatori di lunghezze
◮ \setlength{lunghezza}{len}. Assegna il valore len alla
lunghezza lunghezza
◮ \addtolength{lunghezza}{len} Aggiunge len a lunghezza
Esempio: \setlength{\parindent}{0pt} mette a zero l’indentazione dei
paragrafi.
Esempio: \includegraphics[width=0.5\textwidth]{myfig.eps}
scala la larghezza della figura myfig.eps a metà della larghezza del testo.
\addtolength{lunghezza}{len} accetta anche lunghezze negative.
Ricordatevi che LATEXpuò formattare la pagina sia per stampa su un verso che
per stampa in recto–verso. Nel secondo caso vi sono lughezze per le pagine
pari e lunghezze per le pagine dispari!
LAT X – p. 25/61
Sezioni
Le principali classi LATEXdefiniscono dei comandi di sectioning. I principali sono
\section \subsection\, \subsubsection.
Ad essi sono associati dei contatori , chiamati section, subsection,
subsubsection che vengono aggiornati automaticamente e il cui valore
viene reso disponibile tramite i comandi \thecontatore.
Provate a vedere che succede se scrivete
\renewcommand{\thesubsection}{\thesection--\alpha{subsection}}
\section{Introduzione}
Questa è la sezione \thesection.
\subsection{Una sottosezione}
Testo della sottosezione
\renewcommand{\thesubsection}{\thesection++\Alpha{subsection}}
\subsection{Un’altra sottosezione}
LAT X – p. 26/61
Contatori e visualizzazione di contatori
Il contatore di nome countername viene visualizzato con il comando
\thecountername.
Tipicamente \thecountername ha uno dei valori seguenti (e può essere
cambiato a piacimento usando il comendo \renewcommand).
\arabic{counter}
\arabic{roman}
\arabic{Roman}
\arabic{alph}
\arabic{Alph}
1,2,3. . .
i, ii, iii, . . .
I, II, III,. . . . . .
a, b, c . . .
A, B, C . . .
LAT X – p. 27/61
Aggiornare i contatori
◮ \stepcounter{counter}. Avanza il contatore di una unità.
◮ \setcounter{counter}{num}. Assegna il valore num a un contatore
(num può essere un’altro contatore).
◮ \addtocounter{counter}{num} Aggiunge num a contatore
Esempio: \setcounter{section}{3} La prossima sezione dell’articolo
sarà numerata 3 (secondo le definizione di \thesection)
LAT X – p. 28/61
Math mode
Il modo matematico si introduce
◮ In linea con $ . . . $
◮ In display mode con diversi environments. I principali:
• \[ . . . \] o, equivalentemente \begin{displaymath} e
\end{displaymath} se non si vuole la numerazione
• $$ . . . $$ o, equivalentemente \begin{equation} e
\end{equation} se si vuole la numerazione
La versione starred degli environments e il comando \notag sopprimono la
numerazione.
Vi sono molti altri environments che introducono il modo matematico.
AMS-LATEXne introduce alcuni molto potenti. Si distinguono da come
formattano le equazioni e se premettono di avere formule su più righe.
LAT X – p. 29/61
Esempi
Calcoliamo
$\int_0^1 \frac{e^{x^2}}{x+1}\, dx$
R 1 ex2
Calcoliamo 0 x+1 dx
\begin{displaymath}
\int_0^1 \frac{e^{x^2}}{x+1}\, dx
\end{displaymath}
\begin{equation}
i=\sqrt{-1}
\end{equation}
\begin{align}
i=\sqrt{-1} & f(x)=\sin(x)\\
g(x)=\tan(x) & k(x)=f^2(x)
\end{align}
Z
1
0
2
ex
dx
x+1
i=
√
−1
(1)
√
i = −1f (x) = sin(x)
(2)
g(x) = tan(x)k(x) = f 2 (x)
(3)
LAT X – p. 30/61
Una formula su più righe
\begin{multline}
p(z,t) = A^{-1} (z,t)
\mathbf{P_0}
(P(x,y,z ,t)) =\\
A^{-1}(z,t) \int\int_A
P(x,y,z , t) \ dx dy
\end{multline}
Un esempio più complesso
\begin{equation*}
\left\{
\begin{array}{ll}
\mu\Delta\mathbf{u}
+\nabla p=\mathbf{f}&
\text{in } \Omega\\
\nabla\cdot\mathbf{u}=0 &
\text{in } \Omega\\
\end{array}
\right.
\end{equation*}
p(z, t) = A−1 (z, t)P0 (P (x, y, z, t)) =
Z Z
A−1 (z, t)
P (x, y, z, t) dxdy (4)
A
(
µ∆u + ∇p = f
∇·u=0
in Ω
in Ω
LAT X – p. 31/61
L’esempio più complesso usando un comando di
AMS-LATEX
\begin{equation*}
\begin{cases}
\mu\Delta\mathbf{u}
+\nabla p=\mathbf{f}&
\text{in } \Omega\\
\nabla\cdot\mathbf{u}=0 &
\text{in } \Omega\\
\begin{equation*}
\end{equation*}
(
µ∆u + ∇p = f
∇·u=0
in Ω
in Ω
CONSIGLIO: usate i comandi di AMS-LATEX ogni volta che potete piuttosto di
crearvi strutture complicate!
LAT X – p. 32/61
Matrici in AMS-LATEX
AMS-LATEX introduce degli environment interessanti per le matrici. Gli elementi
in una righa sono separati da & e le colonne da \\.
"
#
1 2
bmatrix
3 4
!
1 2
pmatrix
3 4
matrix
1
3
samllmatrix
1 2
3 4
2
4
LAT X – p. 33/61
Un altro esempio
\[
\left(\begin{matrix}
1 & 2 \\ 3 & 4
\end{matrix}
\right.
\]
produce
1
3
2
4
LAT X – p. 34/61
Usare le etichette
Il comando \label{etichetta} attribuisce ad etichetta il valore dell’ultimo
contatore che è stato aggiornato. (più precisamente gli attribuisce il valore di
\thecontatore.
Tale valore viene poi richiamato con il comando \ref{etichetta}, mentre il
comando \pageref{etichetta} riporta la pagina del documento dove il
contatore associato alla etichetta è stato aggiornato.
Questo semplice sistema permette di etichettare in modo molto semplice tutti
le macro e gli environment che aggiornano un contatore . Per
esempio section, equation, figure, table etc., e di richiamarne la
numerazione più avanti nel testo.
Il vantaggio di questo schema è che se si modifica il testo e/o la posizione
degli environment, la numerazione si aggiorna automaticamente.
LAT X – p. 35/61
Fonts in math mode
In math mode LATEXusa dei caratteri diversi. I principali modificatori sono
(caricando amsfonts e amssymb)
Bold
Bold (carattere)
Roman
\boldsymbol{\gamma}
\mathbf{m}
\mathrm{g}
Displaystyle
\displaystyle{\frac{1}{2}}
BB
Calligrafico
Typewriter
\mathbb{R}
\mathcal{R}
\mathtt{t}
γ
m
g
1
2
R
R
t
LAT X – p. 36/61
Spaziatura in math mode
LATEXignora gli spazi in math mode! Se si vuole degli spazi diversi da quelli di
default occorre indicarli.
LAT X – p. 37/61
Operatori
Comandi come \sin o \log introducono degli operatori matematici. LATEXe
AMS-LATEXne introducono moltissimi, ma se dovete aggiungerne qualcuno
potete farlo
◮ Nel preamble scrivendo
\DeclareMathOperator{\mystar}{Star-one*}
e se ha limiti
\DeclareMathOperator*{\dsum}{\sum\sum}
A questo punto avete a disposizione i comandi \mystar e \dsum
◮ nel testo usando \operatorname{Star-one*}.
LAT X – p. 38/61
Etichette (labels)
\begin{equation}
\label{eq:imag}
i=\sqrt{-1}
\end{equation}
\begin{equation}
\label{eq:compl}
z=a+ib,\quad (a,b)\in \mathbb{R}\times\mathbb{R}
\end{equation}
Il simbolo $i$ definito in
(\ref{eq:imag}) è detto \emph{unità immaginaria}. Il numero
$z$ in (\ref{eq:compl}) è detto \emph{complesso}
√
i = −1
z = a + ib,
(a, b) ∈ R × R
(5)
(6)
Il simbolo i definito in (5) è detto unità immaginaria. Il numero z in (6) è detto
complesso
LAT X – p. 39/61
Definire e ridefinire comandi
Comandi possono essere definiti usando \newcommand e ridefiniti usando
\renewcommand. Es.
◮ \newcommand{\fsq}{\ensuremath{f^2}}. Il comando
\ensuremath assicura che f 2 sars̀empre mostrata in math mode
anche se \fsq non viene usato all’interno di una formula.
◮ \newcommand{\Frac}[2]{\ensuremath{\frac{#1}{#2}}}. Ora
\Frac{1}{2} produce 21 .
◮ \renewcommand{\div}{\nabla\cdot}. Consiglio: non ridefinite
mai comandi nativi di LATEX o AMS-LATEX. È sorgente di confusione e
possibili errori.
Per evitare problemi di spaziatura usate il vostro comando come \fsq{}
prima di un spazio o di un carattere alfabetico in modo testo. Negli altri casi
scrivete semplicemente \fsq.
LAT X – p. 40/61
ironments
Si possono definire dei nuovi environments con il comando
\newenvironment{start}{end}
L’esempio e‘ esplicativo.
\newenvironment{myproof}{\itshape}
{\newline\raggedleft $\square$}
(attenzione non ci devono essere linee vuote all’interno della definizione)
produce:
\begin{myproof}
..
\end{myproof}
→
{\itshape
..
\newline\raggedleft$\square$
}
CONSIGLIO: cercate di usate gli environment gia‘ a disposizione (per esempio
quelli di amsthm o del pacchetto theorem). Createne di nuovi solo se
necessario!
LAT X – p. 41/61
Miscellanea
◮ Usate \text{\ldots} (estensione amsmath) per mettere del testo in
una formula (preferitelo a \mbox{}).
◮ Usate gli environment theorem e proof per delimitare teoremi e
dimostrazioni. Sono personalizzabili e estendibili (guardate la
documentazione)
◮ Includete sempre le dimensioni quando specificate una lunghezza:
\setlenght{\parindent}{0pt} non
\setlenght{\parindent}{0} !!
LAT X – p. 42/61
La bibliografia
La migliore gestione dei riferimenti bibliografici in LATEX viene eseguita tramite
bibtex
La bibliografia è contenuta in files nomefile.bib seguendo un formato
predefinito.
Esempio: nel file biblio.bib è contenuto
◮ @Article{achdou00,
author= {Y. Achdou and J.L. Guermond},
title = {Convergence analysis of a finite element
projection/Lagrange-Galerkin method for the incompressibl
{N}avier-{S}tokes equations},
journal= {SIAM J. Num. Anal.},
year = 2000,
volume= 37,
number= 3,
pages = {799--826}
}
LAT X – p. 43/61
Richiamare la bibliografia
Nell’articolo \cite[achdou00] si analizza un metodo per
la risoluzione delle equazioni di Navier-Stokes ....
\bibliographystyle{plain}
\thebibliography{biblio}
...
\end{document}
Dopo aver compilato il file LATEX(supponiamo si chiami paper.tex) occorre
lanciare bibtex paper, questo comando produce un file paper.bbl con la
bibliografia che poi viene riletto e processato alla successiva compilazione di
paper. Una ulteriore compilazione di paper permette di aggiornare la
citazione nel testo.
LAT X – p. 44/61
Entries principali in un file BibTeX
article
book
inbook
incollection
inproceedings
phdthesis
techreport
unpublished
misc
Un articolo su rivista
Un libro
Una parte di un libro, p.es. un capitolo, che non
ha ne titolo ne autore separato
Una parte di un libro, p.es. un capitolo, che ha
un titolo e possibilmente un autore separato
Articolo in un proceedings di conferenza pubblicato, con nome e autore.
Il nome dice tutto
Un rapporto tecnico pubblicato da una istituzione (p.es.) un MOX Report
Un lavoro non pubblicato
Miscellanea.
LAT X – p. 45/61
Cose importanti da ricordare in un file BibTeX
◮ Non serve capitalizzare le iniziali delle lettere di un titolo di un libro. Ci
pensa lo stile bibtex a farlo. Proteggete sempre però tra parentesi graffe
le lettere che devono essere obbligatoriamente maiuscole (tranne quelle
dopo il punto). Es. {N}avier-{S}tokes
◮ I nomi degli autori vanno separati da and. Usate la forma
T.J.R. Hughes and J. Smith, o
T.~J.~R. Hughes and J. Smith o (meglio ancora)
Hughes, T.J.R. and Smith, J.
◮ Se una persona ha doppio cognome usate la forma
Lopez Fernandez, Miguel
◮ John Frink, Jr. si inserisce come Frink, Jr., John e D. van
Nostrand come D.~van Nostrand o van Nostrand, D..
◮ Usate le long dash -- (due trattini) per separare i numeri di pagina.
LAT X – p. 46/61
Le figure
In LATEX si distingue tra figure (ed in generale quelli che vengono chiamati
"floating environment" o semplicemente floats, come tabelle ed appunto
figure) ed il loro contenuto.
Una figura è un environment racchiuso tra \begin{figure} e
\end{figure}, con una sua contatore (chiamato figure anch’esso) che
viene posizionato nel testo secondo delle regole "estetiche" in parte
modificabili dall’utente tramite degli argomenti opzionali.
Il contatore viene visualizzato usando il comando (predefinito) \thefigure.
LATEX considera comunque le indicazioni dell’utente solo come suggerimenti e
segue comunque delle regole interne per posizionare le figure quindi non
sempre le mette dove uno se lo aspetta!
Il pacchetto float può essere usato per forzare il posizionamento della figura.
LAT X – p. 47/61
Un esempio di figura
Il comando
\begin{figure}[htbp]
\fbox{Questa, anche se non ci credete, è una FIGURA}
\caption{Una brutta figura}\label{fig:miafig}
Produce
Questa, anche se non ci credete, è una FIGURA
Figure 1: Una brutta figura
Come vedete una figura può contenere qualsiasi cosa, anche del semplice
testo, il comando caption vi permette di mettere la legenda.
ATTENZIONE: l’aggiornamento del contatore associato alla figura è legato al
comando caption, quindi una figura senza legenda NON è numerata
(nessuno ovviamente vi impedisce di mettere una legenda vuota).
LAT X – p. 48/61
Posizionare la figura
Le lettere h,t,b,p possono essere fornite come parametri opzionali (una o più
ed in agni ordine) per indicare il posizionamento preferito della figura. Esse
vengono processate con priorità corrispondente all’ordine con cui sono scritte.
Il significato e‘il seguente
b
h
fondo pagina
in questa posizione
t
p
testa pagina
in un pagina di sole figure
E‘ possibile anche usare piu‘ indicazioni, p.es htb, in tal caso LATEX le verifica
nell’ordine dato. Le indicazioni rappresentano solo dei “suggerimenti”,
LATEXpotrà scegliere un diverso posizionamento in accordo con le sue regole
“estetiche” predefinite.
Se volete forzarlo, precedete la lettera con un !.
LAT X – p. 49/61
Pacchetti addizionali per le figure
◮ wrapfig. Permette di immergere figure nel testo.
◮ rotfloat. Permette di girare figure.
Molti altri pacchetti sono disponibili, si veda la documentazione fornita.
LAT X – p. 50/61
Inserimento immagini grafiche
Spesso le figure contengono immagini grafiche. Esse vanno inserite usando
comandi speciali, quali includegraphics, fornito dal pacchetto graphicx.
\begin{figure}
\includegraphics[width=3.cm]{Figures/lion}
\end{figure}
carica il file Figures/lion.eps e produce
LAT X – p. 51/61
Principali opzioni di includegraphics
width=
height=
angle=
bbll=...
clip
fissa la larghezza dell’immagine, se height non è specificata
l’immagine mantiene l’aspetto di forma originale.
fissa l’altezza dell’immagine, se width non è specificata
l’immagine mantiene l’aspetto di forma originale.
ruota l’immagine (angoli in gradi)
Specifica il bounding box bbll specifica il punto lower left,
analogamente bblr, bbul, bbur
Clip sulla bounding box.
Il formato delle immagini utilizzabile in LATEXè solitamente Encapsulated
Postscript. Il pacchetto graphicx può però supportare anche altri formati (in
particolare pdf) Il supporto si basa sulla disponibilità di programmi esterni di
conversione.
LAT X – p. 52/61
Comandi principali (in Linux)
◮ latex filename. Lancia la compilazione sul file filename.tex
◮ xdvi filename. Visulaizza a schermo il file filename.dvi prodotto
dalla compilazione.
◮ dvips filename [-o]. Con l’opzione -o produce dal file filename.dvi
il file Postscript filename.ps. Se l’opzione non è presente il file viene
mandato in stampa sulal stampante di default e successivamente
cancellato.
◮ dvipdf filename [-o]. Produce dal file filename.dvi il file PDF
filename.pdf.
◮ pdflatex filename. Produce il PDF direttamente a partire dal file LATEX.
Attenzione le immagini devono anch’esse essere in formato PDF
(almeno nella versione attuale).
◮ bibtex filename. Lancia il tool per la bibliografia.
◮ makeindex filename. Crea l’indice analitico.
LAT X – p. 53/61
Altri comandi utili sotto linux
◮ epstopdf. COnverte file eps in figura pdf. Utile se si usa pdflatex
◮ convert Suite di convertitori grafici from anything to anything.
◮ ps2eps Converte una immagine in una pagina PostScript in una
immagine encapsulated postscript.
◮ acroread -toPostScript usa acrobat reader per produrre un
postscript da pdf.
◮ xfig. Un vecchio programma ancora molto utile per produrre semplici
figure e diagrammi. Esce direttamente in eps (e altri formati)
◮ inkscape Un programma per grafici vettoriali. Molto piú sofisticato di
xfig, ma più complesso.
◮ gimp. Il miglior clone di PhotoShop.
LAT X – p. 54/61
Documentazione predefinita: i files dtx
Quasi tutti i pacchetti sono documentati in files con estensione .dtx. In realtà
questi files permettono di generare sia i files .sty del pacchetto, sia la sua
documentazione.
Se la documentazione di LATEXè stata istallata e se l’istallazione di LATEXè
corretta il comando
latex file.dtx
compila il file di documentazione, producendo il relativo DVI. Provate con
latex graphicx.dtx
LAT X – p. 55/61
Altre informazioni
http://www.ctan.org/ctan/tex-archive/info/italian/lshort/ La Una (mica tanto)
breve introduzione a LATEX2e. Una buona introduzione iniziale.
tonno.tesre.bo.cnr.it/LaTex/ltx-2.html Un manuale on-line.
www.ctan.org Il sito CTAN: il posto dove vengono archiviati tutti i pacchetti
ufficiali.
www.latex-project.org Il progetto LATEX. Descrizione del progetto,
documentazione. link utili.
www.ams.org/tex/ Documentazione pacchetto AMS-LATEXche estende
LATEXintroducendo i simboli e le fonti tipografiche (e non solo) della American
Mathematical Society.
www-cs-faculty.stanford.edu/ knuth La pagina di Don Knuth, vale la pena di
darci un’occhiata: tutto è partito di qui!.
LAT X – p. 56/61
Ambienti di scrittura
LATEXpuò appoggiarsi ad ambienti di scrittura, eccone alcuni:
◮ In Windows: WinEdt è un ottimo shareware perLATEX. Richiede MiKTeX
e Ghostview. Scientific Word è invece un programma
commerciale che utilizza LATEX.
◮ In Linux: xemacs con il pacchetto auctex oppure kile
LAT X – p. 57/61
Auctex
Nel file di configurazione (.emacs o .xemacs)
(require ’tex-site)
(setq-default TeX-master nil)
LAT X – p. 58/61
Kile
LAT X – p. 59/61
Distribuzioni e texconfig
Le due distribuzioni principali attualmente sono texlive e miktex (per
Windows). Sono molto complete e contengono solo paccheti verificati. Altri
pacchetti si trovano sul sito CTAN già citato.
Le distribuzioni per linux forniscono un comando, texconfig, che permetet di
cambiare molte configurazioni di default. Normalmente bisogna essere
ammisnistratore dela macchina per poter usare una buona parte delle sue
funzionalità.
LAT X – p. 60/61
Altra documentazione
[1] Ogni installazione di LATEX dovrebbe offrire una cosiddetta LATEX Local
Guide nel file local.tex. In Linux, la documentazione è di solito in
/usr/share/texmf/doc
[2] LATEX3 Project Team. LATEX 2ε for Class and Package writers. È incluso
nella distribuzione di LATEX 2ε come clsguide.tex.
[3] LATEX3 Project Team. LATEX 2ε Font selection. È incluso nella distribuzione
di LATEX 2ε come fntguide.tex.
[4] D. P. Carlisle. Packages in the ‘graphics’ bundle. Si trova nel bundle
‘graphics’ come grfguide.tex.
[5] Keith Reckdahl. Using EPS Graphics in LATEX 2ε Documents, che spiega
tutto e molto più di quanto si possa desiderare conoscere in materia di
file EPS e del loro uso nei documenti LATEX. È disponibile online presso
CTAN:/tex-archive/info/epslatex.ps
LAT X – p. 61/61