我在装有 MikTex 2.9 的 Windows 7 机器上使用 Lyx 2.1。当我将非常简单的 tikz 代码嵌入 Lyx 文档时,它似乎会陷入循环并最终生成错误消息
The command pdflatex -syntex=1 "file.tex" has not yet completed.
我尝试的大多数 tikz 代码似乎都会发生这种情况,但一个具体的例子是,在我包含的序言中
\usepackage{tikz}
在预览框内的 ERT 框中我有
\begin{tikzpicture}
\draw (0,0)--(1,2)--(2,0)
\draw[help lines] (0,0) grid (2,3)
\end{tikzpicture}
我猜想这与 SyncTex 有关,但我已经将 Lyx 和文档配置为不使用它。您知道我做错了什么吗(或者这是一个错误)?
答案1
一般来说,所有 TikZ 命令都必须以分号结尾,因此你的代码片段应该是
\begin{tikzpicture}
\draw (0,0)--(1,2)--(2,0);
\draw[help lines] (0,0) grid (2,3);
\end{tikzpicture}
如果您运行的 LaTeX 文档缺少这样的终止分号,您将收到一条错误消息,指出! Package tikz Error: Giving up on this path. Did you forget a semicolon?.
对于某些类型的错误,您可以告诉 TeX 继续生成文档,尽可能修复/忽略错误。但是对于这个错误,这似乎不起作用,LyX 可能不会“捕获”这个错误,因此它不会停止编译并报告错误,而是继续尝试,但失败了。您提到的错误消息可能是超时或其他原因造成的。
换句话说,使用分号时要更加小心。您还可以在 KTikZ/QTikZ 或 TikZEdt 等中创建图形,然后将其插入 LyX。