当type =“ latex”时如何将观星台向左对齐?

问题描述 投票:4回答:2

我在自动的rmarkdown pdf文档中使用stargazer程序包来制作漂亮的表格。缺省情况下,Stargazer将其表放置在页面的中央。我如何让观星者生成将表格向左对齐的乳胶代码?

这是我的意思的示例:

library(stargazer)

data_object <- structure(list(test = structure(c(1L, 1L, 2L, 2L), .Label = c("test1",  "test2"), class = "factor"), test2 = structure(1:4, .Label = c("1",        "2", "3", "4"), class = "factor")), .Names = c("test", "test2"), row.names = c(NA, -4L), class = "data.frame")

stargazer(data_object,title="table test",summary=FALSE,rownames=FALSE,type="latex",header=FALSE)

它产生的代码是:

\begin{table}[!htbp] \centering 
  \caption{table test} 
  \label{} 
\begin{tabular}{@{\extracolsep{5pt}} cc} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
test & test2 \\ 
\hline \\[-1.8ex] 
test1 & 1 \\ 
test1 & 2 \\ 
test2 & 3 \\ 
test2 & 4 \\ 
\hline \\[-1.8ex] 
\end{tabular} 
\end{table}

注意\centering。我该如何更改而不必更改乳胶代码本身?

r alignment latex r-markdown stargazer
2个回答
2
投票

[看来\centeringhard coded into the function。您可以使用\centering(例如sub)删除sub(" \\\\centering", "", out)

这是我使用的块。我使用capture.output来防止stargazer输出我认为是中间结果的内容。

<<results = "asis">>=
library(stargazer)

data_object <- structure(list(test = structure(c(1L, 1L, 2L, 2L), .Label = c("test1",  "test2"), class = "factor"), test2 = structure(1:4, .Label = c("1",        "2", "3", "4"), class = "factor")), .Names = c("test", "test2"), row.names = c(NA, -4L), class = "data.frame")

out <- capture.output(stargazer(data_object,title="table test",summary=FALSE,rownames=FALSE,type="latex",header=FALSE))
out <- sub(" \\\\centering", "", out)
cat(out)
@

enter image description here


0
投票

@ Roman一旦执行此sub(),如何将其实际输出为LaTeX格式?我看到cat()打印更新后的文本,但是我不想手动复制粘贴到新文件中。我需要我的文件自动运行。

© www.soinside.com 2019 - 2024. All rights reserved.