第一种方式

第一种方式

我正在使用一个自定义计数器,它会不时地增加:

\newcounter{MyCounter}[subsection]
\newcommand{\stepTheCounter}{%
    % do stuff, whatever
    \refstepcounter{MyCounter}
}

然后,如果我\label{someLabel}在某个地方使用,我希望能够有一个自定义命令\theReference{someLabel},这样如果我有一行像这样Lorem ipsum dolor \theReference{someLabel} sit amet,它会显示类似的内容

Lorem ipsum 痛苦XYZ(页面W) sit amet

其中X是章节编号,Y是小节编号,Z是从 获得的值\ref{someLabel}W是从 获得的值\pageref{someLabel}

事情是这样的:一个\pageref命令,但(据说?)没有\etionref命令\subsectionref。但我觉得应该是普通的能够轻松实现这一目标...

TeXExchange 上打开的所有线程都对我没帮助...谢谢大家的友好回复!

答案1

根据您想做的事情,我建议两种方法\theMyCounter

第一种方式

如果要\theMyCounter打印普通计数器数字,可以使用:

\documentclass{article}

\newcounter{MyCounter}
\labelformat{MyCounter}{\thesubsection.#1}

\newcommand{\stepTheCounter}{%
 % do stuff, whatever
 \refstepcounter{MyCounter}%
}
\newcommand*{\myRef}[1]{\ref{#1} (page~\pageref{#1})}

\begin{document}

\section{First section}
\subsection{A subsection}

Foo bar.\stepTheCounter\label{first}
\verb|\theMyCounter| yields \theMyCounter.
The second use of \verb|\stepTheCounter| is \myRef{second}.
\newpage

\section{Second section}
\subsection{A subsection}

Bla. \stepTheCounter\label{second}
\verb|\theMyCounter| yields \theMyCounter.
The first use of \verb|\stepTheCounter| is \myRef{first}.

\end{document}

在此处输入图片描述

...

在此处输入图片描述

第二种方式

如果您希望\theMyCounter打印类似 2.1.2 的内容(假设\stepTheCounter前面的调用\label位于第 2 节第 1 小节),则只需替换该行:

\labelformat{MyCounter}{\thesubsection.#1}

和:

\renewcommand{\theMyCounter}{\thesubsection.\arabic{MyCounter}}

输出如下。

在此处输入图片描述

...

在此处输入图片描述

当然,您可能希望在小节内调用这些(如果您\stepTheCounter在节内使用但不在小节内使用,则subsection计数器将为零)。

相关内容