chemstyle 中的子编号

chemstyle 中的子编号

当我使用\schemerefand\schemerefsub时,得到的不是 1 and 2a 2b,而是 1 and 1a 1b。因此,我的子编号似乎不符合我的常规编号,但当我引用化合物时,得到的是 1 and then,而不是 1a、1b、2 和 3。如何才能使我的子编号符合我的常规编号,以及如何正确引用子编号?

\documentclass[11pt, a4paper]{article}                  

\usepackage{bpchem}
\usepackage[crop={off},runs={2}]{auto-pst-pdf} % Use EPS graphics with pdfLaTeX
\usepackage[tracking=bpchem]{chemstyle}

\usepackage{amstext} \usepackage{caption} \usepackage{kvoptions} \usepackage{psfrag}
\usepackage{varioref} \usepackage{floatrow} 

\begin{document}
%\immediate
%\write18{dir > listing}
%\IfFileExists{listing}{\message{\string\write18 ENABLED}}


\begin{figure}[h]
\schemeref[TM]{mainA}
\includegraphics[scale=0.8]{epsfigx}
\end{figure}

\begin{figure}[h]
 \schemeref[TMP]{mainB}
 \includegraphics[scale=0.8]{epsfigxx}
 \end{figure}

\begin{figure}[h]
\schemerefsub[TMP1]{mainB}{a}
\schemerefsub[TMP2]{mainB}{b}
\schemerefsub[TMP3]{mainC}{aa}      
\includegraphics[scale=0.8]{epsfigy}
\end{figure}

\compound{mainA}
\compound{mainB}
\compound{a}
\compound{b}
\compound{aa}

\end{document}

答案1

你混合了两种编号方法。你告诉chemstyle使用bpchem\compound但你使用的文档中chemcompounds命令。您应该使用bpchem命令\CNlabel{<cpd>}\CNref{<cpd>}和。\CNlabelsub{<cpd>}{<sub>}\CNrefsub{<cpd>}{<sub>}

正确使用这些命令应该可以清除大多数错误的数字!

但是,我还发现使用此代码时编号有误:使用该软件包的 2.0l 版本chemstyle(2012-01-28),它可以按预期工作:

\documentclass{article}
\usepackage[runs=2]{auto-pst-pdf}
\usepackage{bpchem}
\usepackage[tracking=bpchem]{chemstyle}

\begin{document}
Compound 1a: \CNlabelsub{cpdA}{one}
Compound 2: \CNlabel{cpdB}

\begin{scheme}[h]
 \schemerefsub[TMP1]{cpdA}{one} % gives 1a
 \schemeref[TMP2]{cpdB}         % gives 2
 \includegraphics{scheme-tmp}
\end{scheme}

\end{document}

需要版本 <2.0l

\makeatletter
\let\cst@ref@label\CNlabel
\makeatother 

添加到序言中以修复错误编号。


另一种方法是切换到chemnum包进行编号并使用命令\cmpd\replacecmpd,分别。

\documentclass{article}
\usepackage[runs=2]{auto-pst-pdf}
\usepackage{chemnum,chemstyle}
\setchemnum{ main-sub-sep = ! }

\begin{document}

Compound 1a: \cmpd{cpdA!one}
Compound 2: \cmpd{cpdB}

\begin{scheme}[h]
  \replacecmpd{cpdA!one} % gives 1a
  \replacecmpd{cpdB}     % gives 2
  \includegraphics{scheme-tmp}
\end{scheme}

\end{document}

相关内容