我需要在 RMarkdown 中旋转 Tufte_handout 中的列名称,并且我认为缺少“\usepackage{rotating}”。但无论我如何尝试,都无法准确无误地输入。
这是一个工作示例(RStudio 中模板的简化版本)。绘制了前两个表(没有旋转列名),但是当在最后两个具有旋转列名的表中删除“#”时,它会失败。
---
title: "Tufte Handout with rotated tables"
output: rmarkdown::tufte_handout
---
# Table from RStudio template
```{r, results='asis'}
library(xtable)
options(xtable.comment = FALSE)
options(xtable.booktabs = TRUE)
xtable(head(mtcars[,1:6]), caption = "Ok. Template from RStudio.")
```
# Modified table (working)
```{r, results='asis'}
library(xtable)
options(xtable.comment = FALSE)
options(xtable.booktabs = TRUE)
the.table <- xtable(head(mtcars[,1:6]), caption = "Also ok.")
print((the.table), rotate.colnames=FALSE)
```
# Modified table (not working)
```{r, results='asis'}
library(xtable)
options(xtable.comment = FALSE)
options(xtable.booktabs = TRUE)
options(xtable.rotate.colnames = TRUE)
# Next row will fail
#xtable(head(mtcars[,1:6]), caption = "Not ok.")
```
# Modified table (not working)
```{r, results='asis'}
library(xtable)
options(xtable.comment = FALSE)
options(xtable.booktabs = TRUE)
the.table <- xtable(head(mtcars[,1:6]), caption = "Not ok.")
# Next row will fail.
#print((the.table), rotate.colnames=TRUE)
```
更新:感谢@Jonathan 的耐心支持,我终于成功了。步骤如下:
在 RStudio 中创建了新项目:enhancedtufte(作为包)
在enhancedtufte下创建目录实例
在inst下创建目录rmarkdown
在rmarkdown下创建目录模板
运行命令“system.file("rmarkdown/templates/tufte_handout", package="rmarkdown")”来查找原始 tufte_handout 的位置,并将目录“tufte_handout”(从模板下)复制到模板 -上一步创建的目录
将 template.yaml 中的行从“名称:Tufte Handout”编辑为“名称:Tufte Handout 2”
在 RStudio 中单击“构建并重新加载”
选定文件 -> 新文件 -> R Markdown...,然后从模板 -> Tufte Handout 2 {enhancedtufte}
在新文档中,将“output: rmarkdown::tufte_handout”行更改为“output:enhanced_tufte::tufte_handout”
已复制 https://github.com/rstudio/rmarkdown/tree/master/R 中的所有文件至增强型tufte/R
将包名称编辑为“enhancedtufte in tufte_handout.R”#获取tufte handlout模板 模板<-系统.文件( “rmarkdown/模板/tufte_handout/资源/tufte-handout.tex”, 包=“增强型” )”
在 tufte-handout.tex 中添加了“\usepackage{rotating}”
构建和重新加载
- Knit 可与侧 table 配合使用(删除上例中的 #)
最佳答案
\usepackage
指令需要进入 Pandoc 使用的 TeX 模板。
不幸的是,更改模板并不容易,但这并非不可能。您需要执行以下操作:
- 在 RStudio 中创建一个新包(例如,enhanced_tufte)。
- 将 rmarkdown 的 Tufte 讲义模板复制到您的包中。您可以使用以下命令找到 Tufte 讲义模板的位置:
system.file("rmarkdown/templates/tufte_handout", package="rmarkdown")
;您需要将此文件夹复制到包的inst/rmarkdown
文件夹中。 - 修改包的
tufte-handout.tex
副本以包含\usepackage{rotating}
;构建并加载您的包。 - 修改您的 YAML header 以使用新模板:
输出:enhanced_tufte::tufte_handout
。
您也可以直接修改 RMarkdown 的模板以包含 \usepackage{rotating}
,但当然,这会在您下次安装 rmarkdown 包时恢复。
关于在 RMarkdown 中使用 Tufte_handout 旋转 xtable 列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25628993/