\documentclass[10pt,a4paper]{article}
%%% taille 10 points et format de papier A4
%%% classe article

%%% Codage en unicode
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} 

\usepackage{multicol}%%%         écriture en multicolonnes
\usepackage[normalem]{ulem}%%%   pour texte barré \sout{}
\usepackage[french]{babel}%%%    écriture en français
\DecimalMathComma%%%             évite l'espace après la virgule en mode math
\usepackage{multido}%%%          pour faire des boucles
\usepackage{pst-all,pst-eucl,pst-func}%%% PsTricks etc.
\usepackage{graphicx}%%%         pour graphiques et couleurs	
\usepackage{amsmath,amsfonts,amssymb}%%% outils AMS
\usepackage{mathrsfs}%%%         police script \mathscr{}
\usepackage{tabularx}%%%         tableaux
\usepackage{fancybox}%%%         divers boîtes
\usepackage{lscape}%%%           mode paysage
\usepackage[np]{numprint}%%%     pour formater les nombres de plus de 3 chiffres
\usepackage{colortbl}%%%         pour griser des cases dans un tableau
\usepackage{makeidx}%%%          pour créer un index
\makeindex%%%                    indispensable après l'appel du package makeidx
\usepackage{lettrine}%%%         pour créer des lettrines
\usepackage{eurosym}%%%          sigle euro

%\usepackage{bez123}%%%     courbes de Bézier

\usepackage{vmargin}%%%          réglage des marges
\setmarginsrb{3cm}{2cm}{3cm}{2cm}{1cm}{1cm}{1cm}{1cm}
% 1 est la marge gauche
% 2 est la marge en haut
% 3 est la marge droite
% 4 est la marge en bas
% 5 fixe la hauteur de l'entête
% 6 fixe la distance entre l'entête et le texte
% 7 fixe la hauteur du pied de page
% 8 fixe la distance entre le texte et le pied de page

\setlength{\parindent}{0pt}%%% règle l'indentation en début de paragraphe 

%%%  Commandes perso FH

%%% Pour intégrale, somme et produit, etc.
\newcommand{\ds}{\displaystyle}%%% raccourci pour \displaystyle

%%% ensembles de nombres
%%% On réservera le style "double barre" à l'écriture au tableau
\newcommand{\R}{\textbf{R}}
\newcommand{\N}{\textbf{N}}
\newcommand{\Z}{\textbf{Z}}
\newcommand{\C}{\textbf{C}}
\newcommand{\Q}{\textbf{Q}}
\newcommand{\K}{\textbf{K}}

%%% différents repères
\newcommand{\Oij}{(\text{O}\,;\,\vec{\imath}\,,\,\vec{\jmath})}
\newcommand{\rep}{(\text{O},\text{I},\text{J})}
\newcommand{\Ouv}{(\text{O}\,;\,\vec{u}\,,\,\vec{v})}
\newcommand{\Oijk}{(\text{O}\,;\,\vec{\imath}\,,\,\vec{\jmath}\,,\,\vec{k})}

