![如何更改 Tikz 边缘上的文本位置](https://linux22.com/image/422213/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%20Tikz%20%E8%BE%B9%E7%BC%98%E4%B8%8A%E7%9A%84%E6%96%87%E6%9C%AC%E4%BD%8D%E7%BD%AE.png)
考虑以下代码:
\begin{tikzpicture}[
node distance = 35mm,
vertex/.style = {circle, draw, text width=4.4em, align=center},
every edge/.style = {-Straight Barb, draw, semithick}
]
%
\node (B) [vertex] {Facility $B$};
\node (C) [vertex, right=of B] {Facility $C$};
\node (A) [vertex, above=of $(B.north)!0.5!(C.north)$] {Facility $A$};
%
\draw (A) edge [bend right,"$p_{AB}$"] (B);
\draw (B) edge [bend right,"$p_{BA}$"] (A);
%
\draw (A) edge [bend left,"$p_{AC}$"] (C);
\draw (C) edge [bend left,"$p_{CA}$"] (A);
\draw (C) edge [bend left,"$p_{CB}$"] (B);
%
\draw[transform canvas={yshift=+1ex}] (B) edge ["$p_{BC}$"] (C);
\end{tikzpicture}
其结果为:
这是我想要实现的目标:
P_AB
将 的放置设为P_AC
。P_CA
将 的放置设为P_BA
。- 防止边缘
BA
互相CA
交叉。 - 下标
AB
、BA
、CA
等实际上看起来并不是下标。它们似乎与 在同一行p
。如果可以的话,有没有什么方法可以强调它们的下标性? - 将这张图片(及其所有内容)放大或缩小的最简单、最直接的方法是什么?
答案1
将说明书swap
或其缩写'
推入对侧边缘的标签。
编辑: 现在考虑所有子问题......
\documentclass[tikz, margin=3.14159mm]{standalone}
\usetikzlibrary{arrows.meta,
calc,
positioning,
quotes}
\begin{document}
\begin{tikzpicture}[
node distance = 35mm,
vertex/.style = {circle, draw, text width=3.2em, align=center},
every edge/.style = {-Straight Barb, draw, semithick},
bend angle=15 % <---
]
%
\node (B) [vertex] {Facility $B$};
\node (C) [vertex, right=of B] {Facility $C$};
\node (A) [vertex, above=of $(B.north)!0.5!(C.north)$] {Facility $A$};
%
\draw (A) edge [bend right,"$p^{}_{AB}$" '] (B)
(B) edge [bend right,"$p^{}_{BA}$"] (A)
%
(A) edge [bend left,"$p^{}_{AC}$"] (C)
(C) edge [bend left,"$p^{}_{CA}$" '] (A)
(C) edge [bend left,"$p^{}_{CB}$"] (B)
%
(B) edge [bend left,"$p^{}_{BC}$"] (C); % <---
\end{tikzpicture}
\end{document}
答案2
重叠问题现已解决——下标问题已解决
\documentclass[a4paper]{report}
\usepackage{amsmath}
%\usepackage
\usepackage{tikz}
\usetikzlibrary{math, positioning, calc, arrows.meta, decorations.markings,quotes}
\begin{document}
\begin{tikzpicture}[
node distance = 35mm,
vertex/.style = {circle, draw, text width=4.4em, align=center},
every edge/.style = {-Straight Barb, draw, semithick}
]
%
\node (B) [vertex] {Facility $B$};
\node (C) [vertex, right=of B] {Facility $C$};
\node (A) [vertex, above=of $(B.north)!0.5!(C.north)$] {Facility $A$};
%
\draw (A) edge [bend right,"$\text{p}_\text{AB}$" '] (B);
\draw (B.north east) edge [out=45,in=255,looseness=1.2,"$\text{p}_\text{BA}$"] (A);
%
\draw (A) edge [bend left,"$\text{p}_\text{AC}$"] (C);
\draw (C.north west) edge [out=135,in=-75,looseness=1.2,"$\text{p}_\text{CA}$" '] (A);
\draw (C) edge [bend left,"$\text{p}_\text{CB}$"] (B);
%
\draw[transform canvas={yshift=+1ex}] (B) edge ["$\text{p}_\text{BC}$"] (C);
\end{tikzpicture}
\end{document}