我正在使用锻炼包,如下例所示:
\begin{Exercise}[
title={blah},
label={modernOpticsLecture2:pr2}
]
foo
\end{Exercise}
我可以通过执行以下操作来引用此问题:
In \ref{modernOpticsLecture2:pr2} we show that
显示 2.2 超链接:
In 2.2 we show that
但希望参考文献包含更多一些文字(即以练习为前缀),如下所示:
In Exercise 2.2 we show that
现在我只是在前面加上了\ref
文字“Exercise”,但注意到在我的 .aux 文件中我有类似这样的内容:
\newlabel{modernOpticsLecture2:pr2}{{2.2}{38}{Problems\relax }{Exercise.2.2}{}}
这似乎意味着可能有一种方法可以Exercise.2.2
通过使用此命令编码的 .aux 文件中隐藏的名称直接引用它\newlabel
。
我想知道那该怎么做?
答案1
这cleveref
包会自动生成这种格式以用于交叉引用。\ref
现在,您不再使用 ,而是使用\cref
(或\Cref
放在句子开头)。
您必须从包中cleveref
了解环境;这可以使用(for ) 和(for ) 命令来完成:Exercise
exercise
\crefname
\cref
\Crefname
\Cref
\crefname{<type>}{<singular>}{<plural>}
\Crefname{<type>}{<singular>}{<plural>}
举个小例子:
\documentclass{article}
\usepackage{exercise}
\usepackage{cleveref}
\crefname{Exercise}{Exercise}{Exercises}
\Crefname{Exercise}{Exercise}{Exercises}
\begin{document}
The reader is asked to demonstrate this fact in~\cref{modernOpticsLecture2:pr2}.
\begin{Exercise}[
title={Some exercise},
label={modernOpticsLecture2:pr2}
]
Test exercise
\end{Exercise}
\end{document}