我正在使用 Chemscheme 来跟踪化合物编号(每个章节我都有一个不同的 .tex 文件)。这些编号需要按顺序生成,用于我的论文的化学章节(第 3 章),但我想在前面的章节(第 1 章和第 2 章)中引用它们(并了解它们的结构)。
有没有办法处理 chapter3.tex 文件以首先生成 chemscheme 编号,但仍然让第 1 章和第 2 章首先出现在我的最终文档中?
我想另一种方法是\CNlabelnoref{}
在简介章节的开头生成一个列表,以便在我说一个字之前定义所有的数字......
答案1
这是我从问题和评论中收集到的信息:
- 该包与(提及是一个提示)
chemscheme
一起使用tracking=bpchem
\CNlabelnoref{}
- 第 3 章之前的复合引用只能是引用,这意味着只能在第 3 章及以后创建新标签。
bpchem
的标签已创建和参考\CNlabel{}
。仅有的參考是\CNref{}
。 chemscheme
引用复合函数的常见用法是宏\schemeref
,用于将 EPS 图形中的文本标记替换为相应的标签。但是,由于它是内部使用的,\CNlabel{}
因此不能在第 1 章和第 2 章中使用。
建议的解决方案:
定义一个\schemeref
类似宏,使用\CNref{}
而不是\CNlabel{}
。\schemeref
的定义是
\DeclareRobustCommand*\schemeref[2]
[\schemerefmarker\the\cst@ref@count]{%
\advance\cst@ref@count\@ne\relax
\psfrag{#1}[b][b]{%
\schemerefformat{\cst@ref@label{#2}}%
}%
}
你可以
只需复制此定义并
\cst@ref@label
交换\CNref
:\makeatletter \DeclareRobustCommand*\schemeonlyref[2] [\schemerefmarker\the\cst@ref@count]{% \advance\cst@ref@count\@ne\relax \psfrag{#1}[b][b]{% \schemerefformat{\CNref{#2}}% }% } \makeatother
或者您可以加载该
xpatch
包和该letltxmacro
包,复制\schemeref
并修补它:\usepackage{xpatch,letltxmacro} \makeatletter \LetLtxMacro\schemeonlyref\schemeref \xpatchcmd\schemeonlyref{\cst@ref@label}{\CNref}{}{} \makeatother
(
\LetLtxMacro
是必要的,因为\schemeref
被定义为强健的宏,而简单的\let
是不够的。出于同样的原因,xpatch
需要用\xpatchcmd
而不是etoolbox's
\patchcmd`。)