带有嵌套 tabularx->minipage->tabular* 的超大表格的列太窄(回忆录)

带有嵌套 tabularx->minipage->tabular* 的超大表格的列太窄(回忆录)

我正在尝试布置一个如下所示的表格标题:

      TITLE
---------------------      subtitle
  Name  Value             description
  Name  A value of         Name  Value 
        some length        Name  Value

在哪里姓名价值是任意值对(并且值可能有点长)。

在我的环境中,最好将此布局设置为大于背景的宽度\textwidth。不幸的是似乎导致问题的原因,因为在我的布局中,包含名称/值的内部表格太窄。问题可能出在其他地方,例如嵌套表格的问题 - 虽然回忆录包文档特别建议嵌套应该是可以的,在tabularx环境嵌套时保存一种解决方法 - 但这里不是这种情况。

下面是一个演示该问题的示例,其中在表格环境中添加了垂直线以供说明:

\documentclass[oneside,12pt]{memoir}
\usepackage{ragged2e}
\usepackage{lipsum}

\begin{document}
  \hspace{-3cm}%
  \begin{tabularx}{14cm}[t]{l |X|}
    \fbox{\begin{minipage}{9cm}%
      \centering
      {\Large Title}\\\medskip
      \RaggedRight
      \begin{tabular*}{9cm}{|r|X|}
      \toprule
      Name & Value \\
      Name & This is a long value that will wrap a couple of lines.\\
      \bottomrule
      \end{tabular*}
    \end{minipage}} & %
    \begin{minipage}{6cm}
      \RaggedRight
      \begin{center}Subtitle\end{center}
      \textit{Description under the title}\\\bigskip
      \begin{tabular*}{\linewidth}{rl}
      Name & Some value\\
      Name & Value\\
      \end{tabular*}
    \end{minipage}
  \end{tabularx}
\end{document}

可以看到效果是这样的:

      TITLE
---------------------         subtitle
  Name | Value  |            description
  Name | A value|            Name  Value 
       | of some|            Name  Value
       |  length|

我似乎能够通过为所有表格列提供特定的宽度来获得更接近预期的效果p{},尽管我还没有解决它,并且我期望有一个比硬编码所有内容更优雅和动态的解决方案(......但也许不是)。

我正在使用回忆录包,并希望了解如何使用该包实现上述目标。

答案1

目前还不清楚您想要做什么(并且您不能X在表格中使用*)但是这里的标记要简单得多,而且可能接近您想要的布局......

在此处输入图片描述

\documentclass[oneside,12pt]{memoir}
\usepackage{ragged2e}
\usepackage{lipsum}

\begin{document}
  \hspace{-3cm}%
  \begin{tabularx}{\dimexpr(\textwidth+2cm)/2\relax}[t]{|l |X|}
      \toprule
       \multicolumn{2}{c}{\Large Title}\\
      \hline
      Name & Value \\
      Name & This is a long value that will wrap a couple of lines.\\
      \bottomrule
      \end{tabularx}\hfill
  \begin{tabularx}{\dimexpr(\textwidth+2cm)/2\relax}[t]{|l |X|}
      \toprule
       \multicolumn{2}{c}{Subtitle}\\
\multicolumn{2}{l}{\textit{Description under the title}}\\
      \hline
      Name & Some value\\
      Name & Value\\
      \bottomrule
      \end{tabularx}

\bigskip

\noindent X\dotfill X
\end{document}

答案2

以下是对宽度进行硬编码的示例:

 \hspace{-3cm}%
 \begin{tabularx}{18cm}[t]{p{10cm} p{7cm}}
    \begin{minipage}{\linewidth}%
      \centering{\Large Title}\\\medskip
      \begin{tabular}{R{2cm} L{\linewidth - 3cm}}
      \toprule
      Name & Value \\
      Name 2 & This is Hello,world, how long %
               does this have to be? a long value %
               that will wrap a couple of lines.\\%
      \bottomrule
      \end{tabular}
    \end{minipage}%
    & %
    \begin{minipage}{\linewidth}
      \noindent\begin{center}
      Subtitle\\
      \textit{Description under the title}
      \end{center}
      \begin{tabular*}{6cm}{R{2cm} L{4cm}}
      Name & Some value\\
      Name & Value\\
      \end{tabular*}
    \end{minipage}\\
  \end{tabularx}

如上所述,最好以更动态和更优雅的方式解决这个问题(例如,如果要改变一列的宽度,其余列也会相应调整)。

相关内容