tikz 无法正常工作

tikz 无法正常工作

我正在尝试玩弄 tikz,但发现结果很奇怪。当我运行给定的代码时这里

\documentclass{article}

\usepackage{pgf}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}
\usepackage[latin1]{inputenc}
\begin{document}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.8cm,
                    semithick]
  \tikzstyle{every state}=[fill=red,draw=none,text=white]

  \node[initial,state] (A)                    {$q_a$};
  \node[state]         (B) [above right of=A] {$q_b$};
  \node[state]         (D) [below right of=A] {$q_d$};
  \node[state]         (C) [below right of=B] {$q_c$};
  \node[state]         (E) [below of=D]       {$q_e$};

  \path (A) edge              node {0,1,L} (B)
            edge              node {1,1,R} (C)
        (B) edge [loop above] node {1,1,L} (B)
            edge              node {0,1,L} (C)
        (C) edge              node {0,1,L} (D)
            edge [bend left]  node {1,0,R} (E)
        (D) edge [loop below] node {1,1,R} (D)
            edge              node {0,1,R} (A)
        (E) edge [bend left]  node {1,0,R} (A);
\end{tikzpicture}

\end{document}

我得到这个结果:在此处输入图片描述 我正在使用 Ubuntu Natty 机器。

答案1

(这个答案建立在之前的许多评论之上,我决定补充细节,因为目前还没有答案。)默认情况下,当您使用 latex 编译(相当复杂的)pgf 代码时,生成的文件包含各种 dvipdfm(x) 无法处理的 postscript 代码——如果您在转换时查看 stderr,就会发生大量错误。这就是为什么 dvips -> ps2pdf 可以工作,但 dvipdfm 无法工作的原因。

据我了解,pgf 将半自动选择要使用的后端驱动程序,如果您正在运行,latex它会猜测您想要使用 dvips。使用 pdflatex,它当然会自动使用 pdftex 驱动程序。如果您想使用 dvipdfm(x) 转换 pgf 生成的代码的 dvi,它没有中间 .ps 阶段(与类似名称的 dvipdf 不同),您需要告诉它使用正确的驱动程序。因此,如果您想执行 latex -> dvipdfm,则需要在加载 pgf/tikz 之前添加以下行:

\def\pgfsysdriver{pgfsys-dvipdfm.def}

至少对我来说,使用此行,原始代码可以通过此命令序列顺利编译和转换。驱动程序系统在 2.1 手册的 \S 10.2 中有详细记录。因此,总而言之,我认为最有可能的是错误不是运行latex本身pdflatex,而是latex在 pgf 驱动程序和转换路径不匹配的情况下运行。

答案2

我遇到了同样的问题,我解决了:

  • 在 Kile 的设置 -> 配置 Kile
  • 转到工具->构建
  • 搜索dvitopdf
  • 将命令改为dvipdf而不是dvipdfmx或其他内容,诸如此类。

相关内容