我从中复制了一段代码http://www.texample.net/tikz/examples/tkz-berge/看看我是否能让它顺利运行。我不能。下面是我使用的代码片段:
\documentclass[]{article}
\usepackage{tikz}
\usepackage{tikz,fullpage}
\usetikzlibrary{arrows,%
petri,%
topaths}%
\usepackage{tkz-berge}
\usepackage[position=top]{subfig}
\begin{document}
\centering
\begin{tikzpicture}[scale=0.75,transform shape]
\tikzstyle{every node}=[node distance = 4cm,%
bend angle = 45,%
fill = gray!30]
\Vertex(P)
\NOEA{P}(B)
\SOEA{P}(M)
\NOEA{B}(D)
\SOEA{B}(C)
\SOEA{C}(L)
\tikzstyle{EdgeStyle}=[pre and post]
\Edge[label=$4$](P)(M)
\Edge[label=$9$](C)(M)
\end{tikzpicture}
\end{document}
以及我在此代码片段中省略的一些附加边和顶点初始化。然而 LaTeX 却说
! Undefined control sequence.
\in@ #1#2->\begingroup \def \in@@
##1#1{}\toks@ \expandafter {\in@@ #2{}{}#1...
并突出显示代码片段\Edge[label=$4$](P)(M)
。错误太令人困惑了……而且由于我是从一个显然已经运行过它的网站上复制的,那么问题可能是什么呢?
有人可以帮我这个忙吗?
问候,
答案1
TeXample 代码中的语法是错误的(也许在代码发布后某个时间语法发生了变化,但尚未更新?)。无论如何,\Vertex
必须与括号一起使用,如\Vertex{P}
and \NOEA
(和类似)接收括号内的第一个参数和括号内的第二个参数,如\NOEA(P){B}
。此外,以下行
\tikzstyle{every node}=[node distance = 4cm,%
bend angle = 45,%
fill = gray!30]
似乎没有被考虑进去;我用
\SetGraphUnit{4}
\tikzset{
VertexStyle/.append style={
bend angle = 45,%
fill = gray!30
}
}
您可以在文档中检查正确的语法tkz-graph
。
这是您的代码的更正后的简化版本:
\documentclass[]{article}
\usepackage{tikz}
\usepackage{tikz,fullpage}
\usetikzlibrary{arrows,petri,topaths}%
\usepackage{tkz-berge}
\begin{document}
\centering
\begin{tikzpicture}[scale=0.75,transform shape]
\SetGraphUnit{4}
\tikzset{
VertexStyle/.append style={
bend angle = 45,%
fill = gray!30
}
}
\Vertex{P}
\NOEA(P){B}
\SOEA(P){M}
\NOEA(B){D}
\SOEA(B){C}
\SOEA(C){L}
\tikzstyle{EdgeStyle}=[pre and post]
\Edge[label=$4$](P)(M)
\Edge[label=$9$](C)(M)
\end{tikzpicture}
\end{document}
结果: