在列标题中换行文本,同时避免奇怪的连字符

在列标题中换行文本,同时避免奇怪的连字符
\begin{table}[h]
\begin{center}  
    \begin{tabular}{lcccc}
        \hline  
        Model & \multicolumn{1}{m{2.5cm}}{Something Before XYZ} & \multicolumn{1}{m{2.5cm}}{Something After XYZ} &  \multicolumn{1}{m{2.5cm}}{Ratio (Before/After)} & \multicolumn{1}{m{2.5cm}}{Difference (Before-After)}\\ 
        \hline
        \textbf{Model 1}  & 0,707464 & 0,665557 & 1,062964 & 0,041906 \\
\end{center}
\end{table}

我怎样才能使文本换行,以便“Something”单独占一行,“Before XYZ”单独占一行,并且对于具有 Ratio 的列,也应使“Ratio”单独占一行,“(Before/After)”单独占一行?

在此处输入图片描述

答案1

最简单的方法是使用\thead命令,来自makecell:它允许在标准单元格中换行。

我对booktabs规则进行了一些改进,在水平线周围添加了一些填充。此外,您不应该将表格与center环境放在中心,因为这table会增加一些垂直间距,并center会增加另一个多余的间距。请改用命令\centering

\documentclass[11pt]{article}
\usepackage{makecell, booktabs}
\renewcommand{\theadfont}{\normalsize}

\begin{document}

\begin{table}[h]
\centering  
    \begin{tabular}{lcccc}
        \toprule
        Model & \thead{Something\\ Before XYZ} & \thead{Something\\ After XYZ} & \thead{Ratio\\ (Before/After)} & 
        \thead{Difference\\ (Before-After)}\\
        \midrule
        \textbf{Model 1} & 0,707464 & 0,665557 & 1,062964 & 0,041906
    \end{tabular}
\end{table}

\end{document} 

在此处输入图片描述

相关内容