对于我的论文,我想合并一些大量使用带标签箭头的 Tikz 图像。我想知道是否有一种有效的方法来生成这些图像,而不是逐个定义它们。不幸的是,我不太熟悉该foreach
命令,我想它会在这里派上用场。下面显示了一个示例图像:
\documentclass{report}
\usepackage{pgfplots}
\usetikzlibrary{shapes}
\begin{document}
\begin{figure}[h]
\centering
\resizebox{\textwidth}{!}{
\begin{tikzpicture}[every node/.style={circle,fill=gray}]
\node (n1) at (-2,10) {1};
\node (n2) at (0,10) {2};
\node (n3) at (2,10) {3};
\node (n4) at (1,8) {4};
\node (n5) at (-1,8) {5};
\node (BS) at (3,7) {6};
\foreach \from/\to in {n1/n2,n2/n1,n2/n3,n3/n2,n3/n4,n4/n3,n4/n5,n5/n4,n1/n5,n5/n1,n2/n5,n5/n2,n4/BS,BS/n4}
\draw[->, bend right=22.5] (\from) to (\to);
\end{tikzpicture}
}
\end{figure}
\end{document}
我现在要做的是$T_{ij}$
给每个箭头添加标签,其中$i$
是箭头的起点节点,$j$
是终点节点。因此,例如,对于节点 1 和 2 之间的箭头,这将是 T_12 和 T_21。
答案1
经过一番努力,我终于得到了这个:
\documentclass{report}
\usepackage{pgfplots}
\usetikzlibrary{shapes}
\begin{document}
\begin{figure}[h]
\centering
\resizebox{\textwidth}{!}{
\begin{tikzpicture}
\node[circle,fill=gray] (1) at (-4,6) {1};
\node[circle,fill=gray] (2) at (0,6) {2};
\node[circle,fill=gray] (3) at (4,6) {3};
\node[circle,fill=gray] (4) at (2,2) {4};
\node[circle,fill=gray] (5) at (-2,2) {5};
\node[circle,fill=gray] (6) at (6,0) {BS};
\foreach \from/\to in {1/2,2/3,3/4,4/5,4/6,5/2,5/1}
{\draw[->, bend right=22.5] (\from) to node[fill=white] {$T_{\from \to}$} (\to);
\draw[->, bend right=22.5] (\to) to node[fill=white] {$T_{\to \from}$} (\from);
}
\end{tikzpicture}
}
\end{figure}
\end{document}
这几乎就是我想要的结果。但是,我必须重命名我的节点才能做到这一点,否则标记命令将不起作用,因为它会为标签提供错误的索引。