\ref{something}
有没有一种简单的方法来打印每个旁边包含的页码\label{something}
?
(我一直在写一篇长文,想知道是否有些陈述不再需要了。)
答案1
检查标签参考对应关系的一个选项是showlabels
:
\documentclass{article}
\usepackage[inline]{showlabels}
\usepackage{xcolor}
\showlabels{ref}
\renewcommand{\showlabelfont}{\color{red}}
\begin{document}
\section{foo}
Hello \label{foo} world.
\section{bah}
Hello word (see section \ref{foo})
\end{document}
要查找没有标签的参考文献,只需使用 即可hyperref
轻松注意到是否有链接的红色文本(带标签的参考文献),或者搜索??
文档中的符号(没有标签的参考文献)。对于相反的情况(没有任何参考文献的标签),您可以使用refcheck
,它也会显示标签,但那些未使用的标签会用问号突出显示:示例:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{refcheck}
\begin{document}
\section{foo}
Hello \label{foo} world. % label with ref
\section{bah}
Hello word (see section \ref{foo}) % ref with label
\section{baz}
\label{baz} % label without ref
Hello word
\section{whatever}\label{xyz}
Hello word \ref{whatever} % ref without label
\section{xyz}\label{xyz}
Hello word (see section \ref{xyz})
\end{document}
另一方面,查看.log
文件!
例如,如果你添加\ref{baz}
不带相应的 \label{baz},你会看到类似的内容:
LaTeX Warning: Reference `baz' on page 1 undefined on input line 12.
...
LaTeX Warning: There were undefined references.
它还会警告您重复的标签:
LaTeX Warning: Label `xyz' multiply defined.
而showlabels
和refcheck
只是显示两次标签,但在大型文档中可能很难注意到重复项。
编辑
要列出每个标签和参考文献所在的页码,可以使用包todonotes
,但是请注意其中三个是否是未使用的标签或孤立参考文献:
\documentclass{article}
\usepackage[colorinlistoftodos]{todonotes}
\let\oldref\ref
\let\oldlabel\label
\renewcommand\ref[1]{\todo[fancyline,color=cyan!30]{R: #1}\oldref{#1}}
\renewcommand\label[1]{\todo[fancyline,color=red!30]{L: #1}\oldlabel{#1}}
\begin{document}
\section{foo}
Hello \label{foo} world. % label with ref
\section{bah}
Hello word (see section \ref{foo}) % ref with label
\section{baz}
\label{baz} % label without ref
Hello word
\section{whatever}\label{xyz}
Hello word \ref{whatever} % ref without label
\section{xyz}\label{xyz}
Hello word (see section \ref{xyz})
\listoftodos[List of labels and references]
\end{document}