将xtable标题对齐在knitr中

时间:2018-01-20 07:01:17

标签: r latex knitr xtable

我已经阅读了大量关于证明 xtable 表格的不同帖子,但我找不到详细信息/找出如何使标题左对齐。下面是一个可重复的示例,它证明了左边的表,但是标题居中。

test_dplyr = read.csv("test_dplyr.csv", header=TRUE)
test_dplyr

test_dplyr %>%
  group_by(month, variable) %>%
  summarise(a_sum=sum(amount))

> test_dplyr = read.csv("test_dplyr.csv", header=TRUE)
> test_dplyr
      month variable amount
1 1/11/2018        x   1000
2 1/11/2018        x   3000
3 1/12/2018        y   5000
4 1/12/2018        y   3000
> 
> test_dplyr %>%
+   group_by(month, variable) %>%
+   summarise(a_sum=sum(amount))
# A tibble: 2 x 3
# Groups: month [?]
  month     variable a_sum
  <fctr>    <fctr>   <int>
1 1/11/2018 x         4000
2 1/12/2018 y         8000

Output table

3 个答案:

答案 0 :(得分:4)

我发现了如何做到这一点。只需导入LaTex Caption包并使用标题设置参数:

\captionsetup{justification = raggedright, singlelinecheck = false}

这将证明左边的标题是合理的。通过在附加表格/数字之前重复该功能并进行以下修改,可以将标题返回到其默认的中心位置以获得其他表格或数字。

\captionsetup{justification = centering, singlelinecheck = false}

答案是:

\documentclass{article}
\usepackage{caption}
\begin{document}
\captionsetup{justification = raggedright, singlelinecheck = false}
<<echo = F, results = "asis">>=
df = data.frame(x = c(1,2), y = c(4,6))
library(xtable)
print(xtable(df,digits=0, caption="Caption Left?"),include.colnames=TRUE, size = "small", comment=FALSE,   latex.environments="flushleft")
@
\end{document}

返回: enter image description here

答案 1 :(得分:3)

此操作对于希望以APA格式生成Markdown文件的任何人都严重,因为表格标题通常是左对齐的。

我要澄清Robin的答案,因为,因为Markdown / Latex接口全新,我花了一些时间才弄明白。

上传&#34;标题&#34;包括(文件可用here),包括

\usepackage{caption}

命令在文档的YAML(标题)部分,前面加上

header-includes:

因此,文档标题中的整个YAML部分可能如下所示:

---
title: "Supplementary Materials"
author: ""
date: "3/30/2018"
output:
  pdf_document: default
editor_options:
  chunk_output_type: inline
header-includes:
   - \usepackage{caption}

---

然后,在文档中的任何一点,在代码块之前(在它自己的空白区域中),您可以插入代码:

\captionsetup{justification = raggedright, singlelinecheck = false}

要再次更改设置,您可以在Markdown文件的空白区域中的任何位置重新插入此代码(不在代码块中!)

E.g。

\captionsetup{justification = centering, singlelinecheck = false}

答案 2 :(得分:0)

如果您不介意使用替代包(我自己的):

library(huxtable)
ht <- as_huxtable(df)
caption_pos(ht) <- "bottomleft"
print_latex(ht)    # or just do `ht` if within a knitr or Rmd document