嵌套的 tabularx 不适用于 ltablex

嵌套的 tabularx 不适用于 ltablex

这有效:

\documentclass{article}
\usepackage[a5paper]{geometry}
\usepackage{array}
\usepackage{tabularx}
\setlength{\parindent}{0cm}
\begin{document}
\begin{tabularx}{\textwidth}{ |X|}
  \hline
  \multicolumn{1}{|@{}c@{}|}{\begin{tabularx}{\dimexpr\hsize-2\arrayrulewidth\relax}
        {X}
        text \\
      \end{tabularx}}\\
  \hline
\end{tabularx}
\end{document}

给出这个:

在此处输入图片描述

但是当我添加\usepackage{ltablex}到序言时,pdflatex 开始给出错误:

! Extra alignment tab has been changed to \cr.
<template> \endtemplate 

l.16 \end{tabularx}

如何修复?或者至少在多页表格中使用嵌套表格?

答案1

ltablex全局修改,tabularx使其本质上变成longtable。如果它定义了一个新命令,可能会更好,但无论如何。

嵌套的\multicolumn多页longtable无论如何都无法工作,所以您实际上只想要tabularx嵌套上下文中的原始内容,这定义了一个\restoretx命令,可以为您提供该命令并允许示例无错误运行。

\documentclass{article}
\usepackage[a5paper]{geometry}
\usepackage{array}
\usepackage{tabularx}

\makeatletter
\let\tx@\TX@endtabularx
\def\restoretx{\let\TX@endtabularx\tx@}
\makeatother

\usepackage{ltablex}
\setlength{\parindent}{0cm}
\begin{document}

\begin{tabularx}{\textwidth}{ |X|}
  \hline
  \multicolumn{1}{|@{}c@{}|}{\restoretx
\begin{tabularx}{\dimexpr\hsize-2\arrayrulewidth\relax}
        {X}
        text \\
      \end{tabularx}}\\
  \hline
\end{tabularx}
\end{document}

相关内容