複数段を使用した同じページの 2 列フロート

複数段を使用した同じページの 2 列フロート

パッケージを使用していますが、フロートを同じページにmulticol収めることができません。私の MWE は次のとおりです:figure

\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。これは一般的なケースの解決策ではありませんが、この (かなり限定された) ケースでは機能します。

関連情報