我正在使用一个自定义计数器,它会不时地增加:
\newcounter{MyCounter}[subsection]
\newcommand{\stepTheCounter}{%
% do stuff, whatever
\refstepcounter{MyCounter}
}
然后,如果我\label{someLabel}
在某个地方使用,我希望能够有一个自定义命令\theReference{someLabel}
,这样如果我有一行像这样Lorem ipsum dolor \theReference{someLabel} sit amet
,它会显示类似的内容
Lorem ipsum 痛苦
X
。Y
。Z
(页面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
计数器将为零)。