尝试编译以下代码时,我在日志文件中收到错误:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\usepackage{dot2texi}
\begin{document}
\begin{dot2tex}[neato,options=-tmath]
digraph G {
node [shape="circle"];
a_1 -> a_2 -> a_3 -> a_4 -> a_1;
}
\end{dot2tex}
\end{document}
这是来自 dot2tex 网站的一个例子。错误示例如下:
Undefined control sequence \begin{dot2tex}[neato,options=-tmath]
该包的作者建议在此链接上,你应该定义
\@ifundefined{verbatim@out}{\newwrite\verbatim@out}{}%
在你的包里,但是我仍然不明白应该把这个命令放在哪里,因为我是 TeX 新手。
修复:我在一开始就输入\@ifundefined{verbatim@out}{\newwrite\verbatim@out}{}%
了:dot2texi.sty
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{dot2texi}[2008/05/07 v3.0 Run dot2tex from LaTeX]
\RequirePackage{moreverb}
\RequirePackage{xkeyval}[2005/02/22]
\@ifundefined{verbatim@out}{\newwrite\verbatim@out}{}%
\newif\ifdtt@ShellEscape
%\newif\ifmiktex \miktexfalse
答案1
修改样式文件通常不是一个好主意。在中间\makeatletter
和\makeatother
后面写一行\usepackage{dot2texi}
也是不错的选择:
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\usepackage{dot2texi}
\makeatletter
\@ifundefined{verbatim@out}{\newwrite\verbatim@out}{}
\makeatother