LaTeX

LaTeX (scritto anche ; pronunciato , e non , perché la X è in realtà una chi maiuscola) è un linguaggio di marcatura per la preparazione di testi, basato sul programma di composizione tipografica ; la versione attuale è chiamata LaTeX2ε, mentre LaTeX3 è in corso di sviluppo.

Storia 
LaTeX venne creato nel 1985 da Leslie Lamport (adesso è mantenuto dal LaTeX project team) ed è divenuto il principale metodo di utilizzo di  — l'uso diretto di  base per la redazione di documenti è una circostanza rara.

Descrizione

Caratteristiche 
Fornisce funzioni di desktop publishing programmabili e mezzi per l'automazione della maggior parte della composizione tipografica, inclusa la numerazione, i riferimenti incrociati, tabelle e figure, organizzazione delle pagine, bibliografie e molto altro.

Oltre a documenti stampabili può inoltre produrre presentazioni della stessa resa grafica grazie alla classe Beamer.

È distribuito con una licenza di software libero e questo lo ha reso disponibile per praticamente qualsiasi architettura: ne esistono pertanto versioni funzionanti per tutti i sistemi operativi, tra cui anche Microsoft Windows, macOS e le varie distribuzioni Linux.

WYSIWYM in contrapposizione a WYSIWYG 
Al contrario di editor (o word processor) più conosciuti quali ad esempio Microsoft Word, WordPerfect, Works, Writer della suite LibreOffice (o OpenOffice.org), che si basano sul paradigma WYSIWYG (What You See Is What You Get, cioè ciò che vedi è quello che ottieni), con LaTeX si scrive un testo preoccupandosi essenzialmente del contenuto (della struttura) e non della forma.
Il testo del documento conterrà anche delle istruzioni (direttive di LaTeX): per ottenere l'output finale è necessario che tale sorgente sia poi compilata.

Questo approccio viene anche definito WYSIWYM (What You See Is What You Mean, cioè ciò che vedi è quello che intendi): con LaTeX l'autore inizialmente può occuparsi delle convenzioni da usare, ma una volta fissate queste, si può concentrare soltanto sul contenuto del testo. L'impaginazione, l'indice (generale e analitico), l'inserimento delle figure e delle tabelle sarà semi-automaticamente curato da LaTeX.

Il file prodotto da LaTeX era, in passato, esclusivamente in formato DVI (DeVice Independent). Grazie al contributo degli sviluppatori della comunità open source ora LaTeX è in grado di produrre un file nel più comune e diffuso standard PDF (Portable Document Format) e anche in HTML (le eventuali formule matematiche in esso presenti verranno incluse in formato grafico come se fossero immagini, se non in MathML).
È anche possibile, partendo da un file prodotto da LaTeX, ottenere un qualsiasi altro formato, anche .doc di Microsoft Word oppure un .odt (OpenDocument, usato da OpenOffice.org, LibreOffice...) o altro.

Le classi 
I documenti redatti con LaTeX possono essere scritti utilizzando diverse classi (che sono formati standard per alcuni tipi di documento):
 book, per realizzare libri
 article, per articoli, soprattutto scientifici
 letter per lettere
 report
 slides per creare presentazioni

Oltre alle classi standard qui sopra elencate, la comunità ha oggi a disposizione un numero enorme e costantemente in crescita di nuove classi scritte per andare espressamente incontro ad una specifica esigenza editoriale: classi per redigere un curriculum vitæ, per pubblicare un articolo scientifico su una specifica rivista, per realizzare presentazioni di elevata qualità estetica (ad esempio con la classe Beamer), ecc.

LaTeX lavora per ambienti e comandi; essi sono definiti sia dalle classi standard sia dai vari pacchetti (packages - moduli aggiuntivi che è possibile caricare al volo, on the fly) che si trovano sui siti dedicati che compongono la Comprehensive  Archive Network (CTAN).

