简单的 tikz-cd 三角形:如何添加向上箭头

简单的 tikz-cd 三角形:如何添加向上箭头

我怎样才能得到一个从 Z 到 Y 垂直向上的箭头,就像我在下图中手工用红色绘制的那样?

三角形缺少右侧的向上箭头

目前代码:

  \documentclass{article}
  \usepackage{tikz-cd}
  \begin{document}
  
  \begin{tikzcd}
    & Y 
  \\
  X \arrow{ur}{f} \arrow[swap]{dr}{q}&
  \\
    & Z
  \end{tikzcd}
  
  \end{document}

问题是箭头必须从底部第 3 行跨越到顶部第 1 行。

答案1

您可以使用以下方式向上移动两行

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}

\begin{tikzcd}
  & Y \\
X \arrow{ur}{f} \arrow[swap]{dr}{q}&\\
  & Z \arrow{uu}
\end{tikzcd}

\end{document}

或者您可以明确指定目标单元格,例如1-2第一行、第二列:

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}

\begin{tikzcd}
  & Y \\
X \arrow{ur}{f} \arrow[swap]{dr}{q}&\\
  & Z \arrow{1-2}
\end{tikzcd}

\end{document}

在此处输入图片描述

答案2

首先,tikz-cd允许使用基于键值的方法以更好的方式输入箭头。例如,您的箭头是

\arrow[ur,"f"]
\arrow[dr,"g"']

撇号也可以用键代替,swap例如

\arrow[dr,"g" swap]

这更加清晰且更加宽容,因为您不需要记住旧\arrow语法中强制参数和可选参数的顺序。

我建议首先放置“目标”说明符:u表示上、d下、l左和r右。您可以根据需要组合它们,并且可以通过将说明符加倍(或三倍或……)来跳过列或行。因此,您想要

Z \arrow[uu]

这样就可以完成两个步骤。

我还添加了两个“水平”版本的图表。

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
  & Y \\
X \arrow[ur,"f"] \arrow[dr,"q"'] \\
  & Z \arrow[uu]
\end{tikzcd}
\qquad
\begin{tikzcd}
  & Y \\
X \arrow[ur,"f"] \arrow[dr,"q" swap] \\
  & Z \arrow[uu]
\end{tikzcd}
\qquad
\begin{tikzcd}
& X \arrow[dl,"q" swap] \arrow[dr,"f"] \\
Z \arrow[rr] && Y
\end{tikzcd}
\qquad
\begin{tikzcd}
& X \arrow[dl,"f" swap] \arrow[dr,"q"] \\
Y && Z \arrow[ll]
\end{tikzcd}

\end{document}

在此处输入图片描述

答案3

还有一种可能性,代码稍微短一点:

\documentclass[margin=3mm]{standalone}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
                & Y \\
X \urar["f"]
  \drar["f" ']  &   \\
                & Z \ar[uu]
\end{tikzcd}

\end{document}

在此处输入图片描述

相关内容