关于 \label 和 fancyref 的风格问题:如何处理冗余?

关于 \label 和 fancyref 的风格问题:如何处理冗余?

假设您正在编写一个结构相当严谨的文档,例如软件包的文档或描述许多实验的复合论文。您可能会遇到多余的章节标题,例如方法。包含“元”信息(例如)\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}

相关内容