在 \label 内扩展

在 \label 内扩展

有没有办法在标签内使用宏\label

\edef\num{1}
\label{test\num}
\ref{test1}

答案1

以下工作符合预期:

\documentclass[a4paper]{article}

\begin{document}
\def\NUM{1}
\section{X}\label{sec:\NUM}

This is section~\ref{sec:\NUM} or is it section~\ref{sec:1}?
\end{document}

如果我加载 hyperref,它的工作方式相同。请注意,使用\NUM\edef进行定义\def完全相同。

答案2

如果在调度扩展时出现问题,您可以\expandafter在将宏传递给之前使用它来扩展宏\label

\def\num{1}
\def\labeltext{{test\num}}
\expandafter\label\labeltext
\ref{test1}

相关内容