按化合物在方案中出现的顺序对其进行编号(bpchem 或类似物)

按化合物在方案中出现的顺序对其进行编号(bpchem 或类似物)

我使用chemstylebpchem来编号我的化合物。我将我的 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 图像,测试起来会很困难。

相关内容