
を使用していますreport
が、章の見出しはすべて大文字にする必要があります (付録を含む)。ただし、目次では大文字にする必要はありません。たとえば、「付録 A」ではなく、論文内では「APPENDIX A」、目次では「Appendix A」と表示される必要があります。通常の章は修正したようですが、付録の修正方法がわかりません。
APPENDIX に変更することもできます\appendixname
が、そうすると TOC ではすべて大文字で表示されます (そうならない方が望ましいです)。\appendix
レポート クラスの の定義を変更しても、同じ効果があるようです (基本的には を再定義するだけなので、そうだと思います\@chapapp
)。
\renewcommand{\appendix}{\par
\setcounter{chapter}{0}%
\setcounter{section}{0}%
\gdef\@chapapp{APPENDIX}% modified from \appendixname
\gdef\thechapter{\@Alph\c@chapter}}
通常の章の問題を解決するには、次のもの\chaptername
を使用するのではなく、そのままにして CHAPTER をハードコーディングします\@chapapp
(これは元のテンプレートの一部です。私はこれを作成したわけではないので、これが何をしているのか完全には理解していません)。
\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
}
\uppercase
正直、次の例のように「Chapter」が大文字にならないのはなぜか理解できません\@chapapp
(これは元のテンプレートでも同じでした)。まだスタイルファイルでは上記の後に記述されます(章のタイトルはいつも大文字で表示されますが、「Chapter 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@
}
}
答え1
ハードコーディングやファイルを直接編集しない解決策.cls
:
OP の仮定は正しかったです\@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@
}}
実際に、(または付録)の行\@chapapp
が印刷されChapter
、その後に章番号が続きます。
\MakeUppercase{\@chapapp}
これを大文字にするには、ではなくを使用する必要があります\uppercase
。
コードを編集する代わりに、 を使用して行を探し、 を使用してこれを関連するコードに置き換える方がreport.cls
適切です。\xpatchcmd
\huge\bfseries\@chapapp..
\MakeUppercase
ただし、これは の後にのみ行う必要がある\appendix
ため、 にこのパッチを追加します\appendix
(\xapptocmd{\appendix}{...}
コードを参照してください)。
\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*
私のコードは付録のようなものには機能しないことに注意してください。