Jim*_*ga1 20 r pandoc knitr r-markdown
我无法尝试在ar markdown文档中引用块,我试图使用pandoc.convert将其转换为.pdf.
如果我\label{mylabel}在文本中包含- 我可以参考\ref{mylabel}.但是,我认为我可能能够同样地引用一个块(或一个块中的表/图) - 但是我没有运气.
例如,对于块:
```{r myplot, echo=FALSE, warning=FALSE}
plot(cars)
```
Run Code Online (Sandbox Code Playgroud)
不过,我觉得我可能是能够把\ref{myplot}或者\ref{fig:myplot}甚至内部降价参考[car plot](myplot).文档似乎提到标签是根据块的名称创建的,这些是与类似问题相关的建议格式.但似乎都没有效果.
对于表格(我使用pander创建)也是如此 - 我有类似的块:
```{r car_sum}
library(pander)
car_summary<-summary(cars)
pander(car_summary, caption = "This is a summary of cars")
```
Run Code Online (Sandbox Code Playgroud)
当使用'pandoc.convert'从.md文件转换为.pdf时,表格会给出一个很好的标题'表3这是汽车的摘要'并且已编号,但我似乎无法使用该标签作为参考\ref{car_sum},它总是显示为'??'.有些论坛似乎提到你必须在标签名称之前加入'tab:'或'fig:',但这对我来说仍然不起作用.
可以在文本中进行块引用吗?如果是这样,需要键入什么才能正确执行此操作,以便在最终文档中显示"查看表2"之类的内容.
The*_*ell 19
请看看你所描述的这个要点.只需保存并编织它就可以看到它的运行......出于某种原因,Rpub不想发布它(未知错误).
与转换产生的knitr测试.html,以.pdf通过pandoc导致工作联系为好,这是一个不错的奖金!
主力是::
```{r setup, echo=FALSE, results='hide'}
chunkref <- local({
function(chunklabel) {
sprintf('[%s](#%s)', chunklabel, chunklabel )
}
})
secref <- local({
function(seclabel) {
sprintf('[%s](#%s)', seclabel, seclabel )
}
})
pgref <- local({
function(n)
sprintf('[Page-%i](#Page-%i)', n, n)
})
sec <- local({
function(seclabel) {
sprintf('# <a name="%s"/> %s', seclabel, seclabel )
}
})
pgcount <- local({
pg <- 0
function(inc=T) {
if( inc ) { pg <<- pg + 1 }
return( pg )
}
})
pganchor <- local({
function(doLabel=T) {
if( doLabel) {
sprintf('\n-----\nPage-%i\n<a name="Page-%i"/>\n', pgcount(inc=F), pgcount() )
} else {
sprintf('\n<a name="Page-%i"/>\n', pgcount() )
}
}
})
knit_hooks$set( anchor = function(before, options, envir) {
if ( before ) {
sprintf('<a name="%s"/>\n', options$label )
}
})
knit_hooks$set( echo.label = function(before, options, envir) {
if ( before ) {
sprintf('> %s', options$label )
}
})
knit_hooks$set( pgbreak = function(before, options, envir) {
if ( !before ) {
pganchor();
}
})
````
Run Code Online (Sandbox Code Playgroud)
这允许创建多种类型的引用...
Inline: `r sec("Introduction")` then `r secref("Introduction")`
Run Code Online (Sandbox Code Playgroud)
要么
作为块选项:
```{r car-summary, echo=T, warning=FALSE, anchor=T, pgbreak=T, echo.label=F}`
Run Code Online (Sandbox Code Playgroud)
然后
`r chunkref("car-summary")`
Run Code Online (Sandbox Code Playgroud)
即使是"页面顶部"链接和"页面底部"标记和标签......
小智 5
引用数字的更简单解决方案:将其放在fig.cap字段中(使用双引号\\以逃避第一个\):
fig.cap="\\label{mylabel}Caption of my figure."
Run Code Online (Sandbox Code Playgroud)
然后,用于\autoref{mylabel}参考正文中的图。
我正在将RStudio与Rmarkdown一起使用。完整的RMD文件:
---
output: pdf_document
---
```{r fig.cap="\\label{mylabel}Caption of my figure."}
plot(1)
```
The generated figure is \autoref{mylabel}.
Run Code Online (Sandbox Code Playgroud)