我正在写一篇使用classicthesis.sty
样式的论文。这篇论文汇集了一系列论文,并将它们作为单独的章节(所有章节都包含在内main.tex
)。两篇或多篇论文中的一些图表、章节、表格等标签相同,将它们放在一起会产生问题。我想找到一种解决这个问题的简洁方法。
答案1
基于\ref
论文中每个 s 仅引用\label
论文本身中的 s 的假设,您可以引入\label
前缀以使引用唯一:
\documentclass{article}
\AtBeginDocument{% ...if you're using hyperref
\let\oldlabel\label% Copy original version of \label
\let\oldref\ref% Copy original version of \ref
}
\newcommand{\addlabelprefix}[1]{%
\renewcommand{\label}[1]{\oldlabel{#1-##1}}% Update \label
\renewcommand{\ref}[1]{\oldref{#1-##1}}% Update \ref
}
\newcommand{\removelabelprefix}{%
\renewcommand{\label}{\oldlabel}% Restore \label
\renewcommand{\ref}{\oldref}% Restore \ref
}
\begin{document}
% Hypothetical first paper
\section{A section}\label{sec:section}
See section~\ref{sec:section}.
% Hypothetical second paper
\addlabelprefix{test}
\section{Another section}\label{sec:section}
See section~\ref{sec:section}.
\end{document}
请注意,尽管标签相同,引用仍按预期工作sec:section
。