假设您正在编写一个结构相当严谨的文档,例如软件包的文档或描述许多实验的复合论文。您可能会遇到多余的章节标题,例如方法。包含“元”信息(例如)\label{sec:methods}
将防止标签methods
具有不同范围(例如fig
、、等)时的冗余和混淆。但是,当标签ch
共享sec
相同范围时情况并非如此,例如
\chapter{experiment one}\label{ch:experiment-one}
\section{methods}\label{sec:methods}
\chapter{experiment two}\label{ch:experiment-two}
\section{methods}\label{sec:methods}
因此,我的问题是,当然要遵循 LaTeX 惯例,如何处理这个问题?我应该简单地添加封装元素吗?例如
\section{methods}\label{ch:experiment-one_sec:methods}
答案1
只是为了好玩:引用包含另一个引用的标签。
\documentclass{report}
\usepackage{fancyref}
\usepackage{refcount}% or hyperref
\newcounter{methods}
\begin{document}
\chapter{experiment one}\label{ch:experiment-one}
\section{methods}\label{sec:methods.\thechapter}
See \ref{sec:methods.\getrefnumber{ch:experiment-one}} and \ref{sec:methods.\getrefnumber{ch:experiment-two}}.
\chapter{experiment two}\label{ch:experiment-two}
\stepcounter{methods}%
\section{methods}\label{sec:methods.\thechapter}
\end{document}