在处理文档时,如果不是未解析的参考或引文而出现或?
中使用的标签,那将会很有帮助。\ref{thisthings}
\cite{Bloke1978}
是否有一个包可以启用这种行为?
答案1
除了重新定义\cite
或连接命令之外,还可以考虑使用showkeys
将打印的包每一个钥匙和标记每一个使用\label
,以便在准备文档期间可以很容易地检查交叉引用。
这有一个缺点:使用或不使用包时,行和分页符可能会有所不同。但是,当我们撰写手稿时,行和分页符并不是什么大问题。在完成项目时,只需注释掉对的调用showkeys
:此时交叉引用应该没问题。
答案2
即使没有这个包,也可以很容易地借助etoolbox
包。但是,如果某个包以不兼容的方式重新定义命令,则这可能会失败。
\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@setref}{\bfseries ??}{[\texttt{#3}]}{}{%
\GenericWarning{}{Failed to patch \protect\@setref}}
\patchcmd{\@citex}{\bfseries ?}{\texttt{\@citeb}}{}{%
\GenericWarning{}{Failed to patch \protect\@citex}}
\makeatother
\begin{document}
\ref{undefined},\pageref{undefined},\cite{undefined}
\end{document}