我刚刚开始使用这个tkz-berge
软件包,我正在尝试绘制一个网络流问题,到目前为止我有这个:
\documentclass[a4paper,oneside,article]{memoir}
\usepackage{tikz}
\usetikzlibrary{arrows,%
petri,%
topaths}%
\usepackage{tkz-berge}
\begin{document}
\chapter*{Network Flow Problem}
\begin{tikzpicture}[scale=0.75,transform shape]
\Vertex{3}
\Vertex[x=0,y=-3]{1}
\Vertex[x=2,y=-1.5]{2}
\Vertex[x=4,y=-1]{5}
\Vertex[x=4,y=-3]{4}
\Vertex[x=6,y=-1.5]{8}
\Vertex[x=8,y=0]{6}
\Vertex[x=8,y=-3]{7}
\tikzstyle{EdgeStyle}=[post,dotted]
\Edge[label=0](1)(3)
\Edge[label=1](3)(6)
\Edge[label=1](6)(8)
\Edge[label=3](2)(1)
\Edge[label=0](8)(7)
\tikzstyle{EdgeStyle}=[post]
\Edge[label=0](3)(2)
\Edge[label=2](2)(5)
\Edge[label=2](5)(4)
\Edge[label=3](8)(5)
\Edge[label=1](4)(1)
\Edge[label=4](7)(4)
\Edge[label=1](7)(6)
\end{tikzpicture}
\end{document}
它看起来正是我想要的样子,但我需要获取它旁边每个节点的容量,即b_{3} = 2 NW of vertex 3
,我一直在阅读文档,但找不到任何内容。
那么可以做到吗?如果可以,怎么做?提前致谢
祝好 Steffen
PS 如果有人对使用什么包来绘制这样的图表有更好的想法,我们非常欢迎您的建议。
答案1
似乎该tkz-berge
包没有规定每个节点有两个标签。但可以使用tikz
命令添加更多标签,例如使用命令
\extralabel[optional distance]{angle}{new label}{node name}
定义为
\newcommand\extralabel[4][0mm]{\node[label={[label distance=#1]#2:#3}] at (#4){};}
在您的代码中:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows,%
petri,%
topaths}%
\usepackage{tkz-berge}
\begin{document}
\newcommand\extralabel[4][0mm]{\node[label={[label distance=#1]#2:#3}] at (#4){};}
\begin{tikzpicture}[scale=0.75,transform shape]
\Vertex{3} \extralabel {45}{$b_{3}=2$}{3}
\Vertex[x=0,y=-3]{1} \extralabel{-135}{$b_{1}=0$}{1}
\Vertex[x=2,y=-1.5]{2}\extralabel[1mm]{-90}{$b_{2}=0$}{2}
\Vertex[x=4,y=-1]{5}
\Vertex[x=4,y=-3]{4}
\Vertex[x=6,y=-1.5]{8}
\Vertex[x=8,y=0]{6}
\Vertex[x=8,y=-3]{7}
\tikzstyle{EdgeStyle}=[post,dotted]
\Edge[label=0](1)(3)
\Edge[label=1](3)(6)
\Edge[label=1](6)(8)
\Edge[label=3](2)(1)
\Edge[label=0](8)(7)
\tikzstyle{EdgeStyle}=[post]
\Edge[label=0](3)(2)
\Edge[label=2](2)(5)
\Edge[label=2](5)(4)
\Edge[label=3](8)(5)
\Edge[label=1](4)(1)
\Edge[label=4](7)(4)
\Edge[label=1](7)(6)
\end{tikzpicture}
\end{document}