引用自定义计数器交叉引用

引用自定义计数器交叉引用

我创建了一个自定义引用,但我想使用交叉引用来引用该自定义引用。当我想引用它时,我希望它显示F/R 1F/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

相关内容