我一直在使用 memoir 的 \newfloat 来制作在多列文档中浮动的文本框。当我使用双列模式时,一切都正常。但是,我需要使用 multicol 包来制作列,因为这允许我制作跨列的节标题(无需开始新的页面,就像在双列模式下尝试这样做时一样)。
当我使用带星号的 memoir float 版本时,结果会按预期跨越多列(在双列模式和使用多列时均如此)。但是,使用多列时,未带星号的版本无法显示。
\documentclass{memoir}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{xcolor}
\pagestyle{empty}
% Create memoir float...
\newfloat{F}{X}{capname}
% Make section title span columns...
\let\oldsection\section
\renewcommand*{\section}[1]{%
\end{multicols}%
\oldsection{#1}%
\begin{multicols}{2}%
}
\begin{document}
\begin{multicols}{2}
\section{Section title modified to span columns}
\lipsum[1-2]
\begin{F} % Non-starred is supposed to float contents within a column -- this works with twocolumn, but not multicols?
\color{red}{\lipsum[3]}
\end{F}
\lipsum[4-5]
\begin{F*} % Non-starred is supposed to float contents across all columns on next page -- this works.
\color{green}{\lipsum[6]}
\end{F*}
\lipsum[7-8]
\end{multicols}
\end{document}
答案1
您真的需要multicols
环境吗?或者您可以使用multicols
常规\onecolumn
和\twocolumn
宏的混合使用吗?正如@DavidCarlisle 所说,multicol
不支持单列浮点数。
\documentclass{memoir} % defaults to \onecolumn
\usepackage{multicols}
\begin{document}
Text in one column ...
\twocolumn % starts new page in two column
Text in two columns
\onecolumn % starts new page in one column
Text
\begin{multicols}{2} % starts two columns
Text in two columns
\end{multicols} % reverts back (to onecolumn)
Text
\end{document}
通过巧妙的调整,您可能能够在 a\twocolumn
而不是 a中获取一列数字multicols{2}
。