我熟悉在浮动元素中使用 minipages 来有效地并排放置两个浮动元素,但是有没有办法对不同类型的浮动元素执行此操作?例如,一个 Figure 和一个 Scheme (chemscheme)?
答案1
\documentclass{article}
\usepackage[demo]{graphicx}% delete demo later
\usepackage{chemscheme}
\usepackage{caption}
\begin{document}
\begin{scheme}
\begin{floatrow}
\ffigbox[\FBwidth]
{\includegraphics[width=0.45\textwidth]{normalimage}}
{\caption{My figure}\label{foo}}
\ffigbox[\FBwidth]
{\includegraphics[width=0.45\textwidth]{chemfig}}%
{\captionof{scheme}{My chem scheme}\label{bar}}
\end{floatrow}
\end{scheme}
\end{document}
答案2
只需使用一个包含两个 s 的 float 环境。然后对一个 floatminipage
使用 normal ,对另一个 float 使用 normal。这需要或包。\caption
\captionof{<other type>}{<caption text>}
caption
capt-of
scheme
from 的问题chemscheme
在于它不是普通的浮点数,而是(默认情况下)使用floatrow
不支持上述代码的函数定义的(我得到了“标题丢失”错误)。float
包上的替代定义也不起作用,因为它总是将标题放在自己的位置,而不是实际内容的一部分,因此它脱离了minipage
。
我现在发现了以下解决方案,它可以从包中撤消一些内容并以相同的方式floatrow
定义:scheme
figure
\documentclass{article}
\usepackage[demo]{graphicx}% 'demo' option only to not require actually images for this example file
\usepackage{capt-of}% or 'caption'
\usepackage{chemscheme}
\begin{document}
\makeatletter
\def\scheme{\@float{scheme}}
\let\endscheme\endfigure
\makeatother
\begin{scheme}
\begin{minipage}{.48\textwidth}
\includegraphics[width=\textwidth]{normalimage}
\captionof{figure}{My figure}
\end{minipage}%
\hfill
\begin{minipage}{.48\textwidth}
\includegraphics[width=\textwidth]{chemfig}
\caption{My chem scheme}
\end{minipage}%
\end{scheme}
\end{document}
但是,放入环境\captionof{scheme}
中figure
仍然不起作用(再次出现“标题丢失”错误)。
您建议等到比floatrow
我更了解的人发布答案。