长表内的表格

长表内的表格

我需要一个longtable像 HTML 中显示的这样的表格:

在此处输入图片描述

但当我使用 时\multirow, 内的数据\multirow会在下一个单元格内继续。我尝试过以下方法

\begin{longtable}{|>{\bfseries}p{0.18\textwidth}|>{\bfseries}p{0.1\textwidth}|p{0.18\textwidth}|p{0.18\textwidth}|p{0.18\textwidth}|p{0.18\textwidth}|}
   \hline
   \multicolumn{2}{|l|}{}  &  \textbf{QR Codes}  &  \textbf{PDF417}  &  \textbf{DataMatrix}  & \textbf{Maxi Code}   \\
   \hline
   \multirow{3}{*}{Datacapacity}  &  Numeric  &  7.089  &   2.710  &    3.116  &    138  \\ \cline{2-6}
                                  &  Alphanumeric  &  4.269  &  1.850  &  2.355  &  93  \\ \cline{2-6}
                                  &  Bytes  &  2.953  &  1.018  &   1.556  &  \\
   \hline
   \multicolumn{2}{|l|}{Pros}     &  \parbox{\columnwidth}{Great capacity \\ High read}  &  Great capacity  &  Little size  & High read  \\
   \hline
\end{longtable}

我希望这里有人可以帮助我,如果你\parbox也能帮助解决这个问题,那就太好了。

更新 现在我只遇到之前称之为“-problem”的问题\parbox,正如你在这张图的最后一行看到的那样:

在此处输入图片描述

现在我的 LaTeX 看起来像这样

\begin{longtable}{|>{\bfseries}l|>{\bfseries}l|*{4}{p{0.14\textwidth}|}}
   \hline
   \multicolumn{2}{|l|}{}  & \textbf{QR Koder}  & \textbf{PDF417}  & \textbf{Data\-Matrix}  & \textbf{Maxi Code}  \\
   \hline
   ...
   Data-  & Numerisk  & 7.089  & 2.710  & 3.116  & 138  \\  \cline{2-6}
   \multirow{2}{*}{kapacitet}  & Alfa-  & 4.269  &  1.850  & 2.355  & 93  \\
        & numerisk  &  &  &  &  \\  \cline{2-6}
        & Bytes  & 2.953  & 1.018  & 1.556  &  \\
   \hline
   \multicolumn{2}{|l|}{Hovedtræk}  & \begin{tabular}[t]{@{}l@{}}Stor kapacitet \\ Lille udskriftsstørrelse \\ Høj læsehastighed \end{tabular}  & Stor kapacitet  & Lille udskriftsstørrelse  & Høj læsehastighed  \\
   \hline
\end{longtable}

这里有人知道如何解决这个问题吗?

答案1

下面的方法可以实现你想要的效果(甚至有可能没有 multirow):

在此处输入图片描述

\documentclass{article}
\usepackage{array,longtable,multirow}% http://ctan.org/pkg/{array,longtable,multirow}
\begin{document}
\begin{longtable}{|>{\bfseries}l|>{\bfseries}l|*{4}{l|}}
  \hline
  \multicolumn{2}{|l|}{} & \textbf{QR Codes} & \textbf{PDF417} & \textbf{DataMatrix} & \textbf{Maxi Code}  \\
  \hline
  \multirow{3}{*}{Datacapacity} & Numeric        & 7.089          & 2.710       & 3.116     & 138  \\ \cline{2-6}
                                & Alphanumeric   & 4.269          & 1.850       & 2.355     & 93   \\ \cline{2-6}
                                & Bytes          & 2.953          & 1.018       & 1.556     & \\
  \hline
  \multicolumn{2}{|l|}{Pros}    & Great capacity & Great capacity & Little size & High read  \\
  \multicolumn{2}{|l|}{}        & High read      &                &             &  \\
  \hline
\end{longtable}
\end{document}
  • 我避免使用并插入了额外的行。如果希望单元格内的线条断开,\parbox可以使用嵌套。例如,tabular

    \begin{tabular}[t]{@{}l@{}}
      Great capacity \\
      High read
    \end{tabular}
    

    使用在操作符处[t]对齐,同时删除两侧的所有列填充。tabulart@{}

  • 为了方便使用,列的规范*{4}{l|}重复l|4次。
  • 您可以使用p-columns,但您需要指定宽度,以使表格适合文本块(水平方向)。您的代码片段已经有 5 列宽度为.18\textwidth,然后是 的单个列宽度.1\textwidth,总计\textwidth。但是,每列周围仍有填充(大约2\tabcolsep+\arrayrulewidth)。

如果没有关于文本块大小(或页面方向)的更多详细信息,则很难讨论表格的替代方案。

最后,如果你考虑一下booktabs包裹longtable。此外,当你的桌子不那么长时,用处不大……

相关内容