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>처럼 입력하시면 좋습니다.
[oblivoir/memoir] twocolumn에서 chapter의 쪽바꿈에 관하여
2021.02.08 23:42
안녕하세요, twocolumn 환경에서 chapter를 사용할 때 궁금증이 생겨 질문 올립니다. 애초에 twocolumn 환경에서 왜 section이 아니라 chapter까지 가는가...라고 생각하실 수도 있지만, 순수히 탐구정신으로 바라봐주시면 감사하겠습니다 :)
일단 원하는 결과는, oblivoir/memoir의 twocolumn 환경에서 새로운 chapter가 나왔을 때 쪽바꿈이 되는 것입니다. 단, 첫 번째 챕터는 \maketitle의 결과와 같은 쪽에 있어야 합니다.
사실 이 조건을 만족하는 코드는 작성하였습니다 (결과는 Playground.pdf로 첨부하였습니다.):
\documentclass[oneside,twocolumn,openright,a4paper]{oblivoir}
\usepackage{lipsum}
\renewcommand*{\clearforchapter}{ASDFASF}
\let\oldchapter\chapter
\renewcommand*{\chapter}{\if\thechapter0\else\clearpage\fi\oldchapter}
\title{제목}
\author{이름}
\date{\today}
\begin{document}
\maketitle
\chapter{Foo}
\lipsum[1]
\chapter{Bar}
\lipsum[2]
\chapter{Qux}
\lipsum[3]
\end{document}
문제는 위에서 보시는 \clearforchapter
커맨드입니다. 이 상황에서는 아무 일도 하지 않는 것 같습니다. oblioir의 openright
옵션도 마찬가지입니다.
두 번째 문제는, memoir에서 위와 같은 기능을 어떻게 구현하느냐입니다. 그냥 openany
옵션을 줘버리면 첫 번째 챕터부터 \maketitle
다음 쪽에 옵니다. 다음과 같이 하면:
\documentclass[oneside,twocolumn,openany,a4paper]{memoir}
\usepackage{kotex}
\usepackage{lipsum}
\let\oldclearforchapter\clearforchapter
\renewcommand*{\clearforchapter}{\if\thechapter0\then\else\oldclearforchapter\fi}
\title{제목}
\author{이름}
\date{\today}
\begin{document}
\maketitle
\chapter{Foo}
\lipsum[1]
\chapter{Bar}
\lipsum[2]
\chapter{Qux}
\lipsum[3]
\end{document}
이상한 결과가 나옵니다. (strange.pdf)
- oblivoir에서 위와 같이
\chapter
를 무식하게 수정하는 것 말고는 방법이 없을까요? - memoir에서는 Playground.pdf와 같은 결과를 얻는 방법이 있을까요?
감사합니다.
댓글 8
-
goihndol
2021.02.09 03:21
-
yihoze
2021.02.09 09:52
첫 장이 표지 제목에 바로 이어지게 하고 싶다는 것으로 이해했습니다. 저로서는 해법을 못 찾겠네요. 문제는 \clearforchapter가 아니고, twocolumn인데요. \twocolumn 명령과 \onecolumn 명령을 쓰면 항상 새 페이지에서 시작됩니다. 기본적으로 한 페이지에 일 단과 이 단이 공존할 수 없다는 뜻입니다. \chapter가 twocolumn에서는 \@topnewpage라는 명령을 이용하여 (코드는 분석하지 못하겠지만 이름으로 봐서) 페이지 상단에 식자됩니다. 이를 굳이 구현하고 싶다면 꼼수의 신공이 필요합니다. 제가 생각해낸 꼼수는 첫 장에 표지 정보를 끼워넣는 것입니다.
\let\orgchapterheadstart\chapterheadstart
\def\chapterheadstart{\maketitle\orgchapterheadstart}\chapter{Foo}
\lipsum\let\chapterheadstart\orgchapterheadstart
\chapter{Bar}
\lipsum -
Zeta
2021.02.12 23:52
감사합니다, 원하던 결과입니다!
-
noname
2021.02.09 11:12
(1) oblivoir와 memoir의 결과가 다른 이유
oblivoir에서 \clearforchapter가 아무 일도 하지 않는 것, openright가 \chapter에 영향을 미치지 않는 것, 그리고 \chapter가 (memoir에서와는 달리) 단(column) 안에 가두어지는 것, 이 세 가지는 oblivoir에 [chapter] 옵션을 주지 않았기 때문입니다. [chapter] 옵션을 주면 memoir와 같은 방법으로 chapter title을 만들 겁니다.
(2) memoir를 oblivoir와 비슷하게 동작하게 하려면
memoir에 [article] 옵션을 주면 (oblivoir와 완전히 똑같지는 않지만 이 경우에 한하여) 위의 oblivoir 예제와 비슷하게 동작할지도 모릅니다. (제가 보기에는 위의 yihoze께서 제시하신 해결책이 좋아보입니다만.)
(3) 기타
* \if ... \then ... \else ... \fi가 아니라 그냥 \if ... \else ... \fi입니다. \then 삭제.
* TeX의 \if는 제법 어렵습니다. 자세한 사항은 TeX by Topic의 해당 단락을 참조하시기를 바랍니다. LaTeX 사용자가 사용자 매크로를 만들 적에, 특별한 목적(예컨대 그 뒤의 토큰을 완전히 확장하려 한다든가)이 있는 것이 아니라면 사용에 주의를 기울이는 것이 좋습니다. (이 경우에 오류없이 의도대로 동작하고는 있습니다만 \thechapter가 카운터라는 보장이 없지요. 따라서 다른 경우에 오류가 발생할 수 있습니다.) 일반적으로 이 케이스에 대해 말하자면 "카운터(정수)를 비교하는 것"이므로 다음처럼 하는 것이 표준적일 것입니다.
\ifnum\value{chapter}=0\else\oldclearforchapter\fi
-
Zeta
2021.02.12 23:52
사실 expl3의 조건문으로 하면 쉽게 쓸 수 있었던 \if인데 제가 괜히 문제를 복잡하게 하였군요 :) 다만 카운터 비교의 표준적인 방법에 대해서 알려주셨으니 아래에서 그렇게 사용해보았습니다.
-
Zeta
2021.02.12 23:44
감사합니다. yihoze님과 noname님의 방법을 합쳐서 다음과 같이 해보았습니다:
\documentclass[chapter,oneside,twocolumn,openright,a4paper]{oblivoir} \usepackage{lipsum} \let\oldchapter\chapter \let\oldchapterheadstart\chapterheadstart \def\chapterheadstart{\maketitle\oldchapterheadstart} \renewcommand*{\chapter}[1]{ \ifnum\value{chapter}=0 \oldchapter{#1} \else \ifnum\value{chapter}=1 \let\chapterheadstart\oldchapterheadstart \oldchapter{#1} \else \oldchapter{#1} \fi \fi} \title{제목} \author{이름} \date{\today} \begin{document} \chapter{Foo} \lipsum[1] \chapter{Bar} \lipsum[2] \chapter{Qux} \lipsum[3] \end{document}
원하던 결과입니다. 감사합니다. 혹시 위 TeX 코드에 문제나 고칠만한 부분이 있다면 지적해주셨으면 합니다.
다만, 새로 생긴 궁금증은
\renewcommand*{\clearforchapter}{}
와 같이 할 때 만약 oblivoir에 chapter 옵션과 twocolumn 옵션을 동시에 쓰면 Float(s) lost라는 오류가 나옵니다. Memoir에서도 twocolumn 옵션을 쓴 상태에서 동일한 오류가 생깁니다.이렇게 시도해본 이유는, 예전에 제가 2019 문서작성워크샵에서 chapterstyle에 대해 발표할 때, \clearforchapter를 저렇게 덮어쓰면 챕터 사이에 쪽 바꿈이 안 생김을 예시로 넣어뒀었기 때문입니다. twocolumn 환경에서는 무엇때문에 이 명령어와 충돌하는 것인가요?
-
yihoze
2021.02.15 11:55
이에 대한 답변은 위에서 이미 한 것 같은데요.
둘째 장부터 같은 조건문을 계속 돌리는 게 유의미한지 모르겠군요. 그리고 chapter 명령을 저런 식으로 재정의하는 것은 바람직하지 않습니다. 왜냐하면 원래 \chapter*[짧은 제목]{긴 제목} 이렇게 쓸 수 있는데, 저렇게 재정의하면 (물론 별표나 옵션 인자를 안 쓰면 문제 없겠지만) 오류가 발생하게 됩니다.
-
noname
2021.02.15 15:38
yihoze께서 "이미 답변하였다"고 하셨지만 혹시 이해에 도움이 될까 싶어 조금 자세히 설명하겠습니다.
말씀하신 조건, 즉 oblivoir에 [chapter] 옵션을 주거나 memoir를 쓰거나 하는 경우, twocolumn 문서애서 chapter 타이틀은 반드시 onecolumn 상태로 식자됩니다. (반면 oblivoir에 [chapter] 옵션이 없거나 memoir에 [article] 옵션을 주었을 때는 chapter 타이틀이 twocolumn 상태 그대로 컬럼 안에 가우어져서 식자됩니다.)
그런데 여기서 \clearforchapter를 비우게 되면, chapter 타이틀을 식자해야 하는 위치가 새 페이지의 상단이 아닌 게 일반적일 겁니다. 그리고 yihoze께서 가르쳐주신 대로 한 페이지 중간에 \onecolumn과 \twocolumn은 동시에 오지 못하지요. 그 결과 \chapter 명령에 의하여 식자해야 할 chapter 표제가 놓일 곳을 잃게 됩니다. 그래서 거시기... lost라고 하는 겁니다.
즉 이 조건에서 \clearforchapter는 적어도 \clearpage이어야 한다고 할 수 있습니다.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | Minimal Working Example을 첨부해주세요 [4] | nanim | 2015.06.23 | 228121 |
» |
[oblivoir/memoir] twocolumn에서 chapter의 쪽바꿈에 관하여
[8] ![]() | Zeta | 2021.02.08 | 2543 |
제가 머리가 나쁜 것인지, 글을 읽었을 때 정확히 원하는 것이 무엇인지 전혀 이해를 못하겠습니다.