我正在尝试创建从一页到另一页的简单交叉引用,例如,在文档的一部分中,它说“参见熊,第 3 页”。从 ConTeXt 手册第 170 页,我能够确定一种实现此目的的方法是\reference
在引用的位置使用 ,并\at
在文本引用该位置的位置使用 。
当我\reference
在文档中使用它时,它会给我一个额外的空间,例如:
\starttext
\section{This is a section}
\reference[1]{This is a reference}
This is some text.
\section{This is another section}
This is some more text.
\stoptext
显示为:
1 This is a section
This is some text.
2 This is another section
This is some more text.
注意,第一部分和文本之间有一个额外的空格,而这个额外的空格并不存在。
- 我是否正确创建了参考?为什么手册中有这么多不同的命令,但似乎都做同样的事情,例如
\ref
,,,等等?\at
\in
- 为什么会
\reference
产生额外的空间?如何删除这些额外的空间? - 为什么我需要将一些文本放在花括号内
\reference[]{Some text here}
?
答案1
手册第 12.5 章“交叉引用”对此进行了解释
命令 \in 提供章节、节、图表、表格等的编号。命令 \at 生成页码,而 \about 生成完整标题。在前两个调用中,第二个参数是可选的,如果给出,则放在编号或标题之后。
例子:
\startchapter [title=foo, reference=sec:foo]
\stopchapter
% Output: chapter 1
\in{chapter}[sec:foo]
% Output: page 42
\at{page}[sec:foo]
% Output: “Foo”
\about[sec:foo]
注意:\in
和\at
在括号中采用可选参数,\about
但不是。
您还可以引用逐项列表中的项目:
\startitemize [n]
\startitem [item:first]
First
\stopitem
\startitem [item:second]
Second
\stopitem
\stopitemize
% Outputs: As in item 2.
As in \in{item}[item:second].
答案2
在 ConTeXt 中创建引用的通常方法是:
\startsection[title={This is a section}, reference=sec:one]
....
\stopsection
或者
\section[sec:one]{This is a section}
尽管\reference
与 LaTeX 的类似\label
,但与 LaTeX 不同的是,您几乎从不使用 ConTeXt 中的手册\reference
。所有命令都提供了一些指定参考的方法。