Colonnes et environnement align*

Bonjour toutes et tous,

J'ai voulu mettre des exemples sur quatre colonnes. J'ai fait ceci :
\documentclass[a4paper,11pt]{article}

\usepackage[french]{babel}      	% Pour tous les documents (Impatient page 35)
\usepackage[T1]{fontenc}        	% Pour tous les documents (Impatient page 35)
\usepackage[utf8]{inputenc}     	% Pour la gestion des accents
\usepackage[left=1cm, right=1cm, top=1cm, bottom=2cm]{geometry} %réglage des marges  (Impatient page 35)

\usepackage{amssymb,amsmath,mathrsfs}	% Packages pour les mathématiques

\usepackage{multicol}	% Package pour écrire du texte sur plusieurs colonnes

\newcounter{exple}  % Compteur pour la numérotation des exemples

\newenvironment{exple}{\refstepcounter{exple}%			% Environnement "exemple"
    \par\noindent\textbf{\underline{Exemple \theexple}} :}{\par}


\begin{document}

\begin{exple}

	\begin{multicols}{4}

\setlength{\columnseprule}{0.5pt}	% Taille de l'épaisseur de la ligne séparant les colonnes

\begin{align*}
72 & = 2 \times 2 \times 2 \times 3 \times 3 \\
   & = 2^3 \times 3^2
\end{align*}

\columnbreak

\begin{align*}
100 & = 2 \times 2 \times 5 \times 5 \\
    & = 2^2 \times 5^2
\end{align*}

\columnbreak

\begin{align*}
& 3927 = 2 \times 7 \times 11 \times 17 \\
& 2017 = 2017
\end{align*}

\columnbreak

\begin{align*}
& 2019 = 3 \times 673 \\
& 2020 = 2^2 \times 5 \times 101
\end{align*}

	\end{multicols}

\end{exple}


\end{document}

J'ai des lignes en trop entre "exemple 1" et le début des exemples, ainsi qu'une indentation non souhaitée (voir en pièce jointe ce que j'ai obtenu et ce que je voudrais obtenir. Ne pas tenir compte de la police).

Merci par avance pour votre aide.

michaël.

P. S. : désolé, brian, pour le "disgracieux soulignement". Je m'occuperai de ça en temps voulu, ne m'en veux pas trop pour l'instant ;-)100024

Réponses

  • Question 4 :

    Je ne sais pas comment tu as fait pour obtenir ces 4 colonnes. Chez moi c'est beaucoup trop large.

    C'est le begin{align} qui cause un saut de ligne. Ci-dessous une solution avec array. Pour supprimer l'indentation, utiliser noindent.
    \documentclass[a4paper,10pt]{article}
    \usepackage{amsmath}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[french]{babel}
    \usepackage{multicol}
    
    \begin{document}
    
    \newcounter{exple}
    \newenvironment{exple}{\refstepcounter{exple}%			% Environnement "exemple"
        \par\noindent\textbf{\underline{Exemple \theexple}} :}{\par}
        
    aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc 
    aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc 
    aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc aaa bbbb ccc 
    
    \begin{exple}
    \label{un_seul_facteur}
    
    	\begin{multicols}{3}
    
    \setlength{\columnseprule}{0.5pt}	% Taille de l'épaisseur de la ligne séparant les colonnes
    
    \noindent
    $\arraycolsep=1.4pt
    \begin{array}{rcl}
    72 & = & 2 \times 2 \times 2 \times 3 \times 3 \\
       & = & 2^3 \times 3^2
    \end{array}$
    
    \columnbreak
    
    \noindent
    $\arraycolsep=1.4pt
    \begin{array}{rcl}
    100 & = & 2 \times 2 \times 5 \times 5 \\
        & = & 2^2 \times 5^2
    \end{array}$
    
    \columnbreak
    
    \noindent
    $\arraycolsep=1.4pt
    \begin{array}{rcl}
    3927 & = & 2 \times 7 \times 11 \times 17 \\
    2017 & = & 2017 ~\text{{\tiny (voir remarque \ref{rmq_precedente})}}
    \end{array}$
    
    %\columnbreak
    %
    %\begin{align*}
    %& 2019 = 3 \times 673 \\
    %& 2020 = 2^2 \times 5 \times 101
    %\end{align*}
    
    	\end{multicols}
    
    \end{exple}
    
    \end{document}
    
  • Comme dit Saturne le align est la source de ton problème parce que le align est en mode display. Pour autant, je ne souscris pas à sa solution avec des array.

    Je te propose d'utiliser le sous-environnement aligned (qui en plus a le mérite de ne nécessiter que peu de changement dans ton code) :
    \documentclass[a4paper,11pt]{article}
    
    \usepackage[french]{babel}      	% Pour tous les documents (Impatient page 35)
    \usepackage[T1]{fontenc}        	% Pour tous les documents (Impatient page 35)
    \usepackage[utf8]{inputenc}     	% Pour la gestion des accents
    \usepackage[left=1cm, right=1cm, top=1cm, bottom=2cm]{geometry} %réglage des marges  (Impatient page 35)
    
    \usepackage{amssymb,amsmath,mathrsfs}	% Packages pour les mathématiques
    
    \usepackage{multicol}	% Package pour écrire du texte sur plusieurs colonnes
    
    \newcounter{exple}  % Compteur pour la numérotation des exemples
    
    \newenvironment{exple}{\refstepcounter{exple}%			% Environnement "exemple"
        \par\noindent\textbf{\underline{Exemple \theexple}} :}{\par}
    
    
    \begin{document}
    
    \begin{exple}
    
    	\begin{multicols}{4}
    
    \setlength{\columnseprule}{0.5pt}	% Taille de l'épaisseur de la ligne séparant les colonnes
    
    $\begin{aligned}
    72 & = 2 \times 2 \times 2 \times 3 \times 3 \\
       & = 2^3 \times 3^2
    \end{aligned}$
    
    \columnbreak
    
    $\begin{aligned}
    100 & = 2 \times 2 \times 5 \times 5 \\
        & = 2^2 \times 5^2
    \end{aligned}$
    
    \columnbreak
    
    $\begin{aligned}
    & 3927 = 2 \times 7 \times 11 \times 17 \\
    & 2017 = 2017
    \end{aligned}$
    
    \columnbreak
    
    $\begin{aligned}
    & 2019 = 3 \times 673 \\
    & 2020 = 2^2 \times 5 \times 101
    \end{aligned}$
    
    	\end{multicols}
    
    \end{exple}
    
  • Bonjour Saturne et Eric,

    merci à tous les deux pour vos solutions.

    Saturne, concernant le rendu sur 4 colonnes, c'est peut-être dû à mes marges ou ma police (j'ai modifié le code dans le premier message pour préciser tout ça).
    En tout cas, ce que tu me proposes fonctionne à l'exception de l'exemple $2019 = 3 \times 673$ qui, pour une raison que je n'arrive pas à trouver, n'est pas aligné avec le reste (voir code ci-après).


    Eric, pour quelle(s) raison(s) vaut-il mieux utiliser "aligned" plutôt que "array", le rendu des deux solutions étant très similaire (même si l'interligne est un peu différente) ?
    Par ailleurs, je ne comprends pas que ce tu veux dire par "mode display" dans ta phrase : "le align est la source de ton problème parce que le align est en mode display" ? Qu'appelles-tu "mode display" ?
    Je débute alors pardon si mes questions paraissent idiotes.

    En tout cas, merci pour ta solution qui fonctionne très bien (j'ai juste ajouté des "\noindent" avant les environnements "aligned").

    Le rendu des deux solutions (je ne m'explique pas l'indentation avant le $2019$ dans la solution de Saturne) avec le code suivant :
    \documentclass[a4paper,11pt]{article}
    
    \usepackage[french]{babel}      	% Pour tous les documents (Impatient page 35)
    \usepackage[T1]{fontenc}        	% Pour tous les documents (Impatient page 35)
    \usepackage[utf8]{inputenc}     	% Pour la gestion des accents
    \usepackage[left=1cm, right=1cm, top=1cm, bottom=2cm]{geometry} %réglage des marges  (Impatient page 35)
    
    \usepackage{amssymb,amsmath,mathrsfs}	% Packages pour les mathématiques
    
    \usepackage{multicol}	% Package pour écrire du texte sur plusieurs colonnes
    
    \newcounter{exple}  % Compteur pour la numérotation des exemples
    
    \newenvironment{exple}{\refstepcounter{exple}%			% Environnement "exemple"
        \par\noindent\textbf{\underline{Exemple \theexple}} :}{\par}
    
    
    \begin{document}
    
    
    \begin{center}
    EXEMPLE SATURNE
    \end{center}
    
    
    
    \begin{exple}
    
    	\begin{multicols}{4}
    
    \setlength{\columnseprule}{0.5pt}	% Taille de l'épaisseur de la ligne séparant les colonnes
    
    \noindent
    $\arraycolsep=1.4pt
    \begin{array}{rcl}
    72 & = & 2 \times 2 \times 2 \times 3 \times 3 \\
       & = & 2^3 \times 3^2
    \end{array}$
    
    \columnbreak
    
    \noindent
    $\arraycolsep=1.4pt
    \begin{array}{rcl}
    100 & = & 2 \times 2 \times 5 \times 5 \\
        & = & 2^2 \times 5^2
    \end{array}$
    
    \columnbreak
    
    \noindent
    $\arraycolsep=1.4pt
    \begin{array}{rcl}
    3927 & = & 2 \times 7 \times 11 \times 17 \\
    2017 & = & 2017
    \end{array}$
    
    \columnbreak
    
    \noindent
    $\arraycolsep=1.4pt
    \begin{array}{rcl}
    & 2019 = 3 \times 673 \\
    & 2020 = 2^2 \times 5 \times 101
    \end{array}$
    
    	\end{multicols}
    
    \end{exple}
    
    \bigskip
    \bigskip
    
    \begin{center}
    EXEMPLE ERIC
    \end{center}
    
    
    \begin{exple}
    
    	\begin{multicols}{4}
    
    \setlength{\columnseprule}{0.5pt}	% Taille de l'épaisseur de la ligne séparant les colonnes
    
    \noindent
    $\begin{aligned}
    72 & = 2 \times 2 \times 2 \times 3 \times 3 \\
       & = 2^3 \times 3^2
    \end{aligned}$
    
    \columnbreak
    
    \noindent
    $\begin{aligned}
    100 & = 2 \times 2 \times 5 \times 5 \\
        & = 2^2 \times 5^2
    \end{aligned}$
    
    \columnbreak
    
    \noindent
    $\begin{aligned}
    & 3927 = 2 \times 7 \times 11 \times 17 \\
    & 2017 = 2017
    \end{aligned}$
    
    \columnbreak
    
    \noindent
    $\begin{aligned}
    & 2019 = 3 \times 673 \\
    & 2020 = 2^2 \times 5 \times 101
    \end{aligned}$
    
    	\end{multicols}
    
    \end{exple}
    
    
    \end{document}
    

    Merci beaucoup à tous les deux.

    michaël.100042
  • Pour le 2020 non-aligné, as-tu bien tapé ceci :
    \noindent
    $\arraycolsep=1.4pt
    \begin{array}{rcl}
    2019 & = & 3 \times 673 \\
    2020 & = & 2^2 \times 5 \times 101
    \end{array}$
    

    Le "mode display" c'est le mode "math centré", que l'on obtient par exemple avec les doubles dollars.
  • Argh, au temps pour moi Saturne, je n'ai pas mis les "&" au bon endroit. Je cherchais l'erreur complètement ailleurs.

    Merci pour la réponse sur l'environnement "display".
  • Comme dit par Saturne, le mode display correspond à quelque chose écrit centré dans la page. Tu l'obtiens par exemple avec
      \begin{equation*}
        
      \end{equation*}
    
    (qui peut s'abréger en double dollar) ou
      \begin{align*}
         &  \\
         & 
      \end{align*}
    
    ou
      \begin{gather*}
         \\
        
      \end{gather*}
    
    et les version non étoilées.

    Aligned n'est pas un environnement, tu ne peux pas l'utiliser seul. Il s'utilise à l'intérieur d'un environnement math, comme les précédents, ou bien en mode texte (encadré par un dollar de chaque côté). Note que tu peux jouer sur l'alignement avec les options les options t(op), c(enter), b(ottom), par exemple
    $\begin{aligned}[c]
    72 & = 2 \times 2 \times 2 \times 3 \times 3 \\
       & = 2^3 \times 3^2
    \end{aligned}$
    


    En ce qui concerne l'environnement array, certains considèrent que ce n'est pas bien (mais vraiment pas bien). Voir par exemple https://docteur-michel.fr/latexr/IMG/pdf/tuetemath.pdf
  • Je suis d'accord pour l'utilisation d'aligned, mais il y a des & qui me semblent mal placés comme ici :
    $\begin{aligned}
    & 2019 = 3 \times 673 \\
    & 2020 = 2^2 \times 5 \times 101
    \end{aligned}$
    
    Je verrais plutôt :
    $\begin{aligned}
    2019 &= 3 \times 673 \\
    2020 &= 2^2 \times 5 \times 101
    \end{aligned}$
    
    (on a de la chance que 2019 et 2020 aient la même largeur !).

    Par ailleurs, je pense qu'Eric voulait écrire « aligned n'est pas un environnement display », car c'est certainement un environnement.
  • Je voulais dire que aligned s'emploie à l'intérieur d'un autre environnement. Ce serait donc un sous-environnement (donc un environnement).

    Quand à la position du &, c'est une question de gout et suivant l'alignement que l'on veut obtenir. Généralement, je fais ce qu'indique Brian en le plaçant juste avant le =.
  • Oui, les environnements d'amsmath contenant 'ed' dans leur nom (aligned, alignedat, gathered...) produisent une boîte, ce qui est totalement différent ce ce que font les environnements display (qui utilisent in fine les double-dollars de TeX).
  • Merci brian et Eric pour vos réponses et toutes ces précisions.
    Je n'ai pas encore bien saisi les alignement avec les "&" (je n'ai pas pris le temps de faire des tests mais je ferai ça). Ce que je voulais, c'était un alignement à gauche pour 2019 et pour 2020. Je regarderai ce que ça donne avec des nombres à trois ou cinq chiffres, et je reviens vous embêter si besoin ;-)

    Encore merci !
Connectez-vous ou Inscrivez-vous pour répondre.