使一行中的多列大小相同吗?

使一行中的多列大小相同吗?

我有一些大表格,我想知道如何才能使一行中的列都大小相同。您可以在“Intra Prediciton”行中看到,内容为“I_PCM”的列比其行中的其他列大。下一行中的“16x8”和“8x8”也是如此。可以解决这个问题吗?

这里是图片:

图像

我也很欣赏有关如何改进表格的其他建议。

这里一片混乱……

    \newcolumntype{Y}{>{\columncolor[gray]{.8} } c|}
    \newcolumntype{N}{>{\columncolor[gray]{.8} \color{gray}}  c|}

%Spaltenzahl 8
% \color{gray} \color{lightgray} %\rowcolor{hellgrau} \cellcolor{dunkelgrau} 
    \begin{tabular}{|       >{\color{white}  \columncolor[gray]{.2}[.5\tabcolsep]}      c       |       >{\columncolor[gray]{.8}[.5\tabcolsep]}     c        |      >{\columncolor[gray]{.8}[.5\tabcolsep]}     c       |       >{ \columncolor[gray]{.8}[.5\tabcolsep]}        c   |       >{ \columncolor[gray]{.8}[.5\tabcolsep]}        c   |       >{ \columncolor[gray]{.8}[.5\tabcolsep]}        c       |   >{ \columncolor[gray]{.8}[.5\tabcolsep]}        c   |   >{ \columncolor[gray]{.8}[.5\tabcolsep]}        c    } 
\hline
Bildverfahren                                                   &           \multicolumn{3}{Y}{progressive}     &  \multicolumn{3}{Y} {interlaced } \\  
\hline
Frames/Slices                                                   &       \multicolumn{2}{Y}{I}       &       \multicolumn{2}{Y}{P}       &   \multicolumn{2}{Y}{B}       \\
\hline
 Slices                                                                             & \multicolumn{3}{N}{nein}   &  \multicolumn{3}{Y}{ja}  \\ 
\hline
Transformation                                              & \multicolumn{2}{N}{8x8 DCT}       & \multicolumn{2}{Y}{8x8 IDCT} & \multicolumn{2}{Y}{4x4 IDCT} \\
\hline
Adaptive Quantization                   & \multicolumn{2}{N}{nein} & \multicolumn{2}{N}{Lumi} & \multicolumn{2}{Y}{Variance} \\
\hline
Max. Ref Frames                                         & \multicolumn{3}{N} {keine} & \multicolumn{3}{Y}{16} \\
\hline
B-Pyramid                                                               &\multicolumn{3}{N} {nein} & \multicolumn{3}{Y} {ja} \\
\hline
Loop-Filter                                                                 & \multicolumn{3}{N} {nein} & \multicolumn{3}{Y} {ja} \\
\hline
Entropiekodierung                                   & \multicolumn{3}{Y} {CAVLC} &  \multicolumn{3}{Y}{CABAC} \\
\hline
SubPixel ME                                                         &  \multicolumn{2}{N} {nein} & \multicolumn{2}{N} {halb} &  \multicolumn{2}{Y}{viertel} \\
\hline
Intra Prediction                                                & \multicolumn{1}{N} {nein} & \multicolumn{1}{Y}{16x16} & \multicolumn{1}{Y}{8x8} &  \multicolumn{1}{Y}{4x4}  &\multicolumn{2}{Y}{ I\_PCM}\\
\hline
MB-Partitionierung                                  & \multicolumn{1}{Y}{16 x 16} & \multicolumn{1}{Y}{8x16} & \multicolumn{2}{Y}{16x8} & \multicolumn{2}{Y}{8x8} \\
\hline
SubMB-Partitionierung                   & \multicolumn{1}{N}{nein} & \multicolumn{1}{Y}{8x8} & \multicolumn{1}{Y}{4x8} & \multicolumn{1}{Y}{8x4} & \multicolumn{2}{Y}{4x4} \\
\hline
%Intra Prediction & \color{gray} nein  & 16×16 & 8×8 &  4×4  \\
Farb-Sampling                                                   &           \multicolumn{2}{Y}{4:0:0}       & \multicolumn{2}{Y}{4:2:0} &  \multicolumn{1}{Y}{4:2:2} &  \multicolumn{1}{Y}{4:4:4} \\
\hline
Bit-Tiefe                                                                       & \multicolumn{1}{Y}{8}  & \multicolumn{2}{Y}{8 bis 10} & \multicolumn{2}{Y}{8 bis 12} & \multicolumn{1}{Y}{8 bis 14} \\
\hline
Error Prevention /Handling  &  \multicolumn{3}{N} {nein} &\multicolumn{3}{Y}{ja} \\
\hline
Level/Profile                                                       &  \multicolumn{3}{N} {nein} &\multicolumn{3}{Y}{ja} \\
\hline
    \end{tabular}

