我正在尝试使用 polyglossia 包更新 autoref 标题。根据手册,较新的版本应该支持类似于 Babel 的 \addto 命令。但是,我无法让它工作,如以下 MWE 所示。
\documentclass{article}
\usepackage{hyperref}
\usepackage{etoolbox}
\usepackage{polyglossia}
\setmainlanguage[variant=american]{english}
%\usepackage[american]{babel}
\makeatletter
\addto\extrasamerican{
\renewcommand*{\sectionautorefname}{Section} }
\makeatother
\begin{document}
\section{Test}\label{sec:test}
Autoref to \autoref{sec:test} for a test.
\end{document}
答案1
在这种情况下要附加的命令是\blockextras@english
,而不是\extrasamerican
:
\documentclass{article}
\usepackage{polyglossia}
\usepackage{hyperref}
\setdefaultlanguage[variant=american]{english}
\makeatletter
\appto{\blockextras@english}{%
\renewcommand*{\sectionautorefname}{Section}%
}
\makeatother
\begin{document}
\section{Test}\label{sec:test}
Autoref to \autoref{sec:test} for a test.
\end{document}
此外,如果您不打算\autoref
与其他语言一起使用,您可以将\renewcommand
其\appto
完全放在外面。