检查生成的TEX时,很明显
stargazer
不在逗号后添加任何空格。问题出在其他地方:
这个问题的根源是LaTeX没有认识到
,
默认情况下作为十进制分隔符。因此,在数学模式下,LaTeX在每个
,
。描述了此问题
here on TEX.SE
解决方案是包括
icomma
包裹
\documentclass{article}
\usepackage{icomma}
\begin{document}
<<results='asis', echo=FALSE, message = FALSE>>=
library(stargazer)
set.seed(0)
x = matrix(rnorm(3),nrow = 1)
y = matrix(rnorm(9),nrow = 3)
stargazer(x,summary=FALSE)
stargazer(x,summary=FALSE,decimal.mark = ",")
stargazer(y,summary=TRUE,decimal.mark = ",")
@
\end{document}
还有一个问题:为什么问题在表3中看不到?这是因为
天文学家
在表中使用不一致的数学标记。表2中的第二个单元格包含
$$-$0,326$
而第2行,表3的最后一列包含
$-$0,006
在第一种情况下,数字本身处于数学模式,导致上述行为。(不幸的是
-
处于文本模式,导致排版错误。)在第二种情况下,数字处于文本模式,不添加额外的空格。
为了克服负号格式错误的问题,我建议使用
xtable
而不是
天文学家
用于简单(非摘要)表。结合在数学模式下设置列的自定义列类型,结果是:
\documentclass{article}
\usepackage{icomma}
\usepackage{tabularx}
\newcolumntype{R}{>{$}r<{$}} % like an "r" column but in math mode
\begin{document}
<<results='asis', echo=FALSE>>=
library(xtable)
set.seed(0)
x = matrix(rnorm(3),nrow = 1)
print.xtable(
xtable(x, caption = "", align = rep("R", 4)),
include.rownames = FALSE,
include.colnames = FALSE,
format.args = list(decimal.mark = ","),
caption.placement = "top")
@
\end{document}