使用 xymatrix 的图表

使用 xymatrix 的图表

我想重现这个精确的图表 拉姆达

我使用了 xymatrix 包,缩放效果非常糟糕,这是脚本

\xymatrix{
&(\lambda x. x x) ((\lambda x. y) z ) \ar[dl]_{} \ar[dr]^{} &\\
((\lambda x. y) z) ((\lambda x. y) z)   & &(\lambda x.x x) y \ar[dl]_{}\\
&y y&}
}

答案1

要点是@C-2pc@R+1pc减少列间距并增加行间距。\hphantom技巧\makebox是使其更加对称。

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

\[
\hphantom{((\lambda x. y) z)}
\xymatrix@C-2pc@R+1pc{
&(\lambda x. x x) ((\lambda x. y) z ) \ar[dl]_{} \ar[dr]^{} &\\
\makebox[0pt][r]{$((\lambda x. y) z)$} ((\lambda x. y) z)   & &(\lambda x.x x) y \ar[dl]_{}\\
&y y&
}
\]

\end{document}

在此处输入图片描述

答案2

这是一个解决方案tikz-cd。当然,序言中的箭头声明是可选的。

% arara: pdflatex

\documentclass{article}
\usepackage{tikz-cd}
\tikzset{%
    ,commutative diagrams/.cd
    ,arrow style=tikz
    ,diagrams={>=LaTeX}
    }

\begin{document}
\[
\begin{tikzcd}[sep={2cm,between origins}]
    & (\lambda x. x x) ((\lambda x. y) z ) \arrow{dl}\arrow{dr} & \\
    ((\lambda x. y) z) ((\lambda x. y) z) & & (\lambda x.x x) y \arrow{dl} \\
    & yy\vphantom{)} &
\end{tikzcd}
\]  
\end{document}

在此处输入图片描述

相关内容