我想使用\autoref
LyX 中的函数,这样当我引用带标签的图形或定理时,它会被排版为“图形 #”或“定理 #”。根据这个答案,我可以使用\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>)”:
答案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 中获取大写交叉引用)。