如何防止两列文本与整个页面宽度的缩略图重叠?

如何防止两列文本与整个页面宽度的缩略图重叠?

我有一个两列的 latex 文档,在每一章的开头,我想手动插入一个横跨两列的小页面。不幸的是,右列中的文本将始终与小页面重叠。我该如何防止这种情况发生?

\documentclass[twocolumn]{memoir}
\usepackage{lipsum} 

\begin{document}

\chapter{test}

% minipage spanning entire width.
% how do I prevent the text below from overlaying into the minipage?
\begin{minipage}[t]{\textwidth}
STARTMINIPAGE \lipsum[1] ENDMINIPAGE
\end{minipage}

% text across two columns. the right column wraps into the minipage.
\lipsum[1-20]

\end{document}

答案1

把这写在你的序言中:

\makeatletter
\let\memoir@makechapterhead\@makechapterhead
\def\@makechapterhead#1{\memoir@makechapterhead{#1}\dochapterprolog}
\makeatother

\def\chapterprolog#1{\gdef\dochapterprolog{%
  \if\relax\detokenize{#1}\relax\else
    \noindent\begin{minipage}{\textwidth}#1\end{minipage}\vspace{3\baselineskip}
  \fi\chapterprolog{}}}

你将开始一个章节

\chapterprolog{What we want in the full width minipage}
\chapter{Chapter title}

章节序言的内容在使用后将被重置为空,因此如果章节没有序言,则无需执行任何特殊操作。

调整3\baselineskip至适合您的程度。

(注:新版本也可在单列模式下工作)

答案2

您想在不弹出页面的情况下在onecolumntwocolumn模式之间切换。我建议使用multicol专门为此编写的包。

答案3

包裹\multicol对于您想要在多列开始之前跨越所有列的文本,有第二个可选参数。

请注意,这里的使用似乎存在一些问题\lipsum,但添加真实文本似乎可以起作用。

\documentclass{memoir}
\usepackage{lipsum} 
\usepackage{multicol} 

\begin{document}
\begin{multicols}{2}[%
    \chapter{test}
    \hrule
    Place your single column text here. 
    It will go across the page and the two column 
    text will begin after this.
    \hrule
]

% text across two columns.
\lipsum[1-20]

\end{multicols}
\end{document}

相关内容