- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个值表,其中每个单元格都有一个数字、一个空格,然后是括号中的另一个数字。我正在使用 xtable
在文档中呈现此表。我希望数字在左括号(或空格)上是合理的。我用过 latex
dcolumn
package 来创建一个命令来对齐左括号。但是,这改变了表格格式的其他方面,我想防止这种情况发生。
我知道就够了latex
很危险,不确定下一步。下面是一个可重现的例子,展示了表格现在的样子,并解释了我实际上喜欢它的样子。我想弄清楚如何在 rmarkdown
中以编程方式获得我想要的格式文档,这样我就不必事后破解 latex 了。另外,我不喜欢这种证明表格值合理的特殊方法,所以如果我走错了路,请随时提出另一种方法。
由于这个问题的重点是在 r
的上下文中使用 latex , knitr
和 rmarkdown
,我认为在这里问会更好,但请告诉我是否应该将其移至 Tex
Stack Exchange 站点代替。header.tex
包含 dcolumn
的文件命令:
\usepackage{dcolumn}
\newcolumntype{Q}{D{(}{(}{-1}}
rmarkdown
文档:
---
title: "Test"
date: "July 19, 2016"
output:
pdf_document:
includes:
in_header: header.tex
keep_tex: yes
number_sections: yes
fontsize: 11pt
geometry: margin=1in
graphics: yes
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, message=FALSE, warning=FALSE, fig.align="center")
```
```{r}
library(xtable)
# Data frame to create table
tab1 = structure(list(Term = structure(1:5, .Label = c("Fall 2007",
"Spring 2008", "Fall 2008", "Spring 2009", "Fall 2009", "Spring 2010",
"Fall 2010", "Spring 2011", "Fall 2011", "Spring 2012", "Fall 2012",
"Spring 2013", "Fall 2013", "Spring 2014", "Fall 2014", "Spring 2015",
"Fall 2015", "Spring 2016", "Fall 2016"), class = c("ordered",
"factor")), `BIO 10` = c("89 (2)", "96 (2)", "77 (1)", "103 (3)",
"81 (1)"), `BIO 20` = c("194 (5)", "175 (3)", "176 (8)", "168 (3)",
"170 (4)"), `BIO 30` = c("153 (2)", "154 (14)", "188 (7)", "192 (9)",
"183 (8)"), `BIO 40` = c("284 (23)", "296 (5)", "267 (17)", "296 (16)",
"279 (7)"), `BIO 50` = c("88 (1)", "107 (5)", "98 (1)", "109 (7)",
"93 (5)")), .Names = c("Term", "BIO 10", "BIO 20", "BIO 30",
"BIO 40", "BIO 50"), row.names = c(NA, 5L), class = "data.frame")
```
```{r results="asis"}
print.xtable(
xtable(tab1,
label="tab:tab1",
caption = "Default Table"),
size="small",
include.rownames=FALSE, comment=FALSE, caption.placement="top"
)
```
```{r results="asis"}
print.xtable(
xtable(tab1,
label="tab:tab2",
caption = "Columns aligned at left parenthesis",
align=c("llQQQQQ")),
size="small",
include.rownames=FALSE, comment=FALSE, caption.placement="top"
)
```
rmarkdown
的输出文档。表 1 是
xtable
创建的默认表.表 2 使用
dcolumn
my_header.tex
中的命令文件。在表 2 中,每个单元格中的左侧数字右对齐,这正是我想要的。然而,
docolumn
以我不想要的其他方式更改了格式:
最佳答案
我在这个意义上更新了我的答案,你不需要 dcolumn
了。在使用 R 的正则表达式功能和添加原始 LaTeX 命令(例如 {\hskip 0.5em}
)之间有点混合。 .问题是,您可以在(据我所知)任何 LaTeX 环境中添加这些原语,以便格式化您的段落等。
所以使用 apply
我们重新格式化 内容 表格单元格的数量取决于括号中的数字是 1 位还是 2 位,然后添加适当的水平间距。
通过使用 sanitize.text.function = identity
内部 print.xtable
我们确保这些 LaTeX 命令在 data.frame
时不会被删除。由 xtable
处理.
---
title: "Test"
output:
pdf_document:
keep_tex: true
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, message=FALSE, warning=FALSE, fig.align="center")
```
```{r}
library(xtable)
namesVec <- c("Term", "BIO 10", "BIO 20", "BIO 30",
"BIO 40", "BIO 50")
# Data frame to create table
tab1 = structure(list(Term = structure(1:5, .Label = c("Fall 2007",
"Spring 2008", "Fall 2008", "Spring 2009", "Fall 2009", "Spring 2010",
"Fall 2010", "Spring 2011", "Fall 2011", "Spring 2012", "Fall 2012",
"Spring 2013", "Fall 2013", "Spring 2014", "Fall 2014", "Spring 2015",
"Fall 2015", "Spring 2016", "Fall 2016"), class = c("ordered",
"factor")), `BIO 10` = c("89 (2)", "96 (2)", "77 (1)", "103 (3)",
"81 (1)"), `BIO 20` = c("194 (5)", "175 (3)", "176 (8)", "168 (3)",
"170 (4)"), `BIO 30` = c("153 (2)", "154 (14)", "188 (7)", "192 (9)",
"183 (8)"), `BIO 40` = c("284 (23)", "296 (5)", "267 (17)", "296 (16)",
"279 (7)"), `BIO 50` = c("88 (1)", "107 (5)", "98 (1)", "109 (7)",
"93 (5)")), .Names = paste("\\textnormal{", namesVec, "}"), row.names = c(NA, 5L), class = "data.frame")
tab1 <-apply(tab1, 2, function(x) {
tmp <- nchar(gsub(".*\\( ?([0-9]+).*","\\1", x))
skip <-ifelse(tmp == 1, "{\\\\hskip 1em}(", "{\\\\hskip 0.5em}(")
ifelse(tmp == 1, gsub(x, pattern = " \\(", replacement = paste("{\\\\hskip 1em}(")),
gsub(x, pattern = " \\(", replacement = paste("{\\\\hskip 0.5em}(")))
})
```
```{r results="asis"}
print.xtable(
xtable(tab1,
label="tab:tab2",
caption = "Columns aligned at left parenthesis",
align=c("llrrrrr")),
size="small",
include.rownames=FALSE, comment=FALSE, caption.placement="top"
, sanitize.text.function = identity)
```
关于r - knitr/rmarkdown/Latex : How to custom justify xtable columns using dcolumn, 同时抑制其他 dcolumn 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38462519/
我正在尝试使用此示例将 3 个文件编织在一起:http://rmarkdown.rstudio.com/rmarkdown_websites.html 我的文件都共享同一个目录,该目录已在 RStud
我正在将 Rmarkdown 与 python 一起使用。相当于R python的内联代码? 例如,在 https://rmarkdown.rstudio.com/lesson-4.html我可以 `
我正在用 Rmarkdown 编写一系列相互补充的报告。我想将上一份报告的结果包含在我目前正在处理的报告中。我看到其他问题建议使用 purl 从 Rmarkdown 文档中提取 R 代码然后运行它,所
我想演示如何编写 RMarkdown,其中所说的 RMarkdown 演示嵌入在用于创建类(class) Material 的 RMarkdown 文档中。在这个围栏代码块中,我不希望 knitr 执
我在 Amazon AWS EC-2(Amazon Linux AMI 2015.09.1 (HVM),SSD Volume Type - ami-60b6c60a)上安装了一个 Shiny 的服务器
我刚刚开始使用 rmarkdown、pandoc 和 knitr。我在尝试让 pandoc 获取比 rmarkdown 文档高一级的图像时遇到了很多困难。例如,考虑我们的项目目录是 ~/test,下面
我希望将 Bootstrap 导航栏(如此处所示:https://getbootstrap.com/docs/4.0/components/navbar/)添加到我正在创建的 R Markdown 模
我正在尝试通过 Rmarkdown 并排打印两个表格,输出为 PDF。 我可以很好地打印这些表格,但它们最终靠得很近,我找不到在它们之间创造更多空间的方法。我在其他帖子中找到的解决方案返回奇怪的输出或
我报告了一个问题 https://github.com/rstudio/rmarkdown/issues/967我想知道是否有解决方法(如何使其工作)? 下面的可重现示例(改变 n 和 nGroup
我正在将 Rmarkdown PDF 文档与以下 YAML 设置放在一起: --- output: pdf_document: fig_caption: true fig_crop
我有类似于以下的代码,它是动态生成并存储在变量中的: --- title: "test" author: "me" date: "3 June 2019" output: html_document
我经常编写可供技术人员和高管阅读的 Markdown 文档。 从这个意义上说,我想知道是否可以在 HTML 中创建一个按钮来隐藏或显示最终输出中的代码块? 目前,我正在创建两个单独的文件,我认为这是一
我正在使用 rmarkdown 在 RStudio 中进行投影仪演示。我想在演示文稿的顶部获得幻灯片代码。德累斯顿主题应该支持那些股票 Dresden 那么是否有可能通过使用 rmarkdown 来获
我有一个简单的问题。我如何使用 Rmarkdown/knitr 创建词汇表。我与 RStudio 合作。 我尝试这个但没有成功 \usepackage{glossaries} 在 header.tex
我有R包,它的功能之一-产生报告。在inst/markdown中,我有一个模板rep.rmd。在包函数ProduceReport()中,我有以下代码: render.file <-"rep.Rmd
嗨,我想在我的 Rmarkdown 文件的一侧添加一个页面导航。如果它看起来像侧边栏就好了 on this page . --- title: "My Title" author: "My Name"
当我为学生准备教程时,我需要一种方法来隐藏可折叠面板中的内容,这些面板可以通过单击按钮来显示。我已经使用下面的代码让它工作了。 RMarkdown 文件如下所示: --- title: Collaps
我最近开始使用 r-markdown使用来自 rticles 的便捷模板准备期刊文章.但是,我们最终使用 Word 而不是 LaTex 提交。合作者更喜欢 Word,目前,并非所有期刊都接受 LaTe
我有两个 RMarkdown 文件。 main.Rmd这是渲染的主文件 example.Rmd它包含更长的示例并在其他地方使用(因此它存在于自己的文档中)。 我想包括example.Rmd在 main
在我的 R 文件中,我有: library(rmarkdown) rmarkdown::render("C://Users//me//Desktop//test_param.Rmd",
我是一名优秀的程序员,十分优秀!