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