如何在RMarkdown中用\input命令缩放LaTeX表格?解决「Not in outer par mode」错误
解决RMarkdown中LaTeX表格缩放报错的问题
报错原因
你用\resizebox包裹\input{sample_table2.tex}时出错,核心原因是外部tex文件包含table浮动环境——LaTeX不允许将浮动环境嵌套在\resizebox这类盒子命令中,这直接触发了「Not in outer par mode」错误。
两种可行解决方案
方案1:修改外部tex文件,剥离浮动环境
把外部tex文件里的\begin{table}[htbp]和\end{table}删除,只保留表格核心内容,示例如下:
\centering \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi} \begin{tabular}{l*{4}{c}} % 表格具体内容 \end{tabular}
之后在RMarkdown里手动添加浮动环境并包裹缩放命令:
\begin{table}[htbp] \resizebox{0.75\textwidth}{!}{\input{sample_table2.tex}} \end{table}
方案2:使用adjustbox包兼容原tex文件
如果不想修改外部tex文件,可借助adjustbox包处理浮动环境与缩放命令的冲突:
- 先在RMarkdown的YAML头部加载该包:
--- title: "你的文档标题" output: pdf_document header-includes: - \usepackage{adjustbox} ---
- 用
adjustbox环境包裹\input命令,指定缩放宽度:
\begin{adjustbox}{width=0.75\textwidth} \input{sample_table2.tex} \end{adjustbox}
补充说明
adjustbox包会自动处理浮动环境与盒子命令的兼容性,无需修改原有tex文件;方案1则更贴合LaTeX原生排版逻辑,避免引入额外依赖包,可根据需求选择。
内容的提问来源于stack exchange,提问作者rokman54
相关产品推荐
相关产品推荐

