我正在使用包\autoref
中的命令hyperref
。我有以下代码:
\subsection{Foo}
\label{ssec:bar}
This is the overview.
\subsubsection{Bar}
\label{sssec:bar}
This is the small part.
Later in the text, we refer to `\autoref{ssec:foo}` and `\autoref{sssec:bar}`.
编译后,显示以下文本:
艾雅·福
这是概述。
IA1. 酒吧
这是小部分。
在本文的后面,我们引用了小节 IA 和小节 IA1。
我遇到的问题是,它\autoref
显示了“subsection”和“subsubsection”,而我更希望它只显示“section”。有没有办法在hyperref
包中覆盖它,这样它就不会把任何“subs”放进去?
答案1
名称存储在宏中<counter>autorefname
。以下示例使用与相同的含义重新定义它们\sectionautorefname
:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\renewcommand*{\thesection}{\Roman{section}}
\renewcommand*{\thesubsection}{\thesection.\Alph{subsection}}
\let\subsectionautorefname\sectionautorefname
\let\subsubsectionautorefname\sectionautorefname
\begin{document}
\section{Section}
\subsection{Foo}
\label{ssec:foo}
This is the overview.
\subsubsection{Bar}
\label{sssec:bar}
This is the small part.
Later in the text, we refer to \autoref{ssec:foo} and \autoref{sssec:bar}.
\end{document}
答案2
我个人更喜欢重命名subsection
并subsubsection
像这样:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\renewcommand{\sectionautorefname}{Section}
\renewcommand{\subsectionautorefname}{Section}
\renewcommand{\subsubsectionautorefname}{Section}
\begin{document}
\section{Prologue}
We can refer to \autoref{sec:lorem}, \autoref{ssec:foo} and \autoref{sssec:bar}.
\section{Lorem}
\label{sec:lorem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus consectetur.
\subsection{Foo}
\label{ssec:foo}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vel.
\subsubsection{Bar}
\label{sssec:bar}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque pulvinar.
\end{document}