双栏格式下插入单栏、双栏格式图片
- 1.缘起multicols
- 2.双栏格式 插入单栏图片
- 3.双栏格式 插入双栏图片
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*}
效果如下图所示:
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}
效果如下图所示: