我已经在 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
答案2
您只需添加 TikZ 选项即可[auto]
将节点标签自动放置在箭头旁边,并且您的swap
选项也可适用。
在这个解决方案中,我随意放置了swap
任何需要的地方,以使输出看起来不错。您可以根据需要进行调整。我还随意将箭头上的标签做得比主节点略小。至少在我看来,它看起来更好。
您可以通过在命令中括起 TikZ 代码来缩放图片\scalebox{<len>}{<tikz code>}
,就像我在这里所做的那样。
\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}