암북 개선

암북 개선

오늘 처음으로 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}

관련 정보