我的项目有几个 tex 文件(一个主文件和每个章节一个文件)。每个章节都有子部分(章节、子部分)。我使用 \label 和 \ref 进行多次交叉引用。到目前为止,我一直在手动跟踪哪个 [sub]section 指向哪个其他章节/[sub]section。
是否有一个程序(或者甚至是我可以编译的第二个 tex 文件)可以读取所有 tex 文件并为我提供这些交叉引用的“地图”(当然可以是文本而不是图形)?
答案1
这个想法todonotes
只是采用分段思考,但可能也可以适用于检查浮点数的交叉引用而不会出现太多问题。
% need at least two runs !!
\documentclass{scrartcl}
\usepackage{geometry}
\usepackage{lipsum} % for dummy text
\usepackage[colorlinks,linkcolor=blue]{hyperref}
\usepackage[colorinlistoftodos, size=tiny]{todonotes}
% add "disable" to hide cross-references !
\setuptodonotes{fancyline, color=blue!30,shadow}
\def\myref#1{\todo{Reference to \ref{#1}
\nameref{#1} (label \texttt{#1}) in \currentname}\ref{#1}}
\def\mylabel#1{\todo[color=red!30]{Label \texttt{#1} in \currentname}\label{#1}}
\usepackage{nameref}
\makeatletter
\newcommand*{\currentname}{\@currentlabelname}
\makeatother
\begin{document}
\tableofcontents
% in real documents, better at the end:
\listoftodos[Cross References and Labels]
\section{Introduction}
\mylabel{foo}
\lipsum[1][1-3] See in \myref{bar}.
\lipsum[2][1-3] See \myref{ssbar}.
\lipsum[3-6]
\subsection{Economic Impact}
\mylabel{sfoo}\lipsum[1-5] See section \myref{foo}
\subsubsection{Objectives}
\mylabel{ssbar}\lipsum[1-5]
\section{Discussion}
\mylabel{bar}\lipsum[1-5] See section \myref{foo}
\end{document}