![关于 \label 和 fancyref 的风格问题:如何处理冗余?](https://linux22.com/image/345437/%E5%85%B3%E4%BA%8E%20%5Clabel%20%E5%92%8C%20fancyref%20%E7%9A%84%E9%A3%8E%E6%A0%BC%E9%97%AE%E9%A2%98%EF%BC%9A%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E5%86%97%E4%BD%99%EF%BC%9F.png)
假设您正在编写一个结构相当严谨的文档,例如软件包的文档或描述许多实验的复合论文。您可能会遇到多余的章节标题,例如方法。包含“元”信息(例如)\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}