乳胶:Multirow的问题

时间:2010-11-16 20:32:35

标签: latex multirow


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

\multirow{count}{alignment}{content}

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

\multirow{3}{*}{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*}

的问候,
Rafid

3 个答案:

答案 0 :(得分:5)

1)您是否将\usepackage{multirow}放在文档的开头?

2)可能有很好的例子可供遵循。我从来没有使用过这个软件包,但是在很短的时间内(秒)就能通过谷歌找到这个PAGE。跟随那个例子一起帮助你吗?


看到你的实际表后,

更新:,我不想这么说,但认为你的间距故障是由于“评论”栏中的溢出导致多行。我截断了您的评论并得到了这一点(第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}参数,我认为我最初发布的链接可能是错误的。当我尝试用l替换\multirow参数时,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之后,我认为\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表。从本质上讲,您的节点就像“单元格”。然后把它们放在一起,使它看起来像一张桌子。也许是一个可怕的提议,但我向你保证,你将拥有所需的所有灵活性,如单元间距等。一些想法:

答案 1 :(得分:2)

狂野猜测:你得到undefined control sequence: multirow,因为你在序言中缺少\usepackage{multirow}

答案 2 :(得分: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$

  3. 否则,一切似乎都很好。您也可以询问tex.stackexchange.com