我正在使用以下代码来格式化我的论文的表格(基于此处问题的模板:在表格列标题中换行文本并使表格宽度适合页面宽度
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage{array}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{makecell}
\newcolumntype{Z}{ >{\centering\arraybackslash}X }
\renewcommand\theadfont{\bfseries}
%\renewcommand\theadalign{cc}
\usepackage[autolanguage, np]{numprint}
\begin{document}
\begin{table}[!h]
\setlength\tabcolsep{4pt}
\begin{tabularx}{\textwidth}{*{4}{Z}}
\toprule
\multicolumn{4}{c}{xxx xx xxxx} \\
\midrule
\thead{miRNA} & \thead{logFC \\ (ABCDEF vs \\ ABCFED) } & \thead{PValue} & \thead{False \\Discovery\\ Rate} \\%
\midrule
abcd efg hijka & $-1.854$ & \np{9.52E-11} & \np{8.41E-10} \\
abcd efg hijka & $-1.815$ & \np{3.38E-09} & \np{2.42E-08} \\
\bottomrule
\end{tabularx}
\end{table}
a lot of text here to show text width a lot of text here to show text width a lot of text here to show text width a lot of text here to show text width a lot of text here to show text width a lot of text here to show text width a lot of text here to show text width
\end{document}
我想知道如何才能仅左对齐此表第一列中的数据?有没有一种简单的方法可以将命令更改\newcolumntype{Z}{ >{\centering\arraybackslash}X }
为仅左对齐表第一列中的数据而不是标题?其他列和标题应保持居中。
答案1
此代码应该可以做到:
\begin{table}[!h]
\setlength\tabcolsep{4pt}
\begin{tabularx}{\textwidth}{X*{3}{Z}}
\toprule
\multicolumn{4}{c}{xxx xx xxxx} \\
\cmidrule(lr){1-4}
\thead{miRNA} & \thead{logFC \\ (ABCDEF vs \\ ABCFED) } & \thead{PValue} & \thead{False \\Discovery\\ Rate} \\%
\midrule
abcd efg hijka & $-1.854$ & \np{9.52E-11} & \np{8.41E-10} \\
abcd efg hijka & $-1.815$ & \np{3.38E-09} & \np{2.42E-08} \\
\bottomrule
\end{tabularx}
\end{table}
因为X
默认情况下,列是左对齐的,但\thead
居中(垂直和水平)。
此外,我认为\cmidrule(lr){1-4}
前两行之间看起来会比更好看\midrule
。