Latex 3열 레이아웃: 처음에 두 개를 병합

Latex 3열 레이아웃: 처음에 두 개를 병합

나는 패키지를 사용하여 간단한 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}

그러나 처음에는 그 중 두 개를 병합하고 싶습니다. 이는 다음과 같습니다.무작위 연구 기사

여기서 '추상' 섹션은 두 개의 열에 걸쳐 있습니다. 그렇게 할 수 있는 간단한 방법이 있나요?

답변1

귀하의 요구 사항에 맞지 않는 경우 flowfram간단한 방법은 없지만 수행할 수 있습니다. 이 솔루션은 multicol환경에서 두 번째 열의 높이를 \columnshrink. 필요한 높이는 저장 상자의 처음 두 열에 걸쳐 있는 추상을 설정하고 전체 높이를 측정하여 계산됩니다.

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

결과:

여기에 이미지 설명을 입력하세요

관련 정보