表格中的多列行具有额外的对齐方式

表格中的多列行具有额外的对齐方式

我有一张三行四列的表格。第一行的每个条目都是居中文本,下面没有 \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 节点)。

上述代码的输出

相关内容