R Markdown生成PDF时texreg回归输出过宽超出页面求助
解决texreg回归表格超出PDF页面宽度的方案
以下是几个直接有效的解决方法,按优先级排序:
用LaTeX的resizebox自动缩放表格
因为texreg直接输出LaTeX代码,knitr的out.width参数对它无效。可以手动包裹LaTeX的缩放命令,强制表格适配页面宽度:cat("\\begin{table}[ht] \\resizebox{\\textwidth}{!}{") texreg(list(M1aR,M1bR,M1cR,M1dR), dcolumn = TRUE, booktabs = TRUE, stars = c(0.01, 0.05, 0.1), include.adjrs = FALSE, caption = "Lifetime CO2", digits = 4, reorder.coef = c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1), float = FALSE) # 关闭texreg自带的table环境,避免嵌套冲突 cat("} \\end{table}")缩短过长的变量名
如果表格过宽是因为变量名太长,直接用custom.coef.names替换成短名称,对应你reorder.coef后的变量顺序:texreg(list(M1aR,M1bR,M1cR,M1dR), dcolumn = TRUE, booktabs = TRUE, stars = c(0.01, 0.05, 0.1), include.adjrs = FALSE, caption = "Lifetime CO2", digits = 4, reorder.coef = c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1), custom.coef.names = c("Var2", "Var3", ..., "Var1")) # 按顺序写18个短名称手动指定列宽
用texreg的colwidth参数给每列设置固定宽度,第一列是变量名,后面四列对应四个模型,比如:texreg(list(M1aR,M1bR,M1cR,M1dR), dcolumn = TRUE, booktabs = TRUE, stars = c(0.01, 0.05, 0.1), include.adjrs = FALSE, caption = "Lifetime CO2", digits = 4, reorder.coef = c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1), colwidth = c("2.2cm", "1cm", "1cm", "1cm", "1cm")) # 根据实际调整数值缩小字体或减少小数位数
- 减少小数位数:把
digits=4改成digits=3,压缩数值列宽度; - 缩小表格字体:在table环境里加
\small或\footnotesize,比如:cat("\\begin{table}[ht] \\footnotesize") texreg(list(M1aR,M1bR,M1cR,M1dR), dcolumn = TRUE, booktabs = TRUE, stars = c(0.01, 0.05, 0.1), include.adjrs = FALSE, caption = "Lifetime CO2", digits = 4, reorder.coef = c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1), float = FALSE) cat("\\end{table}")
- 减少小数位数:把
内容的提问来源于stack exchange,提问作者Lilly
相关产品推荐
相关产品推荐

