amsbook Verbesserung

amsbook Verbesserung

Als ich heute zum ersten Mal amsbookden Unterricht ausprobiert habe, ist mir ein (möglicher?) Fehler (oder sollte ich Inkompatibilität sagen?) aufgefallen.

babelmit brazilOption übersetztKapitelZuKapitellBeachten Sie also den Buchstaben mit Akzent.

Nun, amsbookKlasse bringt CAPíTULO hervor.

Beim Überprüfen der Zeile 990 amsbook.clsfinden wir

\uppercase\@xp{\chaptername}\enspace\thechapter}

und die Großschreibung ist das Problem. (übrigens, was ist das \@xp?)

OK, es ist möglich, diesen Teil neu zu definieren, um \@makechapterheaddas Problem zu beheben, aberGibt es eine Chance, in Zukunft eine aktualisierte Version der Klasse zu haben??

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}

Antwort1

Sie können einen Patch erstellen, der \MakeUppercaseanstelle von verwendet werden kann \uppercase\@xp.

Es ist eine gute Idee, textcasezusammen mit zu laden amsbook, insbesondere wenn Buchstaben mit Akzent erwartet werden.

\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}

Bildbeschreibung hier eingeben

Antwort2

amsbook sollte MakeUppercase verwenden (oder das hervorragende Textcase-Paket, wie von egreg:- vorgeschlagen)

Die Brasilien-Option von Babel könnte jedoch ein Formular verwenden, das mit funktionieren würde, \uppercasewenn es \'{i}anstelle von verwendet würde \'{\i}.

Bildbeschreibung hier eingeben

\documentclass[11pt,a4paper]{amsbook}
\usepackage[brazil]{babel}




\begin{document}
\def\chaptername{Cap\'{i}tulo}

\chapter{title}
\end{document}

verwandte Informationen