我需要排版图表,但我不想手动放置节点。我使用该dot2texi
包自动将图表描述转换为 tikz/pgf 命令。效果很好。
我还想创建beamer
幻灯片来说明图形算法(DFS、Prim 等)的作用。因此,我需要突出显示节点,我通过在与 dot2texi 生成的节点相同的位置在背景层上绘制彩色节点来实现。这也有效。
我也需要突出边缘。我的突出显示节点的来源以相同的方式绘制边缘:由于知道它们的端点,因此可以重新绘制它们。这可以在那里起作用,因为边缘是直的。
就我而言,边缘以我不知道(也不想知道)的方式弯曲,因此知道两个端点是不够的。
由于这个 SX 问答。我试过了,这也有效。
但这需要在创建路径时为其命名(与可自行引用的节点不同),在我的例子中,这是自动化的。
目前,我正在利用style
点语言的特性:当通过 dot2texi 运行时,它会将我需要的文本放在生成的 tikz 命令中的正确位置。
\documentclass{article}
\usepackage{dot2texi}
\usepackage{tikz}
\tikzstyle{basevertex} = [circle,
inner sep=0pt,
minimum size=.5cm,
font=\scriptsize]
\tikzstyle{vertex} = [basevertex, draw]
\tikzstyle{dotvertex} = [vertex]
\tikzstyle{selected edge} = [draw,line width=5pt,-,red!50]
%% here follows the code from [2]
%%% etc.
\begin{document}
\begin{tikzpicture}
\begin{dot2texi}[codeonly, styleonly, tikz]
graph G {
rankdir="LR";
node[style="dotvertex", fontsize=8];
0 -- 1 -- 3;
0 -- 2 -- 3 -- 4;
3 -- 7;
2 -- 6;
5 -- 2;
5 -- 4 [style="name path global=test"];
}
\end{dot2texi}
\begin{pgfonlayer}{background}
\path[use path=test, selected edge];
\end{pgfonlayer}
\end{tikzpicture}
\end{document}
按照预期给出,
我现在正尝试根据路径的端点自动命名/设置路径的样式(我不会排版多图),这样edge(origin)(destination)
我就可以引用它们而不必费心在我的点代码中手动命名它们。