参数未在 \label{} 中解析

参数未在 \label{} 中解析

我试图创建一个自动标记功能,但是它不起作用,我能够将问题分解为以下几行:

\newcommand{\foo}[1]{\label{fooref:#1}}

看起来 latex 没有将 #1 解析为参数:当我使用时,\foo{picture}有一个名为的链接fooref:#1而不是fooref:picture

答案1

这是一个设置两个用户宏的解决方案:\mylab\myref。通过调用创建的标签的默认前缀字符串\mylabel设置为“fooref”。可以通过为\mylab和提供可选参数来覆盖此前缀\myref

在此处输入图片描述

\documentclass{article}
\newcommand{\mylab}[2][fooref]{\label{#1:#2}}
\newcommand{\myref}[2][fooref]{\ref{#1:#2}}

\begin{document}
\section{hello} \mylab{stuff} % label string is 'fooref:stuff'

\setcounter{equation}{7} % just for this example
\begin{equation} \mylab[zzz_ref]{euler} % label string is 'zzz_ref:euler'
   e^{i\pi}-1=0
\end{equation}

A cross-reference to section \myref{stuff}.

A cross-reference to equation \myref[zzz_ref]{euler}.
\end{document}

相关内容