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í:
donde la sección 'resumen' tiene dos columnas. ¿Alguna forma sencilla de hacerlo?
Respuesta1
Si flowfram
no se adapta a tus necesidades, no existe una forma sencilla de hacerlo, pero se puede hacer. Esta solución parchea multicol
para 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: