更改 \ref 中的数字格式

更改 \ref 中的数字格式

我第一次在 newenvironment 中使用自定义计数器,不太明白其中的细微差别。到目前为止,我遇到的唯一问题是,当我使用\ref它时,它会得到我想要的数字,但不是我想要的格式。我希望引用具有与原始编号相同的格式。在这个 MWE 中,注释掉的行具有我想要的格式。获得它的正确方法是什么?

\documentclass[12pt]{article}
% problem numbering
\newcounter{pcntr} % count the problems
\newenvironment{Problems}{ 
    \begin{list}{\textbf{\alph{pcntr})~}}{\usecounter{pcntr}}
}{
    \end{list}
}

% problem referencing
%\newcommand{\qref}[1]{part~\textbf{\alph{\ref{#1}})}}
\newcommand{\qref}[1]{part~\textbf{\ref{#1})}}



\begin{document}

\begin{Problems}
\item \label{prb:test1} Blah blah blah
\item \label{prb:test2} As we saw in \qref{prb:test1}, \dots
\item \label{prb:test3} Also, \qref{prb:test2} is quite interesting.

\end{Problems}
\end{document}

答案1

\thepcntr正确定义后使用。

\documentclass[12pt]{article}

% problem numbering
\newcounter{pcntr} % count the problems
\renewcommand{\thepcntr}{\alph{pcntr}}

\newenvironment{Problems}
 {\begin{list}{\textbf{\thepcntr)~}}{\usecounter{pcntr}}}
 {\end{list}}

% problem referencing
\newcommand{\qref}[1]{part~\textbf{\ref{#1})}}



\begin{document}

\begin{Problems}
\item \label{prb:test1} Blah blah blah
\item \label{prb:test2} As we saw in \qref{prb:test1}, \dots
\item \label{prb:test3} Also, \qref{prb:test2} is quite interesting.

\end{Problems}
\end{document}

在此处输入图片描述

答案2

enumitem您可能希望使用和包的功能cleveref来实现您的格式化目标。

在此处输入图片描述

使用的优点\cref是您可以一次交叉引用多个项目(“部分”)。例如,写出来\Cref{prb:test2,prb:test1} are both quite interesting.会得到“部分 a) 和 b) 都相当有趣。”

\documentclass[12pt]{article}

\usepackage{enumitem}
\newlist{Problems}{enumerate}{1} % define a new enumerate-like environment
\setlist[Problems]{label=\bfseries\alph*)}

\usepackage{cleveref}
\crefname{Problemsi}{part}{parts} % prefix for cross-references

\begin{document}

\begin{Problems}
\item \label{prb:test1} Blah blah blah
\item \label{prb:test2} As we saw in \cref{prb:test1}, \dots
\item \label{prb:test3} Also, \cref{prb:test2} is quite interesting.
\end{Problems}
\end{document}

相关内容