我目前是写一个双栏环境报告 但是遇到了问题,就是使用multicols的情况下,图片无法显示出来,下面是我的mwe: ![](/static/images/ext/zip.gif)mwe.zip 我期待的结果是像这样的,图片也是跟文字一样双栏显示 ![](https://pics.latexstudio.net/data/images/201911/321fd8e5bd90b25.png) 而我编译后会只有正文,图片完全不显示。 求大神帮忙解答!!十分感谢!

3 回答3

1
1. `multicols` 环境内部,不支持使用单栏浮动体,如 `figre` 和 `table`。 编译你的例子,生成的 log 中就包含相应的警告信息 ```tex Floats and marginpars not allowed inside multicols environment! ``` 1. 非浮动体,可以用,如 `\begin{figure}[H]`(选项 `H` 由 `array` 宏包提供) 1. 跨栏的浮动体,可以用,但一定会出现在下一页。 参考 `texdoc multicols`, sec. 2.4, 2.6
1
1. 不建议使用 `multicol` 宏包实现双栏模式,除非有一些特殊的需要。在 `multicols` 环境中是不能使用浮动体的。需要带标题的插图可以使用 `center` 环境(或者其他环境,看你的需求了)里插入图表,并用 `caption` 宏包的 `\captionof{<类型>}{<标题>}` 来形成标题,如果你觉得 `\captionof` 太麻烦了,不想总写那个 `table` 和 `figure` 参数,可以定义一个新的环境: ```tex % in preamble \makeatletter \newenvironment{fighere} {\def\@captype{figure}\begin{center}}{\end{center}} \newenvironment{tabhere} {\def\@captype{table}\begin{center}} {\end{center}} \makeatother ``` 使用 `fighere` 或 `tabhere` 即可。 注意 `center` 环境本质是一个 `list` 环境,会带来与上下文的额外间距。 2. 使用 `multicol` 宏包可以形成跨栏的浮动体,需要先结束 `multicols` 环境,再插图表,然后再重新开启 `multicols`环境。浮动位置选项 `htbp` 全都有效(其实这是废话,这种情况的浮动体和一般浮动体没区别)。这是我能想到的用 `multicol` 宏包而不是用文档选项 `twoclumn` 实现双栏模式的唯一理由。 2. 推荐采用文档类 `twocolumn` 选项形成双栏模式。浮动体正常使用,需要跨栏的浮动体则采用带 `*` 的环境。跨栏浮动体只有`tp` 两个浮动位置有效,另有一个宏包(我不常用,实在想不起来是啥了)可以扩展到使用 `b` 位置选项,有需要自己搜索找一下。
0
为什么要加`multicols`? 我这里给个 MWE ```tex \documentclass[12pt,a4paper,twocolumn]{ctexart} \usepackage{mwe} \usepackage{zhlipsum} \begin{document} \zhlipsum[1-2] \begin{figure} \centering \includegraphics[width=0.7\linewidth]{example-image} \caption{积分电路仿真} \label{fig:picture1} \end{figure} \end{document} ```

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。