1.缘起multicols

插入双栏格式图片问题被困扰了有很长一段时间,查看网络资源也一直没找到解决方法,今天查看Latex官方文档,才发现因为multicol问题需要一个关键包float。有同样问题的直接跳转到第3点查看。

multicol 宏包能够在一页之中切换单栏/多栏,也能处理跨页的分栏,且各栏的高度分布平衡。但代价是在multicols 环境中无法正常使用table 和figure 等浮动体环境,它会直接让浮动体丢失。 multicols 环境中只能用跨栏的table* 和figure* 环境,或者用float 宏包提供的H 参数固定浮动体的位置。

\begin{multicols}{2}  %不平衡双栏,平衡双栏去掉*
文本内容...
\end{multicols}{2}

multicols 和 multicol* 是 LaTeX 中用于创建多栏布局的环境,它们的区别在于如何处理最后一页的内容。multicols会保证最后一页的内容被保持在多栏的相同高度。

2.双栏格式 插入单栏图片

有时由于图片过大,放在双栏部分图片难以完全且很好地展示出来,图片需要放置单栏,即占用两列内容。
如图所示,其中,multicols环境中,figure需要加*;t为top,图片被强制放于页面顶部:

\begin{figure*}[t!]
	\centering
	\includegraphics[width=0.6\textwidth]{C:/Users/86182/Pictures/Saved Pictures/机械风暴2.jpg} %
	\caption{机械风暴}
	\label{fig:XXX}
\end{figure*}

效果如下图所示:
图1:单栏图片

3.双栏格式 插入双栏图片

双栏格式下不能插入双栏图片是multicols/multicol*引发的问题,原因查看第1点黄色高亮处。此问题用float 宏包提供的H参数固定浮动体的位置即可解决。首先在导言区引用float宏包:

\usepackage{float}  %引入float宏包

然后在正文区使用下面格式即可,因调用了float宏包,所以可去掉*;图片宽度可使用\columnwidth 参数,其表示当前文档中单个栏(column)的宽度,自适应很方便:

\begin{figure}[H]
	\centering
	\includegraphics[width=\columnwidth]{C:/Users/86182/Pictures/Saved Pictures/机械风暴2.jpg} % \textwidth
	\caption{机械风暴}
	\label{fig:XXX}
\end{figure}

效果如下图所示:
图2:双栏图片

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