不幸的是,它一直用forgotten \endgroup
、、float(s) lost
等等来困扰我not in outer par mode
。
换句话说,为什么我不能做这样的事情(实际的表格在规则和其他方面要复杂得多):
\documentclass{article}
\usepackage{blindtext}
\usepackage{tabularx}
\begin{document}
\begin{table}
\begin{tabularx}{\textwidth}{X}
\begin{table}
\begin{tabularx}{\textwidth}{X}
\blindtext
\end{tabularx}
\caption{Inner table}
\end{table}
\end{tabularx}
\caption{Outer table}
\end{table}
\end{document}
答案1
这里有两个问题:
嵌套
table
环境:Not in outer par mode
我建议放弃内部
table
环境。(无论如何,浮动的概念应该如何应用于内容固定的表格中?)嵌套
tabularx
环境:Extra }, or forgotten \endgroup
,Missing \endgroup inserted
和Missing } inserted
解决方案是
tabularx
用一对括号将内部包围起来。tabularx
手动的状态:tabular
和tabular*
环境可以无限制地嵌套,但是如果一个tabularx
环境出现在另一个环境中,则内部环境必须用 括起来{ }
。
现在内部标题可以正常工作,并产生枚举标题:
表 1:内表
\caption*
如果不喜欢这样,可以使用caption
包裹。
我还替换了\textwidth
,\linewidth
以便内部tabularx
使用正确的剩余水平空间(→\textwidth、\linewidth 和 \hsize 之间的区别)
进一步改进 可能
- 封闭内部
tabularx
及其caption
内部center
环境或 - 在内部之前提供更多的垂直空间
tabularx
,即\\[2ex]
。
代码
\documentclass{article}
\usepackage{blindtext}
\usepackage{tabularx}
\begin{document}
\begin{table}
\begin{tabularx}{\linewidth}{X}
\blindtext \\
{\begin{tabularx}{\linewidth}{X}
\blindtext
\end{tabularx}}
\caption{Inner table}
\\
\blindtext
\end{tabularx}
\caption{Outer table}
\end{table}
\end{document}