Ognuna di queste classi ha (alcuni) comandi propri che sono incompatibili con le altre. Ad esempio, la direttiva \chapter{...} (che indica l'inizio di un capitolo) è propria della classe book ed è incompatibile con article e letter, che non hanno capitoli, ma soltanto sezioni (direttiva \section{...}). Alcune altre istruzioni sono invece d'ordine generale e possono essere usate senza problemi in ogni classe (ad esempio, istruzioni di enfasi (rilievo) come \emph{...}).

Utilizzo e diffusione 
Viene usato soprattutto da fisici, matematici, economisti, informatici, chimici, ingegneri e accademici (oltre ad avere un impiego commerciale).

Ha trovato un'ampia diffusione nel mondo accademico, grazie all'ottima gestione dell'impaginazione delle formule matematiche (anche il motore di Wikipedia utilizza LaTeX per il rendering delle formule) e alla gestione dei riferimenti bibliografici resa possibile dal progetto gemello BibTeX.

Esempio di utilizzo di LaTeX 
Una digressione su LaTeX e il suo macrolinguaggio non ha senso in queste pagine, perché si tratta di un linguaggio che richiede una certa pratica, impossibile da acquisire in poco tempo: per approfondimenti si rinvia al manuale LaTeX che è indicato più sotto.

Una formula in LaTeX 
Di seguito è riportato un esempio di scrittura di formula matematica.

Per ottenere l'espressione precedente occorre scrivere:
\[
\int_0^\infty f(x)\,dx \approx \sum_{i=1}^n w_i e^{x_i} f(x_i)
\]

In rete esiste un'amplissima documentazione sulle direttive LaTeX, anche in italiano.

LaTeX è inoltre lo standard nella scrittura di testi matematici e formule chimiche. Si possono inoltre preparare spartiti musicali grazie a macrolinguaggi basati su LaTeX come, ad esempio, MusiX.

Un esempio più complesso 

Soltanto per dare un'idea di com'è strutturato un documento in LaTeX, qui sotto è un esempio di sorgente per LaTeX scritto per ottenere un articolo standard:

\documentclass[a4paper,12pt]{article} % Prepara un documento per carta A4, con un font di dimensione 12pt

\usepackage[french,italian]{babel} % Adatta LaTeX alle convenzioni tipografiche italiane,
% e ridefinisce alcuni titoli in italiano, come "Capitolo" al posto di "Chapter",
% se il vostro documento è in italiano
% l'opzione  linguistica 'french' è necessaria per l'abilitazione della
% successiva istruzione <<\frenchspacing>> 
\usepackage[T1]{fontenc} % Riga da togliere se si compila con PDFLaTeX
\usepackage[utf8]{inputenc} % Consente l'uso caratteri accentati italiani

\frenchspacing % forza LaTeX ad una spaziatura uniforme, invece di lasciare più spazio
% alla fine dei punti fermi come da convenzione inglese: richiede opzione linguistica 'french'

\title{Esempio di documento in \LaTeX} % \LaTeX è una macro che compone il logo "LaTeX"
% I commenti (introdotti da %) vengono ignorati

\author{Mario Rossi}
\date{8 aprile 2002}
% in alternativa a \date il comando \today introduce la data di sistema.

\begin{document}
\maketitle % Genera il titolo sulle istruzioni  \title, \author e \date

\begin{abstract} % Questo è l'inizio dell'ambiente "abstract".
% L'ambiente abstract è fatto per contenere un riassunto del contenuto.
Breve dimostrazione dell'uso di \LaTeX.
\end{abstract} % Qui termina l'ambiente ''abstract''

\tableofcontents % Prepara l'indice generale

\section{Testo normale} %
È possibile scrivere il testo dell'articolo normalmente, ed 
\emph{enfatizzare} alcune parti del discorso. %
Una riga vuota nel testo indica la fine di un paragrafo.

Eppure ero sicuro di aver aggiunto altre frasi...

\section{Formule} %
La forza di \LaTeX\ sono però le formule, sia in linea (ad esempio \(y=x^2\))
 che messe in bella mostra in un'area propria:
\[y=\sqrt{x+y}\]

\section{Poesia} %
L'ambiente ``verse'' è usato per comporre tipograficamente le poesie:
\begin{verse}
La vispa Teresa avea tra l'erbetta\\ % la doppia barra inversa forza a capo
al volo sorpresa gentil farfalletta.
\end{verse}
\end{document}

Come si può notare, un documento si compone di due parti principali: il preambolo ed il corpo del documento vero e proprio. Nel preambolo sono contenute le istruzioni principali che verranno processate, ma non produrranno alcun output specifico: sono le istruzioni relative alla struttura del documento (la lingua, il formato della pagina, il numero di colonne, ...). Segue il corpo del documento vero e proprio, che è tutta la parte di testo compresa fra le istruzioni \begin{document} e \end{document}.

Il simbolo % introduce un commento, cioè una nota per il redattore che non viene inserita nel documento generato. I commenti possono iniziare in qualunque punto del documento, e terminano al primo carattere di "ritorno a capo" incontrato.

La "compilazione" 

Il file sorgente, pur essendo un file di testo puro, è per convenzione salvato con il suffisso .tex (oppure, più raramente, .ltx) come, ad esempio, miodocumento.tex.

Una volta scritto, il sorgente deve essere processato per creare il file PDF formattato. Si possono usare programmi con GUI, come LyX, oppure usare la riga di comando. Per mezzo del comando (il simbolo $ indica il prompt dei comandi)

 $ latex miodocumento.tex

Oltre a vari altri file, quali .aux, .log, .idx, viene generato anche un file .dvi (in formato DVI). Questo può essere letto direttamente tramite il programma Unix xdvi (oppure Yap o Windvi sotto Windows).

Se si desidera invece ottenere un file PostScript, bisogna, dopo aver prodotto il DVI, impartire il comando

 $ dvips -t -f miodocumento.dvi -o miodocumento.ps

che permette di ottenere il file PostScript miodocumento.ps (è necessario aver installato un interprete PostScript quale Ghostscript) — l'opzione -t è necessaria se il documento contiene pagine in formato landscape. Per visualizzare il file PostScript si può utilizzare il programma Unix gv.

Per ottenere un documento in formato PDF bisogna processare il file sorgente con il comando

 $ pdflatex miodocumento.tex

Se nel file sono presenti delle figure, esse devono, per essere processate correttamente con PDFLaTeX, essere salvate con il suffisso .png, .jpg oppure .pdf e non con il suffisso .ps o .eps, come invece è necessario per ottenere un file in PostScript.

Qualora siano stati introdotti errori (nella scrittura direttive), il processo di compilazione si blocca alla riga in cui compare l'errore: può avvenire, come nella programmazione, che l'errore non si trovi in quella riga ma si ripercuota su quella, e quindi è necessario cercarlo all'interno del sorgente.

La licenza di distribuzione 

LaTeX è software libero, coperto dalla LaTeX Project Public License (LPPL), una licenza incompatibile con la GNU General Public License, poiché richiede che le versioni modificate usino un nome di file modificato;
questo è stato fatto per far sì che i file non vengano danneggiati da modifiche inattese o da prodotti di terze parti. Una nuova versione della licenza LPPL compatibile con la GPL è in preparazione. La LPPL è conforme alle linee guida per il free software di Debian dalla versione 1.3 in avanti.

Note

Bibliografia

Voci correlate 
 
 TeX Live
 MiKTeX
 LuaTeX
 nroff
 groff (software)
 CTAN
 BibTeX
 Beamer
 LatexDraw

Editor per LaTeX 

 LyX
 Kile
 TeXShop (Mac OS X)
 TeXworks (Windows, GNU/Linux, Mac OS X)
 TeXstudio
 Texmaker
 TeXnicCenter
 Emacs con AUCTeX
 Flwriter

Macro per TeX o LaTeX 

 XyMTeX

Traduttore da LaTeX a XML 

 LaTeXML v. pagine nel sito di NIST

Estensione di LaTeX con markups semantici 

 sTeX v pagina del wiki MathWeb

Altri progetti

Collegamenti esterni 
 
  The Comprehensive TeX Archive Network Gli ultimi pacchetti e programmi associati a (La)TeX
 Installare LaTeX, (TeXLive 2014) su Ubuntu.
 Installare LaTeX, (TeXLive 2016) su Ubuntu.
 Installazione di TeXLive 2016, installazione di una versione di TeXLive su un OS Linux con distribuzione Slackware (corrente 14.2) risolvendo i conflitti col Perl; installazione di alcuni applicativi basilari (TeXstudio, JabRef, Geogebra) via sbopkg; file PDF
 
  Nonché  User Group italiano.
 Traduzioni di alcuni manuali tra cui Una breve introduzione a LaTeX2ε.
 
  Ottima introduzione a LaTeX2ε.
  Traduzione italiana della guida "The Not So Short Introduction to LaTeX2ε".
 
 
 
 
  Introduzione a LaTeX, rivolta sia a chi muove i primi passi con LaTeX sia a chi già lo conosce.
 
 
  LEd Editor LaTex con la funzione di suggerire i comandi durante la scrittura (utile per gli smemorati).
  Lyx Editor LaTex
  TeXworks Editor LaTeX (Windows, GNU/Linux, Mac OS X)
  LaTexDraw Editor grafico per le figure
  Texmaker (the universal LaTeX editor) editor LaTeX con diverse feature (Windows, GNU/Linux, Mac OS X)