latex - 如何在 Pandoc 交叉引用中使用 LaTeX 部分编号
问题描述
Pandoc 文档说,可以通过多种方式对节标题进行交叉引用。例如,您可以创建自己的 ID 并引用该 ID。例如:
# This is my header {#header}
将创建一个可以在文本中引用的值为“#header”的 ID,如下所示:
[Link to header](#header)
这将显示带有标题链接的文本“链接到标题”。
当编译为 LaTeX 文档时,我在任何地方都找不到如何使链接的文本成为节号。
例如,如果我的标题编译为“1.2.3 节标题”,我希望我对文本的交叉引用显示为“1.2.3”。
解决方案
您可以使用pandoc-secnos过滤器,它是pandoc-xnos过滤器套件的一部分。
标题
# This is my header {#sec:header}
使用@sec:header
. 或者,您可以参考
# This is my header
使用@sec:this-is-my-header
.
以这种方式编码的 Markdown 文档可以通过添加--filter pandoc-secnos
到pandoc
调用中来处理。--number-sections
也应该使用该选项。输出使用 LaTeX 的本机命令(即,\label
和\ref
或\cref
)。
这种方法的好处是其他格式(html、epub、docx、...)的输出也是可能的。