%%%  Courbe représentative
\newcommand{\Cr}[1]{\mathscr{C}_{#1}}

%%% crochets gauche et droit
\newcommand{\cg}{\texttt{]}}
\newcommand{\cd}{\texttt{[}}

%%% crochet d'entiers
\newcommand{\cde}{\texttt{[}\!\!\texttt{[}}
\newcommand{\cge}{\texttt{]}\!\!\texttt{]}}

%%% inférieur ou égal, supérieur ou égal
\newcommand{\pg}{\geqslant}
\newcommand{\pp}{\leqslant}

\usepackage{fancyhdr}%%%       En-têtes et pieds de pages
\pagestyle{fancy}
\renewcommand\headrulewidth{1pt}%%% filet haut de page
\renewcommand\footrulewidth{0pt}%%% filet bas de page
\renewcommand{\headwidth}{\textwidth}
%%% head pour haut de page
%%% L C et R pour Left Center et Right
\fancyhead[L]{\url{http://latexetmath.canalblog.com}}
\fancyhead[R]{\today} %%% \today = date du jour
\fancyhead[C]{}
%%% foot pour pied de page
\fancyfoot[C]{\begin{small}-- \thepage\  --\end{small}}  
\fancyfoot[R]{}%%%     {\jobname}%%% nom du fichier tex
\fancyfoot[L]{\href{mailto:francois.hache@free.fr}{FH}}

%%% Pour les énumérations
%%% premier niveau 
\renewcommand{\theenumi}{\textbf{\arabic{enumi}}}
\renewcommand{\labelenumi}{\textbf{\theenumi.}}
%%% deuxième niveau
\renewcommand{\theenumii}{\textbf{\alph{enumii}}}
\renewcommand{\labelenumii}{\textbf{\theenumii.}}
%%% troisième niveau
\renewcommand{\theenumiii}{\textbf{\arabic{enumiii}}}
\renewcommand{\labelenumiii}{\textbf{\theenumiii)}}
%%% permet d'avoir a. au lieu de (a) dans une énumération de niveau 2
%%% voir : http://cahiers.gutenberg.eu.org/cg-bin/article/CG_1994___17_32_0.pdf

\newenvironment{changemargin}[2]
{\begin{list}{}{%
\setlength{\topsep}{0pt}%
\setlength{\leftmargin}{0pt}%
\setlength{\rightmargin}{0pt}%
\setlength{\listparindent}{\parindent}%
\setlength{\itemindent}{\parindent}%
\setlength{\parsep}{0pt plus 1pt}%
\addtolength{\leftmargin}{#1}%
\addtolength{\rightmargin}{#2}%
}\item }{\end{list}}
%%%% pour changer les marges gauche et droite sur un paragraphe
%%%% \begin{changemargin}{marge gauche}{marge droite}
%%%% ...
%%%% \end{changemargin}

\usepackage{hyperref}%%% pour les références

%%% paramètres des pdf
\hypersetup{
pdfauthor = {F. Hache},
pdftitle = {calibrage de texte},
pdfstartview = FitH,
pdfcreator = {LaTeX vers PDF}
allbordercolors = white,
colorlinks=true,
linkcolor=red,
urlcolor=red,
unicode=true}

%%% Autres commandes qui doivent être définies après hyperref
\newcommand{\e}{\,\text{e}}%%%               le e de l'exponentielle
\renewcommand{\d}{\,\text d}%%%              le d de l'intégration
\renewcommand{\i}{\,\text{i}\,}%%%           le i des complexes
\renewcommand{\v}[1]{\,\overrightarrow{\,\text{#1}\,}}%%% vecteur

%%% définitions de nouvelles couleurs
\newrgbcolor{rb}{0.804 0 0}
\newrgbcolor{vb}{0 0.545 0}

\begin{document}

\part*{\centering Superposition de textes}

Cette chronique est consacrée à la superposition de textes dans différentes situations.

\section{\textbackslash{}parbox}

La première idée que l'on peut avoir pour superposer du texte est d'utiliser l'instruction \verb!\parbox! qui crée des \og boîtes paragraphes \fg{}:

\begin{list}{\textbullet}{}
\item l'instruction \verb!\parbox{1.5cm}{dessus\\dessous}! donne: \parbox{1.5cm}{dessus\\dessous};
\item l'instruction \verb!\parbox[t]{1.5cm}{dessus\\dessous}! donne: \parbox[t]{1.5cm}{dessus\\dessous};
\item l'instruction \verb!\parbox[b]{1.5cm}{dessus\\dessous}! donne: \parbox[b]{1.5cm}{dessus\\dessous}.
\end{list}

On peut contrôler la position du texte par rapport à la ligne d'écriture avec les options \texttt{[l]} (pour \texttt{left}) ou \texttt{[r]} (pour \texttt{right}); par défaut, le texte est centré. Le principal inconvénient de cette instruction est qu'il faut obligatoirement donner une largeur à la boîte dans les premières accolades.

\smallskip
 
On peut trouver toutes les bonnes explications sur \verb!\parbox! (et plein d'autres sur plein d'autres sujets) dans le très bon document \textsc{HowTo} de \textsc{Sébastien Combéfis} téléchargeable \href{http://www.latex-howto.be/files/LaTeX-HowTo-full.pdf}{ici}.

\smallskip

Voyons ce que cela donne en mode mathématique:
\verb!$\parbox{1cm}{f(x)\\g(x)}$! affiche $\parbox{0.8cm}{f(x)\\g(x)}$. On voit ainsi que l'écriture n'est pas en mode mathématique!

On utilisera donc plutôt: \verb!\parbox{1cm}{$f(x)\\g(x)$}! qui affiche \parbox{1cm}{$f(x)\\g(x)$}. 

\section{\textbackslash{}shortstack}

Un moyen simple de superposer du texte m'a été appris par \textsc{Denis Vergès} (merci à lui!); il s'agit de \verb!\shortstack!. En écrivant \verb!\shortstack{dessus\\en dessous}! on obtient: \shortstack{dessus\\en dessous}.

On peut contrôler la position du texte dans la \og boîte \fg{} créée,  qui peut être centré (par défaut ou avec l'option \texttt{[c]}), justifié à gauche (avec l'option \texttt{[l]}) ou justifié à droite (avec l'option \texttt{[r]}): 
\begin{list}{\textbullet}{}
\item l'instruction \verb!\shortstack[l]{dessus\\en dessous}! donne: \shortstack[l]{dessus\\en dessous};
\item l'instruction \verb!\shortstack[r]{dessus\\en dessous}! donne: \shortstack[r]{dessus\\en dessous}.
\end{list}

\smallskip

Même restriction en ce qui concerne le mode mathématique:

l'instruction \verb!$\shortstack{f(x)\\g(x)}$! donne: $\shortstack{f(x)\\g(x)}$.

On utilisera donc \verb!\shortstack{$f(x)$\\$g(x)$}! qui donne: \shortstack{$f(x)$\\$g(x)$}.

\smallskip

L'instruction \verb!\shortstack! est rapide et efficace pour superposer du texte, par exemple dans des tableaux (essayez!). Mais la \og pile \fg{} (traduction de \texttt{stack}) est toujours positionnée au dessus de la ligne d'écriture. 

\section{\textbackslash{}atop}

Si on veut superposer du texte dans une limite, par exemple la limite de la fonction logarithme quand $x$ tend vers 0 en restant strictement positif, il y a l'instruction \verb!\atop! que j'avais l'habitude d'utiliser.

Ainsi \verb!$\displaystyle\lim_{x \to 0 \atop x > 0} \ln(x)$! affiche $\displaystyle\lim_{x \to 0 \atop x > 0} \ln(x)$.

Mais en grossissant un peu l'affichage, on se rend mieux compte que, lorsque \verb!\atop! est utilisé, les indices sont rétrécis:

\smallskip

\hfill{}{\Large $\ds\lim_{x \to 0} \ln(x) \quad \ds\lim_{x \to 0 \atop x>0} \ln(x)$}\hfill{}

\section{\textbackslash{}substack}

Il reste donc à trouver la bonne instruction qui permet de superposer des indices sans en rétrécir la taille: il s'agit de \verb!\substack!.

En écrivant \verb!$\displaystyle\lim_{\substack{x \to 0 \\ x>0}} \ln(x)$!, on obtiendra $\displaystyle\lim_{\substack{x \to 0 \\ x>0}} \ln(x)$.

Et ainsi les indices ne sont pas rétrécis comme on peut le voir ici:

\smallskip

\hfill{}{\Large $\displaystyle\lim_{x \to 0} \ln(x) \quad \displaystyle\lim_{\substack{x \to 0 \\ x>0}} \ln(x)$}\hfill{}

\smallskip

C'est donc \verb!\substack! qu'il faut employer dans ce genre de situation.

\section{\textbackslash{}stackrel, \textbackslash{}overset et \textbackslash{}underset}

\begin{list}{\textbullet}{}
\item
Uniquement en mode mathématique, on peut utiliser l'instruction \verb!\stackrel! dans une expression du style \verb!$x\ \stackrel{f}{\longmapsto} 2x+3$! qui donne $x\ \stackrel{f}{\longmapsto} 2x+3$.

\smallskip

Je l'emploie aussi pour décrire un chemin dans un graphe:
$A\ \stackrel{12}{\longrightarrow}\ D\ \stackrel{8}{\longrightarrow}\ H$, etc.

\item Une instruction qui fait la même chose est \verb!\overset!; la preuve:

\hfill{}\verb!x\ overset{f}{\longmapsto} 3x+2! donne $x\ \overset{f}{\longmapsto} 3x+2$.\hfill{}

\item Si on préfère écrire le nom de la fonction en dessous de la flèche, on peut employer \verb!\underset!:

\hfill{}\verb!x\ underset{f}{\longmapsto} 3x+2! donne $x\ \underset{f}{\longmapsto} 3x+2$.\hfill{}


\end{list}


\section{\textbackslash{}overbrace et \textbackslash{}underbrace}

Enfin on peut signaler des superpositions avec des accolades.

\smallskip

Pour écrire des accolades avec un texte au dessus, on utilisera \verb!\overbrace! avec en puissance ce que l'on veut écrire, le tout en mode mathématique.

Ainsi \verb!\[4^{10} = \overbrace{4\times 4 \times \cdots \times 4}^{10 \text{ facteurs}}\]! affichera

\hfill{}$4^{10} = \overbrace{4\times 4 \times \cdots \times 4}^{10 \text{ facteurs}}$\hfill{}

\smallskip

On peut faire la même chose avec des accolades en dessous de la formule en utilisant \verb!\underbrace! et une mise en indice.

Ainsi \verb!\[4^{10} = \underbrace{4\times 4 \times \cdots \times 4}_{10 \text{ facteurs}}\]! affichera

\hfill{}$4^{10} = \underbrace{4\times 4 \times \cdots \times 4}_{10 \text{ facteurs}}$\hfill{}

\smallskip

On peut imbriquer des \verb!\underbrace! comme dans
$\underbrace{5\times (\underbrace{2+\underbrace{3\times 5}_{15}}_{17})}_{85}$
qui s'obtient par 

\smallskip

\verb!$\underbrace{5\times (\underbrace{2+\underbrace{3\times 5}_{15}}_{17})}_{85}$!.

\medskip

À vous de jouer maintenant!

\end{document}