如何在 Lyx 中轻松插入 Matlab 代码

如何在 Lyx 中轻松插入 Matlab 代码

我有一个包含 Matlab 代码的 .m 文件,我想将其粘贴到 Lyx 中。我该如何轻松完成此操作?

答案1

我建议使用该matlab-prettifier包(参见https://tex.stackexchange.com/a/158816/586),这实际上只是为listings包提供了一种样式。这将为您提供 Matlab 代码的良好突出显示,同时仍使您能够使用 LyX 中与代码列表相关的内置内容(如果您愿意的话)。

要使用该包,请执行以下两个步骤:

  1. 文档 --> 设置 --> LaTeX 序言:添加

    \usepackage{matlab-prettifier}
    
  2. 文档 --> 设置 --> 列表:添加

    style=Matlab-editor
    

现在,有两种不同的方法可以将代码导入 LyX。要么直接输入文件,要么从 Matlab 复制粘贴代码:

输入文件

在您的文档中,执行插入 --> 文件 --> 子文档。选择程序列表作为“包含类型”,单击浏览按钮,找到.m要包含的:

在 LyX 中插入子文档对话框

如果愿意,您可以立即编写标题和标签,或者稍后通过右键单击插图并选择设置来执行此操作。

复制粘贴代码

如果您确实想将代码复制粘贴到列表中(使用插入 --> 程序列表或 ERT 制作),关键是您需要使用特殊粘贴Ctrl++或 编辑 --> 选择性粘贴 --> 纯文本。如果不这样做,代码中的换行符将不会被保留ShiftV

对于代码环境,您可以使用马克·佩斯的代码直接在 ERT 中,或者您可以使用“插入”-->“程序列表”,它会插入一个lstlisting环境,就像 Mark 的代码一样。如果您在该插入中单击鼠标右键并选择“设置”,

访问 LyX 中代码列表插入的设置对话框

您可以调整一些内容。要调整设置对话框第一个选项卡中不可用的设置,请转到先进的选项卡,并将它们作为键=值对写入右侧面板中。这包括标题和标签等内容。

这里有一点需要注意:如果您使用此方法插入带有标题的列表,您将无法在 LyX 的交叉引用系统中访问该标签。也就是说,如果您执行插入 --> 交叉引用,代码列表将不是显示在标签列表中。另一方面,将显示子文档列表。(您可以通过在 LyX 注释中通过插入 --> 标签添加新标签来规避这种情况,使用插入 --> 注释 --> LyX 注释创建,但这更麻烦。)

答案2

怎么样

\usepackage{listings}
...
\lstinputlisting[language=Matlab]{//--PATH--//YourNameHere.m}

但我宁愿使用:

\begin{lstlisting}
[
language=Matlab
,caption={CAPTION}
,label=LABEL]
%%%%% COPY CODE HERE %%%%%
\end{lstlisting}

相关内容