Path: tempo.univ-lyon1.fr!univ-lyon1.fr!howland.erols.net!cpk-news-hub1.bbnplanet.com!news.gtei.net!opentransit.net!proxad.net!teaser.fr!fdn.fr!edgard.fdn.fr!not-for-mail
Date: 08 Jun 2001 13:31:18 +0200
Newsgroups: fr.comp.text.tex,fr.usenet.reponses
Subject: [FAQ] fr.comp.text.tex - parties 12 a 15
Message-ID: <faq-fctt-p420010608133118@edgard.fdn.fr>
X-Posted-By: poste.sh version 1.1
From: bayartb@edgard.fdn.fr (Nono le robot)
Supersedes: <faq-fctt-p420010501143416@edgard.fdn.fr>
Expires: 08 Jul 2001 13:31:17 +0200
Followup-To: poster
Organization: French Data Network
Approved: bayartb@edgard.fdn.fr
Lines: 2894
Xref: tempo.univ-lyon1.fr fr.comp.text.tex:23524 fr.usenet.reponses:20390

Archive-name: fr/faq-latex-francaise/part4

Author: Marie-Paule Kluth
Posting-Frequency: mensuel (monthly)
Version: 2.27

================================================================
  Cette FAQ, rédigée initialement par MP Kluth est maintenant
       tenue à jour autant que possible par B. Bayart et 
          plusieurs volontaires (voir question [30]).
================================================================

================================================================
[12] MATHÉMATIQUES
================================================================

# 12.1 # Comment passer en mode mathématique ?
----------------------------------------------
* Pour les mathématiques en ligne, il faut utiliser :
$ et $ ou
\( et \) ou
\begin{math} et \end{math}

Exemple :
Résoudre l'équation~:
$ 3 + 4 x = 0 $
%%%% fin exemple %%%%

* Pour les formules isolées, il faut utiliser les modes :
 $$ et $$ ou
 \[ et \] ou
 \begin{displaymath} et  \end{displaymath}.

Exemple :
Résoudre l'équation~:
$$
3 + 4 x = 0
$$
%%%% fin exemple %%%%

* Avec l'environnement \displaystyle, on peut quand même avoir
une formule de style isolée dans le texte mais cela modifie
localement les interlignes.

Exemple :
Texte texte texte texte texte texte texte texte texte texte
texte texte texte texte texte texte texte texte texte texte
texte texte texte texte texte texte texte texte texte texte
$\displaystyle \sum_{i=0}^n u_i $  texte texte texte texte
texte texte texte texte texte texte texte texte texte texte
%%%% fin exemple %%%%

* De même, on peut utiliser $\sum\limits{i=0}^n u_i$.

* Pour écrire des mathématiques sous LaTeX2e, les packages
'amsmath', disponible sur ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, et
'amssymb' sont incontournables. En LaTeX2.09, on peut utiliser
'amstex', disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/amstex/, 'amsby' et
'amsopn' mais il faut savoir que amstex est obsolète.

ATTENTION : en mode mathématique, la gestion des espaces et des
	    retours à la ligne est entièrement prise en charge
	    par LaTeX (cf. question 12.33). En outre, les lignes
	    vides ne sont pas autorisées.

