答案1
尝试以下肮脏的伎俩:
\documentclass{article}
\usepackage{array, tabu}
\begin{document}
\begin{table}[h]
\begin{tabu} to 1.0\textwidth { |X[c,$] | X[c,$]m{0pt}|}
\hline
N_{1} & (0: 1] & \\[3cm] \hline
\end{tabu}
\end{table}
\end{document}
不清楚为什么需要如此奇怪的表格设计。而且tabu
包的使用很棘手。它没有维护并且包含错误...
附录:单元格内容的垂直居中并非易事。为此,m{0pt}
在上面的示例中添加了一个假列,行的基线通过该假列垂直居中。
对于表格中单元格内容的水平居中tabularx
,您需要定义新的列类型,例如
\newcolumntype{C}{>{\centering\arraybackslash}X}
如果整列的内容都是数学模式,那么整列定义为这种模式是合理的。这样你就不需要在每个单元格中写入内容了$<math expression>$
。在这种情况下,你可以将新列类型定义为:
\newcolumntype{C}{>{\centering\arraybackslash $}X<{$}}
Complete code is then:
\documentclass{article}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash $}X<{$}}
\begin{document}
\begin{table}[h]
\begin{tabularx}{\textwidth}{ | C | C @{}m{0pt}|}
\hline
N_{1} & (0: 1] & \\[3cm] \hline
\end{tabularx}
\end{table}
\end{document}
如您所见,这里也使用了与之前相同的技巧。与第一个例子相比,结果略有改善,因为上面的 MWE 是通过@{}
消除列间空间来实现的。
附录2:
不清楚为什么要使用\\[3cm]
在单元格内容周围留出更多垂直空间。通过更改可以实现类似的效果,且问题更少\arraystretch
,例如,通过在单元格中更合理地添加垂直空间,您可以按如下方式设计表格:
\documentclass{article}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{m{#1}}% <-- cell's contend is vertically centered
\newcolumntype{C}{>{\centering\arraybackslash $}X<{$}}
\begin{document}
\begin{table}[h]
\renewcommand{\arraystretch}{3}
\setlength{\extrarowheight}{-2.5pt}% <-- correction of vertical centering
\begin{tabularx}{\textwidth}{ | C | C |}
\hline
N_{1}
& (0: 1] \\ \hline
\end{tabularx}
\end{table}
\end{document}
如您所见,现在还没有添加虚假列。