Diseño de tres columnas de látex: fusionando dos de ellas al principio

Diseño de tres columnas de látex: fusionando dos de ellas al principio

Estoy escribiendo un documento con un diseño simple de tres columnas usando el paquete multicols.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{lipsum}
\usepackage{multicol}

\begin{document}
\begin{multicols}{3}
[
\section{First Section}
All human things are subject to decay. And when fate summons, Monarchs must obey.
]
\lipsum
\end{multicols}

\end{document}

Sin embargo, me gustaría fusionar dos de ellos al principio, que podrían verse así:Artículo de investigación aleatorio

donde la sección 'resumen' tiene dos columnas. ¿Alguna forma sencilla de hacerlo?

Respuesta1

Si flowframno se adapta a tus necesidades, no existe una forma sencilla de hacerlo, pero se puede hacer. Esta solución parchea multicolpara reducir la altura de la segunda columna en el entorno en la cantidad especificada en \columnshrink. La altura necesaria se calcula configurando el resumen que abarca las dos primeras columnas en un cuadro de guardado y midiendo su altura total.

\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{xpatch}

\newlength{\abstractwidth}
\newlength{\columnshrink}
\newsavebox{\twocolinsert}

\makeatletter
\newlength{\resized@col}
\newcounter{column@count}

\xpatchcmd{\multi@column@out}{\process@cols\mult@gfirstbox{%
  \setbox\count@
  \vsplit\@cclv to\dimen@
  \set@keptmarks
  \setbox\count@
  \vbox to\dimen@
  {\unvbox\count@
    \ifshr@nking\vfilmaxdepth\fi}%
  }%
}{\process@cols\mult@gfirstbox{%
  \global\advance\c@column@count\@ne
  \resized@col\dimen@%
  \ifnum\c@column@count=\tw@
      \advance\resized@col-\columnshrink
  \fi%
  \setbox\count@
  \vsplit\@cclv to\resized@col
  \set@keptmarks
  \setbox\count@
  \vbox to\dimen@
  { \ifnum\c@column@count=\tw@ \vspace*{\columnshrink} \fi%
    \unvbox\count@
    \ifshr@nking\vfilmaxdepth\fi}%
  }%
}{\typeout{Success}}{\typeout{Failure}}
\makeatother

\begin{document}
\begin{multicols}{3}
  \setlength{\abstractwidth}{2\linewidth}
  \addtolength{\abstractwidth}{\columnsep}
  \savebox{\twocolinsert}{\begin{minipage}{\abstractwidth}
      \section*{Abstract}
      \lipsum[1]
  \end{minipage}}
  \setlength{\columnshrink}{\ht\twocolinsert}
  \addtolength{\columnshrink}{\dp\twocolinsert}
  \noindent\usebox{\twocolinsert}

  \section*{Introduction}
  \lipsum[2-10]
  \end{multicols}
\end{document}

Resultado:

ingrese la descripción de la imagen aquí

información relacionada