我有一张三行四列的表格。第一行的每个条目都是居中文本,下面没有 \hrule。下一行是更居中的文本。因为前两行之间没有 \hrule,所以它看起来像是居中的多行文本,这正是我想要的。所以前两行看起来实际上就像一行。
最后一行是横跨所有四列的多列。此行有七个数学对象。我试图让它们与上方居中的文本以及上方分隔列的垂直线对齐(四个文本组件和三个垂直列分隔符)。我该如何实现这种对齐?
这是我的代码:
\documentclass{book}
\begin{document}
\begin{tabular}{|cccc|}
\hline
\multicolumn{1}{|c|}{Text text text} &
\multicolumn{1}{c|}{Text text} &
\multicolumn{1}{c|}{Text text text text} &
\multicolumn{1}{c|}{Text Text} \\
\multicolumn{1}{|c|}{Text} &
\multicolumn{1}{c|}{Texting} &
\multicolumn{1}{c|}{Text Text Texting} &
\multicolumn{1}{c|}{Text} \\
\hline
\multicolumn{4}{|c|}{784 \qquad $x^2$ \qquad $\pi^2$ \qquad $>$ \qquad 1,543 \qquad $1+0.6$ \qquad
301}\\
\hline
\end{tabular}
\end{document}
在最后一行中,$x^2$、$>$ 和 $1+0.6$ 应该位于垂直列线的正下方。
答案1
如果初始行是文本段落,则将它们设置为 p 列更为自然。
\documentclass{book}
\usepackage{array}
\begin{document}
\newcommand\cm[1]{\multicolumn{1}{c}{\makebox[0pt]{$#1$}}}
\centering
\setlength\extrarowheight{3pt}
\setlength\tabskip{3pt}
\begin{tabular}{@{}|
>{\centering}p{2.2cm}>{\vline}c
>{\centering}p{2.2cm}>{\vline}c
>{\centering}p{2.2cm}>{\vline}c
>{\centering\arraybackslash}p{2.2cm}|@{}}
\hline
Text text textText
&&
Text text Texting
&&
Text text text text Text Text Texting
&&
Text Text Text
\\
\hline
784 & \cm{x^2} & $\pi^2$ & \cm{>} & 1,543 & \cm{1+0.6} & 301\\
\hline
\end{tabular}
\end{document}
答案2
像这样吗?
\documentclass{article}
\usepackage{array}
\usepackage{mathtools}
\usepackage{makecell}
\usepackage{cellspace}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}
\begin{document}
\begin{tabular}{|*{4}{Sc|}}
\hline
\makecell{Text text text\\ Text} &
\makecell{Text text \\ Texting} &
\makecell{Text text text text \\ Text Text Texting} &
\makecell{Text Text \\ Text} \\
\hline
\multicolumn{1}{|Sc@{$\mathclap{x^2}$}}{784\enspace \mbox{}} & \multicolumn{1}{Sc@{$\mathclap{>}$}}{$\pi^2$} & \multicolumn{1}{c@{$\mathclap{1+0.6 }$}} {1,543\hskip 1.5em\mbox{}} &
\multicolumn{1}{c|}{\hskip1.5em 301} \\
\hline
\end{tabular}
\end{document}
答案3
使用{NiceTabular}
,nicematrix
您可以在构建数组后通过使用{NiceTabular}
数组的单元格、行和列下创建的 PGF/Tikz 节点将元素放置在表格中所需的位置。
\documentclass{book}
\usepackage{nicematrix,tikz}
\begin{document}
\centering
\setlength\extrarowheight{3pt}
\setlength\tabskip{3pt}
\begin{NiceTabular}{*{4}{>{\centering\arraybackslash}p{2.2cm}}}[hvlines]
Text text textText
&
Text text Texting
&
Text text text text Text Text Texting
&
Text Text Text \\
\Block{1-*}{} % in order to have no vertical rule inside that row
784 & $\pi^2$ & 1,543 & 301\\
\CodeAfter
\begin{tikzpicture}
\node [anchor=base] at (row-2-base-|2) { $x^2$ } ;
\node [anchor=base] at (row-2-base-|3) { $>$ } ;
\node [anchor=base] at (row-2-base-|4) { $1+0.6$ } ;
\end{tikzpicture}
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
使用 PGF/Tikz 节点)。