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>처럼 입력하시면 좋습니다.
하단 면주에 장 제목 넣기
2015.06.05 02:01
oblivoir에서 하단 면주에 장 제목을 넣고 싶습니다.
\makeoddfoot{mers}{\thechapter\chaptername}{}{\thepage} 명령으로 '1장', '2장'까지는 나오는데, 장 제목(표제가 맞는 말인가요?)을 나오게 하는 명령은 무엇인지 모르겠습니다.
\leftmark로 하면 제1장, 제2장으로 나오기는 하는데, 제가 원하는 형태은 아닙니다.
어떻게 하면 chapter의 제목을 나오게 할 수 있나요?
% !TEX TS-program = xelatex
% !TEX encoding = UTF-8 Unicode
\documentclass[chapter,twoside]{oblivoir}
\makepagestyle{mers}
\makeoddfoot{mers}{\thechapter\chaptername}{}{\thepage}
\makeevenfoot{mers}{\leftmark}{}{\thepage}
\copypagestyle{chapter}{mers}
\pagestyle{mers}
\usepackage{jiwonlipsum}
\begin{document}
\chapter{메르스}
\jiwon[1-20]
\chapter{Mers}
\jiwon[1-20]
\end{document}
댓글 6
-
yihoze
2015.06.05 08:51
-
에드
2015.06.05 12:18
참고하겠습니다.
답변 감사드립니다.
-
Progress
2015.06.05 10:25
이미 개념은 다 알고 계시겠지만 한번 더 짚어보겠습니다.
\leftmark와 \rightmark에 식자할 "내용"은 \@hgpsmarks에서 정의하게 됩니다.
좀더 구체적으로 말씀드리자면 \markright{펼침면 오른쪽 면주 내용}과 \markboth{펼침면 왼쪽 면주 내용}{펼침면 오른쪽 면주 내용}을 정의하게 되는데, 이 값이 각각 다음과 같이 할당됩니다.
\leftmark ==> 펼침면 왼쪽 면주 내용
\rightmark ==> 펼침면 오른쪽 면주 내용
"내용"은 위와 같이 정해지는데요, 그 "모양(크기나, 색깔, 폰트 따위 등)"은 이제 \makepagestyle{블라블라}에서 정하게 됩니다.
따라서 \@hgpsmarks에서 정해놓은 면주 "내용"을 "블라블라"에서 당겨오라고 한번 더 알려줘야합니다.
여기서 "블라블라"를 mers라고 정의하셨으므로
\makepsmarks{mers}{\@hgpsmarks}
이러한 작업이 모두 끝난 다음에야 비로소 페이지 스타일을 적용하게 됩니다.
\pagestyle{mers}
% !TEX TS-program = xelatex
% !TEX encoding = UTF-8 Unicode
\documentclass[chapter,twoside,openright]{oblivoir}
% \copypagestyle{chapter}{mers}
\makepagestyle{mers}
% \makeoddfoot{mers}{\thechapter\chaptername}{}{\thepage}
\makeoddfoot{mers}{\rightmark}{}{\thepage}% 홀수쪽 하단 면주. 섹션 번호 및 섹션 타이틀
% \makeevenfoot{mers}{\leftmark}{}{\thepage}
\makeevenfoot{mers}{\thepage}{}{\leftmark}% 짝수쪽 하단 면주. 섹션 번호 및 섹션 타이틀
\makeatletter
\def\@hgpsmarks{%
\let\@mkboth\markboth
\def\chaptermark##1{%
\markboth{%
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\hchaptertitlehead\enskip%\ %
\fi
\fi
##1}{}}% 왼쪽 면주. 오른쪽 면주는 {}로 비워놨다.
\def\tocmark{\markboth{\contentsname}{\contentsname}}%차례 페이지의 면주
\def\lofmark{\markboth{\listfigurename}{\listfigurename}}%그림 차례 페이지의 면주
\def\lotmark{\markboth{\listtablename}{\listtablename}}%표 차례 페이지의 면주
\def\bibmark{\markboth{\bibname}{\bibname}}%참고문헌 페이지의 면주
\def\indexmark{\markboth{\indexname}{\indexname}}%찾아ㅗ기 페이지의 면주
\def\sectionmark##1{%
\markright{%
\ifnum \c@secnumdepth >\z@
\thesection \enskip\ %
\fi
##1}}%
}
\makepsmarks{mers}{\@hgpsmarks} % \leftmark와 \rightmark를 앞서 만든 'mers' 면주 스타일(page style)에 넣으라는 명령
\makeatother
%위와 같이 정해놓은 다음에 비로소 \pagestyle{mers}를 불러온다.
\pagestyle{mers}
\usepackage{jiwonlipsum}
\begin{document}
\chapter{메르스}
\jiwon[1]
\section{메르스 섹션 one}
\jiwon[2-5]
\section{메르스 섹션 two}
\jiwon[6-10]
\chapter{Mers}
\jiwon[1]
\section{mers section 원}
\jiwon[2-5]
\section{mers section 투}
\jiwon[6-10]
\end{document}
-
에드
2015.06.05 12:21
상세한 설명 정말 감사드립니다. ㅜㅜ
-
세벌최종
2015.06.06 05:14
먼저 \leftmark와 \rightmark가 있습니다. \leftmark는 양면문서인 경우에는 장 제목이 들어가지만, 단면인 경우에는 \leftmark는 없고 \rightmark만 있습니다.
\chapter{} 명령이 실행되면 \chaptermark{}라는 하위명령이 동시에 실행됩니다. \chaptermark라는 명령은 또 \markboth{}{} 명령을 실행하는데, 이 때 장 제목을 \leftmark에 넣습니다.
\section{} 명령이 실행되면 \sectionmark{}라는 하위명령이 동시에 실행됩니다. \sectionmark{}라는 명령은 또 \markright{} 명령을 실행하는데, 이 때 절 제목을 \rightmark에 넣습니다.
모든 페이지에서 항상 장 제목을 나오게 하려면, 다음 두 줄의 코드를 입력합니다.
1) \renewcommand\sectionmark[1]{}
: \section{}이 실행되어도 \sectionmark가 아무 일도 하지 않으므로 \rightmark가 변경되지 않습니다.
2) \renewcommand\chaptermark[1]{\markboth{#1}{#1}}
: \chapter{}가 실행될 때마다 \markboth{}{}명령으로 \leftmark와 \rightmark를 모두 장 제목으로 변경합니다.
참고로 \markleft가 없는 이유는
1) oneside 문서는 \rightmark만 필요
2) twoside 문서는 \leftmark \rightmark
따라서 \markleft는 없습니다.
이제 이렇게 만든 \leftmark와 \rightmark를 mers 페이지스타일에 적용하려면
\makepagestyle{mers}
\makeoddfoot{mers}{\hchaptertitlehead~\rightmark}{}{\thepage}
\copypagestyle{chapter}{mers}
\pagestyle{mers}
양면인 경우
\makeoddfoot{mers}{\thepage}{}{\hchaptertitlehead~\rightmark} 같은 것을 추가하면 되겠습니다. -
에드
2015.06.06 15:54
잘 되었습니다.
자세한 설명 감사드립니다.
\chpater가 \chaptermark를 시키고 \chaptermark가 \markboth를 시켜서 \leftmark와 \rightmark에 제목이 들어가게 합니다.
제목이 들어갈지, 번호와 함께 들어갈지, 다른 뭔가가 더 끼어들지 제어하려면, \chaptermark를 손봐야겠죠. 다른 걸 손볼 수도 있지만 쉽지도 않고 합리적이지도 않습니다.
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\chaptermark}[1]{\markboth{\thechapter~#1}{}}