有没有办法自动从 tex 文件制作交叉引用的“地图”?

有没有办法自动从 tex 文件制作交叉引用的“地图”?

我的项目有几个 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}

相关内容