Comment obtenir un document multicolonnes?

$\Reponse$ L'option standard twocolumn permet de présenter un texte sur deux colonnes verticales:

\documentclass[twocolumn]{article}
  \usepackage[french]{babel}
 
\begin{document}
Voici un texte sur deux colonnes que \LaTeX{}
n'équilibre pas par lui-même (il remplit les 
colonnes les unes après les autres). L'espace 
entre les colonnes peut être modifié comme
indiqué plus loin. Une ligne de séparation des 
colonnes peut également être insérée.
\end{document}

\documentclass[twocolumn]{article}
  \usepackage[width=6cm,height=5cm]{geometry}
  \usepackage{lmodern,microtype}
  \usepackage[french]{babel}

\begin{document}
Voici un texte sur deux colonnes que \LaTeX{}
n'équilibre pas par lui-même (il remplit les 
colonnes les unes après les autres). L'espace 
entre les colonnes peut être modifié comme
indiqué plus loin. Une ligne de séparation des 
colonnes peut également être insérée.
\end{document}

$\Reponse$ Pour agir localement, on peut utiliser les commandes : \twocolumn[⟨texte sur une colonne⟩]{⟨texte sur deux colonnes⟩} puis \onecolumn{⟨texte sur une colonne⟩} ou plus généralement \twocolumn et \onecolumn.

Pour une meilleure lisibilité du source, on peut également utiliser les environnements correspondants:

\documentclass{article}
  \usepackage[french]{babel}
 
\begin{document}
 
Dans la classe \textsf{article}, le texte est, par
défaut, mis en page sur une seule colonne. Il est
toutefois possible de passer temporairement sur
deux colonnes.
 
\twocolumn[Un titre sur une colonne, un peu long
pour le prouver.]{Et voici enfin un texte sur deux
colonnes ; comme promis ! Encore une fois, \LaTeX{}
n'équilibre pas le remplissage des deux colonnes si 
bien qu'il est obligé pour chaque changement de 
colonnage de changer de page.}
 
\onecolumn
Ceci permet de repasser sur une colonne pour la
suite du document.
 
\begin{twocolumn}
   Encore quelques mots sur deux colonnes. Même
   si le texte est trop court pour voir apparaître
   la deuxième colonne.
\end{twocolumn}
\end{document}

$\Reponse$ Le package multicol définit l'environnement multicols, qui permet de redéfinir localement le nombre de colonnes désirées (10 maximum). Lorsqu'une page n'est pas complète, le texte apparaît réparti sur toutes les colonnes. Ainsi chaque changement de colonnage n'entraîne plus un changement de page.

\documentclass{article}
  \usepackage{multicol}
  \usepackage[french]{babel}
 
\setlength{\columnseprule}{0.5pt}
 
\begin{document}
 
\begin{multicols}{3}[Titre sur une seule colonne.]
   3~colonnes équilibrées, 3~colonnes équilibrées, 
   3~colonnes équilibrées, 3~colonnes équilibrées.
\end{multicols}
 
\begin{multicols}{2}[\section{Titre numéroté.}]
   Blabla sur deux colonnes, c'est plus sérieux. 
   C'est le style qui est généralement utilisé 
   pour écrire des articles.
\end{multicols}
\end{document}

\documentclass{article}
  \usepackage[width=6cm,height=8cm]{geometry}
  \usepackage{multicol}
  \usepackage{lmodern,microtype}
  \usepackage[french]{babel}
  \pagestyle{empty}

\setlength{\columnseprule}{0.5pt}

\begin{document}

\begin{multicols}{3}[Titre sur une seule colonne.]
   3~colonnes équilibrées, 3~colonnes équilibrées, 
   3~colonnes équilibrées, 3~colonnes équilibrées.
\end{multicols}

\begin{multicols}{2}[\section{Titre numéroté.}]
   Blabla sur deux colonnes, c'est plus sérieux. 
   C'est le style qui est généralement utilisé 
   pour écrire des articles.
\end{multicols}
\end{document}

Pour ajouter un titre numéroté qui apparaisse sur toute la largeur de la page, il faut utiliser l'option \section{⟨Titre⟩} juste après \begin{multicols}{⟨nb-col⟩}.

Pour qu'une ligne de séparation apparaisse entre les colonnes, il faut utiliser : \setlength{\columnseprule}{1pt}.

Il est possible de redéfinir la largeur de l'espace inter-colonnes en utilisant cette commande: \setlength{\columnsep}{30pt}.

3_composition/texte/pages/composer_un_document_en_colonnes.txt · Dernière modification : 2022/11/30 17:09 de dbitouze
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0