![使用带有包标题的 xltabular(横向)时未定义控制序列](https://linux22.com/image/414448/%E4%BD%BF%E7%94%A8%E5%B8%A6%E6%9C%89%E5%8C%85%E6%A0%87%E9%A2%98%E7%9A%84%20xltabular%EF%BC%88%E6%A8%AA%E5%90%91%EF%BC%89%E6%97%B6%E6%9C%AA%E5%AE%9A%E4%B9%89%E6%8E%A7%E5%88%B6%E5%BA%8F%E5%88%97.png)
编辑2:我只需要更新我的软件......
编辑:这个错误只发生在我身上。我使用 TexMaker。只有当两个条件同时起作用时,它才会失败:1) 文档中有这个表格,2)\usepackage{caption}
序言中有这个表格。当其中一个条件不满足时,文档可以毫无问题地编译。我删除了该.aux
文件,并尝试使用新文档。结果相同。我该怎么办??
xltabular
我与一起使用landscape
。(经过一些调整后)效果很好。但是,我必须将表格放在使用包的长文档中caption
。加载此包时,表格会中断:
! 未定义控制序列。\LT@c@ption ...ndcsname }{#3}\LT@captionlistentry {#2} l.122 \end{xltabular} 错误消息顶行末尾的控制序列从未被 \def'ed。如果您拼错了(例如,\hobx'),请输入 I' 和正确的拼写(例如,`I\hbox')。否则请继续,我会忘记未定义的内容。
例子:
\documentclass[11pt, a4paper, oneside]{report}
\usepackage[left=4cm,right=2cm,top=2.5cm,bottom=2.5cm]{geometry} % control the geometry of the page
\usepackage{xltabular} % long tabularx
\usepackage{makecell}
\usepackage{multirow}
\usepackage[table]{xcolor}
\usepackage{lscape}
\usepackage[T1]{fontenc}
\usepackage{caption} % it breaks xltabular
\usepackage{amsmath}
\usepackage{lipsum}
\newcolumntype{s}{>{\hsize=.6\hsize}X}
\newcolumntype{S}{>{\hsize=1.1\hsize}X}
\begin{document}
\begin{landscape}
\setlength\LTcapwidth{\linewidth} % so that the caption spans the whole width of the table
\begin{xltabular}{\linewidth}{>{\small\raggedright\arraybackslash}s>{\small}S>{\small}S>{\small}S>{\small}S}
\caption{table caption which has to be long to show that it does not break the line... so I just keep on typing a bit more that I would have.\label{table label}}\\
\hline
A \newline \makecell[r]{\textit{B}} & \multirow{2}{\linewidth}{\centering 1} & \multirow{2}{\linewidth}{\centering 2} & \multirow{2}{\linewidth}{\centering 3} & \multirow{2}{\linewidth}{\centering 4} \\
\hline
\endhead
\multicolumn{5}{c}{1st thing} \\* \hline
& \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$ | $\Downarrow$} \\*
1st A \newline \vspace{-4ex} \begin{flushright}\textit{1st B} \vspace{-3ex}\end{flushright} & \lipsum[23] & \lipsum[23] & \lipsum[23] & \lipsum[23] \\
\hline
\multicolumn{5}{c}{2nd thing} \\* \hline
& \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$ | $\Downarrow$} \\*
2nd A \newline \vspace{-4ex} \begin{flushright}\textit{2nd B} \vspace{-3ex}\end{flushright} & Blabla. & Bleble. & Blibli. & Bloblo. \\
\hline
\noalign{\break} % \\* does not work with \hline and \pagebreak gives an error
\multicolumn{5}{c}{3rd thing} \\* \hline
& \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$ | $\Downarrow$} \\*
3rd A \newline \vspace{-4ex} \begin{flushright}\textit{3rd B} \vspace{-3ex}\end{flushright} & \lipsum[23] & \lipsum[23] & \lipsum[23] & \lipsum[23] \\
\hline
\multicolumn{5}{c}{4th thing} \\* \hline
& \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$ | $\Downarrow$} \\*
4th A \newline \vspace{-4ex} \begin{flushright}\textit{4th B} \vspace{-3ex}\end{flushright} & Blabla. & Bleble. & Blibli. & Bloblo. \\
\hline
\multicolumn{5}{c}{5th thing} \\* \hline
& \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$} & \makecell[c]{$\Uparrow$ | $\Downarrow$} \\*
5th A \newline \vspace{-4ex} \begin{flushright}\textit{5th B} \vspace{-3ex}\end{flushright} & Blabla. & Bleble. & Blibli. & Bloblo. \\
\hline
\end{xltabular}
\vspace{-2ex}
\footnotesize
{\noindent Some comments below the table.\\ \par}
\end{landscape}
\end{document}
我无法删除它,\usepackage{caption}
因为文档中的其他一些东西也需要它。
PD.\lipsum[23][2]
导致后面\lipsum[23]
跟着文本 [2],这就是为什么我不能将它用于lipsum
较短的单元格。