
今日初めて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}