将xtable表格标题左对齐在knitr中的对齐方法

4

我已经阅读了很多有关如何将 xtable 表格左对齐的帖子,但我找不到细节或者无法弄清如何使标题也左对齐。下面是一个可重现的示例,它将表格左对齐,但标题仍居中。

\documentclass{article}
\begin{document}

<<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}

Output table


你看过 align 参数了吗? - Roman Luštrik
我可能没有理解正确,但我认为align参数是用于对齐表格内内容位置的。 - Robin
抱歉,看来我需要更多的咖啡了。请参考 print.xtable 中的一些参数,这些参数可能会帮助您定位标题位置。 - Roman Luštrik
3个回答

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}

这会返回:

在此输入图片描述

3
这个操作对于任何想要以APA格式生成Markdown文件的人来说都是至关重要的,因为表格标题通常是左对齐的。
我将进一步澄清Robin的答案,因为如果完全不了解Markdown/Latex接口,则需要花费一些时间来弄清楚。
上传“caption”包(文档可在此处找到:这里),方法是将其包含在...
\usepackage{caption}

在文档的YAML(头部)部分,

command

前面需要加上。
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文件的任何空白处重新插入此代码(不要在代码块中!)
例如:
\captionsetup{justification = centering, singlelinecheck = false}

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接