如何使表格的每一行垂直居中

如何使表格的每一行垂直居中

我尝试将表格的每一行垂直居中,但做不到。我该怎么做?

%\documentclass{article}
\documentclass[margin=10pt]{standalone}
\usepackage{array,booktabs,siunitx}
\newcolumntype{Q}[1]{>{\hfil$}p{#1}<{$\hfill}} % centered, automatic math mode
\usepackage[table]{xcolor} % for "\rowcolor" macro
\usepackage{amsmath}

\renewcommand{\rmdefault}{phv}
%\usepackage{mathpple}
%\usepackage{palatino}

\usepackage{lxfonts}
%
%   \usepackage{multicol}

\begin{document}
\centering
\setlength{\extrarowheight}{20pt} % for a more "open" look
\begin{tabular}{|*{5}{Q{2cm}|}} % or: {|*{b}{c|}}
\hline
\rowcolor{yellow} \textbf{$a$} & \textbf{$b$}& \textbf{$a+b$} & \textbf{$a-b$} \\
\hline
\dfrac{157}{3}   & \dfrac{14}{9}       &   \dfrac{485}{9} & \dfrac{457{9}  \\
\hline
\dfrac{704}{25}      & 3      &   \dfrac{779}{25} & \dfrac{625}{25}     \\
\hline
\end{tabular}
\end{document}

答案1

这里有一个带有cellspace包的解决方案,它允许在以字母为前缀的列中定义单元格顶部和底部的最小垂直间距S,或者C如果您加载siunitx

\documentclass[margin=10pt]{standalone}
\usepackage[T1]{fontenc}
\usepackage{array,booktabs,siunitx}%
\usepackage{cellspace}
\setlength\cellspacetoplimit{11pt}
\setlength\cellspacebottomlimit{10pt}
\newcolumntype{Q}[1]{>{\centering\arraybackslash$}C{p{#1}}<{$}}
\usepackage[table]{xcolor} % for "\rowcolor" macro
\usepackage{amsmath}

\renewcommand{\rmdefault}{phv}

\usepackage{lxfonts}

\begin{document}

\centering
%\setlength{\extrarowheight}{20pt} % for a more "open" look
\begin{tabular}{|*{5}{Q{2cm}|}|}% or: {|*{b}{c|}}
\hline
\rowcolor{yellow} \textbf{$a$} & \textbf{$b$}& \textbf{$a+b$} & \textbf{$a-b$} \\
\hline
\dfrac{157}{3} & \dfrac{14}{9} & 5 & 2 \\
\hline
\dfrac{704}{25} & 3 & \dfrac{17}{5} & \dfrac{1}{2} \\
\hline
\end{tabular}

\end{document} 

在此处输入图片描述

答案2

这是一个解决方案:

\documentclass[margin=10pt]{standalone}
\usepackage{array}
\newcolumntype{Q}[1]{>{\vfil\hfil$}m{#1}<{$\hfill\vfill}} % centered, automatic math mode
\usepackage[table]{xcolor} % for "\rowcolor" macro
\usepackage{amsmath}

%\renewcommand{\rmdefault}{phv}
%\usepackage{mathpple}
%\usepackage{palatino}

%\usepackage{lxfonts}
%   
%   \usepackage{multicol}

\begin{document}
\centering
\begingroup
%\setlength{\extrarowheight}{15pt} % for a more "open" look
\def\arraystretch{3}
\begin{tabular}{|*{4}{Q{2cm}|}} % or: {|*{b}{c|}}
\hline\rowcolor{yellow} \textbf{$a$} & \textbf{$b$}& \textbf{$a+b$} & \textbf{$a-b$} \\
\hline
\dfrac{157}{3}       & \dfrac{14}{9}       &   5      &     2      \\
\hline
\dfrac{704}{25}      & 3      &   \dfrac{17}{5}      &    \dfrac{1}{2}      \\
\hline
\end{tabular}
\endgroup
\end{document}

您可以用上面注释的行替换 arraystretch。

输出:

在此处输入图片描述

相关内容