R Markdown中使用TexReg生成回归表时如何设置长短双标题?
解决TexReg无法设置长短双标题的方法
TexReg在处理caption参数时,会强制将所有传入的内容包裹在\caption{}的大括号内部,因此直接传入[短标题]{长标题}格式的内容会被整体识别为长标题内容,无法触发LaTeX的双标题语法,可通过以下两种方法解决:
方法1:正则替换生成的LaTeX字符串
直接对TexReg输出的LaTeX字符串做正则匹配,替换掉多余的外层大括号即可:
library(texreg) # 按 [短标题]{长标题} 格式构造标题内容 cap_content <- "[基准回归结果]家庭收入对消费意愿的影响:控制个体、城市固定效应及异质性调整的分样本回归结果" # 生成初始texreg输出 t1 <- texreg(list(mod_1, mod_2), caption = cap_content) # 正则替换为双标题格式 t1 <- sub("\\\\caption\\{\\[(.*?)\\]\\{(.*?)\\}\\}", "\\\\caption[\\1]{\\2}", t1)
处理后的t1就会生成\caption[基准回归结果]{家庭收入对消费意愿的影响:控制个体、城市固定效应及异质性调整的分样本回归结果}格式的正确LaTeX代码。
方法2:关闭TexReg自带标题,手动编写LaTeX标题
如果是在R Markdown场景下使用,可直接关闭TexReg的自动标题功能,自己在LaTeX表格环境中定义长短标题,灵活度更高:
- 首先在代码块中设置
results='asis',生成不带标题的回归表格:
t1 <- texreg(list(mod_1, mod_2), caption = NULL)
- 在代码块外手动编写表格环境和双标题:
\begin{table}[ht] \centering `r t1` \caption[基准回归结果]{家庭收入对消费意愿的影响:控制个体、城市固定效应及异质性调整的分样本回归结果} \label{tab:reg_baseline} \end{table}
该方法还可同时自定义表格对齐方式、标签、位置参数等,适配性更强。
内容的提问来源于stack exchange,提问作者kww_AU
相关产品推荐
相关产品推荐

