在 LyX 中插入代码列表时出现 LaTeX 错误

在 LyX 中插入代码列表时出现 LaTeX 错误

我目前正在使用 LyX 制作演示文稿。在代码列表中插入一些 XML 代码后,出现以下错误:

Paragraph ended before \lst@next was complete.
Paragraph ended before \lst@next was complete.
LaTeX Error: \begin{lstlisting} on input line 228 ended by \end{beamer@framep
Missing } inserted.
Extra }, or forgotten \endgroup.

有什么问题?我是否需要转义某些字符或类似的东西?我对 LyX 还很陌生。

编辑:

这是一小段代码。因为我正在使用 LyX,所以生成的代码看起来有点混乱,我想。我希望你能读懂它。

\begin_layout BeginFrame
\lang english
Güte der Ergebnisse
\end_layout
\begin_layout Standard
\lang english
\begin_inset listings
inline false
status open
\begin_layout Plain Layout
<server> 
\end_layout
\begin_layout Plain Layout
<name>MyServer</name> 
\end_layout
\begin_layout Plain Layout
<version>1</version> 
\end_layout
\begin_layout Plain Layout
<functionality>0</functionality> 
\end_layout
\begin_layout Plain Layout
<platform>Win</platform> 
\end_layout
\begin_layout Plain Layout
</server> 
\end_layout
\begin_layout Plain Layout
</ddsml> 
\end_layout
\end_inset
\end_layout
\begin_layout EndFrame
\start_of_appendix
\end_layout

答案1

也许这应该是对 egregs 答案的评论,但它有点长。

我搜索了一下,发现有一个用于创建脆弱框架的模块在 LyX wiki 中。我不知道如何安装模块,但我猜想该信息也可以在 LyX wiki 中找到。

另一种方法是使用 ERT(来源):

  1. Ctrl不要像 LyX 那样开始一个新框架,而是通过按+L或选择“插入 --> TeX 代码”来添加 TeX 代码框或 ERT 。在此框中,您可以写入

    \begin{frame}[fragile]
    \frametitle{Title of the frame}
    
  2. 添加列表。

  3. 最后第二个 ERT

    \end{frame}
    

答案2

我不知道如何在 LyX 中做到这一点,但包含“逐字”材料(例如环境)的框架lstlisting应声明为fragile

\begin{frame}[fragile]
...
\begin{lstlisting}
...
\end{lstlisting}

\end{frame}

答案3

在 LyX 2.1 中,您无需直接输入 LaTeX 代码即可实现正确处理脆弱元素的框架。

只需选择框架并按Alt+ A 3。新字段“选项”应出现在您输入 的位置fragile。或者,右键单击框架“标题”,然后选择框架选项

答案4

请按如下方式使用:

Ctrl-L插入 LaTeX 代码的框架

\defverbatim\lst{%
\begin{lstlisting}
your xml code}
\end{lstlisting}
}

在框架内部也应该有列表应该出现的Ctrl-L命令。\lst

相关内容