我正在用从 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
文件的工作。