4


我正在创建一个带有 mulitrow 的表,但我遇到了问题。据我了解,这是多行的形式:

\multirow{count}{alignment}{content}

其中 count 是要合并的行数,对齐方式是 l、c、r 或 *,content 是行的内容。我尝试了以下方法:

\multirow{3}{*}{Framing}

但我遇到了问题。我没有在单元格中看到“Framing”一词,而是看到“3*Framing”,这表明 \multirow 元素不起作用。任何的想法?

另外,如何垂直对齐单元格中的文本?

更新:我认为 \usepackage{multirow} 会解决它,但我仍然看到问题:首先,我无法进行垂直对齐。其次,我对“框架”单元格感到有些奇怪。我没有让“框架”向左对齐,而是得到一个包含字母“l”的虚拟行,然后在两个虚拟行之后,我得到了“框架”这个词!它是这样的:

______________
|     l       |
|             |
|     Framing |
|             |
|             |
|             |
|             |
______________

这是我为那些询问它的人准备的表:

\begin{table*}\tiny
    \centering
    \begin{tabular}{|c|c|c|c|c|p{2in}|}
        \hline

        Rule & Factor & Best Value & \Delta_t & \Delta_{do} & Comments \\

        \hline

        % Diagonal Dominance Rule
        \multirow{3}{*}{Diagonal Dominance} & Line Angle & 45 & 15 & 30 & The angle between the prominent line of the object and
                                                                          the diagonal lines \\                                     % TODO: What object? Make sure it is clear.
                                            & Line Distance & 0 & 0.25 & 1 & The distance, in screen coordinates, from the
                                                                             prominent line of the object to the diagonal lines. \\ % TODO: Need to define screen coordinates
                                            & Corner Distances & 0 & 0.1 & 0.7 & The distance, in screen coordinates, from the
                                                                                 end of the prominent line of the object to the corners of the screen. \\

        \hline

        % Framing Rule
        \multirow{4}{l}{Framing} & Left Distance & 0 & ${Frame Width}*5\%$ & ${Frame Width}*25\%$ & The distance between the
        left side of the frame covering the object and the left or the right side of the intended frame, whichever closer. \\
                                & Right Distance & 0 & ${Frame Width}*5\%$ & ${Frame Width}*25\%$ & The distance between the
        right side of the frame covering the object and the left or the right side of the intended frame, whichever closer. \\
                                & Top Distance & 0 & ${Frame Height}*5\%$ & ${Frame Height}*25\%$ & The distance between the
        top side of the frame covering the object and the upper or the lower side of the intended frame, whichever closer. \\
                                & Bottom Distance & 0 & ${Frame Height}*5\%$ & ${Frame Height}*25\%$ & The distance between the
        bottom side of the frame covering the object and the upper or the lower side of the intended frame, whichever closer. \\

        \hline
    \end{tabular}
    \caption{The factors of each rule and their parameters.}
    \label{table:factors}
\end{table*}

问候,
拉菲德

4

3 回答 3

5

1)你把\usepackage{multirow}你的文件的开头?

2)可能有很好的例子可以效仿。我从来没有使用过这个包,但在很短的时间(几秒钟)就可以通过谷歌找到这个页面。跟随那个例子对你有帮助吗?


更新:看到您的实际表格后,我不想这么说,但认为您的间距故障是由于“评论”列中的溢出到多行。我截断了您的评论并得到了这个(第 1 列现在根据需要垂直居中):

