LaTeX编译报Undefined control sequence \sym错误的问题咨询
报错根因
编译抛出! Undefined control sequence. xvari & -0.0901\sym错误,核心原因是代码中使用的\sym命令未被定义。\sym不是LaTeX基础命令,你当前导入的amsmath、booktabs等所有宏包、自定义指令中都没有对这个命令的实现,LaTeX无法解析该指令就会终止编译。这个命令大多是Stata、R等计量分析工具自动导出回归表时自动生成的,用来排版显著性标记。
修复方法
两种方案选其一即可:
- 单处临时修改:不需要加载额外宏包,直接把对应行的
\sym{**}替换为通用的上标记法$^{**}$即可,修改后代码行为:xvari & -0.0901$^{**}$ \\ - 批量全局适配:如果文档中还有多处使用
\sym标记显著性的代码,不想逐行替换,直接在导言区(\begin{document}之前)添加一行自定义命令即可全局生效:
该定义和计量工具自动导出表格默认的\newcommand{\sym}[1]{$^{#1}$}\sym排版效果完全一致,支持\sym{*}、\sym{**}、\sym{***}所有常用显著性标记写法。
注:原代码中重复导入了两次
graphicx宏包,属于冗余写法,删除重复导入行不影响编译结果,保留也不会触发报错。
可直接编译的完整修正代码
\documentclass[oneside,a4paper,11pt]{article} \usepackage{graphicx,url,changepage,amsmath,bm,float,subfig} \usepackage[margin=2.5cm]{geometry} \usepackage{parskip} \usepackage{apacite} \usepackage{caption} \usepackage{tabularx} \usepackage{booktabs} \setlength{\parskip}{1em} \renewcommand{\baselinestretch}{1.5} \newcommand{\Rom}[1] {\MakeUppercase{\romannumeral #1}} % 全局定义\sym命令,若采用单处替换方案可删除这行 \newcommand{\sym}[1]{$^{#1}$} \begin{document} \begin{tabular}{cc} \hline &\multicolumn{1}{c}{(1)}\\ &\multicolumn{1}{c}{Eq. 1}\\ \hline xvari & -0.0824 \\ & (0.0601) \\ &\multicolumn{1}{c}{(1)}\\ &\multicolumn{1}{c}{Eq. 2}\\ \hline xvari & -0.0901\sym{**} \\ & (0.0370) \\ \end{tabular} \end{document}
内容的提问来源于stack exchange,提问作者daviddupont
相关产品推荐
相关产品推荐

