我在垂直对齐表格中的文本时遇到问题。
我定义新的列类型如下:
\newcolumntype{M}{>{\centering\arraybackslash}m{\dimexpr.25\linewidth-2\tabcolsep}}
这对除最后一列外的所有列都有效。知道为什么它对最后一列不起作用吗?
第二个问题:如何使多列行中的文本垂直对齐?
这是我的整个代码示例。
\documentclass[aps,pre,superscriptaddress,unsortedaddress,twocolumn,showpacs]{revtex4}
\usepackage{tabulary}
\usepackage{tabularx}
\usepackage{threeparttable}
\usepackage{array}% http://ctan.org/pkg/array
\newcolumntype{M}{>{\centering\arraybackslash}m{\dimexpr.25\linewidth-2\tabcolsep}}
\begin{document}
\begin{table}[!htp]
\begin{threeparttable}
\caption{Summary.} {\small\label{table:S2}}\centering
\small
\begin{tabularx}{\textwidth}{ |X|M|M| }
\multicolumn{3}{M}{LONG TEXT}\\[4ex]\hline
& text & text \\\hline
text & complex text & complex text \\[6ex]\hline
text & complex text & complex text \\[6ex]\hline
text & complex text & complex text \\[6ex]\hline
\multicolumn{3}{M}{LONG TEXT} \\[4ex]\hline
& text & text \\\hline
text & complex text & complex text \\[6ex]\hline
text & complex text & complex text \\[6ex]\hline
text & complex text & complex text \\[6ex]\hline
\hline
\end{tabularx}
\end{threeparttable}
\end{table}
\end{document}
非常感谢你的帮助!!!
答案1
我认为您可以使用以下方法简化您的代码tabularray
:
\documentclass[aps,pre,superscriptaddress,unsortedaddress,twocolumn,showpacs]{revtex4}
\usepackage{tabularray}
\begin{document}
\begin{table}[!htp]
\caption{Summary.}\label{table:S2}
\begin{tblr}{
width=\linewidth,
colspec={X[2]X[c]X[c]},
hline{2-Z}={solid},
vline{1-Z}={2-5, 7-Z}{solid},
row{1,6}={ht=4ex},
row{3-5,8-Z}={ht=6ex},
row{2,7}={abovesep=1ex},
row{1,6}={abovesep=2ex},
}
\SetCell[c=3]{c} LONG TEXT & & \\
& text & text \\
text & complex text & complex text \\
text & complex text & complex text \\
text & complex text & complex text \\
\SetCell[c=3]{c} LONG TEXT & & \\
& text & text \\
text & complex text & complex text \\
text & complex text & complex text \\
text & complex text & complex text
\end{tblr}
\end{table}
\end{document}