我正在尝试在我的 LyX 文档中添加 TikZ 图片。为此,我在 Texmaker 中组织 TikZ tex 代码(一位朋友给我发送了一个 .tex 文件中的 tikz 代码模型),然后将其复制到 LyX 中的 ERT(确保使用正确的包)。问题是,当我将代码导出为 pdf 时,代码在 Texmaker 中有效,但当我尝试使用 LyX 预览它时却无效!我收到错误:
File ended while scanning use of \pgfkeys@@qset.
<*>newfile3.tex
*** (job aborted, no legal \end found)
Texmaker 中运行的 tex 代码如下:
\documentclass[12pt,a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\tikzset{
% Two node styles for game trees: solid and hollow
solid node/.style={circle,draw,inner sep=1.5,fill=black},
hollow node/.style={circle,draw,inner sep=1.5}
}
\begin{center}
\begin{tikzpicture}[scale=1.5,font=\footnotesize]
% Specify spacing for each level of the tree
\tikzstyle{level 1}=[level distance=15mm,sibling distance=35mm]
\tikzstyle{level 2}=[level distance=15mm,sibling distance=15mm]
\tikzstyle{level 3}=[level distance=15mm,sibling distance=8mm]
% The Tree
\node(0)[hollow node,label=above:{Jogador 1},label=right:{$x''$}]{}
child{node(1)[solid node]{}
child{node(3)[solid node,label=right:{$x$}]{}
child{node[solid node,label=below:{$(a_1,b_1)$}]{} edge from parent node[left]{$C$}}
child{node[solid node,label=below:{$(a_2,b_2)$}]{} edge from parent node[right]{$D$}}
edge from parent node[left]{$L$}}
child{node(4)[solid node]{}
child{node[solid node,label=below:{$(a_3,b_3)$}]{} edge from parent node[left]{$C$}}
child{node[solid node,label=below:{$(a_4,b_4)$}]{} edge from parent node[right]{$D$}}
edge from parent node[left]{$R$}}edge from parent node[left,xshift=-3]{$A$}
}
child{node(2)[solid node]{}
child{node(5)[solid node,label=right:{$x'$}]{}
child{node[solid node,label=below:{$(a_5,b_5)$}]{} edge from parent node[left]{$C$}}
child{node[solid node,label=below:{$(a_6,b_6)$}]{} edge from parent node[right]{$D$}}
edge from parent node[left]{$L$}}
child{node(6)[solid node]{}
child{node[solid node,label=below:{$(a_7,b_7)$}]{} edge from parent node[left]{$C$}}
child{node[solid node,label=below:{$(a_8,b_8)$}]{} edge from parent node[right]{$D$}}
edge from parent node[right]{$R$}
}edge from parent node[right,xshift=3]{$B$}
};
% information set
\draw[dashed,rounded corners=10]($(1) + (-.2,.25)$)rectangle($(2) +(.2,-.25)$);
% specify mover at 2nd information set
\node at ($(1)!.5!(2)$) {Jogador 2};
\draw[dashed, rounded corners = 10]($(3) + (-.2,.25)$)rectangle($(6) +(.2,-.25)$);
\node at ($(4)!.5!(5)$) {Jogador 1};
\end{tikzpicture}
\end{center}
\end{document}
\begin{document}
因此我打开 LyX,复制和之间的所有代码\end{document}
,并将以下内容放入文档前言中:
\usepackage{tikz}
\usetikzlibrary{calc}
但当我尝试预览/导出为 pdf 时,我收到上面复制的错误。有人能帮我吗?谢谢!
答案1
当将内容复制粘贴到 ERT 中时,换行符不会被保留。因此,% Two node styles ..
TeX 看不到后面的所有内容,它只能看到前面的,\end{document}
从而\tikzstyle{
导致错误。要粘贴保留换行符的文本,请使用编辑 --> 选择性粘贴 --> 纯文本(快捷键Ctrl+ Shift+ V),请参阅此旧错误报告:http://www.lyx.org/trac/ticket/6821
另一种方法是将代码片段保存在新.tex
文件中,然后使用插入 --> 文件 --> 子文档插入,设置输入作为包含类型。