[环境:Win 7,R 3.2.3,RStudio,最新]
我有一个knitr .Rmd
文档作为文章,我想标记部分,如
## Mean differences {#sec:meandiff}
然后引用该部分,使其在文本中显示为“在3.2节中,我讨论......”我可以看到使用bookdown这样的事情是可能的,并且有一些提到“内部链接“在pandoc文档中,http://rmarkdown.rstudio.com/authoring_pandoc_markdown.html#links,但我无法使其工作。我记得在与RStudio相关的文档或博客中看到了一些内容,但现在找不到它。
我尝试了各种各样的事情,比如
In Section (@#sec:meandiff) ...
In Section (@sec:meandiff) ...
In Section (#sec:meandiff) ...
但是,生成的PDF将其呈现为
In Section (@#sec:meandiff) ...
In Section (???) ..., with: pandoc-citeproc: reference sec:meandiff not found
In Section (#sec:meandiff) ...
我正在使用的YAML
标题是:
---
title: "My title"
author: Moi Meme
date: '`r format(Sys.time(), "%B %d, %Y")`'
output:
pdf_document:
fig_caption: yes
keep_tex: yes
number_sections: yes
includes:
in_header: mystyles.tex
没有那么多这样的交叉引用我不能手动完成它们,但是如果我错过了一些关于pandoc
完成它们的语法的话会更容易。
答案 0 :(得分:3)
啊,因为我正在生成LaTeX,我可以使用它来进行交叉引用,而\label
是由markdown / pandoc生成的
在序言中,
\newcommand*{\secref}[1]{Section~\ref{#1}}
然后在文本中
In \secref{sec:mean-diff} ...
...
## Mean differences {#sec:meandiff}
答案 1 :(得分:2)
您可以使用pandoc-secnos过滤器套件中的pandoc-xnos。该部分
My Title
========
使用@sec:my-title
引用。另外,可以将ID明确分配给标题,例如
My Title {#sec:title}
========
,使用@sec:title
进行引用。通过向pandoc命令行调用中添加--filter pandoc-secnos
来应用过滤器。
这种方法的好处是可以输出多种不同格式(LaTeX / pdf,html,epub,docx等)。