编辑

编辑

我想重现这种行为:

在此处输入图片描述

\documentclass[journal, a4paper, 10pt]{IEEEtran}
\usepackage[english]{babel}
\usepackage{hyperref}
\renewcommand{\sectionautorefname}{\S}
\renewcommand{\subsectionautorefname}{\S}
\renewcommand{\subsubsectionautorefname}{\S}
\begin{document}
\section{A section}\label{sec:section}
\subsection{A subsection}\label{sec:subsection}
\subsubsection{A subsubsection}\label{sec:subsubsection}
See \autoref{sec:section}, \autoref{sec:subsection} or \autoref{sec:subsubsection}.
\end{document}

在 latex overleaf 中的双列 IEE 模板中。我尝试将这些行添加到我的包中,但得到的却是:

在此处输入图片描述

可以覆盖 IEE 的风格吗?

我不喜欢使用

\S \ref{sec:*}

或者

\S \autoref{sec:*}

编辑

发现如果\usepackage[english]{babel}在 之前调用,\usepackage{hyperref}\S符号似乎是可点击的。但如果在 babel 包之后调用 hyperref 包,则 renew 命令不起作用。

答案1

问题在于您正在使用babel,当您这样做时,autoref 名称会在语言钩子上设置,在本例中是在 begindocument 的某个地方。这在hyperref的手册中有记录,您所要做的就是在语言“extras”上设置它们:

\documentclass[journal, a4paper, 10pt]{IEEEtran}
\usepackage[english]{babel}
\usepackage{hyperref}
\addto\extrasenglish{%
  \renewcommand{\sectionautorefname}{\S}%
  \renewcommand{\subsectionautorefname}{\S}%
  \renewcommand{\subsubsectionautorefname}{\S}%
}
\begin{document}
\section{A section}\label{sec:section}
\subsection{A subsection}\label{sec:subsection}
\subsubsection{A subsubsection}\label{sec:subsubsection}
See \autoref{sec:section}, \autoref{sec:subsection} or \autoref{sec:subsubsection}.
\end{document}

在此处输入图片描述

相关内容