我想重现这种行为:
\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}