
오늘 처음으로 amsbook
수업을 해보는데 (아마도?) 버그(혹은 비호환이라고 해야 할까요?) 를 발견했습니다.
babel
옵션 으로 brazil
번역장에게카피툴로. 그러니 악센트가 있는 글자에 주목하세요.
음, amsbook
수업은 CAPíTULO를 제작합니다.
990행을 확인하면 다음 amsbook.cls
을 찾을 수 있습니다.
\uppercase\@xp{\chaptername}\enspace\thechapter}
대문자가 문제입니다. (그건 그렇고, 은 무엇입니까 \@xp
?)
\@makechapterhead
좋아, 문제를 해결하기 위해 해당 부분을 재정의하는 것은 가능 하지만장래에 수업의 업데이트된 버전을 가질 기회가 있습니까??
MWE
\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의 브라질 옵션 \uppercase
은 .\'{i}
\'{\i}
\documentclass[11pt,a4paper]{amsbook}
\usepackage[brazil]{babel}
\begin{document}
\def\chaptername{Cap\'{i}tulo}
\chapter{title}
\end{document}