使用 tikz 获取“图形”代码中的错误

使用 tikz 获取“图形”代码中的错误

我从中复制了一段代码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}

结果:

在此处输入图片描述

相关内容