我想压缩参考文献中的章节数量,但不重复章节编号,同时保持和的全部hyperref
功能\ref
。
\documentclass{book}
\usepackage{hyperref}
\usepackage{bookmark}
\begin{document}
\chapter{intro}
I want the hyperref functionallity and automated references of
\ref{sec:chap3sec3}--\ref{sec:chap3sec5};
but the look of 3.3--5.
\ref{sec:chap3sec3}--\hyperref[sec:chap3sec5]{5} does half of what I want,
but I don't know how to get the section number without chapter number.
\chapter{two}
\chapter{three}
\section{chap3sec1}
\section{chap3sec2}
\section{chap3sec3}\label{sec:chap3sec3}
\section{chap3sec4}
\section{chap3sec5}\label{sec:chap3sec5}
\end{document}
我怎样才能做到这一点?
答案1
LaTeX 只存储完整的参考文献编号。要获取编号的章节部分,首先需要提取参考文献。然后可以删除第一个点之前的章节部分:
\usepackage{refcount}
\makeatletter
\newcommand*{\stripref}[1]{%
\refused{#1}%
\begingroup
\edef\x{\getrefbykeydefault{#1}{}{\noexpand\textbf{??}}}%
\hyperref[{#1}]{%
\expandafter\stripref@aux\x.\@nil
}%
\endgroup
}
\def\stripref@aux#1.#2\@nil{%
\ifx\\#2\\%
#1%
\else
\stripref@dot#2\@nil
\fi
}
\def\stripref@dot#1.\@nil{#1}
\makeatother
用法:\ref{sec:chap3sec3}--\stripref{sec:chap3sec5}