如何在练习环境中通过文本标签引用问题

如何在练习环境中通过文本标签引用问题

我正在使用锻炼包,如下例所示:

\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 ) 命令来完成:Exerciseexercise\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}

在此处输入图片描述

相关内容