表格垂直对齐问题

表格垂直对齐问题

我正在处理下表。

\begin{center}
\begin{tabular}{|c || c |} 
\hline
\# Edges & \# Configurations \\ [0.5ex]
\hline
0 & $c(0)=1$ \\     [0.5ex] 
\hline
4 & $c(4)=9$ \\     [0.5ex] 
\hline
6 & $c(6)=12$ \\    [0.5ex] 
\hline
8 & $c(8)= 50$ \\   [0.5ex] 
\hline
10 & $c(10)= 92$ \\ [0.5ex] 
\hline
12 & $c(12)=158$ \\ [0.5ex] 
\hline
14 & $c(14)=116$ \\ [0.5ex] 
\hline
16 & $c(16)=69$ \\  [0.5ex] 
\hline
18 & $c(18)=4$ \\   [0.5ex] 
\hline
20 & $c(20)=1$ \\   [0.5ex] 
\hline
\end{tabular}    
\end{center}

第二列中的参数未垂直对齐(下图)。

示例表的渲染

有什么简单的方法可以解决这个问题吗?

答案1

使用额外的列并将最后三列设置为右对齐、居中对齐和左对齐。

除此之外,我会避免那么多规则,并将垂直条限制为最多一个。这是我的建议

编辑。
稍微改进了代码,使标题周围的水平填充保持一致。

\documentclass{article}
\usepackage{array}
\usepackage{ragged2e}

\newlength\collen
\newlength\eqlen
\newcolumntype{R}[1]{>{\RaggedLeft\(}p{#1}<{\)}}
\newcolumntype{L}[1]{>{\RaggedRight\(}p{#1}<{\)}}


\begin{document}

\begin{table}[tbh]
    \sbox0{\# Edges}
    \sbox2{\# Configurations}
    \settowidth{\eqlen}{${}={}$}
    \setlength{\collen}{\dimexpr\wd2-\eqlen}

    \renewcommand{\arraystretch}{1.5}
    \setlength\extrarowheight{-1pt}
    \centering
    \begin{tabular}{
            >{\(}c<{\)}   !{\vrule width 0.3pt}
            R{0.5\collen}
            @{\;}c@{\;}
            L{0.5\collen}
        }
        \noalign{\hrule height 0.8pt}
        \usebox0 & & \clap{\usebox2} & \\
        \noalign{\hrule height 0.5pt}
        0  & c(0)  &=& 1   \\
        4  & c(4)  &=& 9   \\
        6  & c(6)  &=& 12  \\
        8  & c(8)  &=& 50  \\
        10 & c(10) &=& 92  \\
        12 & c(12) &=& 158 \\
        14 & c(14) &=& 116 \\
        16 & c(16) &=& 69  \\
        18 & c(18) &=& 4   \\
        20 & c(20) &=& 1   \\
        \noalign{\hrule height 0.8pt}
    \end{tabular}
\end{table}
\end{document}

在此处输入图片描述

答案2

如果您使用该tabularray包,设置行高将很容易:

\documentclass{article}

\usepackage{tabularray}

\begin{document}


\begin{center}
\begin{tblr}{
  colspec={|c || c |},
  hlines,
  rows={ht=1.5\baselineskip}
}
\# Edges & \# Configurations \\ 
0 & $c(0)=1$ \\      
4 & $c(4)=9$ \\      
6 & $c(6)=12$ \\     
8 & $c(8)= 50$ \\    
10 & $c(10)= 92$ \\  
12 & $c(12)=158$ \\  
14 & $c(14)=116$ \\  
16 & $c(16)=69$ \\   
18 & $c(18)=4$ \\    
20 & $c(20)=1$ \\    
\end{tblr}    
\end{center}


\end{document}

在此处输入图片描述

答案3

我建议使用 作为一个解决方案tabularray,并且我使用 Celdor 的选择作为水平线和垂直线的对齐方式=

\documentclass{article}
\usepackage{tabularray}
\usepackage{array}
\begin{document}
\begin{center}
\begin{tblr}{
colspec={ Q[c,mode=math]  Q[wd=1.25cm,r,mode=math] @{\;} c  @{\;}  Q[wd=1.25cm,l,mode=math] },
%hlines,
rows={ht=1.1\baselineskip},
cell{1}{1}={r=1,c=1}{mode=text},%<--- to change the default math option
cell{1}{2}={r=1,c=3}{c,mode=text},%<--- for center \# Configurations of 3 colons
hline{1,Z} = {0.8pt,solid},
hline{2} = {0.5pt,solid},
vline{2} = {0.3pt,solid},
}
\# Edges & \# Configurations\\ 
0  & c(0)  &=& 1   \\
4  & c(4)  &=& 9   \\
6  & c(6)  &=& 12  \\
8  & c(8)  &=& 50  \\
10 & c(10) &=& 92  \\
12 & c(12) &=& 158 \\
14 & c(14) &=& 116 \\
16 & c(16) &=& 69  \\
18 & c(18) &=& 4   \\
20 & c(20) &=& 1   \\ 
\end{tblr}    
\end{center}
\end{document}

答案4

@pascal974 答案(+1)的稍微简化版本,但包含所有水平线:

%\documentclass{article}
\documentclass[margin=3mm]{standalone}

\usepackage{tabularray}

\begin{document}
%\begin{center}
    \begin{tblr}{hlines, 
                 colspec= {|c | Q[r, wd=4em, mode=math] @{\;} Q[l, wd=4.4em, mode=math]|},
                 cell{1}{2} = {c=2}{c},
                 row{1} = {mode=text},
                 rowsep = 7pt
                }
\# Edges
    & \# Configurations \\
  0 &  c(0) & =  1 \\
  4 &  c(4) & =  9 \\
  6 &  c(6) & = 12 \\
  8 &  c(8) & = 50 \\
 10 & c(10) & = 92 \\
 12 & c(12) & =158 \\
 14 & c(14) & =116 \\
 16 & c(16) & = 69 \\
 18 & c(18) & =  4 \\
 20 & c(20) & =  1 \\
    \end{tblr}
%\end{center}
\end{document}

在此处输入图片描述

相关内容