今天是我第一次尝试amsbook
上课,我注意到一个(可能的?)错误(或者我应该说不兼容?)
babel
带brazil
选项翻译章节到章目. 因此请注意重音字母。
嗯,amsbook
阶级产生了CAPíTULO。
检查第 990 行amsbook.cls
我们发现
\uppercase\@xp{\chaptername}\enspace\thechapter}
大写字母是有问题的。(顺便问一下,是什么\@xp
?)
好的,可以重新定义该部分来\@makechapterhead
解决问题,但是将来是否有机会更新该课程的版本?
平均能量损失
\documentclass[11pt,a4paper]{amsbook}
\usepackage[brazil]{babel}
%% original code
\makeatletter
\def\@makechapterhead#1{\global\topskip 7.5pc\relax
\begingroup
\fontsize{\@xivpt}{18}\bfseries\centering
\ifnum\c@secnumdepth>\m@ne
\leavevmode \hskip-\leftskip
\rlap{\vbox to\z@{\vss
\centerline{\normalsize\mdseries
\uppercase\@xp{\chaptername}% <----- here
\enspace\thechapter}
\vskip 3pc}}\hskip\leftskip\fi
#1\par \endgroup
\skip@34\p@ \advance\skip@-\normalbaselineskip
\vskip\skip@ }
\makeatother
\begin{document}
\chapter{title}
\end{document}
答案1
您可以制作一个补丁来\MakeUppercase
代替\uppercase\@xp
。
textcase
与 一起加载是一个好主意amsbook
,特别是当需要重音字符时。
\documentclass{amsbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage{textcase}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@makechapterhead}
{\uppercase\@xp}
{\MakeUppercase}
{}{}
\makeatother
\begin{document}
\mainmatter
\chapter{Abcdéf}
text
\end{document}
答案2
amsbook 应该使用 MakeUppercase(或者 egreg 提出的优秀 textcase 包:-)
\uppercase
但是,如果使用\'{i}
而不是 ,babel 的 brazil 选项可以使用一种可以与 一起使用的形式\'{\i}
。
\documentclass[11pt,a4paper]{amsbook}
\usepackage[brazil]{babel}
\begin{document}
\def\chaptername{Cap\'{i}tulo}
\chapter{title}
\end{document}