
今天這是我第一次嘗試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套件:-)
然而 babel 的 brazil 選項可以使用一種可以使用的形式,\uppercase
如果它使用\'{i}
而不是\'{\i}
.
\documentclass[11pt,a4paper]{amsbook}
\usepackage[brazil]{babel}
\begin{document}
\def\chaptername{Cap\'{i}tulo}
\chapter{title}
\end{document}