\begin{table*}\tiny
  \centering
  \begin{tabular}{|c|c|c|c|c|p{3cm}|}
    \hline
    Rule & Factor & Best Value & \Delta_t & \Delta_{do} & Comments \\
    \hline

    % Diagonal Dominance Rule
    \multirow{3}{*}{Diagonal Dominance} & Line Angle & 45 & 15 & 30 & The angle between... \\
                                        & Line Distance & 0 & 0.25 & 1 & The distance, in... \\
                                        & Corner Distances & 0 & 0.1 & 0.7 & The distance, in... \\
    \hline

    % Framing Rule
    \multirow{4}{*}{Framing} & Left Distance & 0 & ${Frame Width}*5\%$ & ${Frame Width}*25\%$ & The distance... \\
                             & Right Distance & 0 & ${Frame Width}*5\%$ & ${Frame Width}*25\%$ & The distance... \\
                             & Top Distance & 0 & ${Frame Height}*5\%$ & ${Frame Height}*25\%$ & The distance... \\
                             & Bottom Distance & 0 & ${Frame Height}*5\%$ & ${Frame Height}*25\%$ & The distance... \\
    \hline
  \end{tabular}

  \caption{The factors of each rule and their parameters.}
  \label{table:factors}

\end{table*}

关于 {l} 论点,我认为我最初发布的链接可能是错误的。\multirow当我尝试将 * 替换为 l 作为参数时,LaTeX 会为我吐出一些错误。我在测试台上得到了这个:

! Missing number, treated as zero.
<to be read again> 
                   l
l.12 \multirow{4}{l}{Batch}
                            & MM & Min-Min \\
! Illegal unit of measure (pt inserted).
<to be read again> 
                   l
l.12 \multirow{4}{l}{Batch}
                            & MM & Min-Min \\

找到THIS后,我认为 in 的第二个参数\multirow不是对齐,而是宽度。LyX wiki 链接说格式是这样的:

\multirow{number of rows}{cell width}{cell entry}

我们一直假设 {cell width} 实际上是 {alignment},我认为之前的链接会让人感到困惑。请参阅 LyX wiki 上关于间距的注释;您可以在需要的地方使用以下内容进行竞标:

\renewcommand{\multirowsetup}{\centering}

并在需要的地方\centering替换\raggedleft或替换。\raggedright我仍然认为你会遇到多行的麻烦。我至少已经表明,放弃它们可以使间距按需要工作......如何强制它们以您的默认示例为中心超出了我的范围,恐怕。但也许现在你知道问题出在哪里了吗?

我想如果你真的,真的,真的想要你可以拆分你的句子,弄清楚它需要多少行,并\multirow相应地调整你的论点以增加行数。虽然您可能还需要一个嵌套的多行结构:

|                   | item 1, 2 rows | comment 1 line 1              |
|  multirow, 4 rows |                | comment 1 line 2 (spill over) |
|                   | item 2, 2 rows | comment 2 line 1              |
|                   |                | comment 2 line 2 (spill over) |

那有意义吗?第 1 列将跨越其部分的所有行,随后的行将跨越拆分注释所需的行数,并且注释所需的每一行(有些占用 3 或 4 行)将位于它们自己的单独行上并且只出现是连续的。不过,不确定句子间距是否会看起来很奇怪。

纳夫漫无边际。有你的思考的食物。


最后一次更新:解决此问题的最后一种希望方法可能是使用 TikZ 表。本质上,您的节点就像“细胞”。然后把它们放在一起,让它看起来像一张桌子。也许是一个可怕的提议,但我向您保证,您将拥有单元格间距等所需的所有灵活性。一些想法:

于 2010-11-16T20:43:39.300 回答
3

疯狂的猜测:你得到undefined control sequence: multirow是因为你\usepackage{multirow}在序言中缺少一个?

于 2010-11-16T20:39:43.230 回答
2

是的,你需要这个multirow包。

\usepackage{multirow}
\begin{document}
\begin{table}
\centering
\begin{tabular}{l||c|r}
Header 1 & Header 2 & Header 3 \\
\multirow{2}{*}{Hello} & stuff & stuff \\
& Body 2 & Body 3
\end{tabular}
\end{table}
\end{document}

编辑问题后编辑:我有两个错误:

  1. \multirow{4}{l}{Framing}. 我改为\multirow{4}{*}{Framing}

  2. Delta_t更改为$Delta_t$.

否则,一切似乎都很好。您可能还想询问tex.stackexchange.com

于 2010-11-16T20:40:33.810 回答