LyX 中的交叉引用

LyX 中的交叉引用

我想使用\autorefLyX 中的函数,这样当我引用带标签的图形或定理时,它会被排版为“图形 #”或“定理 #”。根据这个答案,我可以使用\ref以下命令重新定义该命令\autoref

\let\ref\autoref

在文档的开头。然而,这会产生一个问题:当我引用一个方程式时,它显示为“(Equation #)”。这是因为 LyX 不使用\eqref{eq_label},而是(\ref{eq_label})使用 来引用方程式。

所以我的问题是:有没有办法配置 LyX 以便它用来\eqref引用方程式、\autoref引用图形、定理等。

我正在使用article文档类和 MikTeX 分布。

答案1

使用\autoref实际上更简单,并且具有很好的优势!由于“类型名称”包含在可点击区域中,因此可点击超链接的区域更大(见下面的示例)。

为此,我们在 LyX Preamble 中插入以下代码。

\AtBeginDocument{%
\let\ref\autoref
\renewcommand\equationautorefname{\@gobble}
}

该命令\renewcommand\equationautorefname{\@gobble}用于删除公式引用中的单词“Equation~”。示例中使用了样式“Reference”和“(<Reference>)”:

lyx 文档 输出

答案2

此类交叉引用可以在 LyX 中生成,无需\autoref。 LyX 在内部使用该refstyle包。 只需将图形、定理等引用的样式更改为“格式化引用”,并使用“(<Reference>)”引用方程式。 请注意,正确的标签前缀(例如thm:fig:)很重要。 以下是一个示例(启用了“hyperref”包支持):

在此处输入图片描述

在此处输入图片描述

在此示例中,我们还将类型名称开头的小写字母更改为大写字母,例如图 1 到图 1。这是通过修改 中的参考样式设置来实现的\newref{...}{...}。我们在 LyX 序言中添加以下内容:

\newref{fig}{%
    name      = \RSFigtxt,  
    names     = \RSFigstxt,
    Name      = \RSFigtxt,
    Names     = \RSFigstxt,
    rngtxt    = \RSrngtxt,
    lsttwotxt = \RSlsttwotxt,
    lsttxt    = \RSlsttxt}

如果没有使用关于引用操作的附加包(例如“cleveref”),那么这一行\newref{fig}{name = \RSFigtxt}可能就足够了。——如果“refstyle”包不知道环境,我们需要另外定义一个新命令。例如,对于定理,LyX 已经提供了\RSthmtxt。但我们在 LyX 序言中添加了以下内容:

\def\RSThmtxt{Theorem~}

(也可以看看:Lyx 2.0 定理/引理/主张环境的格式化引用

如何实现更深层次的变革?

如果一个人用英语以外的语言写作,他希望参考文献用母语而不是英语。默认情况下,“refstyle”包中有一些翻译可供选择。否则,将文件“refstyle.cfg”从您的 TeX 树(可能是:“tex/latex/refstyle/refstyle.cfg”)复制到“.lyx”文件的目录中,并将其重命名为“refstyle.def”。您可以根据自己的喜好修改此文件。请参阅“refstyle”包文档(或者也可以如何使用 refstyle 在 LyX 中获取大写交叉引用)。

相关内容