Latex 3列レイアウト: 最初に2列をマージする

Latex 3列レイアウト: 最初に2列をマージする

パッケージを使用して、シンプルな 3 列レイアウトのドキュメントを作成しています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}

ただし、最初に 2 つを結合して、次のようになるようにします。ランダムな研究記事

「要約」セクションが 2 列に渡っています。これを行う簡単な方法はありますか?

答え1

がニーズに合わない場合flowfram、簡単な方法はありませんが、実行することは可能です。このソリューションは、multicolで指定された量だけ環境の 2 番目の列の高さを縮小するようにパッチを適用します。\columnshrink必要な高さは、最初の 2 つの列にまたがる抽象を保存ボックスに設定し、その合計の高さを測定することによって計算されます。

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

結果:

ここに画像の説明を入力してください

関連情報