我正在尝试使用 lyx 在程序列表中交叉引用程序代码行号。据我所知,程序列表中的标签和 ERT 均被禁用,但我不确定原因。
我知道在常规 latex 中,你可以在程序列表中添加标签,但在 lyx 中它似乎被禁用了。请参阅: ftp://ftp.tex.ac.uk/tex-archive/macros/latex/contrib/listings/listings.pdf
除非我忽略了某些显而易见的东西,否则互联网似乎对这个问题毫无帮助。有什么想法吗?
答案1
看起来你不能使用 LyX 的系统来管理列表内的标签和交叉引用,但你仍然可以通过手动编写标签并使用例如\ref{labelname}
在 ERT 中来引用行。
基本上,您只需按照手册第 7 章中描述的操作即可:
转到文档 --> 设置 --> 列表,添加
escapeinside={*@}{@*}
到
listings
参数。现在,您在列表之间*@
和@*
列表内部写入的任何内容都将被读取并作为 LaTeX 代码执行,而不是逐字打印。您也可以使用其他分隔符,这只是一个示例。
在列表中,写入
*@\label{mylinelabel}@*
在您想要引用的行上。
要引用该行,请添加 ERT 并写入
\ref{mylinelabel}
。这将仅打印行号。如上所述,这些标签不会显示在 LyX 的标签列表中,因此您必须手动执行此操作。
以下是它在 LyX 中显示方式的一个示例: