Tikz 图片包含对象和箭头的重叠

Tikz 图片包含对象和箭头的重叠

我是使用 TikZ 包制作交换图的新手。我试图在每对对象之间绘制一个带箭头的三角形。这是我现在使用的代码:

\documentclass{article}
\usepackage{amsmath,amssymb,tikz}
\newcommand{\QQ}{\mathbb{Q}}
\begin{document}
\begin{tikzpicture}
  \node (Q) {$\QQ$};
  \node (tQ) [below of=Q] {$\QQ\otimes\QQ$};
  \node (cQ) [right of=tQ] {$\QQ\times\QQ$};
  \draw[->] (Q) to node {$i$} (cQ);
  \draw[->] (tQ) to node [swap] {$m$} (Q);
  \draw[<-] (cQ) to node [swap] {$\iota$} (tQ);
\end{tikzpicture}
\end{document}

\QQ是我定义的命令\mathbb{Q},因为它可以节省我的输入时间。)图表编译得很好,但对象和箭头在底线上重叠得相当厉害:\mathbb{Q}底线上最右边和最左边的节点接触,箭头叠加在它们上面。我该如何解决这个问题,让图表更具可读性?

答案1

最简单的解决方法是添加\begin{tikzpicture}[node distance=2cm]。但这会影响 to 命令放置的特定 TikZ 图片中的所有节点。

对于更具体的解决方案,该positioning库是一个非常强大的工具。(请参阅手册 v2.10 第 185 页)

答案2

您可以使用定位 tikzlibrary 和上面或右边的

\documentclass{article}
\usepackage{amsmath,amssymb,tikz}
\usetikzlibrary{positioning}
\newcommand{\QQ}{\mathbb{Q}}
\begin{document}
\begin{tikzpicture}
  \node (Q) {$\QQ$};
  \node (tQ) [below =5em of Q] {$\QQ\otimes\QQ$};
  \node (cQ) [right =5em of tQ] {$\QQ\times\QQ$};
  \draw[->] (Q) to node[ above] {$i$} (cQ);
  \draw[->] (tQ) to node [right] {$m$} (Q);
  \draw[<-] (cQ) to node [above] {$\iota$} (tQ);
\end{tikzpicture}
\end{document}

相关内容