检查宏参数是否具有特定前缀

检查宏参数是否具有特定前缀

我正在写一篇数学论文,我有一些宏,它们以定理、推论等的标签作为参数。我想知道,有没有办法检查标签是否以特定前缀开头?

也就是说,\reftitle对 执行“定理” \reftitle{thm:122}、对 执行“推论” \reftitle{cor:124}、对 执行“陈述”的命令\reftitle{stmt:122}

这个想法是宏需要检查参数是否以corthm等开头。

我对 LaTeX 中的宏还不太熟悉,但我不知道该怎么做。有人有什么想法吗?

答案1

在此处输入图片描述

\def\reftitle#1{\xreftitle#1:\relax}
\def\xreftitle#1:#2\relax{%
\def\tmp{#1}%
\def\tmpb{thm}\ifx\tmp\tmpb Theorem\fi
\def\tmpb{cor}\ifx\tmp\tmpb Corollary\fi
}




a \reftitle{thm:foo}

b \reftitle{cor:foo}

c \reftitle{foo}

然而,与其依赖标签前缀,也许更好的方法是记录在引用时自动引用的单元类型\label(例如 hyperref 所做的那样)

相关内容