这个问题真是花了大半天时间,哎~~太不容易了,为了给后来人方便,我还是决定写这个博客。
这里要说的是,一个表格中的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}