Latex-Dreispaltenlayout: Zusammenführen von zwei davon am Anfang

Latex-Dreispaltenlayout: Zusammenführen von zwei davon am Anfang

Ich schreibe ein Dokument mit einem einfachen Drei-Spalten-Layout unter Verwendung des Pakets 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}

Ich möchte jedoch zwei davon zu Beginn zusammenführen, was dann etwa so aussehen könnte:Zufälliger Forschungsartikel

wobei der Abschnitt „Zusammenfassung“ über zwei Spalten geht. Gibt es eine einfache Möglichkeit, dies zu tun?

Antwort1

Wenn flowframdies nicht Ihren Anforderungen entspricht, gibt es keine einfache Möglichkeit, es zu tun, aber es ist möglich. Diese Lösung korrigiert, multicolum die Höhe der zweiten Spalte in der Umgebung um den in angegebenen Betrag zu verringern \columnshrink. Die erforderliche Höhe wird berechnet, indem das Abstract über die ersten beiden Spalten in einer Savebox gesetzt und seine Gesamthöhe gemessen wird.

\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}

Ergebnis:

Bildbeschreibung hier eingeben

verwandte Informationen