\multirow 表格文字居中(latex强制换行)

版权声明:提倡知识共享,可以转载和使用 https://blog.csdn.net/Mr_Cat123/article/details/82802974

这个问题真是花了大半天时间,哎~~太不容易了,为了给后来人方便,我还是决定写这个博客。

这里要说的是,一个表格中的cell里面如果放的内容比较多,要如何换行的问题
比如下表
在这里插入图片描述
这里我希望第一列分成两行,并且第一行的sigma_r以及其他都要居中。首先要做的是分行,这要用到

\multirow{}*{}

分成两行,故使用的是:

\multirow{2}{2cm}{\centering $\sigma_r$\\$(\sigma_F=0.01)$}

第一个2表示要分成2行,第二个2cm表示这个cell的大小是2cm长,后面要居中,使用\centering(否则默认左对齐,像第二列的N95N150那样),接着\表示从这里强制换行
完整代码(代码开头引用了很多包,实际上不需要这么多,只是很方便,以后写什么把这些都复制粘贴上就不用担心包的问题了)

\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{listings}
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[table]{xcolor}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{pythonhighlight}
\pagestyle{fancy}
\usepackage{enumitem}
\setlist[trivlist]{topsep=\baselineskip}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{array}
\usepackage{booktabs}


\begin{document}
  \begin{table}
  \centering
  \begin{tabular}{|c|c|}
  \hline
    \multirow{2}{2cm}{\centering $\sigma_r$\\$(\sigma_F=0.01)$} & \multirow{2}{3cm}{$N_{95}N_{150}$}\\
     & \\
    \hline
  \end{tabular}
    \caption{\small{This is a simple table for testing}}
  \end{table}
  \end{document}

注意上面的核心两行:

    \multirow{2}{2cm}{\centering $\sigma_r$\\$(\sigma_F=0.01)$} & \multirow{2}{3cm}{$N_{95}N_{150}$}\\
     & \\

1,这里第二行表示在&左右都是空的,因为我们设置的\multirow是两行,所有必须空出一行来让上面的填充。
2,上面每个列都要加 \multirow{2}{3cm}这一个前缀。

另外,这里想提一下\newcommand{}
图如下
在这里插入图片描述
这里同样用到

\multirow{3}*{\tabincell{l}{$\sigma_r$\\$(\sigma_F=1)$}}

第一个3表示有3行,\tabincell{1}表示将三行视为一行操作(因此才会跟后面的三行水平对齐),然而,这里笔者无法让sigma_r居中,默认左对齐,google了半天没找到,看到这里恰巧会的大家,麻烦给我回复一下教我吧(也给后来人一个指示)。
完整代码:

\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{listings}
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[table]{xcolor}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{pythonhighlight}
\pagestyle{fancy}
\usepackage{enumitem}
\setlist[trivlist]{topsep=\baselineskip}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{array}
\usepackage{booktabs}
\newcommand{\tabincell}[2]{\begin{tabular}
{@{}#1@{}}#2\end{tabular}}
\begin{table}
  \centering
  \begin{tabular}{m{2cm}m{3cm}}
    \noalign{\smallskip}\hline\noalign{\smallskip}
%    \renewcommand{\multirowsetup}{\centering}
    % after \\: \hline or \cline{col1-col2} \cline{col3-col4} ...
%    \multirow{3}*{\tabincell{1}{This\\is a\\test}}
    \multirow{3}*{\tabincell{l}{$\sigma_r$\\$(\sigma_F=1)$}}
     &Method 1\\
     &Method 2\\
     &Method 3\\
    \noalign{\smallskip}\hline\noalign{\smallskip}
  \end{tabular}
\end{table}
\end{document}

猜你喜欢

转载自blog.csdn.net/Mr_Cat123/article/details/82802974