\autoref 显示子节和子子节

\autoref 显示子节和子子节

我正在使用包\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

我个人更喜欢重命名subsectionsubsubsection像这样:

\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}

结果

相关内容