我现在正在为我做过的演讲写一篇书面论文,我想重复使用为幻灯片开发的图表。不幸的是,论文提供的模板不知何故与我突出显示边缘和节点的方式不符(警告:不建议将 fancyhdr' 包(scrbook)与 KOMA-Script 类一起使用。)。有没有办法快速解决这个问题(否则我只需将图像剪切为 .pdf 并将它们作为图形输入)?代码适用于 beamer 和文章:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\newif\ifhighlight
\tikzset{
highlight/.is if=highlight,
highlight=false,
step number/.initial=0
}
\pgfkeys{
/tikz/edgeid/.code={
\pgfmathparse{ifthenelse(#1<=\pgfkeysvalueof{/tikz/step number},"true","false")}
\pgfkeys{/tikz/highlight=\pgfmathresult}
\ifhighlight
\tikzset{
ultra thick, green!80!black
}
\fi
}
}
\newcommand{\FTidea}[1]{
\begin{tikzpicture}[scale=1.6,step number=#1]
\foreach \pos/\name/\id in {{(0,0)}/A/0,{(1,0)}/B/1,{(2,0)}/C/2,{(3,0)}/D/3,{(0,1)}/E/5,{(1,1)}/F/6,{(2,1)}/G/7,{(3,1)}/H/4}{
\node (\name) at \pos [circle,draw] {$\name$};}
\foreach \source/\dest/\weight/\id in {A/B/1/1,C/D/2/3,D/H/1/4,E/F/1/6,F/G/1/7,A/E/2/99,A/F/4/99,B/G/5/99,B/C/3/99,C/E/2/99,H/G/4/99}
\draw [edgeid=\id][-] (\source) edge node{\weight} (\dest);
\end{tikzpicture}
}
\FTidea{0} %obviously called multiple times in the real code
\end{document}
由于我在网上找到了定义 ifhighlight 和 edgeid 的上部代码部分,而且我对 LaTeX 还不熟悉,所以我不确定变量可见性(或参数可见性)是如何工作的,所以我无法重构它来找出哪个部分导致了这个问题(一些人认为它可能是 pgf 的东西或 /tikz/highlight)但常规的 tikz 绘图工作并且删除任何边缘或节点颜色也会清除所有问题。