我的文档包含多个表格,其中一个表格跨越多页。以下这个问题,我尝试使用ltablex
包来实现这一点。但是,如果我使用该包代替 ,我的文档将无法再编译tabularx
。
我能够隔离问题。如果下一个单元格以括号开头,则在包提供的环境booktabs
中使用标尺似乎存在问题。这是一个说明这一点的最小工作示例:tabularx
ltablex
\documentclass{article}
\usepackage{blindtext}
\usepackage{ltablex}
\usepackage{booktabs}
\begin{document}
\begin{table}[tbp]
\begin{tabularx}{\linewidth}{Xr}
\toprule
Label & Estimate \\
\midrule
% What follows seems to be the offending line. If I remove
% the brackets around `Intercept`, the file is compiled
% without an error.
(Intercept) & 10.0 \\
\bottomrule
\end{tabularx}
\end{table}
% this is a very big table that spans several pages, which is
% why I want to use the `ltablex` package:
\begin{tabularx}{\linewidth}{Xr}
\toprule
Statement & Number \\
\midrule
\blindtext & 1 \\
\blindtext & 2 \\
\blindtext & 3 \\
\blindtext & 4 \\
\blindtext & 5 \\
\bottomrule
\end{tabularx}
\end{document}
编译此程序会产生七个错误,其中大多数是Undefined control sequence \end{tabularx}
第 19 行中的错误,即\end{tabularx}
第一个环境末尾的命令tabularx
。这是第一个错误的输出(如果需要,我可以发布整个错误日志):
! Undefined control sequence.
<argument> ...al \expandafter \let \cmrsideswitch
\@tempa \fi \fi
l.19 \end{tabularx}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
我找到了一些使错误消失的方法,但代价是文档不包含我想要的内容:
(Intercept)
删除第 17 行周围的括号- 删除
\midrule
第 13 行的命令 - 使用
tabularx
而不是ltablex
因此,我有两个问题。
- 这是某个软件包中的错误,还是我的文档中的错误?
- 我怎样才能修复这个问题而不牺牲
\midrule
、括号或多页表?