TeX e LaTeX

I comandi di base

Displaystyle e textstyle

Sistemi di equazioni

Using the array environment to typeset a system of equation has the problem that the mathematics is in textstyle. Usually a student wants the displaystyle. Instead of using \texttt{\bs dfrac} and so on\ldots which produce the wrong vertical spacing, I suggest the following environment definition in the preamble of the document:

\begin{lstlisting}
\usepackage{mathtools}
\usepackage{cases}

\newenvironment{system*}%
{\begin{displaymath}\left\lbrace \begin{lgathered}}%
{\end{lgathered} \right. \end{displaymath}\ignorespacesafterend}

\newenvironment{system}[1][]%
{\begin{equation}#1\left\lbrace \begin{lgathered}}%
{\end{lgathered} \right. \end{equation}\ignorespacesafterend}

\newenvironment{subsystem}[1][]%
{\begin{subnumcases}{#1}}%
{\end{subnumcases}\ignorespacesafterend}
\end{lstlisting}

\texttt{system*} is for unnumbered systems, \texttt{system} for numbered systems with a number for the entire system and \texttt{subsystem} for numbered system with a subnumbered equations (1a, 1b,\ldots). The optional argument is used to attach a label to the system. Example of usage:

\begin{system}[\label{eq:nice_system}]
  a=b \\
  c=d
\end{system}

However if you do not want to load mathtools package you can use the aligned environment of the amsmath package (already loaded in sapthesis). Example:

\begin{equation}
  \label{eq:nice_system}
  \left\lbrace
  \begin{aligned}
    & a=b \\
    & c=d
  \end{aligned}
  \right.
\end{equation}

Notice the usage of the ampersand (\&) used to align to the left the content of the system.

Andare a capo

Gli oggetti matematici composti in displaystyle vengono considerati da LaTeX come degli oggetti unici pertanto non vengono spezzati né su righe, né su due pagine differenti. Questo può generare problemi di impaginazione nel momento che questi oggetti sono molto grandi.

Per andare a capo si possono usare gli ambienti messi a disposizione dal pacchetto amsmath. Per esempio multline, align o altri. Con questi ambienti dovete specificare a mano dove interrompere l'equazione. Nel caso le righe siano tante da dover aver bisogno di un cambio di pagina, allora si possono usare i comandi \allowdisplaybreak e \displaybreak, validi solo per gli ambienti di amsmath (non funzionano comunque con tutti gli ambienti di amsmath, vedere la documentazione). Bisogna però fare attenzione al fatto che le coppie di parentesi con \left \right non si possono spezzare tra righe diverse perché vanno bilanciate per riga. Per evitare questo problema o si chiudono/aprono ogni riga con \left. \right. oppure si usano gli specificatori di dimensione come \Bigl ecc... (che non necessitano di essere bilanciati) oppure si passa al pacchetto breqn.

Un'altra possibilità, più evoluta, è infatti quella di usare il nuovo pacchetto breqn. Si prefigge di spezzare equazioni lunghe su più righe senza alcun intervento manuale dell'utente.

Il pacchetto amsmath

Situazioni particolari

Bra e Ket

La notazione con i bra e i ket è usata principalmente dai fisici. In LaTeX spesso si ha la tentazione di scrivere il "ket a" come

$|a>$

Questo modo è però sbagliato perché il carattere ">" viene visto da LaTeX come un maggiore (come è giusto che sia) e pertanto si otterrà un brutto risultato visivo con le spaziature errate.

La maniera corretta di scrivere un ket e un bra è

$|a\rangle$   $\langle a|$

Questo modo di scrivere è molto pesante se il vostro documento fa largo uso di bra e ket, soprattutto se i delimitatori ("|", "\rangle", "\langle") devono scalare di dimensioni come il contenuto del bra o del ket. Esempio:

\[
\left| \frac{a}{2} \right\rangle
\]

In questo caso consiglio l'uso del pacchetto braket:

\usepackage{braket}

Questo comando definisce, senza bisogno di spiegazioni, i comandi

\bra{ }   \ket{ }   \braket{ }   \set{ }    (fixed versions)
\Bra{ }   \Ket{ }   \Braket{ }   \Set{ }    (expanding versions)

L'unico comando inaspettato è set. Permetto di scrivere gli insiemi, ad esempio: {x | |x|<1 }. Se si usa la versione espandibile di set, \Set, l'unica barra verticale che viene scalata è la prima.

Spezzare formule matematiche in linea

Le formule matematiche in linea vengono automaticamente spezzate in fin di riga. I parametri che controllano questo comportamento sono

\binoppenalty=....
\relpenalty=....

Al posto dei puntini va messo un numero compreso fra -10000 e 10000. Mettendo 10000 le formule in linea non verranno mai spezzate.

Quando TeX incontra una formula in linea, la elabora secondo quanto spiegato nella famosa Appendice G del TeXbook e poi la converte in una lista orizzontale che va a far parte del capoverso in cui si trova la formula. Durante questa conversione aggiunge dopo ogni simbolo di operazione binaria una penalità di valore \binoppenalty e dopo ogni simbolo di relazione una di valore \relpenalty. Non ci sono altri posti dove poter spezzare una formula, nemmeno gli spazi espliciti inseriti con "\ ".

Una penalità ha valori da -10000 a 10000; quelle negative indicano punti buoni dove spezzare, quelli positivi invitano a non farlo. Il valore -10000 forza TeX a spezzare la riga, 10000 lo impedisce. Valori minori di -10000 sono equivalenti a -10000 e, analogamente, valori maggiori di 10000 sono equivalenti a 10000. I valori normali di \binoppenalty e \relpenalty sono, rispettivamente, 700 e 500; quindi TeX non è molto propenso a spezzare una formula e lo fa meno malvolentieri dopo un simbolo di relazione.