我曾尝试过另一个问题但我无法让它工作。我的问题是:如何根据参考是否存在来打印文本?
我尝试了以下方法:
\usepackage{etoolbox}
\usepackage{xparse}
...
\NewDocumentCommand\calledName{m}{%
\ifcsundef{r@KN:#1}{\ref{FN:#1}}{\ref{KN:#1}}%
}
答案1
\@ifundefined
这是使用核心功能的一种方法latex.ltx
。
如果标签KN:#1
未定义,则FN:#1
使用对的引用(或至少尝试这样做)。
另一种方法是使用包\getrefnumber
等refcount
。
\documentclass{article}
\makeatletter
\newcommand\calledName[1]{%
\@ifundefined{r@KN:#1}{%
\ref{FN:#1}%
}{%
\ref{KN:#1}%
}%
}
\makeatother
\begin{document}
\section{Foo} \label{KN:foostuffwrong}
\section{OtherFoo} \label{FN:foostuff}
\calledName{foostuff}
\calledName{stuff}
\calledName{foostuff}
\end{document}