我正在使用该chemstyle
包来处理化合物的自动编号。它显然使用该chemcompounds
包来处理这个问题。在后者的文档中,它解释了化合物可以隐式“创建”,只需引用尚不存在的标签即可:\compound{label}
。
通常情况下,这种方法效果很好,但当我尝试在标题内执行此操作时,它似乎会立即忘记化合物。例如,我有两个并排的图,我在每个标题中引用不同的化合物,但它们被分配了相同的化合物编号。当我在后面的文本中创建一个新化合物时,它会获得分配给图中第一个化合物的编号……所以基本上一旦标题结束,包就会忘记所有化合物。
我应该说,我知道可以解决这个问题(例如,确保在标题之前在文本中引用内容),但我正在寻找一个万无一失的解决方案。毕竟我使用 LaTeX 来做这件事,所以我不必经常担心复合词编号错误。
答案1
您caption
也在使用该软件包吗?如果是,这个错误已在 3.2 版中修复,因此更新您的 TeX 发行版会有所帮助。
例如,当使用包 v3.2 进行编译时,此 MWE 可以正常工作,但当使用包 v3.1mcaption
进行编译时,每次都会给出“1” :caption
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{caption,chemstyle}
\begin{document}
\begin{figure}[ht]
\includegraphics[height=1cm]{foo}
\caption{Compound number \compound{foo}.}
\end{figure}
\begin{figure}[ht]
\includegraphics[height=1cm]{bar}
\caption{Compound number \compound{bar}.}
\end{figure}
This should be three: \compound{foobar}
\end{document}
(彼得,很抱歉“窃取”了你的 MWE ;-))
另请查看问题化学化合物包和子浮点行为?caption
如果无法更新,则其中包含该软件包的补丁。
答案2
没有全 MWE很难提供太多帮助。我尝试了以下方法,但似乎没有出现您报告的问题:
如果这个例子没有帮助,也许您可以修改它,以便它重现您提到的问题:
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{chemstyle}
\begin{document}
\begin{figure}[ht]
\includegraphics[height=1cm]{foo}
\caption{Compound number \compound{foo}.}
\end{figure}
\begin{figure}[ht]
\includegraphics[height=1cm]{bar}
\caption{Compound number \compound{bar}.}
\end{figure}
This should be three: \compound{foobar}
\end{document}