Tikz 代码在 LyX 中不起作用但在纯 Tex 中起作用

Tikz 代码在 LyX 中不起作用但在纯 Tex 中起作用

我正在尝试在我的 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文件中,然后使用插入 --> 文件 --> 子文档插入,设置输入作为包含类型

相关内容