您可以使用`xrefstyle`文档属性自定义自动交叉引用文本的样式。这种自定义将DocBook工具链中的交叉引用文本格式化带到AsciiDoc处理中,特别是在转换期间。

Caution
由于这是AsciiDoc语言的一个较新特性,它可能不被所有转换器支持。你可以在Asciidoctor的HTML、PDF和EPUB 3转换器中找到对它的支持。DocBook转换器不支持它,因为这是DocBook工具链已经提供的一个特性。

默认样式

默认情况下,交叉引用文本与被引用元素的标题相匹配。例如,如果你链接到一个标题为“Installation”的部分,交叉引用链接的文本显示为:

安装

如果在被引用元素上指定了reftext属性,那么这个值比它的标题更受青睐。例如,假设前面示例中的章节是这样写的:

[reftext="Installation Procedure"]
=== 安装

在这种情况下,交叉引用链接的文本显示为:

安装程序

属性引用在解析期间会替换为reftext,并且在转换时使用时,会对值应用reftext替换(特殊字符、引号和替换)。

如果没有指定reftext,则交叉引用的文本会自动生成。默认情况下,这个文本是引用的标题。

交叉参考样式

跨引用生成的文本由xrefstyle控制。它也会因不同的元素类型(比如章节、图形等)而有所不同。我们来看以下文档,了解xrefstyle的值是如何影响跨引用生成文本的。

== 安装

.Big Cats image::big-cats.png[]

xrefstyle文档属性支持三种内置样式,您可以从中选择一种来自定义交叉引用生成的文本。

全参考样式

使用指示符和引用编号,然后是加强的(章节或附录)或包含在引号中的标题(例如,第2.3节,“安装”)(例如,图1,“大型猫科动物”)。

xrefstyle: short

使用标志符和其后的参考编号(例如,第2.3节)(例如,图1)。

:xrefstyle: basic

仅使用标题,如果引用是章节或附录(例如,安装)(例如,大型猫科动物),则只应用强调。

xrefstyle`属性也可以直接在xref宏`xref macro上指定,以便覆盖单个引用的xrefstyle值(例如,+[installation]+`)。元素属性支持相同的三种样式。

xrefstyle格式仅适用于同时拥有标题和编号(或明确的标题文字)但没有明确的引用文字的引用。如果所引用的是章节或附录,标题将以斜体显示,而不是引号(即使xrefstyle设置为basic)。

假设你想引用一个标题为“安装”的部分,其编号为2.3。*完整*样式显示为:

第2.3节,“安装”

样式显示为:

第2.3节

基础样式显示为:

安装

'''完整简短 样式只适用于有标题的引用。具体来说,必须为目标的块类型设置相应的 <context>-caption 属性(例如,对列表块是 listing-caption,对示例块是`example-caption`,对表格是 table-caption 等)。否则,将使用 基本 样式。'''

参考标识符

您可以使用文档属性来自定义放置在参考编号前面的标志符号。这个[.term]*参考标志符*表示参考的类型(例如,章节或部分)。

  • chapter-refsig` — 定义用于交叉引用章节时使用的标识符(默认值:Chapter)

  • section-refsig``` — 定义用于交叉引用一个章节的标识符(默认:Section)

  • appendix-refsig` — 定义用于交叉引用附录的标识符(默认值:Appendix)

(一旦支持零件编号,将引入用于零件交叉引用的标识符属性。)

例如,要自定义单词“Section”,在文档头部定义`section-refsig`属性。

:section-refsig: 节。

完整的xrefstyle将会显示为:

第2.3节,“安装”

xrefstyle将会显示为:

第2.3节

如果您取消设置该属性,标识符将从交叉引用文本中删除。例如:

:!section-refsig:

在这种情况下,完整的 xrefstyle仅会显示编号和标题:

2.3,“安装”

xrefstyle将回退到仅数字:

2.3 ===

基本的xrefstyle不受标志符值影响。

只提供了上述的样式作为默认支持。自定义格式字符串的支持已被计划中。详情请参考https://github.com/asciidoctor/asciidoctor/issues/2212[#2212^]。在此之前,你可以通过自定义转换器或重写节点上的xreftext方法来实现自定义格式。