使用 bookdown,必须一组 number_sections: true in _output.yml 用于交叉引用部分?
Using bookdown, must one set number_sections: true in _output.yml for cross referencing sections?
我可以使用 Bookdown 呈现 HTML 本书,但交叉引用部分失败。
不过我可以让它工作。首先,我将进行交叉引用。
编辑 2020 年 9 月 20 日 12:15 pst 以响应更多 repex 的请求
我的章节标题是这样的:
# Getting Articles {#getArt}
不同章节的交叉引用是这样的,文字摘录:
you'll need to walk through the steps found in the Getting Articles section \@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) (to obtain this article, you’ll need to walk through the steps found in the Getting Articles section 2 )
但是如果我的 _output.yml 看起来像这样:
bookdown::gitbook:
css: style.css
toc_depth: 4
number_sections: false
我得到以下信息(注意“??”):
Jay Efran (2007) (to obtain this article, you’ll need to walk through the steps found in the Getting Articles section ?? )
根据Yuhui's bookdown text, section 2.6,它说明了以下关于交叉引用和“??”的内容:
When a referenced label cannot be found, you will see two question marks like ??, as well as a warning message in the R console when rendering the book.
但是我不知道该怎么办。显然,交叉引用存在并且正确工作,但仅在 _output.yml 条件下 number_sections:
设置为 true
。
有解决办法吗?
这不起作用的原因是 bookdown 将 \@ref(getArt)
(其中 getArt
是您的部分的 ID)转换为该部分的 link 并设置该部分数字作为 link 文本。对于 HTML 输出,大致如下所示:
<a href="chapter_title.html#getArt">2</a>
(参见 GitHub 上的 source)
如果设置 number_sections: false
则没有章节编号,因此 link 文本为“??”。在这方面,文档有些不准确(因为引用存在并且 link 确实有效)。
解决方法是手动为部分 header 分配一个 ID 并像这样引用它:
You'll need to walk through the steps found in the
[Getting Articles section](#getArt).
# Getting Articles {#getArt}
我可以使用 Bookdown 呈现 HTML 本书,但交叉引用部分失败。
不过我可以让它工作。首先,我将进行交叉引用。
编辑 2020 年 9 月 20 日 12:15 pst 以响应更多 repex 的请求
我的章节标题是这样的:
# Getting Articles {#getArt}
不同章节的交叉引用是这样的,文字摘录:
you'll need to walk through the steps found in the Getting Articles section \@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) (to obtain this article, you’ll need to walk through the steps found in the Getting Articles section 2 )
但是如果我的 _output.yml 看起来像这样:
bookdown::gitbook:
css: style.css
toc_depth: 4
number_sections: false
我得到以下信息(注意“??”):
Jay Efran (2007) (to obtain this article, you’ll need to walk through the steps found in the Getting Articles section ?? )
根据Yuhui's bookdown text, section 2.6,它说明了以下关于交叉引用和“??”的内容:
When a referenced label cannot be found, you will see two question marks like ??, as well as a warning message in the R console when rendering the book.
但是我不知道该怎么办。显然,交叉引用存在并且正确工作,但仅在 _output.yml 条件下 number_sections:
设置为 true
。
有解决办法吗?
这不起作用的原因是 bookdown 将 \@ref(getArt)
(其中 getArt
是您的部分的 ID)转换为该部分的 link 并设置该部分数字作为 link 文本。对于 HTML 输出,大致如下所示:
<a href="chapter_title.html#getArt">2</a>
(参见 GitHub 上的 source)
如果设置 number_sections: false
则没有章节编号,因此 link 文本为“??”。在这方面,文档有些不准确(因为引用存在并且 link 确实有效)。
解决方法是手动为部分 header 分配一个 ID 并像这样引用它:
You'll need to walk through the steps found in the
[Getting Articles section](#getArt).
# Getting Articles {#getArt}