我尝试将表格的每一行垂直居中,但做不到。我该怎么做?
%\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。
输出: