交换图中箭头之间的冲突

交换图中箭头之间的冲突

以下是尝试生成节点之间有多个箭头的交换图。

\documentclass[margin=10pt]{standalone}
\usepackage{tikz-cd}
\begin{document}
\[
\begin{tikzcd}
 B \arrow[shift left]{r}{qBM}
   \arrow[shift right]{l}{qMB}
   \arrow[swap]{dr}{qBN}
   & M \arrow{d}{qMN} \\
   & N
\end{tikzcd}
\] 
\end{document}

目前代码无法编译,并显示错误消息l.7 I think the culprit is a tikzcd arrow in cell 1-1. \errmessage ...currentrow -\tikzcd@currentcolumn }。我在这里做错了什么?

答案1

您可以使用<-来反转箭头的方向;为避免冲突,对角箭头应偏移。

\documentclass[margin=10pt]{standalone}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}[column sep=large]
 B \arrow[r,shift left,"qBM"]
   \arrow[r,<-,shift right,swap,"qMB"]
   \arrow[dr,shift right,swap,"qBN"]
   & M \arrow[d,"qMN"] \\
   & N
\end{tikzcd}

\end{document}

在此处输入图片描述

答案2

首先,让我们看看你的错误。第一个错误告诉你单元格 1-1 中的箭头有问题。这个符号其实很容易理解,因为它声称在第一行和第一列“单元格 1-1”中看到一些问题。因为这里有三个箭头,所以你只需一个一个地取出来就能找到罪魁祸首。我第一次编译后,TeXstudio 用红色标记了有问题的箭头。有一个指向左侧的箭头,但左侧没有任何指向。

对于您的 MWE,我收到第二个错误Bad math environment delimiter. \]。发生这种情况是因为您在一个独立的类中使用了它\[ \],这毫无意义,因此不受支持。这里还有其他关于此主题的帖子。

如果您想要左边有一个空箭头,它应该是:

% arara: pdflatex

\documentclass[margin=10pt]{standalone}
\usepackage{tikz-cd}

\begin{document}
\begin{tikzcd}
    {} & B \arrow[shift left]{r}{qBM}
    \arrow[shift right]{l}{qMB}
    \arrow[swap]{dr}{qBN}
    & M \arrow{d}{qMN} \\
    & & N
\end{tikzcd}
\end{document}

在此处输入图片描述


我猜你想要的是类似这样的东西:

% arara: pdflatex

\documentclass[margin=10pt]{standalone}
\usepackage{tikz-cd}

\begin{document}
\begin{tikzcd}[column sep=huge]
    B \arrow[shift left=.7]{r}{qBM} 
    \arrow[swap]{dr}{qBN}
    & M \arrow{d}{qMN} \arrow[shift left=.7]{l}{qMB} \\
    & N
\end{tikzcd}
\end{document}

在此处输入图片描述

相关内容