在 tabularx 中垂直居中文本

在 tabularx 中垂直居中文本

在此代码中,我想将文本垂直居中在左侧单元格中,x = k并且x > k。我尝试了\parbox[c]

\documentclass[border=2mm,tikz]{standalone}
\usepackage{tabularx}

\begin{document}

\begin{table}
\renewcommand{\arraystretch}{3}
\begin{tabularx}{0.5\textwidth}{ | X | c | }
\hline
\noindent\parbox[c]{\hsize}{$x = k$} & $a = \displaystyle \frac{1}{2}$\\
& $b = \displaystyle \frac{1}{4}$\\[0.4cm]
\hline
\noindent\parbox[c]{\hsize}{$x > k$} & $c = \displaystyle \frac{1}{8}$\\
 & $d = \displaystyle \frac{1}{16}$\\[0.4cm]
\hline
\end{tabularx}
\end{table}

\end{document}

但结果却是这样的:

在此处输入图片描述

哪里出了问题?如何让这些单元格的内容垂直居中?

\parbox(没有必要使用,我只是认为这是一个解决方案)。

答案1

如果希望左列垂直对齐,包括增加的0.4cm的行高,那么:

\documentclass[border=2mm,tikz]{standalone}
\usepackage{tabularx, multirow, adjustbox}

\begin{document}

\begin{table}
    \renewcommand{\arraystretch}{3}
    \begin{tabularx}{0.5\textwidth}{ | X | c | }
        \hline
        \multirow{2}{*}{\adjustbox{vspace=-0.2cm}{\centerline{$x = k$}}} & $a = \displaystyle \frac{1}{2}$  \\
                                                                         & $b = \displaystyle \frac{1}{4}$  \\[0.4cm]
        \hline
        \multirow{2}{*}{\adjustbox{vspace=-0.2cm}{\centerline{$x > k$}}} & $c = \displaystyle \frac{1}{8}$  \\
                                                                         & $d = \displaystyle \frac{1}{16}$ \\[0.4cm]
        \hline
    \end{tabularx}
\end{table}

\end{document}

如果删除了 0.4cm,那么您可以直接删除该\adjustbox{vspace-0.2cm}{}命令。此外,如果您更改添加的行高值,则可以调整测量值。

答案2

这是一个没有multirow但有嵌套表格和的替代方案makecell

在此处输入图片描述

\documentclass{article}
\usepackage{tabularx}
\usepackage{makecell}
\setcellgapes{0.25cm}

\begin{document}

\begin{table}
\makegapedcells
    \begin{tabularx}{0.5\textwidth}{ | >{\centering\arraybackslash}X | c | }
        \hline
        $x = k$ & \begin{tabular}{>{\(\displaystyle}c<{\)}} a = \frac{1}{2} \\ b = \frac{1}{4} \end{tabular}\\
        \hline
        $x > k$ & \begin{tabular}{>{\(\displaystyle}c<{\)}} c = \frac{1}{8} \\ d = \frac{1}{16} \end{tabular}\\
        \hline
    \end{tabularx}
\end{table}

\end{document}

相关内容