我创建了一个自定义引用,但我想使用交叉引用来引用该自定义引用。当我想引用它时,我希望它显示F/R 1
,F/R 1.1
或者F/R 1.1.1
当我交叉引用自定义计数器时。我该怎么做?
\newcounter{thephase} \setcounter{thephase}{0}
\newcounter{thesubphase}[thephase] \setcounter{thesubphase}{0}
\newcounter{thesubsubphase}[thesubphase] \setcounter{thesubsubphase}{0}
\newcommand{\phase}[1]{\refstepcounter{thephase}\textbf{F/R \arabic{thephase}}}
\newcommand{\subphase}[1]{\refstepcounter{thesubphase}\textbf{F/R \arabic{thephase}.\arabic{thesubphase}}%
}
\newcommand{\subsubphase}[1]{\refstepcounter{thesubsubphase}\textbf{F/R \arabic{thephase}.\arabic{thesubphase}.\arabic{thesubsubphase}}%
}
答案1
我对这个问题的解释的一个例子:
\documentclass{article}
\newcounter{phase}
\renewcommand*{\thephase}{F/R~\arabic{phase}}
\newcounter{subphase}[phase]
\renewcommand*{\thesubphase}{\thephase.\arabic{subphase}}
\newcounter{subsubphase}[subphase]
\renewcommand*{\thesubsubphase}{\thesubphase.\arabic{subphase}}
\newcommand*{\phase}[1]{%
\leavevmode
\refstepcounter{phase}%
\label{#1}%
\textbf{\thephase}%
}
\newcommand*{\subphase}[1]{%
\leavevmode
\refstepcounter{subphase}%
\label{#1}%
\textbf{\thesubphase}%
}
\newcommand*{\subsubphase}[1]{%
\leavevmode
\refstepcounter{subsubphase}%
\label{#1}%
\textbf{\thesubsubphase}%
}
\begin{document}
\phase{A} First phase.
\subphase{B} First subphase.
\subsubphase{C} First subsubphase.
References:
\ref{A}, \ref{B}, \ref{C}
\end{document}
结果:
前/后 1第一阶段。
前/后 1.1第一子阶段。
前/后 1.1.1第一子阶段。
参考文献:F/R 1, F/R 1.1, F/R 1.1.1
评论:
我简化了计数器名称,它们使用不同的命名空间作为宏,因此计数器
phase
和\phase
是不同的实体。计数器有一个附带的宏
\the<counter>
,用于显示计数器值及其参考。通过使用父计数器,计数器显示的定义
\thesubphase
和得到了简化。\thesubsubphase
\leavevmode
确保段落已经开始避免\refstepcounter
在前一页移动到垂直模式而不是设置的文本\textbf
。宏的参数在问题中没有使用。也许,它是用于交叉引用标签名称,请参阅示例文件。
交叉引用与
\label
(已存在于\phase
宏中)和\ref
和一样工作\pageref
。