LaTeX - 在加权图的边排序列表上方添加节点标签

时间:2010-03-01 06:57:31

标签: latex

这看起来很简单,但我一直无法在网上找到任何关于如何做到这一点的内容。我正在为Kruskal的算法编写步骤。我需要创建一个按重量排序的边列表,标签上方的标签引用边缘,如下所示:

a-b b-c c-e
 1   3   5  ...

Anany Levitin的算法设计和分析在p上使用类似的格式。 316.如果没有其他选择,我认为逐字可能有效,但我希望能让它看起来更好一些。有什么建议吗?

4 个答案:

答案 0 :(得分:4)

正如有人所说,TikZ可能有点矫枉过正,但确实有效。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) node[anchor=east]{a} -- (0.4,0) node[anchor=west]{b};
\draw (0.2,0) node[anchor=north]{1};
\draw (2,0) node[anchor=east]{b} -- (2.4,0) node[anchor=west]{c};
\draw (2.2,0) node[anchor=north]{3};
\draw (4,0) node[anchor=east]{c} -- (4.4,0) node[anchor=west]{e};
\draw (4.2,0) node[anchor=north]{5};
\end{tikzpicture}
\end{document}

编辑:实际上,这可能更简单并且可以满足您的需求:

\[ \left. \begin{array}{ccc}
   {a-b \atop 1} & {b-c \atop 3} & {c-e \atop 5}
   \end{array} \right. \]

您可以自己比较:tikzedgeweights.pdf

答案 1 :(得分:1)

如下:

$a\xrightarrow{1}b$

$b\xrightarrow[{3}]{}c$

$c\overset{5}{-}e$

$c\underset{3}{-}f$

(序言中\usepackage{amsmath}

您可以在此处找到更多高级数学技巧:http://en.wikibooks.org/wiki/LaTeX/Advanced_Mathematics

答案 2 :(得分:1)

使用更精细和更好看的外观

\usepackage{amsmath}
\begin{document}

\[ \overset{a-b}{1} \qquad \overset{\text{\it c-b}}{2} \]

\end{document}

我在这里给了你两种不同的可能性 - 选择你喜欢的东西。

通过将Steve的代码修改为

,您可以在没有amsmath的情况下实现相同的效果
\[ \left. \begin{array}{ccc}
   {a-b \atop {\displaystyle 1}} & {b-c \atop {\displaystyle 3}}
    & {c-e \atop {\displaystyle 5}} 
   \end{array} \right. \]

答案 3 :(得分:1)

tikz可能是你最好的选择,尽管它对你所追求的东西有点重量级。也许xypic会提供更好的解决方案,而且不像tikz那么强大。我不确定你想要的东西是什么样的,但这会很接近:

   A \ar[r]^{label} & B

或类似的东西?