如何在正文而不是目录中开始化合物编号

如何在正文而不是目录中开始化合物编号

可能重复:
Chemcompound 包:如何避免 listoffigures 扫描?

我正在用 LaTeX 写化学论文,并使用该chemstyle软件包自动对化合物进行编号。我希望编号从论文主体开始,并按照它们在主体中出现的顺序进行编号。但是,在此之前,我有目录和方案、图表和表格的列表。由于这些文件包含一些带编号的化合物名称,并且编号从整个文档的开头开始,因此编号最终与文档主体的顺序不一致。如何让编号从文档主体开始?


如果我的原始问题不清楚,这里有一份简单的文档来展示我所谈论的内容:

\documentclass{article}

\usepackage{chemstyle}

\begin{document}

\tableofcontents

\section{Section}
Compounds \compound{A} and \compound{B}.

\section{Compound \compound{B}}

text

\end{document}

结果是我想要的第一个编号的化合物,化合物{A},最终成为化合物 2。

感谢@cgnieder 的帮助!你给出的两个选项都很好用。我选择了第二个选项,因为它可以帮助我跟踪所有化合物,而且我不必记住在标题和章节标题中添加加号。我注意到我需要有

\usepackage[noimplicit]{chemcompounds}

\usepackage{chemstyle}

或者我收到错误消息“包化学化合物的选项冲突。”

我对您建议查看该chemnum软件包有一个问题。我还使用该chemstyle软件包创建浮点“方案”类型,创建方案列表,并自动更新结构图像中的编号(嗯,我仍在弄清楚图像更新部分,无法读取 eps 图像)。可以chemnum让我做这些事情吗?我查了一下,似乎不行,但也许我遗漏了什么。

答案1

chemstyle包不做编号,但是chemcompounds前者加载的包。如果您不想让复合数字以目录中的数字开头,则有两种可能:

  1. 在章节标题和说明中使用\compound+{<label>}- 此命令变体不会声明标签,而是从辅助文件中查找标签。因此需要两次编译。

    \documentclass{article}
    \usepackage{chemcompounds}
    
    \begin{document}
    
    \tableofcontents
    
    \section{Test A}
    A compound with number one \compound{A} and two \compound{B}.
    
    \section{Test \compound+{B}}
    
    \end{document}
    
  2. 不要chemcompounds在隐式模式下使用。这不太舒服,因为你必须\declarecompound对每个化合物都使用,但它能让你完全控制:

    \documentclass{article}
    
    \usepackage[noimplicit]{chemcompounds}
    \declarecompound{A}
    \declarecompound{B}
    
    \begin{document}
    
    \tableofcontents
    
    \section{Test A}
    A compound with number one \compound{A} and two \compound{B}.
    
    \section{Test \compound{B}}
    
    \end{document}
    

顺便说一句:你也可能对chemnum包裹。

编辑:关于其他问题:

chemnum包可以与包一起使用,chemstyle因此您仍然可以将其用于scheme环境和方案列表。类似于为chemstyle\schemeref chemnum添加\cmpdref复合数字eps。记录了此示例在手册中请参阅第 8.3 节。这两个命令都使用psfrag任务内部的\psfrag命令。为了与 pdflatex 一起使用,您可能需要使用auto-pst-pdf包裹。

chemnum还允许明确声明标签,类似于chemcompounds' \declarecompound,请参阅手册第 6 节。

相关内容