Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
- 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
- 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
- 최소 예제는 "Minimal working example"을 읽어 보세요.
- 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
- 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 사용하는 편집기는 CKeditor입니다.
- 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
- 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
- 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.
tcolorbox 속 section 선언이 rightmark로 할당되지 않는 문제
2022.06.18 18:19
oblivoir에서, 어떤 이유로 다른 부가 정보와 함께 section명을 tcolorbox 안에 넣어야 하는데요,
이때 footer에 section명이 나오게 하고 싶은데 안됩니다.
section을 이렇게 생성해도 toc와 index에는 정상적으로 반영되고 footer에만 안나오는데,
rightmark에 할당이 안되는 것 같고, memoir 매뉴얼을 봐도 원인과 해법을 알 수가 없어서 질문드립니다.
* OSX Big Sur, TeX Live 2022, xelatex 컴파일입니다.
Comment 2
-
noname
2022.06.20 05:53
-
bjorkii
2022.06.20 10:57
감사합니다. environment로 해결하는 방법이 있었네요. secton toc, chapter toc 설명에 이해됐습니다.
실제로는 maxsecnumdepth를 썼고 chapter 페이지의 면주 정책(?)에 관해서도 어렴풋이 그런가보다 하고 있었습니다만, 섹션이 100개 넘는 문서에서 MWE로 줄이면서 세심하지 못해서 답변의 범위를 넓혀 드린 것 같습니다. 그래도 그 덕분에 더 많이 배웠습니다.
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가 시작하기 전에 불러주는 방법이 좋습니다. 다음은 한 가지 해결책입니다.
sectionbox 환경은 한 개의 인자를 취하고 이것이 섹션 타이틀이 됩니다.
(3) \chapter 페이지
\chapter 명령이 주어진 페이지는 특별합니다. 이 페이지는 오직 chapter 식자만을 위한 것이기 때문에 이 명령이 주어진 페이지가 청산되기 전에 \section 명령이 주어져도 그 페이지에서는 \rightmark가 찍히지 않습니다. \rightmark가 정의되지 않는 것이 아니라 chapter 페이지에서 나타나지 않는 것입니다. (몇 페이지 이상의 문서를 만들어 테스트해보십시오.)
chapter 페이지에서도 \rightmark를 면주에 식자하려면 \chapter 명령이 주어지기 전에 rightmark를 한 번 정의해주어야 합니다.
언뜻 보기에 이것이 불편해보일 수 있으나 면주 정보의 목적이 현재 읽고 있는 페이지가 어떤 내용을 다루는 곳인지에 대하여 독자에게 알려주는 데 있음을 고려하면 chapter 페이지의 면주가 section title인 것은 비상식적입니다. chapter 페이지에 chapter 타이틀이 면주에 오는 것조차 잉여적이므로 chapter 페이지가 단순 plain이거나 empty인 것이 합리적이라고 생각할 수 있습니다. chapter페이지가 끝나지 않았는데 \section 명령이 왔다고 해서 그것이 (현 페이지에서는) "중요한 정보"가 될 수 없다는 것입니다.
문서 구조화를 재설계하면 이런 불편(?)을 피해갈 수 있겠지만 그렇게까지 할 필요가 있을지는 잘 모르겠습니다.
----
첨부 파일은 이상 언급한 내용을 바탕으로 수정해본 것입니다. 참고가 되기를 바랍니다.