一页纸上的文字、图片、表格,根据参数,从两栏转为一栏,或从一栏转为两栏,都是可行的,twocolumn
但从两栏转为一栏,再从一栏转为两栏,就比较困难了。例如:
\documentclass[twocolumn]{book}
\usepackage{graphicx,caption,lipsum,balance}
\begin{document}
\lipsum[1]\par\balance
\twocolumn[
\begin{@twocolumnfalse}
{
\centering
\includegraphics[width=0.8\textwidth]{example-image-a}
\captionof{figure}{Example image}
}
\end{@twocolumnfalse}
]
\par
\lipsum[1-3]
\end{document}
生成:
如何将第二页的内容移动到第一页的底部,同时保持图形在第一页的中间?我不知道如何实现这个效果。
答案1
要真正在不同数量的列之间切换,您可以使用包裹multicol
:
\documentclass{book}
\usepackage{mwe}
\usepackage{caption}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\lipsum[1]
\end{multicols}
\noindent\begin{minipage}{\textwidth}
\begin{centering}
\includegraphics[width=0.8\textwidth]{example-image-a}
\captionof{figure}{Example image}
\end{centering}
\end{minipage}
\begin{multicols}{2}
\lipsum[1-3]
\end{multicols}
\end{document}
但通常我建议使用figure*
将图形浮动到下一页的顶部:
\documentclass[twocolumn]{book}
\usepackage{mwe}
\usepackage{caption}
\begin{document}
\lipsum[1]
\begin{figure*}[t]
\centering
\includegraphics[width=0.8\textwidth]{example-image-a}
\caption{Example image}
\end{figure*}
\lipsum[1-8]
\end{document}
您还可以通过混合原生twocolumn
模式来达到以下效果multicols
:
\documentclass[twocolumn]{book}
\usepackage{graphicx,caption,lipsum,balance,multicol}
\begin{document}
\twocolumn[%
{\begin{@twocolumnfalse}
\begin{multicols}{2}
\lipsum[1]
\end{multicols}
\centering
\includegraphics[width=0.8\textwidth]{example-image-a}
\captionof{figure}{Example image}
\end{@twocolumnfalse}}%
]
\par
\lipsum[1-3]
\end{document}
但我不建议这么做。