我尝试了 4 个不同的.sty
文件(其中大多数不起作用,有些在呈现页面上出现错误)。
现在尝试dot2texi包,它给了我一个空白的 PDF。
我尝试运行initexmf --edit-config-file=pdftex.ini
然后添加:EnableWrite18=t
到打开的文件,并且尝试添加-shell-escape
到运行命令:
但什么也没起作用。如何在 LaTeX 中编写并成功编译内联 GraphViz 图表?
答案1
我认为问题不在于依赖 MiKTeX,而在于依赖的程序dot2texi
。该软件包具有以下依赖项:
第一个是易于部署的.msi
文件 - 只需双击并在 Windows 中安装即可。如果我没记错的话,GraphViz 甚至会将自己添加到系统路径中。您可以通过dot --help
在命令提示符中运行来检查 GraphViz 工具是否可用:
如果您得到类似的输出,则 GraphViz 已添加到系统路径。
现在,第二个工具 - dot2tex
- 对于普通 Windows 用户来说相当棘手。此工具实际上是一个 Python 脚本,并且依赖 Python 来运行。请注意,该脚本仅在系列中运行2.x
(3.x
我的开发 Windows 机器中有 Python,为了测试脚本,我不得不将其降级)。如果您2.x
安装了 Python,我建议您使用easy_install
或pip
安装dot2tex
。除了安装它之外,请确保将PYTHON_INSTALL/Scripts
目录包含在您的系统路径中,以使脚本可用。
如果你不熟悉 Python,我还有另一种选择。我从源代码构建了一个包装器dot2tex
,并生成了一个独立的包含电池的dot2tex.exe
文件,可在此处获得。解压并放在dot2tex.exe
计算机的某个位置。确保dot2tex.exe
rests 所在的目录也在系统路径中。dot2tex --help
在命令提示符中测试:
使用 GraphViz 并dot2tex
在系统路径中可用,让我们从包文档中看一下这个示例:
\documentclass{article}
\usepackage{dot2texi}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\begin{document}
\begin{dot2tex}[neato,mathmode]
digraph G {
node [shape="circle"];
a_1 -> a_2 -> a_3 -> a_4 -> a_1;
}
\end{dot2tex}
\end{document}
通过运行pdflatex --shell-escape myfile.tex
,我们得到正确的输出:
文件中的重要部分.log
:
...
Package dot2texi Info: Automatically converting dot/neato files on input line 1
48.
...
\openout3 = `teste148-dot2tex-fig1.dot'.
Opening dot2tex stream teste148-dot2tex-fig1.dot
runsystem(dot2tex --figonly -ftikz --prog=neato -tmath -o teste148-dot2te
x-fig1.tex teste148-dot2tex-fig1.dot)...executed.
Package dot2texo Info: teste148-dot2tex-fig1.dot converted on input line 11.
...
希望能帮助到你。:)