# 12.2 # Qu'est que AMS-LaTeX ?
-------------------------------
AMS-TeX est un terme utilisé pour désigner un ensemble de
fichiers distribués par l'American Mathematical Society (AMS).
AMS-LaTeX s'appuie sur TeX et LaTeX2e. AMS-LaTeX est
principalement dû a F. Mittelbach et R. Schopf. C'est un outil
complémentaire à LaTeX pour écrire des mathématiques (il devient
d'ailleurs rapidement indispensable).

Il existe une FAQ disponible sur
ftp://ftp.fdn.org/pub/CTAN//macros/latex/packages/amslatex/math/amslatex.faq.

Les packages proposés sont 'amsmath' (complet), 'amstext' (pour
écrire du texte en mode mathématique), 'amsbsy' (pour les
symboles gras), 'amsopn' (pour la déclaration d'opérateurs),
'amsthm' (pour les environnements proof et theorem), 'amsintx'
(pour étendre la syntaxe des sommes et intégrales), 'amscd'
(pour les diagrammes commutatifs), 'amsxtra' et 'upref' (pour
les références croisées).

Ces packages sont disponibles par ftp sur
ftp://e-math.ams.org/pub/tex/amslatex/. Il faut également
récupérer les fontes associées dans
ftp://e-math.ams.org/pub/tex/amsfonts/,
ftp://e-math.ams.org/pub/tex/amsltx11/ et
ftp://e-math.ams.org/pub/tex/amstex/. Sur CTAN, les
répertoires correspondants sont
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/amslatex/, ftp://ftp.fdn.org/pub/CTAN/fonts/amsfonts/,
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/amslatex/ et
ftp://ftp.fdn.org/pub/CTAN/macros/amstex/.  Il existe également le site WEB
http://www.ams.org/tex.

# 12.3 # Comment écrire les symboles d'ensembles ?
--------------------------------------------------
Un peu d'histoire (T. Bouche) : au temps jadis, dans les livres,
les symboles d'ensemble étaient imprimés en gras pour qu'on les
voie bien. Problème, comment, lorsque l'on écrit sur un tableau
noir, maintenir ce type de distinction ? En fait, au lieu
d'écraser la craie avec force sur le tableau pour élargir un
trait, on a décidé de le doubler. Ce qui est comique, c'est
qu'en retour, les livres se sont mis à copier l'usage des profs,
et ont distingué le "gras" (bold), du "gras de tableau" qui est
une fonte à part (dessin normal à barre redoublée).

* Les symboles mathématiques d'ensemble et bien d'autres sont
disponibles par défaut dans les fontes AMS : famille msam
(e.g., msam10 pour 10pt) et msbm. Ces fontes sont disponibles
par ftp anonyme sur ftp://e-math.ams.org/pub/tex/amsfonts/ ou sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amsfonts/sources/symbols/. Pour avoir accès
aux symboles, il faut alors utiliser les packages 'amsfonts' et
'amssymb'.

Exemple :
soit on définit une commande spéciale (dans le préambule):
	\newcommand{\R}{\mathbb{R}}

et on utilise :

	$\R$

soit on tape directement :

	$\mathbb{R}$ (LaTeX2e) ou

	${\Bbb R}$ (LaTeX2.09)
%%%% fin exemple %%%%

* Si vous ne disposez pas des packages ams vous pouvez au grand
dam de certains puristes utiliser les commandes :
+ pour les naturels :
	\def\N{\mbox{I\hspace{-.15em}N}}
+ pour les entiers :
	\def\Z{\mbox{Z\hspace{-.3em}Z}}
+ pour les reels :
	\def\R\mbox{I\hspace{-.15em}R}}
+ pour les complexes :
	\def\C{\mbox{l\hspace{-.47em}C}}
+ ...

Il faut savoir dans ce cas que leur utilisation est limitée :
pas de mise en indice, exposant, etc.

* C. Fiorio (fiorio@math.tu-berlin.de) propose également un
certain nombre de macros (LaTeX2e) :

%%%% debut macro %%%%
%
%%  Les ensembles de nombres
%
\def\nbR{\ensuremath{\mathrm{I\!R}}} % IR
\def\nbN{\ensuremath{\mathrm{I\!N}}} % IN
\def\nbF{\ensuremath{\mathrm{I\!F}}} % IF
\def\nbH{\ensuremath{\mathrm{I\!H}}} % IH
\def\nbK{\ensuremath{\mathrm{I\!K}}} % IK
\def\nbL{\ensuremath{\mathrm{I\!L}}} % IL
\def\nbM{\ensuremath{\mathrm{I\!M}}} % IM
\def\nbP{\ensuremath{\mathrm{I\!P}}} % IP
%
% \nbOne : 1I : symbol one
\def\nbOne{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}
{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}
%
% \nbC   :  Nombres Complexes
\def\nbC{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}%
\hbox{\hbox to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}}
%
% \nbQ   : Nombres Rationnels Q
\def\nbQ{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}}
%
% \nbT   : T
\def\nbT{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}}
%
% \nbS   : S
\def\nbS{{\mathchoice
{\setbox0=\hbox{$\displaystyle     \rm S$}\hbox{\raise0.5\ht0%
\hbox to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle        \rm S$}\hbox{\raise0.5\ht0%
\hbox to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle      \rm S$}\hbox{\raise0.5\ht0%
\hboxto0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0%
\hbox to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0%
\hboxto0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0%
\hbox to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
%
% \nbZ   : Entiers Relatifs Z
\def\nbZ{{\mathchoice {\hbox{$\sf\textstyle Z\kern-0.4em Z$}}
{\hbox{$\sf\textstyle Z\kern-0.4em Z$}}
{\hbox{$\sf\scriptstyle Z\kern-0.3em Z$}}
{\hbox{$\sf\scriptscriptstyle Z\kern-0.2em Z$}}}}
%%%% fin macro %%%%

Exemple :
$ \nbN $ pour les entiers naturels
%%%% fin exemple %%%%

* Autres alternatives :
en metafont:
+ les fontes 'bbold' d'A. Jeffrey (une sorte de Futura vraiment
doublé par endroit, pas détouré - mais du coup pas du tout du
même style que les autres lettres du mode mathématique)

Exemple :
\font\bbold=bbold12
\newcommand{\R}{\mbox{\bbold R}}
%%%% fin exemple %%%%

en postscript  (produits commerciaux)
+ dextor outline
+ Mathematical Pi (une sorte d'helvetica doublé par endroit)

* Le package 'bbm' disponible sur ftp://ftp.fdn.org/pub/CTAN/fonts/cm/bbm/
propose certaines variantes pour les fontes Computer Modern.

# 12.4 # Comment numéroter les équations ?
------------------------------------------
* Sous LaTeX2e, les options de classe leqno et fleqn permettent
d'indiquer si les numéros d'équations doivent apparaître à
droite ou à gauche des équations.

Exemple, pour que les numéros apparaîssent à gauche :
\documentclass[leqno]{report}
\begin{document}
\begin{eqnarray}
   x + 4 & =  & 0 \\
   8 - y & =  & 0
\end{eqnarray}
%%%% fin exemple %%%%

* Pour supprimer la numérotation des équations, il suffit
d'ajouter le caractère * aux noms des environnements d'équation.

Exemple :
\begin{eqnarray*}
   x + 4 & =  & 0 \\
   8 - y & =  & 0
\end{eqnarray*}
%%%% fin exemple %%%%

* Pour supprimer la numérotation d'une ligne particulière dans
un groupe d'équations, il suffit d'utiliser la commande
\nonumber (avant les \\). Avec amsmath, il faut utiliser \notag.

* Pour réinitialiser le compteur d'équations dans chaque
section, il faut inclure :
%%%% debut macro %%%%
\makeatletter
\renewcommand\theequation{\thesection.\arabic{equation}}
\@addtoreset{equation}{section}
\makeatother
%%%% fin macro %%%%
dans le préambule.

Remarque : dans ce cas, il ne faut pas mettre d'équation dans un
	   chapitre avant la première section sous peine d'avoir
	   un numéro du style 3.0.1.

* Pour modifier le style de numérotation, il faut modifier la
commande \theequation.

Exemple 1 :
\documentclass{report}
\usepackage{french}
\pagestyle{empty}
\renewcommand{\theequation}{\thesection \Alph{equation}}
\begin{document}
\chapter{Systèmes d'équations.}
   \section{À une variable.}
      \begin{eqnarray}
	 x + 4 & =  & 0 \\
	  x & =  & 3
      \end{eqnarray}
   \section{À deux variables.}
      \begin{eqnarray}
	 x + 4 & =  & 0 \\
	 8 - y & =  & 0
      \end{eqnarray}
\end{document}
%%%% fin exemple %%%%

Exemple 2 (pour avoir les numéros entre crochets) :
\makeatletter
\renewcommand{\@eqnnum}{{\normalfont\normalcolor\theequation}}
\renewcommand{\theequation}{[\arabic{equation}]}
\makeatother

\begin{document}
      \begin{eqnarray}
	 x + 4 & =  & 0 \\
	 y - 2 & =  & 0
      \end{eqnarray}
%%%% fin exemple %%%%

* Avec le package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, la commande \numberwithin permet de
numéroter les équations suivant le paragraphe auquel elles
appartiennent. Il faut alors appeler :
\numberwithin{equation}{section} dans le préambule.

* Les packages 'seceqn' et 'apeqnum' disponibles sur CTAN
permettent pour le premier de numéroter les équations par
section et pour le second de numéroter individuellement les
équations dans les annexes.

* Le package 'deleq' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/ ou sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/deleq/ permet de définir un label
par groupe d'équations (4) en plus des labels individuels de
type (4a), (4b), etc.

* La commande \tag{xxx} du package 'amsmath' sous LaTeX2e permet
de personnaliser la numérotation des équations.

Exemple : pour permettre à deux équations d'avoir le même
numéro :
\begin{equation}
  x - y = 0
  \label{equa}
\end{equation}
...
\begin{equation}
  x = y
  \tag{\eqref{equa}}
\end{equation}
%%%% fin exemple %%%%

Remarque : \eqref remplace \ref pour les équations : la fonte
	   utilisée est toujours la même (c'est plus beau).

* Les environnements subequations (du package 'amsmath') et
subeqnarray (du package 'subeqnarray') permettent de référencer
différentes lignes d'un même groupe d'équations par des indices
(3.a), (3.b), etc.
+ Sous subequations, une référence à une ligne particulière
s'obtient alors par un \label placé sur cette ligne alors qu'une
référence au système d'équation s'obtient par un \label placé
immédiatement après \begin{subequations}.

Exemple :
\begin{subequations} \label{E:gp}
  \begin{gather}
    x_1 x_2 + x_1^2 x_2^2 + x_3 \label{E:gp1} \\
    x_1 x_3 + x_1^2 x_3^2 + x_2 \label{E:gp2} \\
    x_1 x_2 x_3 \label{E:gp3}
  \end{gather}
\end{subequations}

[...]

Voir le système~\ref{E-gp} et en particulier
l'équation~\ref{E-gp2}.
%%%% fin exemple %%%%

Remarque : c'est le \\ qui incrémente le compteur des
	   sous-références.

+ Sous subeqnarray une référence à une ligne particulière se
fait alors par \slabel au lieu de \label.

# 12.5 # Comment aligner des équations ?
----------------------------------------
* Pour aligner des équations sur un signe de relation, il suffit
sous LaTeX d'appeler l'environnement eqnarray avec ou sans la
commande \lefteqn ou si l'on dispose du package
'amsmath', disponible sur ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/,
d'utiliser un des environnements split, multline, align ou
flalign.

Exemples :

\begin{align}
   f(x) & = & x^2 + 8x + 16 \\
   & = & (x+4)^2
\end{align}

\begin{eqnarray}
   \lefteqn{x + 3y - 6z} \\
   & = & -4a + 5b -7b \\
   & = & -4a - 2b
\end{eqnarray}

\begin{align}
   \begin{split}
      A &= B + C + D + E + F + G \\
      &\quad + H + I
   \end{split} \\
   F &= G + H
\end{align}
%%%% fin exemple %%%%

 * L'environnement equationarray du package 'eqnarray' associe
 les  avantages des environnements eqnarray et array. Il n'est
 pas  limité en nombre de colonnes.

* Pour produire le système d'équations suivant :
	 x  = y  + z
	 x1 = y1 + z1
on peut utiliser l'environnement alignat du package 'amsmath'.
Toutefois, il faut noter que cet environnement est alors
détourné de son utilisation normale. En effet, ce dernier est
prévu pour aligner des objets différents sur des colonnes
alternativement justifiées à droite puis à gauche. L'utilisation
de colonnes vides permet alors de choisir la justification
voulue. D'autre part l'utilisation de {} permet d'obtenir des
espacements "normaux".

Exemple :
\begin{alignat}{2}
   x & = y &&+ z\\
   x_1 & = y_1 &&+ z_1
\end{alignat}

\begin{alignat}{5}
    10a& ={}&  3x&& 3y& +{}& 18z&& 2w&\\
     6a& ={}& 17x&&   & +{}&  5z&& 19w&
\end{alignat}
%%%% fin exemple %%%%

* Le package 'mathenv' disponible sur CTAN propose un éventail
d'environnements mathématiques pour aligner des entités en
colonne.

# 12.6 # Comment générer des vecteurs ?
---------------------------------------
* Il suffit d'utiliser le package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, et d'appeler la commande
\overrightarrow.

Exemple :
Le vecteur $\overrightarrow{u}$
%%%% fin exemple %%%%

* On peut également définir ses propres flèches notamment pour
régler leur hauteur par rapport aux lettres qu'elles surmontent.
La solution présentée ci-dessous utilise les packages 'amsmath',
'amssymb' et 'xy' :
%%%% debut macro %%%%
\newcommand{\xyflecheverladroite}
{\mbox{\xymatrix{*{\hphantom{OM}}\ar[]+L;[]+R}}}

\newcommand{\ra}[1]
{\mathchoice
{\overset{\mbox{\xymatrix{*{\hphantom{\displaystyle #1}}
\ar[]+L;[]+R}}}{\displaystyle #1}}%
{\overset{\mbox{\xymatrix{*{\hphantom{\textstyle #1}}
\ar[]+L;[]+R}}}{\textstyle #1}}%
{\overset{\mbox{\xymatrix{*{\hphantom{\scriptstyle #1}}
\ar[]+L;[]+R}}}{\scriptstyle #1}}%
{\overset{\mbox{\xymatrix{*{\hphantom{\scriptscriptstyle #1}}
\ar[]+L;[]+R}}}{\scriptscriptstyle #1}}% }

%Pour changer la distance de la flèche, on peut procéder ainsi.
%\renewcommand{\ra}[1]
%{\overset{\raisebox{-1pt}{\mbox{\xymatrix{*{\hphantom{#1}}
%\ar[]+L;[]+R}}}}{#1}}
%%%% fin macro %%%%

Exemples :
$$ \ra{OM} $$
$\ra{OM}$
$\ra{OM_i}$
$$ \ra{OM} _{\ra{OM}_{\ra{OM}}}$$
%%%% fin exemple %%%%

* Le package 'vector', de N. Efford, est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/vector/. Il offre notamment
un certain nombre de vecteurs utiles aux physiciens et des
commandes automatiques d'énumération des coordonnées.

Exemple :
$(\irvec[4]x)$

$\bvec{y} = \left[ \cvec{y}{0}{3} \right]$
%%%% fin exemple %%%%

* Le package 'easyvector' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ permet de définir des
vecteurs suivant une syntaxe de type C.

# 12.7 # Comment écrire du texte en mode mathématique ?
-------------------------------------------------------
* La commande \text{xxx} du package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, permet d'inclure du texte dans
une formule mathématique sans que les accents et les espacements
mathématiques ne soient nécessaires.

* La commande \textrm{xxx} du package 'amsmath' (ou amstext)
permet en outre de prendre en compte la taille de la fonte
courante.

Exemple :
La fonction~: $ f_{\textrm{tracage}}  $ sert au tracé de
courbes.
%%%% fin exemple %%%%

* Il est également possible d'utiliser la commande \mbox.

Remarque : aucune de ces commandes ne gère les retours à la
	   ligne en fin de ligne.

# 12.8 # Comment ajuster la taille de délimiteurs ?
---------------------------------------------------
* Pour ajuster la taille de délimiteurs tels que les
parenthèses, les accolades, etc, il suffit d'utiliser les
commandes \left et \right.

Remarque : si l'on veut utiliser un seul délimiteur (sans son
	   symétrique) il faut utiliser \right. en fermeture.

Exemples :
$\left( \frac{1}{2} \right)$

$\left \{ \mathrm{et} \right \}$

Résoudre le système~:
\[
\left \{
\begin{array}{ccc}
   x + y & = & 0 \\
   x - y & = & 0
\end{array}
\right.
\]
%%%% fin exemple %%%%

Remarque : Pour changer la taille des délimiteurs de façon
	   relative à la taille des données qu'ils encadrent,
	   c'est le paramètre \delimitershortfall qui est
	   utilisé. Lorsqu'il vaut 0pt, les délimiteurs qu'il
	   contrôle sont au plus aussi grands que le contenu
	   qu'ils encadrent ; pour que les délimiteurs puissent
	   être plus grands que leur contenu, il faut donner une
	   valeur négative à \delimitershortfall.

* Pour imposer son propre choix de taille de délimiteurs
notamment pour des délimiteurs imbriqués, il existe les
commandes \big, \Big, \bigg et \Bigg.

Exemples :
$\Big( (x+1) (x-1) \Big) ^{2}$

$\big\{\Big\{\bigg\{\Bigg\{$
%%%% fin exemple %%%%

# 12.9 # Comment changer de fonte en mode mathématique ?
--------------------------------------------------------
* Il faut utiliser les packages 'amsmath' ou 'amssymb' puis :
+ pour du gothique
\frak{Texte} en LaTeX2.09
\mathfrak{Texte} en LaTeX2e

+ pour du caligraphique gras :
\boldsymbol{\mathcal{TEXTE}}
on peut aussi générer tout l'alphabet correspondant :
\DeclareSymbolFont{boldsymbols}{OMS}{cmsy}{b}{n}
\DeclareSymbolFontAlphabet{\mathbfcal}{boldsymbols}
puis utiliser la commande \mathbfcal

Remarque : La commande \mathcal ne marche qu'avec des
	   majuscules.

+ pour du gras italique :
\DeclareMathAlphabet\mbi{OML}{cmm}{b}{it}
ou
\DeclareSymbolFont{mathbold}{OML}{cmm}{b}{it}
\DeclareMathSymbol{\biGamma}{\mathord}{mathbold}{0}

+ pour des symboles en gras :
\boldsymbol{\alpha}
ou
\DeclareSymbolFont{mathbold}{OML}{cmm}{b}{it}
\DeclareMathSymbol{\balpha}{\mathord}{mathbold}{11}

Remarque : si cela ne marche pas, c'est que les caractères gras
	   correspondants n'existent pas. Il faut alors soit
	   utiliser la commande \pmb{...} soit utiliser un
	   package supplémentaire tel que 'amsbsy'. Il existe
	   par ailleurs des versions postscript de fontes AMS
	   disponibles sur CTAN.

* Sous LaTeX2e, il existe un certain nombre de commandes de
changement de fonte. Il s'agit de :
+ mathcal pour du calligraphique (argument en majuscule),
+ mathrm pour du roman,
+ mathbf pour du gras,
+ mathsf pour du sans serif,
+ mathtt pour du typewriter (machine à écrire),
+ mathnormal pour revenir à la fonte par défaut,
+ mathit pour de l'italique.

* Pour écrire toute une formule en gras, on peut aussi utiliser
la commande \mathversion{xxx} de LaTeX2e. xxx peut valoir bold
ou normal.

Exemple :
Une formule importante~:
\mathversion{bold}
$$\sum_{i=0}^n u_i + v_i$$

Une formule moins importante~:
\mathversion{normal}
$$\sum_{i=0}^n v_i$$
%%%% fin exemple %%%%

* Le package 'bm' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/bm/ permet de bien gérer les
symboles mathématiques en gras.

# 12.10 # Comment obtenir le L de la transformée de Laplace ?
-------------------------------------------------------------
Pour obtenir le L de la transformée de Laplace, il faut
utiliser le package 'mathrsfs' puis la commande
\renewcommand{\L}{\mathscr{L}}.

Remarque : ce package fait appel à des fontes particulières
	   qu'il faut également installer.

# 12.11 # Comment réaliser un tableau en mode mathématique ?
------------------------------------------------------------

Il faut utiliser l'environnement array.

Exemple :
Résultats~:
\[
\begin{array}{|c @=c|}
   \hline
   \alpha + \beta & 12 \\
   \hline
   \sqrt{\gamma} & 36 \\
   \hline
\end{array}
\]
%%%% fin exemple %%%%

# 12.12 # Comment obtenir d'autres symboles mathématiques ?
-----------------------------------------------------------
* LaTeX propose un grand nombre de commandes de symboles.

+ pour les opérateurs binaires :
   \pm       \cap       \diamond          \oplus
   \mp       \cup       \bigtriangleup    \ominus
   \times    \uplus     \bigtriangledown  \otimes
   \div      \sqcap     \triangleleft     \oslash
   \ast      \sqcup     \triangleright    \odot
   \star     \vee       \wedge            \bigcirc
   \dagger   \setminus  \amalg            \circ
   \ddagger  \cdot      \wr               \bullet
   \lhd      \rhd       \unlhd            \unrhd

+ pour les opérateurs de relation :
   \leq         \geq         \equiv   \models
   \prec        \succ        \sim     \perp
   \preceq      \succeq      \simeq   \mid
   \ll          \gg          \asymp   \parallel
   \subset      \supset      \approx  \bowtie
   \subseteq    \supseteq    \cong    \Join
   \sqsubset    \sqsupset    \neq     \smile
   \sqsubseteq  \sqsupseteq  \doteq   \frown
   \in          \ni          \propto
   \vdash       \dashv

+ pour les opérateurs fléchés :
   \leftarrow          \longleftarrow        \uparrow
   \Leftarrow          \Longleftarrow        \Uparrow
   \rightarrow         \longrightarrow       \downarrow
   \Rightarrow         \Longrightarrow       \Downarrow
   \leftrightarrow     \longleftrightarrow   \updownarrow
   \Leftrightarrow     \Longleftrightarrow   \Updownarrow
   \mapsto             \longmapsto           \nearrow
   \hookleftarrow      \hookrightarrow       \searrow
   \leftharpoonup      \rightharpoonup       \swarrow
   \leftharpoondown    \rightharpoondown     \nwarrow
   \rightleftharpoons  \leadsto

+ autres opérateurs :
   \sum      \bigcap      \bigodot
   \prod     \bigcup      \bigotimes
   \coprod   \bigsqcup    \bigoplus
   \int      \bigvee      \biguplus
   \oint     \bigwedge

+ autres symboles :
   \aleph   \prime      \forall      \infty
   \hbar    \emptyset   \exists      \Box
   \imath   \nabla      \neg         \Diamond
   \jmath   \surd       \flat        \triangle
   \ell     \top        \natural     \clubsuit
   \wp      \bot        \sharp       \diamondsuit
   \Re      \|          \backslash   \heartsuit
   \Im      \angle      \partial     \spadesuit
   \mho

* Des symboles mathématiques supplémentaires (en plus de ceux
offerts par amsmath) sont disponibles dans les packages
'stmaryrd' disponible sur ftp://ftp.fdn.org/pub/CTAN/fonts/stmaryrd/, et
'yhmath' également disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/yhmath/.

# 12.13 # Comment définir une fonction ?
----------------------------------------
* Il existe un certain nombre de fonctions définies par défaut.
Il  s'agit des fonctions :
 \arccos  \cos   \csc  \exp   \ker     \limsup  \min   \sinh
 \arcsin  \cosh  \deg  \gcd   \lg      \ln      \Pr    \sup
 \arctan  \cot   \det  \hom   \lim     \log     \sec   \tan
 \arg     \coth  \dim  \inf   \liminf  \max     \sin   \tanh

* On peut utiliser la commande \mathop :
\newcommand{\fonction}{\mathop{fonction}}
Si on utilise en plus la commande \nolimits, on peut déterminer
la gestion des indices et exposants de cette fonction.

Exemple :
\newcommand{\rad}{\mathop{\mathrm{rad}}}
\newcommand{\radn}{\mathop{\mathrm{rad}}\nolimits}

\begin{document}
\[
\alpha \rad_{t \rightarrow \infty} = 0
\]

\[
\alpha \radn_{t \rightarrow \infty} = 0
\]
\newcommand{\rad}{\mathop{\mathrm{rad}}}
\newcommand{\radn}{\mathop{\mathrm{rad}}\nolimits}

\begin{document}
\[
\alpha \rad_{t \rightarrow \infty} = 0
\]

\[
\alpha \radn_{t \rightarrow \infty} = 0
\]
\end{document}
%%%% fin exemple %%%%

* Sous LaTeX2e, le package 'amsopn' est disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/ et par ftp sur
ftp://e-math.ams.org/pub/tex/amslatex/inputs/.  Il permet
de déclarer de nouvelles fonctions qui seront gérées comme une
fonction mathématique (gestion de la fonte, disposition des
indices et exposants, etc).  Pour cela il faut déclarer une
commande du type : \DeclareMathOperator{\fonction}{fonction} dans
le préambule du document. Pour que les indices et exposants de la
nouvelle fonction puissent être géres comme ceux de la fonction
\sum , il faut alors plutot utiliser \DeclareMathOperator*.

* De même, le package 'amstex' (LaTeX2.09) définit les commandes
\operatorname et \operatornamewithlimits.

Exemple :
$\operatorname{rad}$
%%%% fin exemple %%%%

# 12.14 # Comment définir une matrice ?
---------------------------------------
* Il suffit de construire un tableau sans lignes avec
l'environnement array.

Exemple :
\[
\begin{array}{ccc}
   x_{11} & \cdots & x_{1p} \\
   \vdots & \ddots & \vdots \\
   x_{n1} & \cdots & x_{np}
\end{array}
\]
%%%% fin exemple %%%%

Pour encadrer cette matrice avec des délimiteurs, cf.
paragraphe 12.8.

* Le package 'amsmath',disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, permet de définir une matrice de manière
plus rapide qu'avec l'environnement array. Les environnements
disponibles sont :
+ matrix,
+ pmatrix pour une matrice encadrée par des parenthèses,
+ bmatrix pour une matrice encadrée par des crochets,
+ vmatrix pour une matrice encadrée par des lignes verticales,
+ Vmatrix pour une matrice encadrée par des doubles lignes
verticales.

Exemple :
\[
\begin{pmatrix}
         a & b \\
         c & d
\end{pmatrix}
\]
%%%% fin exemple %%%%

* Le package 'easybmat' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ permet facilement d'écrire
des matrices par bloc.

* Le package 'easymat' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ facilite également
l'écriture de matrices.

# 12.15 # Comment encadrer des formules ?
-----------------------------------------
* Le package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, offre la commande \boxed.

Exemple :
$$\boxed{a=b}$$
%%%% fin exemple %%%%

* Il existe également la commande \fbox.

Remarque : Avec les environnements multi-lignes de AMSTeX (comme
	   multline ou split), il peut être utile de les
	   encapsuler dans un math ou dans un displaymath.

Exemple :
\begin{equation}
   \fbox{$
   \begin{array}{rcl}
      x + y + z & = & 0 \\
      2x + 2y + 2z & = & 0
   \end{array}
   $}
\end{equation}
%%%% fin exemple %%%%

* Le package 'fancybox' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/seminar/inputs/ peut également être
utile.

Exemple :
\linethickness{3pt}
\Ovalbox{
\begin{Beqnarray}
ds^2&\,=\,& \displaystyle{\frac{\epsilon^{\prime 2}}{L^2}
\frac{12N}{(N+1)(N+2)}}
\end{Beqnarray}
}
%%%% fin exemple %%%%

* Une dernière solution consiste à mettre la formule dans un
tableau d'une seule cellule.

# 12.16 # Comment ajuster la longueur d'une flèche par rapport à un texte ?
---------------------------------------------------------------------------
Le package 'amsmath',disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, permet de générer des flèches dont la
longueur dépend de la longueur du texte qui est placé au dessus
ou en dessous (ou de la chaîne la plus longue lorsqu'il y a à la
fois un texte au dessus et un autre en dessous).

Exemple :
$\xrightarrow[\text{au dessus}]{\text{en dessous}}$
%%%% fin exemple %%%%

# 12.17 # Comment obtenir des indices ou exposants à gauche ?
-------------------------------------------------------------
* Les commandes \sideset \overset et \underset du
package 'amsmath' permettent de placer du texte à gauche, en
haut ou en bas.

Exemple, mettre dans le préambule :
\newcommand{\transposee}[1]{{\vphantom{#1}}^{\mathit t}{#1}}

puis, dans le corps du document :
 \[
\transposee{
\begin{pmatrix}
   a & b \\
   c & d \\
\end{pmatrix}
}
\]
%%%% fin exemple %%%%

Remarque : on peut également utiliser \sideset qui ne marche
	   que pour les opérateurs :
	   \newcommand{\transposee}[1]{\sideset{^{\mathit{t}}}{}
	   {#1}}

* A défaut, on peut utiliser ${}_{j}H$ ou  ${_jH}$

* Le package 'chemsym' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/chemsym/ peut également être utile.

# 12.18 # Comment tracer des diagrammes commutatifs ?
-----------------------------------------------------
* Xy-pic est un outil simple et puissant qui permet de réaliser
de tels diagrammes (cf. paragraphe 8.6).

Exemple :
\documentclass[a4paper,12pt]{article}
\usepackage[all]{xy}
\begin{document}
 \[\xymatrix{
  A \ar[d] \ar[r] \ar@{=}[rd] & B \ar[d] \\
  C \ar[r] & D }
\]
\end{document}
%%%% fin exemple %%%%

* On peut également utiliser le package 'amscd' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/amslatex/math/ ou plus
généralement le package 'amsmath' et l'environnement CD mais
son offre est plus limitée.

Exemple 1 (amscd) :
\[
\begin{CD}
   \mathcal{F} @>\otimes>> T\\
   @VdrVlfV @ViVjV\\
   \mathtt{f} @= t
\end{CD}
\]

\[
\begin{CD}
d @>>> e @>>> f \\
@AAA @. @AAA \\
a @>>> b @>>> c
\end{CD}
\]
%%%% fin exemple %%%%

Exemple 2 (amsmath) :
\[
\begin{array}{ccccc}
d & \longrightarrow & e & \longrightarrow &f \\
\uparrow &&&& \uparrow \\
a & \longrightarrow & b &\longrightarrow& c\\
\end{array}
\]
%%%% fin exemple %%%%

Remarque : dans la dernière version de amscd, la syntaxe
	   @>Exp1>Exp2> utilisée pour les flèches extensibles a
	   été abandonnée au profit des commandes \xleftarrow et
	   \xrightarrow.

	   Pour plus de détails consultez :
	   + "\amslatex/ Version 1.2\\User's Guide", dans le
	   fichier "amsldoc.tex"
	   + "Differences between \amslatex/ version 1.1 and
	   \amslatex/ version 1.2", dans le fichier "diff12.tex".

* Il existe le package 'cd' écrit pour LaTeX2.09 par D.
Hankerson. Ce package étend les capacités des fonction
AMS-TeX. Les longueurs de texte s'ajustent avec la longueur des
arguments.

Exemple (doc package) :
\documentstyle[12pt,cd]{article}
\newcommand{\cdrl}{\cd\rightleftarrows}
\newcommand{\cdlr}{\cd\leftrightarrows}
\newcommand{\cdr}{\cd\rightarrow}
\newcommand{\cdl}{\cd\leftarrow}
\newcommand{\cdu}{\cd\uparrow}
\newcommand{\cdd}{\cd\downarrow}
\newcommand{\cdud}{\cd\updownarrows}
\newcommand{\cddu}{\cd\downuparrows}
\begin{document}
\[\CD
G \cdrl {\gamma}{\delta} H \cdr {}{\Delta} K \\
\cd. \cdud {f}{g} \cd| {h}{k} \\
0 \cdr {}{} G' \cd= {\beta}{} H' \endCD
\]
\end{document}
%%%% fin exemple %%%%

* Le package 'catmac' définit un ensemble de macros pour tracer
des diagrammes commutatifs. Il propose par défaut un ensemble
de formes mais permet également via un certain nombre de
macros prédéfinies de composer ses propres formes.

Exemple :
\begin{center}
   \resetparms
   \square[A`B`C`D;f`g`h`k]
\end{center}
%%%% fin exemple %%%%

ATTENTION : ce package n'est pas compatible avec le package
	    french qui rend le ; actif.

# 12.19 # Comment ajuster la taille de certains opérateurs ?
------------------------------------------------------------
* Pour ajuster la taille de certains opérateurs, il faut
utiliser le package 'exscale' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/base/.

* Le package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, donne la même possibilité.

# 12.20 # Comment mettre en page des algorithmes ?
--------------------------------------------------
* Les packages 'algorithms' et 'algorithmic' disponibles sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/algorithms/, ont été
spécifiquement conçus pour mettre en forme des algorithmes.

* Il existe aussi le package 'alg' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/alg/.

* Le package 'newalg' est également disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/newalg/. Il propose un
environnement algorithm qui par défaut utilise le mode
mathématique et l'environnement array pour les alignements. La
commande \text est également disponible. Le package gère les
instructions : if-then-else, for, while, repeat, switch et
propose un certain nombre de macros telles que call, error,
algkey, return, nil.

Exemple :
\begin{algorithm}{StrictSup}{x, y}
   \begin{IF}{x > y}
      \RETURN x
   \ELSE
      \ERROR{x leq y}
  \end{IF}
\end{algorithm}
%%%% fin exemple %%%%

# 12.21 # Comment mettre en page des formules longues ?
-------------------------------------------------------
L. Lamport définit certaines conventions dans sa page WEB :
http://www.research.digital.com/SRC/personal/Leslie_Lamport/latex/latex.html.

# 12.22 # Comment créer des unités de mesure ?
----------------------------------------------
Le problème du mode mathématique est qu'il change
automatiquement de fonte et qu'il utilise une gestion
particulière des espaces. Le mieux pour écrire des unités de
mesures du type m/s sans avoir à taper systématiquement des
barbarismes du type \rm\,m/s\mit ou \,\textrm{m}/\textrm{s} est
de définir une commande spéciale dans le préambule du document.

Exemples :
\newcommand{\units}[2]{#1\textrm{\thinspace #2}}
cette commande nécessite le package 'amsmath'
utilisation : \units{10}{m/s}

ou plus rapide :
\newcommand{\ms}[1]{\units{#1}{m/s}}
utilisation : \ms{10}
%%%% fin exemple %%%%

# 12.23 # Comment écrire proprement a/b ?
-----------------------------------------
Pour qu'à l'impression le numérateur 'a' soit légèrement décalé
vers le haut et vers la gauche et que le dénominateur 'b' soit
légèrement décalé vers le bas et vers la droite, les deux étant
plus petits que la fonte courante, il existe la commande \sfrac
du package tugboat disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/tugboat/.

# 12.24 # Comment créer des notes de bas de page dans une formule mathématique ?
--------------------------------------------------------------------------------
* On peut utiliser directement la commande \footnote{} ou les
commandes spécifiques \footnotemark[] et \footnotetext[]{}
si l'on veut fixer soit même les compteurs. \footnotemark permet
de gérer le compteur de notes et \footnotetext permet d'insérer
le texte correspondant en bas de page.

Exemple :
\[
Place_{libre}\footnotemark[1] +
Place_{occup\acute ee}\footnotemark[2] +
Place_{d\acute efaillante} =
Capacit\acute e
\]
\footnotetext[1]{La place libre~\ldots}
\footnotetext[2]{La place occup\' ee~\ldots}
%%%% fin exemple %%%%

# 12.25 # Comment forcer le style d'un tableau à displaystyle ?
---------------------------------------------------------------
Le style par défaut dans un "array" est textstyle. Pour éviter
d'avoir à écrire \displaystyle dans chaque cellule, on peut
déclarer un tableau entièrement en mode displaystyle via la
macro:
%%%% debut macro %%%%
\newenvironment{disarray}%
 {\everymath{\displaystyle\everymath{}}\array}%
 {\endarray}
%%%% fin macro %%%%

# 12.26 # Comment réduire les espaces gérés par eqnarray ?
----------------------------------------------------------
Il suffit d'inclure la macro suivante dans le préambule de votre
document :

%%%% debut macro %%%%
\makeatletter
\newlength{\earraycolsep}
\setlength{\earraycolsep}{2pt}
\def\eqnarray{\stepcounter{equation}\let\@currentlabel%
\theequation
\global\@eqnswtrue\m@th
\global\@eqcnt\z@\tabskip\@centering\let\\\@eqncr
$$\halign to\displaywidth\bgroup\@eqnsel\hskip\@centering
$\displaystyle\tabskip\z@{##}$&\global\@eqcnt\@ne
\hskip 2\earraycolsep \hfil$\displaystyle{##}$\hfil
&\global\@eqcnt\tw@ \hskip 2\earraycolsep
$\displaystyle\tabskip\z@{##}$\hfil
\tabskip\@centering&\llap{##}\tabskip\z@\cr}
\makeatother
%%%% fin macro %%%%

# 12.27 # Comment réduire la taille des indices ?
-------------------------------------------------
* Il faut utiliser la commande \DeclareMathSizes :
\DeclareMathSizes{10}{10}{6}{5}
\DeclareMathSizes{11}{11}{7}{5}
\DeclareMathSizes{12}{12}{7}{5}
Ces déclarations permettent de réduire la taille des indices des
fontes 10pt, 11pt et 12pt.

Exemple :
\documentclass[12pt]{report}
\usepackage{french}
\pagestyle{empty}
\DeclareMathSizes{12}{12}{7}{5}
\begin{document}
La capacité totale est définie par~:
\[
C_{libre} + C_{occup\acute ee} = C_{totale}
\]
\end{document}
%%%% fin exemple %%%%

* On peut aussi utiliser les commandes scriptstyle ou
scriptscriptstyle.

Exemple :
$\rho_{AB}$
$\rho_{\scriptstyle AB}$
$\rho_{\scriptscriptstyle AB}$
%%%% fin exemple %%%%

* En utilisant les caractères romans, on peut appliquer la
commande \small.

Exemple :
$\rho_{\textrm{\small AB}}$
%%%% fin exemple %%%%

# 12.28 # Comment aligner des indices ?
---------------------------------------
La commande \vphantom définit une boîte invisible dont la
hauteur est celle de son argument.

Exemple :
\[
f_{\vphantom{\widehat{ef}} d} = f_{\widehat{ef}} \mathrm{\ au \
lieu \ de~:} f_d = f_{\widehat{ef}}
\]
%%%% fin exemple %%%%

# 12.29 # Comment mettre en page des théorèmes ?
------------------------------------------------
* LaTeX offre la commande
\newtheorem{nom}[compteur]{texte}[section]
où nom est une clé pour identifier le théorème, et
texte le titre du théorème qui sera imprimé. compteur permet de
référencer un autre théorème pour obtenir la même numérotation.
section permet de préciser le niveau de numérotation voulu.

Exemple :
dans le préambule :
\newtheorem{th-imp}{Théorème important}[section]
\newtheorem{th-u}{Théorème}[subsection]

dans le texte :

\section{Introduction.}

   \begin{th-imp} \label{label-th-AA}
      BLA BLA
   \end{th-imp}

   \subsection{Bases.}

      \begin{th-u} \label{label-th-aaa}
	 bla bla bla
      \end{th-u}

      \begin{th-u}
	 bla ble
      \end{th-u}

\section{Conclusion}

   Le théorème important~\ref{label-th-AA} est à apprendre par
   c\oe{}ur, le théorème~\ref{label-th-aaa} peut être utile.
%%%% fin exemple %%%%

* Il existe pour cela le package 'thmmarks' disponible à
http://www.informatik.uni-freiburg.de/~may/thmmarks.html.

* Le package 'newthm' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/newthm/ permet de générer une liste
des théorèmes apparaissant dans un document.

* Les trois packages suivants permettent de définir son propre style.

 ** Le package 'amsmath', disponible sur ftp://ftp.fdn.org/pub/CTAN//fonts/ams/amslatex/,
  définit l'environnement proof en insérant un carré.
  Des exemples de théorèmes se trouvent dans le fichier thmtest.tex

 ** Le package 'theorem', disponible sur CTAN. Voir le fichier
  theorem.dvi

 ** Il existe également le package 'ntheorem' disponible sur CTAN
  ou sur
  http://www.informatik.uni-freiburg.de/~may/Ntheorem/ntheorem.html
  Il peut générer une liste des théoremes de la même manière que
  'listoffigures', est compatible avec amsmath, permet d'ajouter des
  symboles à la fin d'un théoreme 'carré, q.e.d.), permet la référence
  à d'autres théoremes. Voir le fichier ntheorem.dvi

** Voici un tableau récapitulatif :

  +------------------------------------+--------+---------+----------+
  |Package                             | amsthm | theorem | ntheorem |
  +------------------------------------+--------+---------+----------+
  |Retour à la ligne après le titre    |   x    |    x    |    x     |
  +------------------------------------+--------+---------+----------+
  |Pas de numérotation d'un théoreme   |   x    |         |    x     |
  +------------------------------------+--------+---------+----------+
  |Position du numéro du théoreme      |        |    x    |    x     |
  +------------------------------------+--------+---------+----------+
  |Style de la numérotation            |        |         |    x     |
  +------------------------------------+--------+---------+----------+
  |Ponctuation après le titre (:,.,etc)|   x    |         |    x     |
  +------------------------------------+--------+---------+----------+
  |Fonte du titre ou du corps          |   x    |    x    |    x     |
  +------------------------------------+--------+---------+----------+
  |Indentation du titre                |   x    |         |          |
  +------------------------------------+--------+---------+----------+
  |Espace vertical autour du théorème  |   x    |    x    |    x     |
  +------------------------------------+--------+---------+----------+

# 12.30 # Comment changer la taille de la fonte ?
-------------------------------------------------
Voici une solution présentée par T. Bouche et S.A. Zaimi :

Exemple :
\documentclass{report}
\def\mathtitre#1{
\font\tenrm=cmr10   scaled \magstep#1
\font\sevenrm=cmr7  scaled \magstep#1
\font\fiverm=cmr5   scaled \magstep#1
\font\teni=cmmi10   scaled \magstep#1
\font\seveni=cmmi7  scaled \magstep#1
\font\fivei=cmmi5   scaled \magstep#1
\font\tensy=cmsy10  scaled \magstep#1
\font\sevensy=cmsy7 scaled \magstep#1
\font\fivesy=cmsy5  scaled \magstep#1
\font\tenex=cmex10  scaled \magstep#1
\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
\textfont1=\teni  \scriptfont1=\seveni  \scriptscriptfont1=\fivei
\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
}

\begin{document}
	{\mathtitre0 $$A+B=C^{B^A}$$}
	{\mathtitre1 $$A+B=C^{B^A}$$}
	{\mathtitre2 $$A+B=C^{B^A}$$}
	{\mathtitre3 $$A+B=C^{B^A}$$}
	{\mathtitre4 $$A+B=C^{B^A}$$}
	{\mathtitre5 $$A+B=C^{B^A}$$}
\end{document}
%%%% fin exemple %%%%

ATTENTION : il ne faut pas que le bloc en police \mathtitreXX
	    se trouve à cheval sur deux pages... cela mettrait
	    le numéro de page (et les en-têtes-pieds de page)
	    dans ladite police...

# 12.31 # A quoi sert la commande \displaystyle ?
-------------------------------------------------
Elle permet de forcer LaTeX à gérer les indices et les exposants
comme si il était en mode mathématique isolé. Cela peut alors
induire une modification locale de l'interligne courant.

Exemple :
Elle permet de forcer \LaTeX à gérer les indices et les
exposants comme si il était en mode mathématique isolé
$\displaystyle{\sum_{i=0}^n x_i}$. Cela peut alors induire une
modification locale de l'interligne courant. Ce texte contient
un exemple probant. Le changement d'interligne est bien visible.
%%%% fin exemple %%%%

# 12.32 # Comment aligner des données sur le point décimal ?
------------------------------------------------------------
* Le package 'dcolumn' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/ permet d'aligner les nombres d'un
tableau par rapport à leur point décimal.

* On peut également utiliser un tableau avec une virgule comme
séparateur de colonnes.

Exemple :
\[
\begin{array}{r @{,} l}
   1&2 \\
   233&456 \\
   x&y \\
\end{array}
\]
%%%% fin exemple %%%%

# 12.33 # Comment gérer les espaces en mode mathématique ?
----------------------------------------------------------
Voici les différents espaces prédéfinis :
\! réduit l'espace par défaut,
\, donne un petit espace,
\ suivit d'un espace, donne un espace de taille moyenne,
\quad donne un espace moyen,
\qquad donne un grand espace.

Exemple :
\[
\begin{array}{l}
   sin cos \\
   sin \! cos \\
   sin \, cos \\
   sin \  cos \\
   sin \quad cos \\
   sin \qquad cos \\
\end{array}
\]
%%%% fin exemple %%%%

# 12.34 # Comment obtenir des accolades horizontales ?
------------------------------------------------------
\overbrace et \underbrace.

Exemple :
\[
\overbrace{f(x)}^{=0} + \underbrace{g(y)}_{=0} = 0
\]
%%%% fin exemple %%%%

# 12.35 # Comment obtenir des points de suspensions ?
-----------------------------------------------------
En mode math, il existe différents types de points de suspension
suivant leur orientation :
+ \ldots pour des points horizontaux sur la ligne d'écriture
+ \cdots pour des points horizontaux au dessus de la ligne
d'écriture
+ \vdots pour des points verticaux
+ \ddots pour des points en diagonale

Exemple :
\[
\begin{array}{ccc}
   x_{11} & \cdots & x_{1p} \\
   \vdots & \ddots & \vdots \\
   x_{n1} & \cdots & x_{np}
\end{array}
\]
%%%% fin exemple %%%%

# 12.36 # Comment mettre en page un système d'équations ?
---------------------------------------------------------
* On peut utiliser les commandes \left délimiteur et \right.
  classiques devant un tableau.

Exemple :
\[
\left \{
\begin{array}{c @{=} c}
    x & \sin a \cos b \\
    y & \sin a \sin b \\
\end{array}
\right.
\]
%%%% fin exemple %%%%

* On peut utiliser le package 'mathenv', permettant de numéroter le
  système ou chaque équation du système, le compteur pouvant alors être
  personnalisé.

Exemples :

% numérotation du système
\begin{System}
  2x + y = 6 \\
  3x + y = 7
\end{System}

%numérotation de chaque équation du système
\begin{EqSystem}
  2x + y = 6 \\
  3x + y = 7
\end{EqSystem}
%%%% fin exemple %%%%

* On peut utiliser le package 'amsmath', permettant de placer des
  alternatives conditionnelles.

Exemple :
\begin{equation*}
  |x|=
     \begin{cases}
        -x & \text{si $x$ est impair} \\
        x  & \text{si $x$ est pair ou nul}
     \end{cases}
\end{equation*}
%%%% fin exemple %%%%

* Le package 'cases' disponible sur
  ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ gère les systèmes d'équations.

Exemple :
\begin{numcases}{|x|=}
    x, & for $x \geq 0$\\
    -x, & for $x < 0$
\end{numcases}
%%%% fin exemple %%%%

* Voici une adaptation de ce package par J. Laurens :
%%%% debut macro %%%%
%  fichier xtdeqnra.sty             ver 1.0    Decembre 1997
%
%  Copyright (C) 1997 by Jerome LAURENS
%
%  Ces macros peuvent e^tre librement transmises, sans modification aucune
%  tant que cette notice est intacte.
%  Base' sur le paquetage cases.sty de D.Arseneau
%  et la commande \eqnarray de Leslie Lamport et de l'e'quipe LaTeX3.
%
%  On rajoute un parame`tre optionnel a` l'environnement eqnarray qui
%  est un delimiteur gauche
%
%  Exemple : source
%
%  \begin{eqnarray}[\{]
%   x_1 & = & valeur_1 \\
%   x_2 & = & valeur_2 \\
%   x_3 & = & valeur_3
%  \end{eqnarray}
%
%  Re'sultat
%
%               /  x_1 = valeur_1           (1)
%               |
%               <  x_2 = valeur_2           (2)
%               |
%               \  x_3 = valeur_3           (3)
%
%  Pour utiliser ce paquetage,
%  inclure  "\usepackage{xtdeqnra}"  apre`s \documentclass.
%
%  On peut utiliser l'environnement subequations pour avoir (1a), (1b) et (1c)
% - - - - -
%

\ProvidesPackage{xtdeqnra}[1997/12/05 version 1.0 ]

%  - sauvegarde de l'environnement eqnarray
\let\x@eqnarray\eqnarray
\let\endx@eqnarray\endeqnarray
%
%  - environnement de remplacement
\def\eqnarray{\@ifnextchar[%
  {\let\endeqnarray\endy@eqnarray\y@eqnarray}
  {\let\endeqnarray\endx@eqnarray\x@eqnarray}}
%
%  - nouvel environnement avec un de'limiteur a` gauche
\def\y@eqnarray[#1]%
{ \gdef\@leftdelimiter{#1}
  \displaymath
  \setbox\tw@\vbox
    \bgroup
      \stepcounter{equation}%
      \def\@currentlabel{\p@equation\theequation}%
      \global\@eqnswtrue
      \m@th
      \everycr{}%
      \tabskip\@centering
      \let\\\@eqncr
      \halign to\displaywidth
        \bgroup
          \hskip \@ne\arraycolsep
          \hfil$\displaystyle
          \tabskip\z@skip{##}$%
          \@eqnsel
          &\global\@eqcnt\@ne
          \hskip \tw@\arraycolsep
          \hfil${##}$\hfil
          &\global\@eqcnt\tw@
          \hskip\tw@\arraycolsep
          $\displaystyle{##}$\hfil
          \unskip\hfil
          \tabskip\@centering% \unskip removes space if no explanations
      		  &\global\@eqcnt\thr@@
          \hb@xt@\z@\bgroup\hss##\egroup
          \tabskip\z@skip
          \cr
}
\def\endy@eqnarray{%
          \@@eqncr
        \egroup % end \halign, which does not contain brace
      \global\advance\c@equation\m@ne
      \unskip\unpenalty
      \unskip\unpenalty
      \setbox\z@\lastbox % grab last line
      \nointerlineskip
      \copy\z@ % then put it back
      \setbox\z@\hbox{\unhbox\z@}%
      \global\dimen@i\wd\z@
    \egroup% end \vbox (box\tw@, box\z@ is restored to LHS)
  \hbox to\displaywidth{%
    \m@th % assemble the whole equation
    \hskip\@centering
    \hbox to\dimen@i{%
      $\displaystyle%
      \dimen@\ht\tw@
      \advance\dimen@\dp\tw@ % get size of brace
      \setbox\z@\hbox{$\mathord{\left\@leftdelimiter\vcenter
to\dimen@{\vfil}\right.}$}%
      \dimen@\wd\z@
      \kern-\dimen@
      \box\z@%
      \n@space % make brace
      $\hfil}
    \hskip\@centering % finished first part (filled whole line)
    \kern-\displaywidth$%
    \vcenter{\box\tw@}$% overlay the alignment
  }% end the \hbox
  \enddisplaymath
  \global\@ignoretrue
}

\endinput

% fin du fichier xtdeqnra.sty
%%%% fin macro %%%%

* Le package 'delarray' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/ peut également être utilisé dans
ce but.

# 12.37 # Comment mettre en page des diagrammes de Feynman ?
------------------------------------------------------------
Le package 'feynmf' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/feynmf/ permet de gérer la mise
en page de diagrammes de Feynman.

# 12.38 # Comment obtenir une fraction ?
----------------------------------------
LaTeX propose la commande \frac{arg1}{arg2} dont l'argument arg1
est le numérateur et arg2 dénominateur.

Exemple :
en formule~:
$$\frac{\alpha}{6 + \sqrt{2}}$$
ou dans le texte $\frac{\alpha}{6 + \sqrt{2}}$.
%%%% fin exemple %%%%

# 12.39 # Comment obtenir une racine ?
--------------------------------------
Il existe la commande \sqrt[n]{arg}, qui représente la racine
nième de arg. [n] est un paramètre optionnel.

Exemple :
$$ \sqrt[3]{\sqrt{\sqrt[\gamma]{x+y}}} $$
%%%% fin exemple %%%%

# 12.40 # Quels sont les délimiteurs disponibles ?
--------------------------------------------------
( ) [ ]  \{ \}
\uparrow \downarrow \updownarrow
\Uparrow \Downarrow \Updownarrow
\lfloor \rfloor \lceil \rceil
\langle \rangle
/ \backslash | \|

# 12.41 # Comment appeler les lettres grecques ?
------------------------------------------------
Il suffit de faire précéder leur nom en toutes lettres d'un
backslash :
+ minuscules :
\alpha \beta \gamma \delta \epsilon \varepsilon \zeta \eta
\theta \vartheta \iota \kappa \lambda \mu \nu \xi \pi \varpi
\rho \varrho \sigma \varsigma \tau \upsilon \phi \varphi \chi
\psi \omega

+ majuscules :
\Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi
\Omega

# 12.42 # Quels sont les accents mathématique standards ?
---------------------------------------------------------
* Il en existe dix pour des lettres seules :
+ $\hat{a}$
+ $\check{a}$
+ $\breve{a}$
+ $\acute{a}$
+ $\grave{a}$
+ $\tilde{a}$
+ $\bar{a}$
+ $\vec{a}$
+ $\dot{a}$
+ $\ddot{a}$

Remarque : pour placer un accent sur un i ou un j, il faut
	   utiliser les commandes \imath et \jmath qui
	   permettent de supprimer le point par défaut.

* Il en existe également d'autres pour couvrir des ensembles de
lettres :
+ $\widehat{abc}$
+ $\widetilde{def}$
+ $\overrightarrow{ghi}$
+ $\overline{jkl}$
+ $\underline{mno}$
+ $\overbrace{pqr}$
+ $\underbrace{stu}$

# 12.43 # Comment superposer deux symboles ?
--------------------------------------------
Il existe pour cela la commande \stackrel{dessus}{dessous}

Exemple :
\[
A \stackrel{\theta}{\Rightarrow} B
\]
%%%% fin exemple %%%%

# 12.44 # Comment définir un nouvel opérateur ou symbole ?
----------------------------------------------------------
* Il existe pour cela la commande \DeclareMathOperator du
package 'amsmath', disponible sur ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/.
Elle s'utilise dans le préambule.

Exemple :
\DeclareMathOperator{\init}{init}

\[
\init f = 0 \mathrm{\ au \ lieu \ de~:} init f = 0
\]
%%%% fin exemple %%%%

* On peut également utiliser \newcommand, toujours dans le
préambule du document.

Exemple :
\newcommand{\affecte}{\mathrel{:=}}

$x \affecte 0$

$y \affecte 1$
%%%% fin exemple %%%%

* On peut utiliser \def.

Exemple :
\makeatletter
\def\log{\mathop{\operator@font log}\nolimits}
\makeatother

$\log 28 = 1.447158$
%%%% fin exemple %%%%

* Pour définir un nouveau symbole de plusieurs caractères, il
faut utiliser \mathit.

# 12.45 # Comment obtenir des lettres grecques en gras ?
--------------------------------------------------------
* On peut utiliser le package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/ :

Exemple :
...
\usepackage{amsmath}
...
\begin{document}
...
$\boldsymbol{\alpha}$
%%%% fin exemple %%%%

* On peut également utiliser le package 'bm' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/bm/.

Exemple :
...
\usepackage{bm}
...
\begin{document}
...
$\bm{\alpha}$
%%%% fin exemple %%%%

# 12.46 # Comment tracer un tableau de variations ?
---------------------------------------------------

* Avec l'environnement array en mode mathématiques (cf. question
12.11).

Exemple:
$
\begin{array}{|c|ccccr|}
\hline
x     & -\infty  &    & 0  &     & +\infty  \\
\hline
f'(x) & 5         &  + & 0  & - &  -10 \\
\hline
 &  & & 10 & & \\       % ligne des valeurs "max"
f(x) &  &\nearrow   &  &\searrow  & \\   % flèches
& -\infty & & & & -10 \\          % ligne des valeurs "min"
\hline
\end{array}
$
%%%% fin exemple %%%%

* On peut faire de plus jolies flèches (redimensonnables) avec les commandes
graphiques.

Pour cela, il faut choisir une unité de longueur avant par:
        \unitlength=1cm
et remplacer par exemple \nearrow par (flèches de 2cm de large et de haut)

Exemple:
\begin{minipage}{2cm}
  \begin{picture}(2,2)
     \put(0,0){\vector(1,1){2}}
 \end{picture}
\end{minipage}
%%%% fin exemple %%%%

================================================================
[13] RÉFÉRENCES CROISÉES
================================================================

# 13.1 # Quelles sont les commandes de base ?
---------------------------------------------
* LaTeX permet de gérer automatiquement des références croisées
grâce aux commandes suivantes :
\label{} pour repérer la référence à rappeler
\ref{} pour faire appel à la référence décrite par la commande
\label
\pageref{} pour faire référence à la page de la référence
reperée par la commande \label
\cite{} pour faire référence à un document cité en
bibliographie.

L'utilisation de ces commandes nécessite alors plusieurs (deux
à trois) compilations successives, jusqu'à ce que toutes les
références croisées soient correctes.

ATTENTION : pour les figures et les tables, la commande \label
	    doit se situer juste après un \caption ou en faire
	    partie pour que les références soient correctes.

ATTENTION : lorsque l'on travaille avec une version inférieure à
	    3.6 du package babel et l'option french, sachant que
	    cette dernière redéfinit certains caractères de
	    ponctuation tels que :;?! pour gérer automatiquement
	    les espaces, il ne faut pas les utiliser dans des
	    noms de label : \label{section:Introduction} est
	    interdit.

Exemple :
Remplir la table~\ref{table-add}, page~\pageref{table-add}
\begin{table}[htbp]
   \begin{center}
      \begin{tabular}{c|c}
	 \hline
	  Question & Réponse  \\
	 \hline
	 1 + 12 & \\
	 45 + 76 & \\
      \end{tabular}
      \caption{Additions. \label{table-add}}
   \end{center}
\end{table}
%%%% fin exemple %%%%

* Le package 'prettyref' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/prettyref/ permet de définir ses
propres styles de référence.

# 13.2 # Comment obtenir un renvoi à une page ?
-----------------------------------------------
* Il suffit d'utiliser la commande \pageref présentée ci-dessus.

* Le package 'varioref', de F. Mittelbach, disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/, permet de n'appeler une
référence de page que si l'objet flottant auquel elle se
rattache n'est pas présent sur la page courante. Pour cela, ce
package définit la commande \vpageref qui ne fera apparaître le
numéro de la page référencée que si ce n'est pas la page
courante. Cette commande peut également introduire des
expressions du type "sur la page précédente", "sur cette même
page", etc. Dans ce cas, on précise la langue voulue en option
lors de l'appel du package.

Exemple:
\documentclass{report}
\usepackage{french}
\usepackage[french]{varioref}

\begin{document}
Remplir la table~\ref{table-add}~\vpageref{table-add}
\begin{table}[htbp]
   \begin{center}
      \begin{tabular}{c|c}
	 \hline
	  Question & Réponse  \\
	 \hline
	 1 + 12 & \\
	 45 + 76 & \\
      \end{tabular}
      \caption{Additions. \label{table-add}}
   \end{center}
\end{table}
\end{document}
%%%% fin exemple %%%%

Remarque : Ce package est incompatible avec les styles de page
	   sans numérotation (e.g. empty).

# 13.3 # Comment obtenir des références croisées à partir de plusieurs sources ?
--------------------------------------------------------------------------------
Le package 'xr', de D. Carlisle, permet de faire des références
d'un document à l'autre. Il est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/. Le document contenant les labels
est appelé dans le document contenant les références via la
commande \externaldocument.  La commande
\externaldocument[KEY]{DOCUMENT} permet même de gérer les
références de même nom.

Exemple :
* fichier essai.tex :
	\documentclass[a4paper,12pt]{book}

	\begin{document}
	   \section{Ma section.\label{ma-sect}}
	\end{document}

* fichier essai-ass.tex :
	\documentclass[11pt]{report}
	\usepackage{xr}
	\externaldocument{essai}

	\begin{document}
	Pour plus de détails, voir le document \textit{essai},
	paragraphe~\ref{ma-sect}
	\end{document}
%%%% fin exemple %%%%

# 13.4 # Comment définir des liens hypertexte sous LaTeX ?
----------------------------------------------------------
* Le package 'hyperref' de S. Rahtz disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/hyperref/ permet de définir des
liens hypertexte pour PDF. Il définit pour cela des commandes de
type \ref{}.

* Voir également les packages 'hyper' et 'hyperlatex'
disponibles sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/hyper/.

* La distribution Y&Y TeX System supporte des liens en TeX
debuggable dans le previewer qui seront automatiquement
convertis en liens PDF pour Adobe.

# 13.5 # Comment faire référence à ses propres compteurs ?
----------------------------------------------------------
Lorsque l'on définit son propre environnement avec ses popres
compteurs, pour que les commandes \label et \ref puissent les
prendre en compte, il suffit d'utiliser \refstepcounter au
lieu de \stepcounter pour incrémenter le compteur auquel on
fait référence.

================================================================
[14] TABLE DES MATIÈRES
================================================================

# 14.1 # Comment générer une table des matières ?
-------------------------------------------------
* LaTeX propose la commande \tableofcontents à appeler à
l'endroit où l'on veut insérer la table des matières.

# 14.2 # Comment générer plusieurs tables des matières ?
--------------------------------------------------------
* Le package 'french' propose la commande sommaire[n] qui permet
d'inclure une table des matière de niveau de profondeur n.

Remarque : dans ce cas \tableofcontents reste utilisable.

* Le package 'shorttoc' ci-dessous, de J.P. Drucbert, définit la
commande \shorttableofcontents{TITRE}{NIVEAU}.

Remarque : dans ce cas \tableofcontents reste également
	   utilisable.

%%%% debut macro %%%%
%shorttoc.sty
\ProvidesPackage{shorttoc}%
[1995/01/04 v1.0 Short table of contents package (JPFD)]
\def\@startshorttoc#1{\bgroup
  \makeatletter
  \@input{\jobname.#1}%
  \global\@nobreakfalse \egroup}

\def\shorttableofcontents#1#2{\bgroup\c@tocdepth=#2\@restonecolfalse
  \if@twocolumn\@restonecoltrue\onecolumn\fi
  \@ifundefined{chapter}%
  {\section*{{#1}
        \@mkboth{\uppercase{#1}}{\uppercase{#1}}}}%
  {\chapter*{{#1}
        \@mkboth{\uppercase{#1}}{\uppercase{#1}}}}%
  \@startshorttoc{toc}\if@restonecol\twocolumn\fi\egroup}
%%%% fin macro %%%%

* Le package 'minitoc', disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/minitoc/, permet de construire
une minitable des matières au début de chaque chapitre sous les
classes 'book' et 'report'. Pour l'utiliser, il faut appeler les
commandes \dominitoc avant la commande \tableofcontents
habituelle. La commande \faketableofcontents permet de ne garder
que les tables des matières locales et remplace alors la
commande \tableofcontents. La commande \minitoc doit être
appelée après chaque commande de début de chapitre \chapter dans
lequel on veut inclure une table locale. A chaque appel de
minitoc correspond un fichier .mtc<n> où n est le numéro du
chapitre.

Le compteur minitocdepth permet de fixer la profondeur des
tables des matières désirées.

Exemple :
\documentclass{report}
\usepackage{minitoc}
\usepackage{french}
\setcounter{minitocdepth}{1}
\begin{document}

\dominitoc
\tableofcontents

\chapter{Introduction.}
\minitoc

\section{Quelques rappels.}
   Texte.

   \subsection{La gravité.}

      Texte sur la gravité.

   \subsection{Loi de Newton.}

      Deux corps s'attirent en raison inverse du carré
      de leur distance et proportionnellement à leur
      masse.

\section{Nouveaux théorèmes.}

   Encore des résultats.

\section{Approfondissement.}

   Toujours plus loin.

pour ne faire apparaître que les titres de sections.
\end{document}
%%%% fin exemple %%%%

Le bon fonctionnement des numérotations peut nécessiter jusqu'à
trois compilations enchaînées.

ATTENTION : minitoc sait faire:
+ les tables des matières (liste des figures/tables) par partie,
+ par chapitre (classe book et report) et,
+ par section (classe article).

Par contre, il ne fait pas les tables des matières par section
(et en dessous) pour les classes book et report, ni les tables
des matières par sous-section (et en dessous) pour la classe
article.

# 14.3 # Comment ajouter une entrée dans la table des matières ?
----------------------------------------------------------------
Pour ajouter un titre de paragraphe qui n'apparaît pas par
défaut dans la table des matières, il faut utiliser la commande
\addcontentsline{1}{2}{3} où :
1 est l'extension du fichier contenant la table des matières
généralement 1 vaut toc,
2 est un niveau défini dans la table des matières; ce peut être
chapter, section, ... et,
3 est le texte que l'on veut voir apparaître dans la table.

Exemple :
\bibliography{sdf}
\addcontentsline{toc}{chapter}{Bibliographie.}
%%%% fin exemple %%%%

# 14.4 # Comment changer le titre de la table des matières ?
------------------------------------------------------------
On peut utiliser la commande :
\renewcommand{\contentsname}{Contenu du document.}

Remarque : suivant les packages utilisés, il faut placer cette
	   définition avant ou après le \begin{document}.

# 14.5 # Comment changer la profondeur de la table des matières ?
-----------------------------------------------------------------
Les sections sont numérotées si leur profondeur est inférieure à
secnumdepth.

Elles apparaissent dans la table des matières si leur profondeur
est inférieure à tocdepth.

Il suffit de changer les valeurs de ces deux compteurs. Il peut
alors être nécessaire d'enchaîner deux compilations LaTeX.

Exemple :
\documentclass[a4paper]{article}
\usepackage{french}
\pagestyle{empty}
% Profondeur de \subsubsection = 3
\setcounter{tocdepth}{3}     % Dans la table des matieres
\setcounter{secnumdepth}{3}  % Avec un numero.

\begin{document}
\tableofcontents
\vspace{.5cm}
\hrule

\part{Aaa.}
\section{aaa.}
   \subsection{bbb.}
      \subsubsection{ccc.}
\end{document}
%%%% fin exemple %%%%

# 14.6 # Comment gérer des chapitres de préface, d'introduction, et de conclusion non numérotés ?
-------------------------------------------------------------------------------------------------
* La classe book définit les commandes \frontmatter, \mainmatter
et \backmatter qui permettent de faire cela.

Exemple :
\documentclass[a4paper,12pt,openany]{book}
\usepackage{french}

\def\TEXTE{Bla bla bla...}

\begin{document}

\frontmatter

%\begin{abstract}  Bla, bla... \end{abstract}

\chapter{Préface} \TEXTE
\chapter{Introduction} \TEXTE

\mainmatter

\chapter{Début} \TEXTE
\chapter{Suite} \TEXTE
\chapter{Fin}  \TEXTE

\appendix
\chapter{Résultats élémentaires}
\chapter{Résultats compliqués}

\backmatter

\chapter{Conclusion}  \TEXTE

\tableofcontents
\end{document}
%%%% fin exemple %%%%

* L'autre solution consiste à définir ses propres commandes
\introduction, \preface, etc, à partir des définitions
de \chapter sans prendre en compte la numérotation.

* On peut également utiliser les commandes étoilées et gérer
soit même la table des matières et éventuellement les en-têtes
et bas de page.

Exemple :
\chapter*{Intro}
\addcontentsline{toc}{chapter}{Intro...}
%%%% fin exemple %%%%

# 14.7 # Comment enlever le numérotation des pages de tdm ?
-----------------------------------------------------------
Il suffit d'inclure les lignes suivantes dans le préambule du
document :
%%%% debut macro %%%%
\makeatletter
\def\addcontentsline@toc#1#2#3{%
   \addtocontents{#1}{\protect\thispagestyle{empty}}%
   \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}}
\def\addcontentsline#1#2#3{%
  \expandafter\@ifundefined{addcontentsline@#1}%
  {\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}}
  {\csname addcontentsline@#1\endcsname{#1}{#2}{#3}}}
\makeatother
%%%% fin macro %%%%

================================================================
[15] BIBLIOGRAPHIE SOUS LATEX
================================================================

# 15.1 # Comment construire une bibliographie ?
-----------------------------------------------
* Il existe deux techniques pour construire une bibliographie :
+ la première consiste à l'intégrer dans le corps même du
document (fichier.tex),
+ la seconde consiste à la définir dans un fichier particulier
(fichier.bib) puis à l'appeler dans le corps du document.

* Technique on-line :
Il suffit d'appeler l'environnement thebibliography et de
définir des bibitem.

Exemple :
\begin{thebibliography}{2}
   \bibitem[label]{cle} Auteur, TITRE, editeur, annee
   \bibitem[LAM94]{lam1} L. LAMPORT, {\it \LaTeX : A Document
   preparation system, Addison-Wesley, 1994}
\end{thebibliography}
%%%% fin exemple %%%%

[label] définit le label qui apparaîtra dans la bibliographie
et dans le texte après appel de la commande \cite{cle}.

* BibTeX permet de construire simplement une bibliographie. La
technique consiste alors à écrire un ou plusieurs fichiers.bib
qui seront appelés dans le document source par la commande
\bibliography{fichier1, fichier2,...}. BibTeX est disponible
sur ftp://ftp.fdn.org/pub/CTAN/biblio/bibtex.

Le style de la bibliographie doit être défini par
\bibliographystyle{xxx} avec xxx valant généralement plain ou
alpha, mais il existe aussi d'autres styles. La commande
\bibliographystyle doit être appelée après \begin{document}.

Le contenu d'un fichier.bib est un ensemble de déclarations du
style :
@ARTICLE{cle,
author = "liste-noms-auteur",
title = "titre-article",
journal = "nom-journal",
year = "annee-parution",
}
% OPTIONAL FIELDS
% volume = "",
% number = "",
% pages =  "",
% month =  "",
% note =  "",

La syntaxe des différentes déclarations possibles peut se
trouver dans toute bonne documentation LaTeX ou dans les menus
des éditeurs tels que emacs ou Alpha.

Losqu'on utilise BibTeX, il faut alors enchaîner plusieurs
compilations pour que toutes les références soient exactes.
Généralement, il faut exécuter une passe LaTeX, une
passe Bibtex et encore deux passes LaTeX.

* Pour pouvoir inclure dans la bibliographie des références à
des documents qui ne sont pas cités explicitement par une
commande \cite, il suffit d'inclure la commande
\nocite{la-ref-non-citee} avant la commande
\bibliography{fichier_biblio}. Pour faire apparaître toutes les
références non citées sans toutes les énumérer, on peut utiliser
\nocite{*}.

* BIBDB, disponible sur CTAN, est un gestionnaire de
bibliographie BIBTEX, facile à manipuler qui tourne sous DOS.

* Bibview est un programme tournant sous X11 et permettant la
saisie et la consultation de fichiers bibtex.

# 15.2 # Comment gérer plusieurs bibliographies ?
-------------------------------------------------
* Le package 'chapterbib' permet d'inclure une bibliographie
par chapitre. Il est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/cite/. Les bibliographies
réparties peuvent alors apparaître comme section de ce chapitre
grâce à la commande : \usepackage[sectionbib]{chapterbib}.

* Le package 'bibunits', de A. Fernandez, permet de partager une
bibliographie en plusieurs unités, chacune attenante à une
section, ou à un chapitre d'un article ou d'un livre donné.

Exemple :

////////////// fichier rapport.tex /////////////
\documentclass[a4paper]{report}

\usepackage{bibunits}
\usepackage{french}

\begin{document}
\chapter{Algorithmes.}

Présentation d'algorithmes.

\nocite*
\bibliographystyle{alpha}
\bibliography{alg}

\chapter{Géométrie.}

Texte sur la géométrie.

\nocite*
\bibliographystyle{plain}
\bibliography{geom}
\end{document}

////////////// fichier alg.bib /////////////
@UNPUBLISHED{algg,
author = MPK,
title = Algorithmes et rythmes,
note = RAS,
}

////////////// fichier geom.bib /////////////
@INBOOK{geomm,
author = Me again,
title = Principes de géométrie,
chapter = Les droites,
publisher = Home publishing,
year = 1997,
}
%%%% fin exemple %%%%

* Le package 'bibtopics', de P. Basso, permet de contruire une
bibliographie générale comportant des rubriques diverses
(livres, articles, thèses, ...) ou des sujets divers (physique,
mathématiques, ...). Il est disponible par ftp sur
ftp://ftp.gutenberg.eu.org/pub/gut/contrib/.

Remarque : pour les versions récentes de LaTeX, il peut être
	   nécessaire d'inclure les lignes :
		\makeatletter
		\let\if@openbib\iffalse
		\makeatother
	   dans le préambule du document.

* Voici un petit fichier 'multibib.sty' de V. Henn, créé en
recopiant les définitions LaTeX des commandes relatives à la
gestion des bibliographies, et en les rendant paramétrables.

Les commandes qui ont été définies sont :
\newbibliographyGENE{biblio} pour déclarer une bibliographie
	biblio.
\citeGENE{biblio}{clé} pour appeler une référence.
\bibliographystyleGENE{biblio-x}{alpha} pour définir le style de
	biblio.
\bibliographyGENE{biblio}{fichier-biblio1} pour faire
	référence au fichier fichier-biblio1.bib qui contient
	les références.

%%%% debut macro %%%%
%% A sauver dans  multibib.sty
%%%%%% biblio generique %%%%%%%%

\newcommand\newbibliographyGENE[1]{%
\expandafter\expandafter\expandafter\newwrite\@nameuse{@#1aux}
\immediate\expandafter\expandafter\openout\@nameuse{@#1aux}=#1.aux
%\expandafter\expandafter\expandafter\show\@nameuse{@#1aux}
}

\def\citeGENE#1{\@ifnextchar [{\@tempswatrue\@citexGENE{#1}}%
{\@tempswafalse\@citexGENE{#1}[]}}

\def\@citexGENE#1[#2]#3{\if@filesw\immediate\expandafter%
\expandafter\expandafter\write\@nameuse{@#1aux}{\string%
\citation{#3}}\fi
 \let\@citea\@empty
 \@cite{\@for\@citeb:=#3\do
  {\@citea\def\@citea{,\penalty\@m\ }%
   \def\@tempa##1##2\@nil{\edef\@citeb{\if##1\space##2%
   \else##1##2\fi}}%
   \expandafter\@tempa\@citeb\@nil
   \@ifundefined{b@\@citeb}{{\reset@font\bf ?}\@warning
    {Citation `\@citeb' on page \thepage \space undefined}}%
   \hbox{\csname b@\@citeb\endcsname}}}{#2}}

\def\bibliographyGENE#1#2{\if@filesw\immediate\expandafter%
\expandafter\expandafter\write\@nameuse{@#1aux}{\string%
\bibdata{#2}}\fi
  \@input{#1.bbl}}

\def\bibliographystyleGENE#1#2{\if@filesw\immediate\expandafter%
\expandafter\expandafter\write\@nameuse{@#1aux}
    {\string\bibstyle{#2}}\fi}

\def\nociteGENE#1#2{\@bsphack
  \if@filesw\immediate\write\@nameuse{@#1aux}{\string%
  \citation{#2}}\fi
  \@esphack}
%%%% fin macro %%%%

Exemple d'utilisation :
Les fichiers gene.bib et speci.bib contiennent respectivement
une référence bibliographie de clé cle-gene et cle-speci.

\documentclass{report}
\usepackage{multibib}
\usepackage{french}

\begin{document}

\newbibliographyGENE{Toto}
\newbibliographyGENE{Titi}

\chapter{Introduction.}
 blabla bla \citeGENE{Toto}{cle-gene} et
\citeGENE{Titi}{cle-speci} rebla rebla rebla

\bibliographystyleGENE{Toto}{plain}
\bibliographyGENE{Toto}{gene}

\bibliographystyleGENE{Titi}{alpha}
\bibliographyGENE{Titi}{speci}

\end{document}

il faut alors compiler de la manière suivante :
latex fichier-source
bibtex Toto
bibtex Titi
latex fichier-source
latex fichier-source
%%%% fin exemple %%%%

# 15.3 # Comment changer de langue dans une bibliographie ?
-----------------------------------------------------------
* Il existe des versions francisées des styles bibliographiques
(fplain, falpha, fralpha, frealfullname...) qui ne sont pas
parfaits mais qui peuvent être modifiés facilement. Voir la
distribution GUTenberg.

Exemple :
\documentstyle{falpha}
%%%% fin exemple %%%%

* Sachant que les items d'une bibliographie sont des
paragraphes, ils peuvent commencer par la spécification d'une
langue. Si on utilise le package 'french', on dispose des
commandes \french et \english et si l'on utilise le package
'babel', il faut utiliser la commande \selectlanguage{} (cf.
paragraphe 11.1).

* Voir également le package 'frbib' pour les bibliographies
françaises.

* Le package 'mlbib' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/mlbib/ permet de gérer des
bibliographies multilingues.

# 15.4 # Comment renvoyer une référence en note de bas de page ?
----------------------------------------------------------------
* Pour remplacer une référence insérée dans le texte par la
commande \cite, par un appel à une note de bas de page
contenant une référence succinte à un document (la référence
détaillée apparaissant toujours dans la bibliographie), il faut
redéfinir la commande \cite dans le préambule du document par :
%%%% debut macro %%%%
\makeatletter
\def\@cite#1#2{%
  \footnote{#1\if@tempswa, #2\fi}}
\makeatother
%%%% fin macro %%%%

Les informations reportées dans la note de bas de page
dépendent du style de bibliographie choisi.

* Le package 'overcite', de D. Arseneau, est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/cite/. Il permet de faire
référence à des documents par un exposant.

Le problème qui se pose alors est de distinguer les références,
des notes de bas de page. Si le document contient moins de 10
notes de bas de page, on peut utiliser la commande
\renewcommand{\thefootnote}{\fnsymbol{footnote}}. Sinon pour
disposer de 10 notes de bas de page par page, il existe le
package 'footnote' de R. Fairbairns disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/footnote/.

Exemple :
\usepackage[perpage,symbol]{footnote}
%%%% fin exemple %%%%

* Le package 'camel' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/camel/, propose différents
styles de bibliographies renvoyant à des notes de bas de page.

* E. Domenjoud a également écrit le package 'footbib',
disponible sur CTAN, qui permet de faire cela.
Eric.Domenjoud@loria.fr.

# 15.5 # Comment faire référence à un document ?
------------------------------------------------
Il suffit d'utiliser la commande \cite avec en paramètre la clé
du document (cf. paragraphe 15.1). La commande \cite peut
prendre un texte en option.

Exemple :
Voir~: \cite[chapitre 1]{cle}.
%%%% fin exemple %%%%

# 15.6 # Comment grouper des références multiples ?
---------------------------------------------------
* Le package 'cite' de D. Arseneau est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/cite/. Il permet de trier
et de grouper les références multiples. Par exemple, il permet
automatiquement de générer [1-6] au lieu de lister [1, 2, 3, 4,
5, 6].

* Il existe également les packages 'mcite' et 'rangecite' (pour
LaTeX2.09) disponibles sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/mcite/ et dans
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/.

# 15.7 # Comment changer le titre de la bibliographie ?
-------------------------------------------------------
Suivant la classe de document que l'on utilise (article,
book, report, ...), il faut redéfinir :
\renewcommand{\bibname}{R\'ef\'erences}
ou
\renewcommand{\refname}{R\'ef\'erences}
dans le préambule.

Remarque : avec certains packages comme french, il faut placer
	   cette nouvelle définition de commande après le
	   \begin{document}.

# 15.8 # Comment changer le style de la bibliographie ?
-------------------------------------------------------
* Il existe un certain nombre de style par défaut (alpha,
plain, unsrt, abbrrv) que l'on peut appeler par la commande
\bibliographystyle{xxx} placée après la commande
\begin{document}.

Remarque : Certains styles comme plain, acm ou apalike trient
	   alphabétiquement les références d'une bibliographie
	   suivant le premier auteur de chaque référence.
	   D'autres comme alpha utilisent la première lettre du
	   nom de chacun des auteurs multiples.

* Il existe également le package 'custom-bib' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/supported/custom-bib/ qui permet de
définir ses propres styles sans avoir à se plonger dans le
language BibTeX. Le programme est interactif.

* De même le package 'natbib' est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/natbib. Il
permet entre autres de classer la bibliographie de plusieurs
façons différentes, notamment par ordre alphabétique pour les
auteurs, par l'année de parution, etc.

* Pour remplacer la numérotation [1] par 1., on peut utiliser la
commande :
\makeatletter
\renewcommand{\@biblabel}[1]{\quad #1.}
\makeatother

* Pour supprimer toute numérotation, il faut utiliser de la même
manière :
\makeatletter
\renewcommand{\@biblabel}[1]{}
\makeatother

* Le package 'easybib' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ permet par une syntaxe
simple de définir ses propres styles bibliographiques.

# 15.9 # Comment construire une bibliographie à partir de plusieurs fichiers .bib ?
-----------------------------------------------------------------------------------
Pour cela il existe le package 'biblist' de J. chrod, disponible
sur ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/biblist/.

Exemple :
\documentclass[12pt]{article}
\usepackage{biblist}
\begin{document}
\nocite{*}
\bibliographystyle{plain}
\bibliography{bibfile1,bibfile2,...}
\end{document}
%%%% fin exemple %%%%

# 15.10 # Comment utiliser la commande \cite dans un \caption ?
---------------------------------------------------------------
On peut mettre la commande \cite dans un \caption à condition de
la protéger : \protect\cite.

# 15.11 # Comment référencer une thèse française ou un mémoire ?
----------------------------------------------------------------
Il faut définir de nouvelles références. Pour cela, copier le
fichier .bst dans un autre fichier .bst avec un nom différent
et rechercher PhD thesis puis remplacer par Thèse de doctorat.

Exemple :
FUNCTION {thesedoc}
{ output.bibitem
format.authors "author" output.check
new.block
format.btitle "title" output.check
new.block
"Th\`ese de Doctorat" format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
new.block
note output
fin.entry
}
%%%% fin exemple %%%%

Idem pour les mémoires de DEA :

FUNCTION {memdea}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  "M\'emoire de D.E.A." format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

# 15.12 # Comment supprimer la virgule supplémentaire dans une liste d'auteurs ?
--------------------------------------------------------------------------------
Par défaut, dans une liste d'auteurs le "et" qui introduit le
dernier auteur est précédé d'une virgule. Pour la supprimer, il
faut modifier la fonction format.names dans un nouveau fichier
.bst de la manière suivante :

%%%% debut macro %%%%
FUNCTION {format.names}
{ 's :=3D
  #1 'nameptr :=3D
  s num.names$ 'numnames :=3D
  numnames 'namesleft :=3D
    { namesleft #0 > }
    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=3D
      nameptr #1 >
	{ namesleft #1 >
	    { ", " * t * }
	    { namesleft #2 >
		{ "," * }
		'skip$
	      if$
	      t "others" =3D
		{ " et~al." * }
		{ " and " * t * }
	      if$
	    }
	  if$
	}
	't
      if$
      nameptr #1 + 'nameptr :=3D
      namesleft #1 - 'namesleft :=3D
    }
  while$
}
%%%% fin macro %%%%

# 15.13 # Comment configurer la commande \cite ?
------------------------------------------------
* Le package 'cite' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/cite/ offre certaines
possibilités.

Exemple :
\usepackage{cite}
\renewcommand\citepunct{;\penalty999\ }
%%%% fin exemple %%%%

* Pour afficher une clé à la place du label [??] dans le cas où
LaTeX/BibTex ne trouve pas la clé spécifiée dans la
bibliographie, on peut utiliser la macro suivante :

%%%% debut macro %%%%
\def\@citex[#1]#2{%
 \let\@citea\@empty
 \@cite{\@for\@citeb:=#2\do
  {\@citea\def\@citea{,\penalty\@m\ }%
   \edef\@citeb{\expandafter\@firstofone\@citeb}%
   \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}
   \fi
%%%% Ligne originale %%%%
%     \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}%
%%%% Ligne modifiée %%%%
   \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries \@citeb}%
     \G@refundefinedtrue
     \@latex@warning
       {Citation `\@citeb' on page \thepage \space undefined}}%
     {\hbox{\csname b@\@citeb\endcsname}}}}{#1}}
%%%% fin macro %%%%

# 15.14 # Comment construire une liste d'auteurs ?
--------------------------------------------------
Pour séparer les éléments d'une liste d'auteurs, il faut
utiliser "and".

Exemple :
Dewitt, D.J. and Naughton, J.
%%%% fin exemple %%%%

# 15.15 # Comment spécifier un tri dans une bibliographie ?
-----------------------------------------------------------
Il existe l'outil BibTool disponible sur
ftp://ftp.fdn.org/pub/CTAN/biblio/bibtex/utils/bibtool/ ou sur
http://www.aber.ac.uk/~dbt93/Downloads/bibtool/. BibTool est un
outil de manipulation de bases de données BibTeX et il permet en
particulier de spécifier différents ordres de tri pour une
bibliographie.

Exemples :
* bibtool -s file.bib -o the_new_bibtex_file.bib
pour trier suivant les auteurs et les titres
* bibtool -s -- 'sort.format={%d(year)}' file.bib -o
the_new_bibtex_file.bib
pour trier par ordre croissant des années de parution
* bibtool -s -- 'sort.format={%s($type)%N(author)}' gn-publ.bib
pour trier par classe de document et par auteur.

L'appel du fichier ainsi trié se fait alors par exemple par :
\documentclass{article}
\begin{document}
\nocite{*}
\bibliographystyle{unsrt}
\bibliography{the_new_bibtex_file}
\end{document}
%%%% fin exemple %%%%

# 15.16 # Comment référencer les pages contenant des citations ?
----------------------------------------------------------------
Il faut utiliser le package 'backref' disponible sur CTAN.

# 15.17 # Où trouver des styles de bibliographie ?
--------------------------------------------------
* Le package 'biblist' de J. Schrod offre différents styles de
bibliographie prédéfinis. Il est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/biblist/.

* Le package 'apacite' est disponible sur
ftp://ftp.fdn.org/pub/CTAN/biblio/bibtex/contrib/.

* Le package 'bbtbase' disponible sur CTAN propose des styles
bibliographiques de base.

* De nombreux autres styles sont disponibles sur CTAN.

# 15.18 # Comment faire des références croisées ?
-------------------------------------------------
Il faut utiliser le champ crossref de bibtex.

Exemple :
@InProceedings{contejean96rta,
  author =      "Evelyne Contejean and Claude March\'e",
  title =       "{CiME: Completion Modulo $E$}",
  crossref =    "rta96",
  pages =       "416--419",
  year =        1996,
  note =        "System Description",
  ftp =         "ftp://ftp.lri.fr/LRI/art/march/cime-rta96.ps.gz",
  abstract =    "http://www.lri.fr/~marche/cime-rta96.html"
}

@Proceedings{rta96,
  title         = "7th International Conference on ...",
  booktitle     = "7th International Conference on ...",
  editor        = "Harald Ganzinger",
  publisher     = SV,
  year          = 1996,
  month         = jul,
  address       = "New Brunswick, NJ, USA",
  series        = LNCS,
  volume        = 1103,
}
%%%% fin exemple %%%%

ATTENTION : l'ordre de déclaration @InProceedings/@Proceedings
	    dans le fichier .bib est important.

# 15.19 # Comment citer une URL ?
---------------------------------
* Le style harvard propose un champ URL. Il est disponible à :
http://www.arch.su.edu.au/~peterw/latex/harvard/ ou sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/harvard/.

* Le style bibliographique 'utphys', de J. Distler, disponible à
http://xxx.lanl.gov/hypertex/bibstyles/ ajoute le champ eprint à
toutes les entrées BibTeX classiques.

* On peut également utiliser la macro @MISC et mettre la
référence URL dans le champ note.

* M. Moreau propose la solution suivante :
J'ai recupéré le fichier falpha.bst auquel j'ai ajouté :

FUNCTION {format.url}
{ url empty$
    {"empty"}
    { url emphasize }
  if$
}

FUNCTION {onTheNet}
{ output.bibitem
  format.authors output
  format.title "title" output.check
  new.block
  institution "institution" output.check
  format.date output
  new.block
  format.url "url" output.check
  fin.entry
}

Autrement dit, si on peut avoir des documents de type onTheNet avec
pour entrée obligatoire : title, institution, url et entrée
optionnelle : author, year, month, note. L'URL est indiquée en
italique.

# 15.20 # Comment définir des initiales à deux lettres ?
--------------------------------------------------------
En français, les prénoms commencant par Ch, Ph, Th... ont pour
initiales leurs deux premières lettres (Ex : Philippe --> Ph.).
Pour forcer BibTeX à considérer ces groupes de lettres, il faut
utiliser : {\relax Ph}ilippe. BibTeX prend alors tout le groupe
{..} pour une lettre. La commande \relax est considérée comme
une commande d'accent qui est supprimée lors du tri
alphabétique. Elle est nécessaire car lorsqu'un groupe apparaît
dans un nom, BibTeX s'attend à trouver une commande d'accent
juste après l'accolade ouvrante.

# 15.21 # Comment conserver les majuscules dans les titres ?
------------------------------------------------------------
Il suffit de mettre les majuscules entres accolades.

# 15.22 # Comment changer l'espace entre les item ?
---------------------------------------------------
Il faut copier la définition de l'environnement thebibliography
qui se trouve dans le fichier de style de la classe utilisée
(par exemple article.cls pour un article) dans un fichier de
style (qui sera appelé via une commande \usepackage) ou dans le
préambule de votre document (entre \makeatletter, \makeatother).
Il faut ensuite remplacer \newenvironment par \renewenvironment
et modifier la définition en ajoutant \setlength{\itemsep}{0pt}
après \list.

# 15.23 # Comment réaliser des fiches de lecture ?
--------------------------------------------------
* S. O. Genaud (genaud@galaad.u-strasbg.fr) a écrit un petit
logiciel de gestion des références bibliographiques au format
BibTeX, sous la forme d'une interface graphique. La version
actuelle n'est peut être pas exempte de tout bug. Elle tourne
sur Linux, SunOS et Solaris avec la librairie xview.

Pour récupérer l'exécutable ou avoir plus d'informations :
http://icps.u-strasbg.fr/~genaud/FRM/

Le programme bibfrm permet de lire un fichier BibTeX ou de créer
un fichier de références bibliographiques au format BibTeX et
d'associer à chaque référence un résumé. L'interface graphique
permet de savoir immédiatement quels sont les champs optionnels
et obligatoires pour un type de document donné. Le logiciel
permet de parcourir les différentes références du fichier, de
faire une recherche sur une chaîne, de trier les références par
nom d'auteur, année ou type de document. Pour chaque référence,
un résumé peut être saisi dans l'éditeur de texte incorporé dans
l'interface. Ce résumé peut être envoyé par mail à une liste de
diffusion prédéfinie.

* Le package 'abstbook' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ permet de mettre en page des
catalogues de résumés.

# 15.24 # Comment utiliser la commande \cite dans un item ?
-----------------------------------------------------------
Pour utiliser la commande \cite dans l'item d'un environnement
description, il suffit de l'encadrer dans des accolades.

Exemple :
\item[{\cite[\S3.1]{Author1}}]
%%%% fin exemple %%%%

# 15.25 # Comment générer l'expression et al automatiquement ?
--------------------------------------------------------------
Voici une fonction "format.names" (tirée de plain.bst) où V. Henn
a rajouté quelques lignes pour mettre un et al pour les auteurs
de numéro supérieurs à 4. N'importe quel style biblio utilise une
fonction avec une syntaxe similaire, il n'y a qu'à insérer les
nouvelles lignes dans la fonction format.names (juste avant la
fin du while) du fichier biblio qui vous plaît et le tour est
joué...

%%%% debut macro %%%%
FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
  { namesleft #0 > }
  { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
    nameptr #1 >
    { namesleft #1 >
      { ", " * t * }
      { numnames #2 >
          { "," * }
          'skip$
        if$
        t "others" =
          { " et~al." * }
          { " and " * t * }
        if$
      }
      if$
    }   % fin du "si nameptr > 1"
    't  % "si nameptr = 1"
  if$
  nameptr #1 + 'nameptr :=
  namesleft #1 - 'namesleft :=

% ------------------------------
% si à ce stade on se retrouve avec des noms à placer et que
% le pointeur nameptr est égal à 4 alors il faut
% 1. ajouter un "et al."
% 2. ne pas prendre en compte les auteurs suivants : nameleft:=0
    nameptr #4 =  namesleft #0 >  and
    {  " \emph{et~al.}" *
       #0 'namesleft :=
    }
    'skip$
    if$
% fin des ajouts
% ------------------------------

  }
  while$ % tant qu'il reste des nom à placer
}
%%%% fin macro %%%%

--
Benjamin Bayart
bayartb@edgard.fdn.fr
