diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /help/LaTeX-FAQ-francaise/part4 |
Initial commit
Diffstat (limited to 'help/LaTeX-FAQ-francaise/part4')
-rw-r--r-- | help/LaTeX-FAQ-francaise/part4 | 2906 |
1 files changed, 2906 insertions, 0 deletions
diff --git a/help/LaTeX-FAQ-francaise/part4 b/help/LaTeX-FAQ-francaise/part4 new file mode 100644 index 0000000000..36dd3e146d --- /dev/null +++ b/help/LaTeX-FAQ-francaise/part4 @@ -0,0 +1,2906 @@ +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 |