%20im%20Inhaltsverzeichnis%20bei%2C%20schreiben%20die%20%C3%9Cberschrift%20im%20Bericht%20jedoch%20gro%C3%9F.png)
Ich verwende report
und muss die Kapitelüberschriften in Großbuchstaben schreiben (einschließlich des Anhangs), aber nicht im Inhaltsverzeichnis. Beispielsweise sollte im Dokument statt „Anhang A“ „ANHANG A“ und im Inhaltsverzeichnis „Anhang A“ stehen. Ich habe anscheinend die normalen Kapitel repariert, kann aber nicht herausfinden, wie ich den Anhang reparieren kann.
Ich kann einfach in ANHANG ändern \appendixname
, aber dann wird es im Inhaltsverzeichnis in Großbuchstaben angezeigt (was ich lieber nicht hätte). Das Ändern der Definition \appendix
für die Berichtsklasse scheint den gleichen Effekt zu haben (glaube ich, weil es im Grunde nur eine Neudefinition ist \@chapapp
):
\renewcommand{\appendix}{\par
\setcounter{chapter}{0}%
\setcounter{section}{0}%
\gdef\@chapapp{APPENDIX}% modified from \appendixname
\gdef\thechapter{\@Alph\c@chapter}}
Ich konnte das Problem mit den regulären Kapiteln beheben, indem ich \chaptername
es so belassen und CHAPTER fest codiert habe, anstatt \@chapapp
Folgendes zu verwenden (was Teil der ursprünglichen Vorlage war – ich habe es nicht erstellt, daher verstehe ich nicht ganz, was das alles bewirkt):
\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
}
Ehrlich gesagt verstehe ich nicht, warum \uppercase
das im Folgenden nicht funktioniert, aber es schreibt "Chapter" nicht groß \@chapapp
(das war auch in der Originalvorlage so) undTrotzdemerscheint in der Stildatei nach dem obigen (die Kapitelüberschriften habenstetserschien in Großbuchstaben, nur nicht das Präfix „Kapitel 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@
}
}
Antwort1
Eine Lösung ohne Hardcoding oder .cls
direktes Bearbeiten der Datei:
Der OP hatte mit seiner Annahme recht \@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@
}}
Es wird tatsächlich die Zeile mit (oder Anhang) \@chapapp
gedruckt Chapter
, gefolgt von der Kapitelnummer.
Um diesen Großbuchstaben zu erhalten, muss man verwenden \MakeUppercase{\@chapapp}
, nicht \uppercase
.
Anstatt den report.cls
Code zu bearbeiten, ist es besser, zu verwenden \xpatchcmd
, nach der Zeile zu suchen \huge\bfseries\@chapapp..
und diese mit durch den entsprechenden Code zu ersetzen \MakeUppercase
.
Dies sollte jedoch erst nach erfolgen \appendix
, also hängen Sie diesen Patch an \appendix
using an \xapptocmd{\appendix}{...}
(siehe bitte den Code).
\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}
\chapter*
Bitte beachten Sie, dass mein Code für ähnliche Anhänge nicht funktioniert .