как определить ярлык в новой среде?

как определить ярлык в новой среде?

Я хотел бы определить новую среду для написания упражнений. Кроме того, я хотел бы использовать \refи \namerefhyperrefпакетом) для построения таблицы номеров упражнений и названий. Я написал следующий файл. Он \refработает хорошо (он дает мне номер упражнения), но \namerefдает мне название раздела вместо названия упражнения

\documentclass{article}
\usepackage{hyperref}

\newcounter{exo}
\newenvironment{exo}[1]%
{\refstepcounter{exo}\vspace{0.5cm}\noindent
{\begin{large}\bfseries{Exercice \theexo~: #1} \end{large}} \par}
{\par\vspace{0.5cm}}

\begin{document}
A small example

\section{First degree}
\begin{exo}{First degree equation}\label{exo:first_degree}
Solve the equation~:\[ x+7 = -9 \: . \]
\end{exo}

\section{Second degree}
A little harder\ldots

\begin{exo}{Second degree equation}\label{exo:second_degree}
solve the equation~:\[ x^2 - 2x -3 =0 \: . \]
\end{exo}

\begin{exo}{Another exercise}\label{exo:other_exercise}
solve this equation:\[ -3x^2 +7x-64=0 \: .\]
\end{exo}

And here is a table of the exercices:

\begin{tabular}{|c | c|}
\hline
Number & tile \\
\ref{exo:first_degree} & \nameref{exo:first_degree}\\
\ref{exo:second_degree} &\nameref{exo:second_degree}\\
\ref{exo:other_exercise} &\nameref{exo:other_exercise}\\
\hline
\end{tabular}

\end{document}

решение1

\documentclass{article}
\usepackage{hyperref}

\newcounter{exo}
\makeatletter
\newenvironment{exo}[1]%
{\refstepcounter{exo}%
\protected@edef\@currentlabelname{#1}% addition here
\vspace{0.5cm}\noindent
{\large\bfseries{Exercice \theexo~: #1} \par}
{\par\vspace{0.5cm}}}
\makeatother

\begin{document}
A small example

\section{First degree}
\begin{exo}{First degree equation}\label{exo:first_degree}
Solve the equation~:\[ x+7 = -9 \: . \]
\end{exo}

\section{Second degree}
A little harder\ldots

\begin{exo}{Second degree equation}\label{exo:second_degree}
solve the equation~:\[ x^2 - 2x -3 =0 \: . \]
\end{exo}

\begin{exo}{Another exercise}\label{exo:other_exercise}
solve this equation:\[ -3x^2 +7x-64=0 \: .\]
\end{exo}

And here is a table of the exercices:

\begin{tabular}{|c | c|}
\hline
Number & tile \\
\ref{exo:first_degree} & \nameref{exo:first_degree}\\
\ref{exo:second_degree} &\nameref{exo:second_degree}\\
\ref{exo:other_exercise} &\nameref{exo:other_exercise}\\
\hline
\end{tabular}

\end{document}

Связанный контент