如何在一个带有标题的表格中的 tabularx 中排版一个带有标题的表格?

如何在一个带有标题的表格中的 tabularx 中排版一个带有标题的表格?

不幸的是,它一直用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

这里有两个问题:

  1. 嵌套table环境:Not in outer par mode

    我建议放弃内部table环境。(无论如何,浮动的概念应该如何应用于内容固定的表格中?)

  2. 嵌套tabularx环境:

    • Extra }, or forgotten \endgroup
    • Missing \endgroup inserted
    • Missing } inserted

    解决方案是tabularx用一对括号将内部包围起来。
    tabularx手动的状态:

    tabulartabular*环境可以无限制地嵌套,但是如果一个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}

输出

在此处输入图片描述

相关内容