在 xymatrix 中左对齐多行 \txt 节点

在 xymatrix 中左对齐多行 \txt 节点

我可以写类似这样的内容:

\documentclass{article}
\usepackage{amsmath}
\usepackage[all,cmtip]{xy}
\begin{document}
\[
\xymatrix{
    2 \times 2 \ar@/_2pc/[ddd]_{\txt{generalize}} \\ \\ \\
    \txt{$\Lambda N.\, \lambda$ $(\text{MUL} : N \to N \to N)$ \\
        $(\text{O} : N)$ \\
        $(\text{S} : N \to N).\,$ \\
        MUL (S (S O)) (S (S O))} \ar@/_2pc/[uuu]_{\txt{specialize}}
}
\]
\end{document}

它看起来像这样:

LaTeX 的渲染

我想将文本左对齐;我希望得到如下结果:

期望的最终结果

我可以使用\phantomif 来实现此处的左对齐。如何在内\txt实现左对齐?\txt\xymatrix

答案1

我会使用tabular;诀窍是使用一对额外的括号。

与其添加行,不如对行距采取行动,如下所示。

\documentclass{article}
\usepackage{amsmath}
\usepackage[all,cmtip]{xy}
\begin{document}

\[
\xymatrix@R+6pc{
  2 \times 2 \ar@/_2pc/[d]_{\txt{generalize}} \\
  \txt{{%
    \begin{tabular}[t]{@{}l@{ }l@{}}
    $\Lambda N.\, \lambda$ & $(\text{MUL} : N \to N \to N)$ \\
                           & $(\text{O} : N)$ \\
                           & $(\text{S} : N \to N).\,$ \\
    \multicolumn{2}{@{}c@{}}{MUL (S (S O)) (S (S O))}
    \end{tabular}%
  }} \ar@/_2pc/[u]_{\txt{specialize}}
}
\]

\end{document}

在此处输入图片描述

相关内容