Comment obtenir des points de suspension mathématiques ?#

1.  Avec les commandes de base#

Des points de suspension peuvent être nécessaires dans des formules. Et pas uniquement en version horizontale. De base, en fournit déjà plusieurs :

  • \dots pour des points de suspension positionnés sur la ligne de base ;

  • \cdots pour des points de suspension avec un centrage vertical dans la ligne de texte. Ils sont donc plus hauts que ceux obtenus avec \dots) ;

  • \vdots pour des points de suspension verticaux ;

  • \ddots pour des points de suspension en diagonale.

Voici un exemple les reprenant tous.

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page

\begin{document}
Observez bien la différence entre $\dots$ et $\cdots$ ! Cette dernière 
version se trouve souvent dans les tableaux et matrices.
\[
  \begin{array}{ccc}
    x_{11} & \cdots & x_{1p} \\
    \vdots & \ddots & \vdots \\
    x_{n1} & \cdots & x_{np}
  \end{array}
\]
\end{document}

2.  Avec l’extension graphicx#

En utilisant l’extension graphicx (ou graphics), vous pouvez inverser la diagonale suivie par \ddots, pour écrire les matrices antisymétriques, de cette façon :

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{graphics}

\begin{document}
\Large $a \reflectbox{$\ddots$} z$
\end{document}

Cette méthode fonctionne, mais elle n’est pas recommandée pour obtenir le résultat souhaité (la suite de cette page précise ce point). Pour répondre aux besoins plus pointus, il existe au moins trois extensions, listées ci-après.

3.  Avec l’extension mathtools#

L’extension mathtools (ou amsmath) fournit une panoplie de points de suspension nommé en fonction de leur usage :

  • \dotsb pour une utilisation entre des paires d’opérateurs binaires ;

  • \dotsc pour une utilisation entre des paires de virgules (comma) ;

  • \dotsi pour une utilisation avec des intégrales ;

  • \dotsm pour une utilisation dans une multiplication ;

  • \dotso pour les autres cas (other).

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{mathtools}

\begin{document}
Soit la série $A_1, A_2, \dotsc$, on peut en faire la somme 
$A_1+A_2 +\dotsb $, le produit $A_1 A_2 \dotsm $, mais aussi l'intégrer 
comme ceci :
\[  \int_{A_1}\int_{A_2}\dotsi  \]
\end{document}

4.  Avec l’extension yhmath#

L’extension yhmath, de Yannis Haralambous, définit une commande \adots, qui est l’analogue de \ddots, mais inclinée vers l’avant plutôt que vers l’arrière. L’extension est fournie avec une police de caractères plutôt intéressante qui étend la police standard Computer Modern cmex ; la documentation de l’extension détaille ce point.

5.  Avec l’extension mathdots#

L’extension mathdots est spécialisée dans les points de suspension. En plus de corriger le comportement des \ddots et \vdots de et lorsque la taille de caractère change (voir les tableaux comparatifs ci-dessous), elle fournit des points de suspension en « diagonale inverse », avec \iddots (qui fait donc le même travail que \adots de yhmath, mais en y apportant ses corrections).

\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{mathtools}
  % 
  \usepackage{xcolor} % Pour le gris de l'exemple

  \def\dott#1{$#1$}
  \def\dotts#1{$2^{#1}\quad 2^{2^{#1}}$}
  \renewcommand\arraystretch{1.4}

\begin{document}
\begin{tabular}{c|cccc}
  \multicolumn{1}{c}{\textbf{Commande}}%
    & \textbf{Large}          & \textbf{normal}   
    & \textbf{scriptsize}     & \textbf{en exposant}              \\
  \hline
  \verb$\ddots$      & \Large\dott{\ddots}    & \dott{\ddots}   
    & \scriptsize\dott{\ddots}      & \dotts{\ddots}              \\
  \verb$\vdots$      & \Large\dott{\vdots}    & \dott{\vdots}    
    & \scriptsize\dott{\vdots}      & \dotts{\vdots}              \\
  \color{black!30!white}\verb$\iddots$ 
    & \multicolumn{4}{c}{\color{black!30!white}Non disponible}    \\
  \verb$\dddot{X}$   & \Large\dott{\dddot{X}} & \dott{\dddot{X}} 
    & \scriptsize\dott{\dddot{X}}   & \dotts{\dddot{X}}           \\
  \verb$\ddddot{X}$  & \Large\dott{\ddddot{X}}& \dott{\ddddot{X}}
    & \scriptsize\dott{\ddddot{X}}  & \dotts{\ddddot{X}}
\end{tabular}
\end{document}
\documentclass{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{mathtools}
  \usepackage{mathdots}
  %

  \def\dott#1{$#1$}
  \def\dotts#1{$2^{#1}\quad 2^{2^{#1}}$}
  \renewcommand\arraystretch{1.4}

\begin{document}
\begin{tabular}{c|cccc}
  \multicolumn{1}{c}{\textbf{Commande}}%
    & \textbf{Large}          & \textbf{normal}   
    & \textbf{scriptsize}     & \textbf{en exposant}              \\
  \hline
  \verb$\ddots$      & \Large\dott{\ddots}    & \dott{\ddots}   
    & \scriptsize\dott{\ddots}      & \dotts{\ddots}              \\
  \verb$\vdots$      & \Large\dott{\vdots}    & \dott{\vdots}    
    & \scriptsize\dott{\vdots}      & \dotts{\vdots}              \\
  \verb$\iddots$     & \Large\dott{\iddots}   & \dott{\iddots}  
    & \scriptsize\dott{\iddots}     & \dotts{\iddots}             \\
  \verb$\dddot{X}$   & \Large\dott{\dddot{X}} & \dott{\dddot{X}} 
    & \scriptsize\dott{\dddot{X}}   & \dotts{\dddot{X}}           \\
  \verb$\ddddot{X}$  & \Large\dott{\ddddot{X}}& \dott{\ddddot{X}}
    & \scriptsize\dott{\ddddot{X}}  & \dotts{\ddddot{X}}
\end{tabular}
\end{document}

Les commandes \dddot et \ddddot sont fournies par amsmath et corrigées par mathdots. Il vous faut donc charger les deux extensions dans l’ordre suivant pour éviter tout problème :

\usepackage{amsmath}
\usepackage{mathdots}

Sources