
\newcommand{\Chapter}[1]{{\let\cleardoublepage\relax\chapter{#1}}}
잘 작동합니다. .cls 파일 내에서 별표(*) 버전에 대해 동일한 작업을 수행하려면 어떻게 해야 합니까?
(다른 사람들에게는 흥미로울 수 있습니다. 기본 문서에서 정의하는 것과 차이가 있습니까?)
답변1
\chapter
및 을 재정의하고 싶다고 표시하셨습니다 \chapter*
. 이를 위해 나는 수업에서 더 깊은 수준을 살펴볼 것을 제안하며 이는 초보자의 작업이 아닙니다.
어쨌든 별표 버전을 통합하고 \chapter
클래스에 작성된 명령을 사용하는 매크로를 작성할 수 있습니다.
매우 기본적인 방법은 다음과 같습니다.
\documentclass{scrbook}
\newcommand{\MyChapter}{%
\let\cleardoublepage\empty
\clearpage
\chapter
}
\begin{document}
\tableofcontents
\MyChapter{Introduction}
some text
\MyChapter[My Introduction]{Introduction}
some text
\MyChapter*{Introduction}
some text
\end{document}
이 명령은 \MyChapter
을 지우고 \cleardoublepage
실행 \clearpage
합니다 \chapter
. 는 마지막에 실행되고 뒤에 입력한 모든 항목을 인수로 취하기 \chapter
때문에 이전 기능을 모두 갖습니다 .\chapter
\MyChapter
그러나 후자좋은 습관이 아닙니다, 명령이 \cleardoublepage
쓸모 없게 되기 때문에 라텍스 명령을 지우면 종종 제대로 작동하지 않을 수 있습니다.
IMHO "괜찮은" 방법은 \cleardoublepage
나중에 저장하고 복원하는 것입니다.
\documentclass{scrbook}
\newcommand{\ResCdp}{%
\let\cleardoublepage\cdp
}
\newcommand{\MyChapter}{%
\let\cdp\cleardoublepage
\let\cleardoublepage\empty
\clearpage
\chapter
}
\begin{document}
\tableofcontents
\MyChapter{Introduction}\ResCdp
some text
\MyChapter[My Introduction]{Introduction}\ResCdp
some text
\cleardoublepage
\MyChapter*{Introduction}\ResCdp
some text
\end{document}
읽기/쓰기가 다소 어렵지만 안전하게 트릭을 수행합니다.
\ResCdp
의 모든 기능을 지우고 \cleardoublepage
유지 하지 않고 이것을 사용하지 않으려면 \chapter
더 많은 노력이 필요할 것입니다.
답변2
문서 클래스를 사용한다고 표시하셨습니다 scrbook
. 대신 실행하기 위해 \chapter
(and \chapter*
)를 재정의하려면 패키지 를 로드 하고 해당 매크로를 사용하여 매크로를 수정하는 것이 좋습니다 .\clearpage
\cleardoublepage
etoolbox
\patchcmd
chapter
\usepackage{etoolbox}
\patchcmd{\chapter}{\cleardoublepage}{\clearpage}{}{}
답변3
scrbook
옵션을 사용 하는 경우 s를 수동으로 openany
삽입합니다 \cleardoublepage
.
질문에 대한 정확한 답은 아니지만 그래도 이 방법을 사용하기로 결정했습니다.