nicematrix:将单单元格块的第一行与基线对齐

nicematrix:将单单元格块的第一行与基线对齐

我希望单词“First”和“Second”具有相同的基线。我找到了使用 raisebox 的解决方案,但还有更好的解决方案吗?

\documentclass{article}

\usepackage{amsmath}
\usepackage{nicematrix}

\begin{document}

First \begin{NiceTabular}[t]{c}[hvlines]
\Block{}{Second \\ $ \frac{1}{2} $} \\
1 \\
2 \\
\end{NiceTabular}

\end{document}

在此处输入图片描述

答案1

我在最新版本(v. 5.14 2021-04-08)中为该命令添加了nicematrix一个键。t\Block

\documentclass{article}
\usepackage{amsmath}
\usepackage{nicematrix}

\begin{document}

First \begin{NiceTabular}[t]{c}[hvlines]
\Block[t]{}{Second \\ $ \frac{1}{2} $} \\
1 \\
2 \\
\end{NiceTabular}

\end{document}

上述代码的输出

答案2

为什么不把它包括到你的NiceTabular

在 nicematrix 中对齐

\documentclass{article}

\usepackage{amsmath}
\usepackage{nicematrix}

\begin{document}

    \begin{NiceTabular}{cc}[hvlines-except-corners]
        \Block[draw=white]{}{First \\ \vphantom{$ \frac{1}{2} $}}  & \Block[draw]{}{Second \\ $ \frac{1}{2} $} \\
        & 1 \\
         & 2 \\
    \end{NiceTabular}
    
\end{document}

编辑

我发现的另一个解决方案(如果您确实想将表格放在纯文本之后)是避免使用\Block第一行,只绘制 vlines,然后将所有 hlines 添加到 中\CodeAfter。结果并不完全相同,而且在我看来,不太正确。

First   \begin{NiceTabular}{c}[vlines,baseline=t]
        Second \\
        $ \frac{1}{2} $ \\
        1 \\
        2 \\
        \CodeAfter \tikz \draw (1) -- (1-|2) (1|-3) -- (3) (1|-4) -- (4) (1|-5) -- (5);
    \end{NiceTabular}

v2

答案3

也许您不需要单细胞\Block,而只需要\Blok{2-1}{}第一个细胞中的细胞,以便能够使用hvlines具有您期望的输出的密钥。

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

First \begin{NiceTabular}[t]{c}[hvlines,cell-space-limits=1pt]
\Block{2-1}{}%
Second \\ 
$\frac{1}{2}$\\
1 \\
2 \\
\end{NiceTabular}

\end{document}

上述代码的输出

答案4

\Block另一个解决方法是用对齐的表格替换。在我看来,添加选项t似乎是一个有效的功能请求(除非它已经存在)。nicematrixt\Block

\documentclass{article}

\usepackage{amsmath}
\usepackage{nicematrix}

\begin{document}

First \begin{NiceTabular}[t]{c}[hvlines]
\begin{tabular}[t]{@{}c@{}}
Second \\ $ \frac{1}{2} $\\[0.2ex]
\end{tabular} \\
1 \\
2 \\
\end{NiceTabular}

\end{document}

在此处输入图片描述

相关内容