! 输入多列表格时放错 \omit 错误

! 输入多列表格时放错 \omit 错误

我正在用从 STATA 自动导出的几个组件构建一个表格。为此,我使用\input{}在表格和表格环境中输入组件。这通常很有效,但我现在想输入包含 的行\multicolumn。这会产生 LaTeX 错误 !Misplaced \omit. \multispan ->\omit。此外,我输入的行从表格的右侧开始,而不是像它应该的那样一直到左侧。以下是代码的一个最小示例:

 \documentclass[11pt,oneside]{amsart}
 \usepackage{booktabs,multirow}
 \usepackage{tabularx}

 \begin{document}
  \begin{table}
  \caption{Table 1}
  \begin{tabular}{llcc}
  \toprule
  \input{no_degree}
  \midrule
 \multicolumn{4}{l}{Vocational training}\\
 & No training & 400 & 35 \\
 \midrule
 \end{tabular}
 \end{table}
 \end{document}

要输入的表 no_degree 有以下代码:

 \multicolumn{2}{l}{\textbf{No info on secondary degree}} & 214 & 20 \\

运行此代码会产生错误。但是,当我直接复制并粘贴输入文件的内容时,代码运行顺利。此代码如下:

 \documentclass[11pt,oneside]{amsart}
 \usepackage{booktabs,multirow}
 \usepackage{tabularx}

 \begin{document}
  \begin{table}
  \caption{Table 1}
  \begin{tabular}{llcc}
  \toprule
 \multicolumn{2}{l}{\textbf{No info on secondary degree}}&214& 20 \\
  \midrule
 \multicolumn{4}{l}{Vocational training}\\
 & No training & 400 & 35 \\
 \midrule
 \end{tabular}
  \end{table}
 \end{document}

多谢!

答案1

您之前不能有任何不可扩展的命令,\multicolumn因为一旦看到不可扩展的标记,列单元格就会启动,并且制作跨越单元格已经太晚了。不幸的是,LaTeX\input命令是不可扩展的,但是要添加括号语法,您可以使用原始输入作为

\csname @@input\endcsname no_degree 

或者

 \@@input no_degree 

如果您所在的地区@有一封信。

原始输入是可扩展的,并且不会阻止\multicolumn文件的工作。

相关内容