%20no%20sum%C3%A1rio%2C%20mas%20com%20o%20t%C3%ADtulo%20em%20mai%C3%BAscula%20no%20relat%C3%B3rio.png)
Estou usando report
e preciso que os títulos dos capítulos estejam em letras maiúsculas (incluindo o Apêndice), mas não no sumário. Por exemplo, em vez de "Apêndice A", deverá aparecer como "APÊNDICE A" dentro do artigo e "Apêndice A" no sumário. Parece que consertei os capítulos regulares, mas não consigo descobrir como consertar o Apêndice.
Posso simplesmente mudar \appendixname
para APÊNDICE, mas então ele aparecerá em letras maiúsculas no sumário (o que eu preferiria que não fosse o caso). Alterar a definição de \appendix
for report class parece ter o mesmo efeito (acredito porque é basicamente apenas uma redefinição \@chapapp
):
\renewcommand{\appendix}{\par
\setcounter{chapter}{0}%
\setcounter{section}{0}%
\gdef\@chapapp{APPENDIX}% modified from \appendixname
\gdef\thechapter{\@Alph\c@chapter}}
Consegui corrigir o problema normal do capítulo mantendo \chaptername
como está e codificando CHAPTER em vez de usar \@chapapp
o seguinte (que fazia parte do modelo original - eu não criei isso, então não entendo completamente o que tudo isso está fazendo ):
\def\@chapter[#1]#2{
\ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}%
\typeout{CHAPTER\space\thechapter.} % originally used \@chapapp
\addcontentsline{toc}{chapter}%
{\@chapapp\space {\thechapter}: {#1}}
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi
}
Honestamente, não entendo por que \uppercase
não funciona a seguir, mas não coloca "Capítulo" em maiúscula \@chapapp
(isso também era do modelo original) eaindaaparece no arquivo de estilo após o acima (os títulos dos capítulos foramsempreapareceu em CAPS, mas não no prefixo "Capítulo x:").
\def\@makechapterhead#1{%
\vspace*{-20\p@}%
{\parindent \z@ \raggedright \normalfont
\interlinepenalty\@M
\ifnum \c@secnumdepth >\m@ne
\centering \large\bfseries
\uppercase{\@chapapp\space \thechapter: #1}
\fi
\vskip 20\p@
}
}
Responder1
Uma solução sem codificação ou edição .cls
direta do arquivo:
O OP estava certo em sua suposição sobre \@makechapterhead
:
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\huge\bfseries \@chapapp\space \thechapter
\par\nobreak
\vskip 20\p@
\fi
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
A linha com \@chapapp
realmente é impressa Chapter
(ou Apêndice), seguida pelo número do capítulo.
Para obter esta letra maiúscula, é necessário usar \MakeUppercase{\@chapapp}
, não \uppercase
.
Em vez de editar o report.cls
código, é melhor usar \xpatchcmd
, procurar a linha \huge\bfseries\@chapapp..
e substituí-la pelo código relevante usando \MakeUppercase
.
No entanto, isso deve ser feito somente depois \appendix
, então anexe este patch ao \appendix
using \xapptocmd{\appendix}{...}
(veja o código, por favor)
\documentclass{report}
\usepackage{xpatch}
\makeatletter
\xapptocmd{\appendix}{%
\xpatchcmd{\@makechapterhead}{%
\huge\bfseries \@chapapp\space \thechapter
}{%
\huge\bfseries \MakeUppercase{\@chapapp}\space \thechapter
}{\typeout{Patching \@makechapterhead succeeded}}{\typeout{Patching failed}}% Patching ends
}{\typeout{Appending succeeded}}{\typeout{Appending failed}}
\makeatother
\begin{document}
\chapter{First}
\appendix
\chapter{Appendix 1}
\end{document}
Observe que meu código não funciona para \chapter*
apêndices semelhantes.