Latex背面表格中文本的垂直对齐方式

问题描述

我在背面有以下示例代码生成表格。

\documentclass[hidelinks,a4paper,12pt,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{array}
    \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
    \newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}

\usepackage{stackengine}
    \newcommand\xrowht[2][0]{\addstackgap[0.5\dimexpr#2\relax]{\vphantom{#1}}}
    
\title{table}
\begin{document} 
\maketitle


\begin{table}[ht]
\footnotesize
    \centering
    \begin{tabular}{|P{0.75cm}|P{1.25cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{1cm}|P{1cm}|P{1cm}|P{1cm}|P{0.75cm}|}
    \hline\xrowht[()]{15pt}
         \multirow{2}{*}{Test} & \multirow{2}{*}{Name} & \multicolumn{3}{c|}{Domain} & \multirow{2}{*}{Cell} & \multicolumn{4}{c|}{MLR} & \multirow{2}{*}{$C_1$} & \multirow{2}{*}{$C_2$}\\
         \cline{3-5}\cline{7-10}\xrowht[()]{15pt}
         No & & x & y & z & Size & $\dot{m_t}$ & $\dot{m}_{in}$ & $\dot{m}_{out}$ & $\dot{m}_{avg}$ & & \\
         \hline\xrowht[()]{15pt}
         1 & Mass1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 \\
         \hline\xrowht[()]{15pt}
         2 & Mass2 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & \multicolumn{2}{c|}{0.1}  & 0.1 & 0.1 & 0.1 \\
         \hline
         \end{tabular}
         \vspace{0.5cm}
    \caption{Tests}
\end{table}


\end{document}

这给了我

enter image description here

问题:对于该问题,我无法使表格内的文本垂直对齐到居中或任何其他位置。例如,文本“测试编号”,“名称”,“单元格大小”,“ C1”和“ C2”应该垂直居中对齐。此外,我发现使用\hline\xrowht[()]{15pt}给了我不同的框宽,请参见“域”和“ MLR”框。有人可以帮助我以适当的方式设置此表吗?

谢谢大家

解决方法

您可以更改\arraystretch而不是手动弄乱表格的行高,并且所有单元格都将自动居中

其他几点:


\documentclass[hidelinks,a4paper,12pt,oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{array}
    \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
    \newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}

\usepackage{caption}
    
\title{table}
\begin{document} 
\maketitle



\begin{table}[ht]
\renewcommand{\arraystretch}{2}
\footnotesize
    \centering
    \begin{tabular}{|P{0.75cm}|P{1.25cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{0.75cm}|P{1cm}|P{1cm}|P{1cm}|P{1cm}|P{0.75cm}|}
    \hline
         \multirow{2}{0.75cm}{\centering Test\\ No} & \multirow{2}{*}{Name} & \multicolumn{3}{c|}{Domain} & \multirow{2}{0.75cm}{\centering Cell\\ Size} & \multicolumn{4}{c|}{MLR} & \multirow{2}{*}{$C_1$} & \multirow{2}{*}{$C_2$}\\
         \cline{3-5}\cline{7-10}
          & & x & y & z & & $\dot{m_t}$ & $\dot{m}_{in}$ & $\dot{m}_{out}$ & $\dot{m}_{avg}$ & & \\
         \hline
         1 & Mass1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 \\
         \hline
         2 & Mass2 & 0.1 & 0.1 & 0.1 & 0.1 & 0.1 & \multicolumn{2}{c|}{0.1}  & 0.1 & 0.1 & 0.1 \\
         \hline
         \end{tabular}
%         \vspace{0.5cm}
    \caption{Tests}
\end{table}


\end{document}

enter image description here