Alignement avec package multicol

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
pzorba75
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 214
Inscription : mardi 20 août 2013, 04:50
Localisation : Paris

[Résolu] Alignement avec package multicol

Message par pzorba75 »

Bonjour à tous,
je suis amené de temps en temps à utiliser le package multicol pour présenter des listes sur deux colonnes verticalement. La saisie est assez facile mais le résultat obtenu n'est pas bien justifié à gauche, laissant un petit espace du plus vilain effet quand on lit la suite du document. La document du package est assez difficile à utiliser et je n'y trouve pas d'exemple pour faire ce réglage.
Voici un ECM reproduisant le problème :

Code : Tout sélectionner

\documentclass[a4paper,12pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[french]{babel}
\DecimalMathComma
\usepackage{mathrsfs,amssymb,mathtools}
\usepackage{showframe}
\usepackage{geometry}
\geometry{textwidth=160mm,textheight=260mm,top=2cm}

\usepackage{multicol}
\usepackage{enumitem}
\setlength{\parindent}{0cm}

\DeclareMathOperator \ch {ch}
\DeclareMathOperator \sh {sh}
\renewcommand{\th}{\operatorname{th}}
\DeclareMathOperator{\e}{e}

\begin{document}




On pose, pour tout réel $x$, $\ch{x}=\dfrac{\e^x+\e^{-x}}{2}$, $\sh{x}=\dfrac{\e^x-\e^{-x}}{2}$ et $\th{x}=\dfrac{\sh{x}}{\ch{x}}\cdot$ \'Etablir les relations suivantes.

\rule{\linewidth}{3pt}

\begin{multicols}{2}
\begin{enumerate}[label=\textbf{\alph*)}]
\item $\left(\ch{x}\right)^2-\left(\sh{x}\right)^2=1$
\item $1-\left(\th{x}\right)^2=\dfrac{1}{\left(\ch{x}\right)^2}$
\item $\sh{\left(x+y\right)}=\sh{x}\ch{y}+\sh{y}\ch{x}$
\item $\ch{\left(x+y\right)}=\ch{x}\ch{y}+\sh{y}\sh{x}$
\item $\th{\left(x+y\right)}=\dfrac{\th{x}+\th{y}}{1+\th{x}\th{y}}$
\item $\sh{x}+\sh{y}=2\sh{\left(\dfrac{x+y}{2}\right)}\ch{\left(\dfrac{x-y}{2}\right)}$
\item $\ch{x}+\ch{y}=2\ch{\left(\dfrac{x+y}{2}\right)}\ch{\left(\dfrac{x-y}{2}\right)}$
\item $\ch{x}-\ch{y}=2\sh{\left(\dfrac{x+y}{2}\right)}\sh{\left(\dfrac{x-y}{2}\right)}$
\item $\ch{\left(2x\right)}=2\left(\ch{x}\right)^2-1$
\item $\sh{\left(2x\right)}=2\sh{x}\ch{x}$
\end{enumerate}
\end{multicols}

Je souhaite que les relations ci-dessus soient sans le retrait gauche.

\end{document}
MA question : Comment modifier la définition de l'environnement multicol pour tout aligner à gauche.
D'avance merci pour l'aide apportée.
Pierre
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par pzorba75 le dimanche 06 septembre 2020, 06:21, modifié 2 fois.
On se lasse de tout, excepté d'apprendre.
Virgile
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 830
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Alignement avec package multicol

Message par un bon petit »

Spécifier leftmargin=*.
balf
Utilisateur chevronné
Utilisateur chevronné
Messages : 3992
Inscription : mercredi 02 janvier 2008, 23:18

Re: Alignement avec package multicol

Message par balf »

Bonsoir,
Il suffit d'ajouter l'option wide=0pt définie par enumitem. Mais je propose une autre façon de faire qui me paraît plus plaisante, avec l'extension (et environnement) tasks, convenablement paramétré. J''n ai profité pour simplifier votre code. D'autre part, mon éditeur, comme la plupart des éditeurs modernes, sauvegardant en uf8, j'ai supprimé l'appel à inputenc, latex attendant maintenant de l'utf8 par défaut.

Sans rapport avec le code LaTeX: il manque une des formules de duplication pour ch 2x (= 2sh²x+1).

B. A.

Code : Tout sélectionner

\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[french]{babel}
\DecimalMathComma
\usepackage{mathrsfs,amssymb,mathtools}
\usepackage{geometry}
\geometry{textwidth=160mm,textheight=260mm,top=2cm, showframe}

\usepackage{multicol}
\usepackage{enumitem}
\setlength{\parindent}{0cm}

\usepackage{tasks} 
\DeclareMathOperator \ch {ch}
\DeclareMathOperator \sh {sh}
\renewcommand{\th}{\operatorname{th}}
\DeclareMathOperator{\e}{e}

\begin{document}

