%EC%9D%84%20%EC%9C%A0%EC%A7%80%ED%95%98%EC%A7%80%EB%A7%8C%20%EB%B3%B4%EA%B3%A0%EC%84%9C%EC%97%90%EC%84%9C%EB%8A%94%20%EC%A0%9C%EB%AA%A9%EC%9D%84%20%EB%8C%80%EB%AC%B8%EC%9E%90%EB%A1%9C%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
나는 을 사용하고 report
있으며 장 제목을 모두 대문자로 표시해야 하지만(부록 포함) TOC에는 포함하지 않아야 합니다. 예를 들어 "Appendix A" 대신에 논문 내부에는 "APPENDIX A"로, TOC에는 "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"를 대문자로 쓰지 않습니다 (원본 템플릿에서도 마찬가지임).아직위 스타일 파일 뒤에 나타납니다(장 제목은언제나대문자로 표시되지만 "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
using 에 추가합니다 \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*
.