这有效:
\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}