Comment tracer un tableau de variation ?#

1.  Avec les commandes de base#

Pour un tableau simple, l’environnement array du mode mathématique standard de peut donner une réponse appropriée. En voici un exemple :

\documentclass{article}
  \pagestyle{empty} % N'affiche pas de numéro de page 

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

Les flèches sont nommées d’après les points cardinaux : \nearrow est pour north-east, \searrow pour south-east :

Commande

Résultat

\nearrow

\(\nearrow\)

\searrow

\(\searrow\)

\nwarrow

\(\nwarrow\)

\swarrow

\(\swarrow\)

On peut faire de plus jolies flèches (redimensonnables) avec les commandes graphiques, mais le code est moins lisible.

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

\documentclass{article}
  \pagestyle{empty} % N'affiche pas de numéro de page 

\begin{document}
\unitlength=1cm
$
\begin{array}{|c|ccccr|}
\hline
x     & -\infty &    & 0  &    & +\infty \\ \hline
f'(x) & 5       & +  & 0  & -  & -10  \\ \hline
      &         &    & 10 &    &      \\ % ligne des valeurs "max"
f(x) & &
  \begin{minipage}{1cm}
  \begin{picture}(1,1)
    \put(0,0){\vector(1,1){1}}
  \end{picture}
  \end{minipage}
 & &
  \begin{minipage}{1cm}
  \begin{picture}(1,1)
     \put(0,1){\vector(1,-1){1}}
  \end{picture}
  \end{minipage}
& \\                                     % flèches
      & -\infty &    &    &    & -10  \\ % ligne des valeurs "min
\hline
\end{array}
$
\end{document}

2.  Avec l’extension tkz-tab#

La méthode actuellement conseillée utilise l’extension tkz-tab, écrite par Alain Matthes et basée sur TikZ, pour composer tableaux de signes et tableaux de variations. La richesse de sa syntaxe permet toutes les fantaisies (utilisation de la couleur, par exemple) et sa documentation, très complète, est écrite en français.

\documentclass{article}
  \usepackage{tkz-tab}
  \pagestyle{empty} % N'affiche pas de numéro de page 

\begin{document}
\begin{tikzpicture}
\tikzset{h style/.style = {pattern=north west lines}}
\tkzTabInit[lgt=1,espcl=2]{$x$ /1,  $f$ /2}{$0$,$1$,$2$,$3$}%
\tkzTabVar{+/ $1$  / , -CH/ $-2$ / , +C/  $5$, -/ $0$  /  }
\end{tikzpicture}
\end{document}

3.  Avec l’extension tableaux#

L’extension tableaux, de Nicolas Kisselhoff, permet également d’effectuer des mises en page grâce à PStricks. Par exemple :

\documentclass{article}
  \usepackage{ifthen,minimum,tableau}
  \newpsstyle{hachured}
             {fillstyle=hlines,
              hatchwidth=0.2pt,
              hatchsep=2pt}

\begin{document}
\setlength{\TabTitreL}{1cm}
\begin{MonTableau}{1}{9}{1.5}
\psframe[style=hachured,%
         linestyle=none](.3,1)(.45,0)

\TabNewCol{0}
\rTabPut{Br}{-.15}{.25}{$x$}
\rTabPut{Br}{-.15}{.40}{$f(x)$}

\TabNewCol{0}
\rTabPut{Bl}{.15}{.25}{$0$}
\rTabPut{Bl}{.15}{.60}{$\frac{3}{2}$}

\TabNewCol{.30}
\rTabPut{B}{0}{.25}{$1$}
\rTabPut{Br}{-.15}{.80}{$+\infty$}
\psline[style=TabDblBarre](.3,0)(.3,1)

\TabNewCol{.45}
\rTabPut{B}{0}{.25}{$\frac{3}{2}$}
\rTabPut[2]{B}{0}{.10}{\TabZ}

\TabNewCol{1}
\rTabPut{Br}{-.15}{.25}{$+\infty$}
\rTabPut{Br}{-.15}{.40}{$1$}

\TabFleche{B1}{C1}
\TabFleche{D1}{E1}
\end{MonTableau}
\end{document}