On pose, pour tout réel $x$, $\ch x =\dfrac{\e^x+\e^{-x}}{2}$, $\sh x =\dfrac{\e^x-\e^{-x}}{2}$ et $\th x =\dfrac{\sh x}{\ch x}\cdot$ \\ Établir les relations suivantes.

\rule{\linewidth}{3pt}

\begin{multicols}{2}
\begin{enumerate}[label=\textbf{\alph*)}, wide=0pt]
\item $\ch^2 x-\sh^2 x=1$
\item $1-\th^2 x=\dfrac{1}{\ch^2 x}$
\item $\sh(x+y)=\sh x \ch y +\sh y \ch x $
\item $\ch(x+y)=\ch x \ch y +\sh y \sh x $
\item $\th(x+y)=\dfrac{\th x +\th y }{1+\th x \th y }$
\item $\sh x +\sh y =2\sh{\left(\dfrac{x+y}{2}\right)}\ch{\left(\dfrac{x-y}{2}\right)}$
\item $\ch x +\ch y =2\ch{\left(\dfrac{x+y}{2}\right)}\ch{\left(\dfrac{x-y}{2}\right)}$
\item $\ch x -\ch y =2\sh{\left(\dfrac{x+y}{2}\right)}\sh{\left(\dfrac{x-y}{2}\right)}$
\item $\ch 2x =2\ch^2 x -1$
\item $\sh 2x =2\sh x \ch x $
\end{enumerate}
\end{multicols}

Je souhaite que les relations ci-dessus soient sans le retrait gauche.

\begin{tasks}[label-format=\bfseries, label-width=1.75em, label-offset=0em, item-indent=1.75em](2)
\task $\ch^2 x-\sh^2 x=1$
\task $1-\th^2 x=\dfrac{1}{\ch^2 x}$
\task $\sh(x+y)=\sh x \ch y +\sh y \ch x $
\task $\ch(x+y)=\ch x \ch y +\sh y \sh x $
\task $\th(x+y)=\dfrac{\th x +\th y }{1+\th x \th y }$
\task $\sh x +\sh y =2\sh{\left(\dfrac{x+y}{2}\right)}\ch{\left(\dfrac{x-y}{2}\right)}$
\task $\ch x +\ch y =2\ch{\left(\dfrac{x+y}{2}\right)}\ch{\left(\dfrac{x-y}{2}\right)}$
\task $\ch x -\ch y =2\sh{\left(\dfrac{x+y}{2}\right)}\sh{\left(\dfrac{x-y}{2}\right)}$
\task $\ch 2x =2\ch^2 x -1$
\task $\sh 2x =2\sh x \ch x $
\end{tasks}

\end{document} 
pbmulticol-enumerate.pdf
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
pzorba75
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 214
Inscription : mardi 20 août 2013, 04:50
Localisation : Paris

Re: Alignement avec package multicol

Message par pzorba75 »

Merci pour la réponse, je ne vois pas où j'aurai pu trouver ce paramètre wide=0pt, n'ayant vu aucun exemple où il montre son effet. Je le mets en réserve dans ma boite à outils pour rédiger des listes.
L'exercice que je prépare est issu d'un ouvrage trouvé sur Internet que je reprends à l'identique, les fonctions hyperboliques n'étant pas au programme des terminales, je me limite à des exercices d'application.
J'ai choisi multicol pour disposer les items verticalement, ce que faisait l'auteur de l'ouvrage utilisé; le package tasks ne permet pas cette disposition, ni la package hlist assez proche de tasks.
Pour la rédaction des expressions en Latex, j'ai pris l'habitude mettre les arguments des commandes Latex entre {...}, ce qui m'évite bien des erreurs en particuliers dans les indices et exposants.
Je marque le sujet Résolu.
À une prochaine occasion.
On se lasse de tout, excepté d'apprendre.
Virgile
balf
Utilisateur chevronné
Utilisateur chevronné
Messages : 3992
Inscription : mercredi 02 janvier 2008, 23:18

Re: Alignement avec package multicol

Message par balf »

Attention tout de même avec la clef wide pour les items longs: ce qu'elle fait, c'est que le contenu de chaque \item, à partir de la deuxième ligne, est aligné sur la marge gauche du document. Si l'on veut qu'il soit aligné avec le début de la première ligne, il faut rajouter la clef leftmargin=*.
Par ailleurs, si l'on utilise simplement wide, la valeur par défaut revient à écrire wide=\parindent, si je me souviens bien.

B. A.
pzorba75
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 214
Inscription : mardi 20 août 2013, 04:50
Localisation : Paris

Re: Alignement avec package multicol

Message par pzorba75 »

J'ai remplacé wide=0 par wide=\parindent, leftmargin=* et j'obtiens le même résultat.
Je garde cette syntaxe pour les prochains documents.
Merci de cette remarque.
On se lasse de tout, excepté d'apprendre.
Virgile