lyx 中程序列表内的交叉引用行号

lyx 中程序列表内的交叉引用行号

我正在尝试使用 lyx 在程序列表中交叉引用程序代码行号。据我所知,程序列表中的标签和 ERT 均被禁用,但我不确定原因。

我知道在常规 latex 中,你可以在程序列表中添加标签,但在 lyx 中它似乎被禁用了。请参阅: ftp://ftp.tex.ac.uk/tex-archive/macros/latex/contrib/listings/listings.pdf

除非我忽略了某些显而易见的东西,否则互联网似乎对这个问题毫无帮助。有什么想法吗?

答案1

看起来你不能使用 LyX 的系统来管理列表内的标签和交叉引用,但你仍然可以通过手动编写标签并使用例如\ref{labelname}在 ERT 中来引用行。

基本上,您只需按照手册第 7 章中描述的操作即可:

  1. 转到文档 --> 设置 --> 列表,添加

    escapeinside={*@}{@*}
    

    listings参数。现在,您在列表之间*@@*列表内部写入的任何内容都将被读取并作为 LaTeX 代码执行,而不是逐字打印。

    您也可以使用其他分隔符,这只是一个示例。

  2. 在列表中,写入

    *@\label{mylinelabel}@*
    

    在您想要引用的行上。

  3. 要引用该行,请添加 ERT 并写入\ref{mylinelabel}。这将仅打印行号。如上所述,这些标签不会显示在 LyX 的标签列表中,因此您必须手动执行此操作。

以下是它在 LyX 中显示方式的一个示例:

在此处输入图片描述

相关内容