【问题标题】:Using bookdown, must one set number_sections: true in _output.yml for cross referencing sections?使用 bookdown,必须在 _output.yml 中为交叉引用部分设置 number_sections: true 吗?
【发布时间】:2020-09-18 22:02:35
【问题描述】:

我可以使用 Bookdown 呈现 HTML 书籍,但交叉引用部分失败。

不过,我可以让它工作。首先,我会让交叉引用工作。

编辑 9/20/20 太平洋标准时间 12:15 以响应更多重复的请求

我的章节标题如下所示:

# Getting Articles {#getArt} 

不同章节中的交叉引用是这样的,一段文字摘录:

您需要完成获取文章部分中的步骤 \@ref(getArt) )

此引用在 _output.yml 的 number_sections: true 时有效,但在 number_sections: false 时无效

结束编辑

在我的 _output.yml 我有以下代码;最后一行的评论是我的问题:

bookdown::gitbook:
 css: style.css
 toc_depth: 4
 number_sections: true    # if true, cross reference section labels render correctly

如果我设置了number_sections true,那么我可能会正确地交叉引用各个部分,例如“...在获取文章第 2 部分中”:

Jay Efran (2007)(要获得这篇文章,您需要完成获取文章第 2 部分中的步骤)

但如果我的 _output.yml 看起来像这样:

bookdown::gitbook:
 css: style.css
 toc_depth: 4
 number_sections: false   

我得到以下信息(注意“??”):

Jay Efran (2007)(要获得这篇文章,您需要完成获取文章部分中的步骤??

根据Yuhui's bookdown text, section 2.6,它声明了以下关于交叉引用和“??”的内容:

当找不到引用的标签时,您将看到两个问号,如??,以及在渲染图书时在 R 控制台中显示警告消息。

但我不知道该怎么办。显然,交叉引用存在并且可以正常工作,但仅在 _output.yml 条件下 number_sections: 设置为 true

有解决办法吗?

【问题讨论】:

  • 如果没有reprex,很难诊断。您如何引用第 2 节?
  • 嗯,这个可重现的例子很难比我已经给出的更多;我引用的实际方式与第 2.6 章的链接相同。就像这样:。 '\@ref(标签)'。请注意,它在一种情况下有效,但在另一种情况下无效。
  • 我进行了编辑以显示节/章是如何交叉引用的。

标签: r yaml bookdown


【解决方案1】:

这不起作用的原因是 bookdown 将 \@ref(getArt)(其中 getArt 是您的部分的 ID)转换为指向该部分的链接,并将部分编号设置为链接文本。对于 HTML 输出,大致如下所示:

<a href="chapter_title.html#getArt">2</a>

(参见 GitHub 上的source

如果您设置number_sections: false,则没有章节编号,因此链接文本为“??”。在这方面,文档有些不准确(因为参考存在并且链接确实有效)。

解决方法是手动为节标题分配一个 ID 并像这样引用它:

You'll need to walk through the steps found in the 
[Getting Articles section](#getArt).
    
# Getting Articles {#getArt}

【讨论】:

  • 好的,谢谢。这部分证明了我的无知:<a href="chapter_title.html#getArt">2</a>
  • 无论number_sections: 是否设置为true,它都有效。然而,丢失的是数字的花哨格式。我想这是有道理的,因为如果 number_sections: 设置为 false,数字就会变得毫无意义。
猜你喜欢
  • 1970-01-01
  • 2021-05-19
  • 2020-04-27
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
  • 1970-01-01
  • 2019-01-06
相关资源
最近更新 更多