Pander + Knitr问题:使用pander.list时出错

Jul*_*ian 5 r list knitr pander

另一个与pander(+ knitr)可重现的错误:当我尝试平移列表时,我无法创建PDF文件 - 它似乎发生在将表或data.frame放入列表中时.如果列表中只有向量,则PDF编译但看起来很难看.

我在Windows上使用pander 0.5.1,knitr 1.7,R 3.1.1,Miktex + RStudio.

Doesn't work:
```{r, eval=FALSE}
pander(list(cor=cor(cars) ) )
```
Run Code Online (Sandbox Code Playgroud)

错误:

output file: Preview-e905ccd5f1a.knit.md

! Undefined control sequence.
l.246   \textbf{cars}: {[}1{]} ``\n

pandoc.exe: Error producing PDF from TeX source
Fehler: pandoc document conversion failed with error 43
Zus?tzlich: Warnmeldung:
Ausf?hrung von Kommando '"C:/Program Files/RStudio/bin/pandoc/pandoc" Preview-e905ccd5f1a.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash-implicit_figures --output Preview-e905ccd5f1a.pdf --template "C:\Users\jbothe\Documents\R\win-library\3.1\rmarkdown\rmd\latex\default.tex" --highlight-style tango --latex-engine pdflatex --variable "geometry:margin=1in"' ergab Status 43 
Ausf?hrung angehalten
Run Code Online (Sandbox Code Playgroud)

当我在控制台中使用pander并手动复制并粘贴它时,它会编译:

* **cor**:

    --------------------------
            speed   dist
    ----------- ------- ------
     **speed**     1    0.8069

     **dist**   0.8069    1
    --------------------------
Run Code Online (Sandbox Code Playgroud)

尝试将汽车放入列表时发生同样的错误:

```{r, eval=TRUE}
pander(list(cars=cars ) )
```
Run Code Online (Sandbox Code Playgroud)

如果我将Vectors放入列表中,它可以工作,但输出看起来很丑,因为属性也被解析: {r} pander(list(a=c(1,2,3),b=c('A','b') ) )

PDF-输出:

• a: [1] “1, 2 and 3” attr(,“class”) [1] “knit_asis” attr(,“knit_cacheable”) [1] TRUE
• b: [1] “A and b” attr(,“class”) [1] “knit_asis” attr(,“knit_cacheable”) [1] TRUE
Run Code Online (Sandbox Code Playgroud)

Jul*_*ian 4

我找到了一个解决方法,在 pander 中禁用 knit.auto.asis 选项,并在 knit 中手动设置 results='asis' 。但我仍然认为这应该被视为一个错误?!?

## Workaround with asis
```{r results='asis'}
panderOptions('knitr.auto.asis', FALSE)
pander(list(a=c(1,2,3),b=c('A','b')  ) ) 
```

```{r, results='asis'}
panderOptions('knitr.auto.asis', FALSE)
pander(list(cor=cor(cars) ) )
```
Run Code Online (Sandbox Code Playgroud)