使用多列在同一页面上浮动两列

使用多列在同一页面上浮动两列

我已经使用multicol包,但无法将figure浮动内容放入同一页面。我的 MWE 是:

\documentclass{book}
\usepackage{graphics,lipsum,multicol}
\makeatletter
\setlength{\columnseprule}{1pt}
\newenvironment{Figure}
  {\begin{figure*}[b]\par\medskip\noindent\minipage{\textwidth}}
  {\endminipage\par\end{figure*}\medskip}
\makeatother
\begin{document}
\chapter{Chapter Title Here}
\begin{multicols}{2}
\lipsum[1-1]
\begin{Figure}
\centering
{\includegraphics{16627ans_171}}
\end{Figure}
and...

\end{multicols}
\end{document}

我期望输出如下:

在此处输入图片描述

答案1

\documentclass{book}
\usepackage[demo]{graphicx}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{caption}
\setlength{\columnseprule}{1pt}
%\makeatletter
%\newenvironment{Figure}
%  {\begin{figure*}[b]\par\medskip\noindent\minipage{\textwidth}}
%  {\endminipage\par\end{figure*}\medskip}
%\makeatother
\begin{document}
\chapter{Chapter Title Here}
\begin{multicols}{2}
\lipsum[1-1]
\end{multicols}%

\begin{center}
\includegraphics{16627ans_171}
%\captionof{figure}{Some Caption} % if needed
\end{center}
and... \lipsum
\end{document}

在此处输入图片描述

答案2

通常使用时multicols你不能在同一个页面中添加浮动元素。根本不会发生这种情况。

不过,在启动的页面上有一个小小的解决方法multicols。添加浮动开始multicols。具体来说:

\documentclass{book}
\usepackage{graphics,lipsum,multicol}
\makeatletter
\setlength{\columnseprule}{1pt}
\newenvironment{Figure}
  {\begin{figure*}[b]\par\medskip\noindent\minipage{\textwidth}}
  {\endminipage\par\end{figure*}\medskip}
\makeatother
\begin{document}
\chapter{Chapter Title Here}
\begin{Figure}
\centering
{\includegraphics{16627ans_171}}
\end{Figure}
\begin{multicols}{2}
\lipsum[1-1]
and...

\end{multicols}
\end{document}

会将浮动元素置于当前页面的底部,因为它是在 之外创建的multicols。这不是一个通用的解决方案,但它在这个(相当狭窄的)情况下确实有效。

相关内容