我正在尝试更改函数\autoref
(来自 hyperref 包)用于章节的名称。默认情况下,它输出“第 X 章”(小写 c),但我希望它输出“第 X 章”(大写 c)。在我的文档中,我可以成功地将函数重新定义\chapterautorefname
为其他内容,而不会生成警告或错误,但我分配给它的值似乎被忽略了。我也尝试过正常定义它(这很好地给出了一个已定义的错误)和重新定义\Chapterautorefname
(这产生了一个很好的、尚未定义的错误)。
最小工作示例
\documentclass[12pt, a4paper, openany]{report}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\renewcommand{\chapterautorefname}{Something}
% Document
\begin{document}
\chapter{One}
In \autoref{chap:two}...
\chapter{Two}
\label{chap:two}
\end{document}
生成的输出:
答案1
该包babel
支持多种语言,因此您必须将重新定义放入\extrasenglish
:
\documentclass[12pt, a4paper, openany]{report}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[colorlinks]{hyperref}
\addto\extrasenglish{%
\renewcommand{\chapterautorefname}{Chapter}%
}
\begin{document}
\chapter{One}
In \autoref{chap:two}...
\chapter{Two}
\label{chap:two}
\end{document}
这也解释了手动的的hyperref
。