编辑:

是不是很酷?现在用的是平板电脑…… 我的酷桌子

不幸的是,vrules 有时并不那么漂亮。比较最后两行时你会看到这一点。我应该给表格上色吗?

答案1

尽管我不喜欢您尝试制作的布局,因为我认为这会让读者感到困惑,但这里有一些编码可以在特定的列中产生等距的单元格。

样品输出

\documentclass{article}

\usepackage{array}
\newcommand{\tabelt}[1]{\hfil\hbox to 0pt{\hss #1 \hss}\hfil}

\begin{document}

\begin{tabular}{|c|@{}>{\hbox to 9cm\bgroup}{c}<{\egroup}@{}|}
\hline
x and z&\tabelt{A}\vrule\tabelt{XX}\vrule\tabelt{ZZZ}\strut\\
\hline
yy or pp&\tabelt{BBB}\vrule\tabelt{C}\vrule\tabelt{DD}\vrule\tabelt{P}\strut\\
\hline
\end{tabular}

\end{document}

如果行具有非标准高度,则最终\strut必须用适当版本的来替换\vrule width 0pt height 14pt depth 4pt

代码的基本思想是\tabelt生成一个宽度可变的框,其内容居中,但宽度为零。为了使第一个和最后一个框正确,表格规范包括@{}消除列之间添加的间距。为了防止所有内容折叠,指定了列的宽度。

类似的想法可以在以下情况下实现\multicolumn

多色输出

\documentclass{article}

\usepackage{array}
\newcommand{\tabelt}[1]{\hfil\hbox to 0pt{\hss #1 \hss}\hfil}

\begin{document}

\begin{tabular}{|c|c|c|c|}
  \hline
  First line & Some interesting random column text & and more & and more\\
\hline
  Second line&\multicolumn{3}{>{\unskip}{c}<{}@{}|}{\tabelt{BBB}\vrule\tabelt{C}\vrule\tabelt{DD}\vrule\tabelt{P}}\\
\hline
\end{tabular}

\end{document}

这里将消除开头的额外空格,\unksip并且\strut不再需要。

更新:使用colortbl

第一个解决方案colortbl只需很少的修改即可:

彩色版本 1

\documentclass{article}

\usepackage{array,colortbl,xcolor}
\newcommand{\tabelt}[1]{\hfil\hbox to 0pt{\hss #1 \hss}\hfil}

\begin{document}

\begin{tabular}{|>{\columncolor{red}\color{white}}c|%
  @{}>{\columncolor{green}[0pt][0pt]%
  \hbox to 9cm\bgroup\color[gray]{0.7}}{c}<{\egroup}@{}|}
  \hline
  x and z&\tabelt{A}\vrule\tabelt{\color{black}XX}\vrule\tabelt{ZZZ}\strut\\
  \hline
  yy or pp&\tabelt{\color{black}BBB}\vrule\tabelt{C}%
  \vrule\tabelt{DD}\vrule\tabelt{P}\strut\\ 
  \hline
\end{tabular}

\end{document}

对于第二个版本,使用\multicolumn,必须对代码进行一些调整,因为colortbl产生其对齐的方式使用fills 而不是fils (试图阻止用户做我们正在尝试做的事情:-):

彩色版 2

\documentclass{article}

\usepackage{array,colortbl,xcolor}

\newcommand{\tabelt}[1]{\hfill\hbox to 0pt{\hss #1 \hss}\hfill}

\begin{document}

\showoutput
\begin{tabular}{|>{\columncolor{red} \color{white}}c|%
  >{\columncolor{green}}c|%
  >{\columncolor{green}}c|%
  >{\columncolor{green}}c|%
  }
  \hline
  First line & Some interesting random column text & and more & and more\\
  \hline
  Second line&\multicolumn{3}{>{\unkern\unskip%
  \columncolor{green}[0.5em][24em]\color[gray]{0.7}}{c}<{}|}%
  {\tabelt{BBB}\vrule\tabelt{C}\vrule\tabelt{\color{black}DD}\vrule\tabelt{P}}\\
  \hline
\end{tabular}

\end{document}

相关内容