tikzpicture 的格式

tikzpicture 的格式

我已经在 tikzpicture 中编写了图表代码,它完全符合我的要求。唯一的问题是箭头与符号重叠,图片无法正确缩放。我(目前)无法弄清楚为什么会发生这种情况。这是代码:

\begin{tikzpicture}
\node (A) {$A$};
\node (C) [right of=A] {$C$};
\node (B) [below of=A] {$B$};
\node (D) [right of=B] {$D$};
\node (E) [node distance=1.4cm, left of=A, below of=A, above of=B] {$\mathscr{E}$};
\draw[->] (A) to node {$f_1$} (B);
\draw[->] (A) to node {$f_2$} (C);
\draw[->] (C) to node {$f_3$} (D);
\draw[->] (B) to node {$f_4$} (D);
\draw[->, bend left] (E) to node [swap] {$f$} (A);
\draw[->, bend right] (E) to node {$g$} (B);
\end{tikzpicture}

答案1

只需使用更简单的语法tikz-cd

\documentclass{article}
\usepackage{amssymb, amsfonts, mathrsfs}%
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
 & A \rar["f_2"]\dar["f_1"]&C\dar["f_3"] \\
\mathscr{E}\urar[bend left, "f"]\rar[bend right, "g", swap] &B \rar["f_4"] & D
\end{tikzcd}

\end{document} 

在此处输入图片描述

答案2

您只需添加 TikZ 选项即可[auto]将节点标签自动放置在箭头旁边,并且您的swap选项也可适用。

在这个解决方案中,我随意放置了swap任何需要的地方,以使输出看起来不错。您可以根据需要进行调整。我还随意将箭头上的标签做得比主节点略小。至少在我看来,它看起来更好。

您可以通过在命令中括起 TikZ 代码来缩放图片\scalebox{<len>}{<tikz code>},就像我在这里所做的那样。

tikz 尺寸

\documentclass{article}
\usepackage{tikz}
\usepackage{mathrsfs}
\newcommand\santker{%
    \begin{tikzpicture}[auto] % <------------
    \node (A) {$A$};
    \node (C) [right of=A] {$C$};
    \node (B) [below of=A] {$B$};
    \node (D) [right of=B] {$D$};
    \node (E) [node distance=1.4cm, left of=A, below of=A, above of=B] {$\mathscr{E}$};
    \begin{scope}[every node/.style = {font=\footnotesize}] % <------------
    \draw[->] (A) to node[swap] {$f_1$} (B);
    \draw[->] (A) to node {$f_2$} (C);
    \draw[->] (C) to node {$f_3$} (D);
    \draw[->] (B) to node[swap] {$f_4$} (D);
    \draw[->, bend left] (E) to node {$f$} (A);
    \draw[->, bend right] (E) to node [swap] {$g$} (B);
    \end{scope}
    \end{tikzpicture}
}
\begin{document}
    \scalebox{0.5}{\santker}

    \bigskip

    \santker

    \bigskip

    \scalebox{2}{\santker}
\end{document}

相关内容