KTUG 한국 텍 사용자 그룹

Menu

KTUG :: Q&A 마당

chapter 옵션이 있고 oneside 문서네요.

[advice 1] plain 페이지 스타일은 직접 변경하지 않는 것이 안전합니다. \copypagestyle{myplain}{plain}과 같이 복사본을 마련하여 사용하십시오.

(1) \section*의 문제

\section* 별표붙은 명령은 \rightmark를 만들지 않습니다. toc에도 들어가지 않습니다. rightmark에 뭔가 넣고 섹션 넘버를 붙이고 싶지 않다면

\maxsecnumdepth{chapter}

를 선언하고 \section 명령을 쓰면 됩니다. toc에 넣을지는 선택사항이지만 만약 넣어야 한다면

\maxtocdepth{section}

을 선언하고, \section을 써야 합니다.

(2) tcolorbox 안에서 renewcommand되는 매크로

\sectionmark가 불리는 위치가 group내부 (여기서는 tcolorbox 내부)이기 때문에 이 scope에서 재정의된 \markright가 박스 밖에 나오면 무효화됩니다. 왜 이렇게 하느냐 하면 예컨대 section toc나 chapter toc를 만들 때, 이런 식으로 동작하지 않으면 곤란한 상황이 발생할 수 있기 때문입니다.

따라서 \sectionmark를 tcolorbox가 시작하기 전에 불러주는 방법이 좋습니다. 다음은 한 가지 해결책입니다.

\newtcolorbox{sectionboxcore}{%
	boxrule=0pt, colback = red!15!white,  colframe=red!15!white}

\NewDocumentEnvironment{sectionbox}{m}{%
	\markright{#1}%
	\begin{sectionboxcore}
	\section{#1}
}{%
	\end{sectionboxcore}
}

sectionbox 환경은 한 개의 인자를 취하고 이것이 섹션 타이틀이 됩니다.

(3) \chapter 페이지

\chapter 명령이 주어진 페이지는 특별합니다. 이 페이지는 오직 chapter 식자만을 위한 것이기 때문에 이 명령이 주어진 페이지가 청산되기 전에 \section 명령이 주어져도 그 페이지에서는 \rightmark가 찍히지 않습니다. \rightmark가 정의되지 않는 것이 아니라 chapter 페이지에서 나타나지 않는 것입니다. (몇 페이지 이상의 문서를 만들어 테스트해보십시오.)

chapter 페이지에서도 \rightmark를 면주에 식자하려면 \chapter 명령이 주어지기 전에 rightmark를 한 번 정의해주어야 합니다.

\markright{tcolorbox 안에 섹션 넣기}
\chapter{첫번째 챕터}

언뜻 보기에 이것이 불편해보일 수 있으나 면주 정보의 목적이 현재 읽고 있는 페이지가 어떤 내용을 다루는 곳인지에 대하여 독자에게 알려주는 데 있음을 고려하면 chapter 페이지의 면주가 section title인 것은 비상식적입니다. chapter 페이지에 chapter 타이틀이 면주에 오는 것조차 잉여적이므로 chapter 페이지가 단순 plain이거나 empty인 것이 합리적이라고 생각할 수 있습니다. chapter페이지가 끝나지 않았는데 \section 명령이 왔다고 해서 그것이 (현 페이지에서는) "중요한 정보"가 될 수 없다는 것입니다.

문서 구조화를 재설계하면 이런 불편(?)을 피해갈 수 있겠지만 그렇게까지 할 필요가 있을지는 잘 모르겠습니다.

----

첨부 파일은 이상 언급한 내용을 바탕으로 수정해본 것입니다. 참고가 되기를 바랍니다.

 

KTUG 한국 텍 사용자 그룹