J'essaie de mettre un long texte de deux colonnes dans une boîte Voici un exemple : Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage{multicol,lipsum} \usepackage[all]{tcolorbox} \begin{document} \begin{tcolorbox}[breakable] \begin{multicols}{2} \lipsum[1-20] \end{multicols} \end{tcolorbox} \end{document} |
Voici une idée basée sur l'utilisation de la bibliothèque Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage{lmodern} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{multicol} \usepackage[most]{tcolorbox} \usepackage{mwe} \newcounter{mtctr} \newcommand{\mtdisplay}{% \boxarraygetsize{\mtsize}% \setcounter{mtctr}{0}% \loop \stepcounter{mtctr}% \tcbitem\consumeboxarray{\themtctr} \ifnum\value{mtctr}<\mtsize \repeat} \newcommand{\mtdim}{% \the\dimexpr\pagegoal-\pagetotal-1cm\relax/ \the\dimexpr\pagegoal-\pagetotal-1cm\relax/ \the\dimexpr\textheight-1cm\relax} \newenvironment{mttwocols}{% \ifdim\dimexpr\pagegoal-\pagetotal-6\baselineskip\relax>0pt\else\newpage\null\vskip-\baselineskip\fi \begin{tcolorbox}[% breakable, blanker, width=.43\textwidth, break at=\mtdim, reset box array, store to box array]}{% \end{tcolorbox} \tcboxeditemize[% blanker, sharp corners, halign=center, raster columns=2, raster valign=top]{breakable}% \mtdisplay \endtcboxeditemize} \begin{document} \section{Foo} \lipsum[1] \begin{mttwocols} \lipsum[1-20] \end{mttwocols} \end{document} Pour aller plus loin. Remarques il faut compiler deux fois et il faut supprimer le fichier Limitation Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage{lmodern} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{multicol} \usepackage[most]{tcolorbox} \newcounter{mtctr} \newcommand{\mtdisplay}{% \boxarraygetsize{\mtsize}% \setcounter{mtctr}{0}% \loop \stepcounter{mtctr}% \tcbitem\consumeboxarray{\themtctr} \ifnum\value{mtctr}<\mtsize \repeat} \AtBeginDocument{ \providecommand{\mtdim}{% \the\dimexpr\pagegoal-\pagetotal-1cm\relax/ \the\dimexpr\pagegoal-\pagetotal-1cm\relax/ \the\dimexpr\textheight-1cm\relax}} \makeatletter \newcommand{\mtsetdim}{% \renewcommand{\mtdim}{% \the\dimexpr\pagegoal-\pagetotal-1cm\relax/ \the\dimexpr\pagegoal-\pagetotal-1cm\relax} \boxarraygetsize{\mtsize} \global\let\mtsize\mtsize \boxarraygetbox{\mtbox}{\mtsize} \ifnum\mtsize>2 \setcounter{mtctr}{3} \loop \ifnum\value{mtctr}<\numexpr\mtsize-1\relax \xdef\mtdim{\mtdim/ \the\dimexpr\textheight-1cm\relax} \stepcounter{mtctr} \repeat \ifodd\value{mtctr} \xdef\mtht{\the\dimexpr.5\textheight+.5\ht\mtbox+\baselineskip\relax} \else \xdef\mtht{\the\dimexpr\textheight-1cm\relax/\the\dimexpr.5\ht\mtbox+\baselineskip\relax} \fi \xdef\mtdim{\mtdim/ \mtht} \fi \immediate\write\@mainaux{\xdef\string\mtdim{\mtdim}} } \makeatother \newenvironment{mttwocols}{% \ifdim\dimexpr\pagegoal-\pagetotal-6\baselineskip\relax>0pt\else\newpage\null\vskip-\baselineskip\fi \begin{tcolorbox}[% breakable, blanker, width=.43\textwidth, break at=\mtdim, reset box array, store to box array]}{% \end{tcolorbox} \mtsetdim \tcboxeditemize[% blanker, sharp corners, halign=center, raster columns=2, raster valign=top]{breakable}% \mtdisplay \endtcboxeditemize} \usepackage{mwe} \begin{document} \section{Foo} \lipsum[1] \begin{mttwocols} \lipsum[1-20] \end{mttwocols} \end{document} Publiée 24 Mar '18, 01:24 touhami Merci beaucoup pour le temps et le soin apportés !
(25 Mar '18, 14:49)
miyazaki
C'est noté merci, il me faut un peu de temps pour digérer le code !
(25 Mar '18, 19:08)
miyazaki
|
L'extension tcolorbox n'est pas compatible avec multicol à 100%, voir la page 373 de la documentation de tcolorbox.
Pour contourner le problème tcolorbox offre la bibliothèque magazine, voir page 387.
@miyazaki Les formules de politesse et les signatures sont à éviter : celle(s) de votre contribution a (ont) été supprimée(s).
Merci touhami pour la réponse, le compteur de page numérote les colonnes comme pages séparées.
Je repose la question autrement : Y a t-il un moyen de créer un environnement avec du texte dans une boîte qui s'étend sur plusieurs pages ?
C'est simple. Dans votre ECM, il suffit de ne pas utiliser l'environnement
multicols
.Je vais essayer de poster une réponse avec
multicols
.