我使用chemstyle
和bpchem
来编号我的化合物。我将我的 chemdraw 绘图保存为 eps,并使用 TMP 和 TMP2 作为标记,它们将被化合物编号替换。只要在\CNlabel
插入方案之前使用,它就可以正常工作,但如果文本位于图片下方(如下例所示),则文本中的标记与方案中的标记不同。
\documentclass{article}
\usepackage[runs=2]{auto-pst-pdf}
\usepackage{bpchem}
\usepackage[journal=rsc, tracking=bpchem]{chemstyle}
\usepackage[version=3]{mhchem}
\begin{document}
\begin{scheme}
\begin{center}
\schemeref[TMP]{1}
\schemeref[TMP2]{2}
\includegraphics{Reactions_MSC/I010}
\end{center}
\end{scheme}
\begin{scheme}
\begin{center}
\schemeref[TMP]{3}
\schemeref[TMP2]{4}
\includegraphics{Reactions_MSC/I012}
\end{center}
\end{scheme}
Text where I mention the compounds in a different order than in the schemes: \CNlabel{2}, \CNlabel{3}, \CNlabel{4}, \CNlabel{1}
\end{document}
此外,我希望按照化合物在方案中出现的顺序进行编号,而不是按照它们在文本中出现的顺序。有没有好的解决方案?我能想到的一个可能的解决方法是在文档开头添加如下列表:
\CNlabelnoref{1}
\CNlabelnoref{2}
\CNlabelnoref{3}
\CNlabelnoref{4}
但是,手动执行此操作会非常繁琐。有没有办法可以自动生成这样的列表?
答案1
尝试在加载后将以下内容添加到文档前言中chemstyle
:
\usepackage{letltxmacro}% http://ctan.org/pkg/letltxmacro
\LetLtxMacro\oldschemeref\schemeref
\DeclareRobustCommand{\schemeref}[2][]{%
\CNlabelnoref{#2}%
\oldschemeref[#1]{#2}%
}
如果没有实际的 PDF 图像,测试起来会很困难。