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>처럼 입력하시면 좋습니다.
표 차례에서 caption 패키지의 DeclareCaptionListFormat의 prefix 붙이는 문제
2020.06.11 13:52
표 차례에서 caption 패키지의 DeclareCaptionListFormat의 prefix 붙이는 문제
표와 그림의 캡션에 [표 1.1]과 같은 형식으로 라벨을 붙여야 해서 caption 패키지를 사용하고
다음처렁 설정해 주었습니다.
\usepackage{caption}
\DeclareCaptionLabelFormat{brackets}{[#1 #2]}
\DeclareCaptionListFormat{brackets}{[#1 #2]}
\captionsetup{labelformat=brackets,listformat=brackets}
그런데 표 차례에서는 #1 부분이 빈칸으로 나타납니다. 어떻게 하면 여기에도 "표", "그림" 같은
표시가 나타나게 할 수 있을까요? 예제 파일 첨부하였습니다.
댓글 10
-
Progress
2020.06.11 17:48
-
달팽이
2020.06.11 18:59
감사합니다. 그런데 말씀하신 대로 하니 전부 "표"가 붙는데요... 그림에는 "그림"이 붙게 할 방법은 없을까요?
-
Progress
2020.06.11 21:24
아, 그림 차례도 들어가야한다면 문제가 있겠네요.
그러면 caption 패키지 말고 다른 방법, 예를 들어 memoir 클래스에서 제공하는 명령을 고쳐 써야할 것 같아요. 원리는 컴파일 과정에서 생성되는 lof 파일에는 [그림 X]로, lot 파일에는 [표 X]로 들어가게 하면 되는 것입니다.
이건 다른 분께서 답해주시길...
-
달팽이
2020.06.11 22:18
정말 감사합니다. 힌트를 주셔서 검색을 해보았더니, 일단 이렇게 해결을 했습니다. 좀 편법이 아닌가 하는 생각이 들기는 하지만 보기에는 멀쩡하네요.
\DeclareCaptionLabelFormat{brackets}{[#1 #2]}
\DeclareCaptionListFormat{brackets}{#2]}
\captionsetup{labelformat=brackets,listformat=brackets,labelsep=space}\renewcommand{\cftfigurename}{[그림\space}
\cftsetindents{figure}{0em}{3.5em}
\renewcommand{\cfttablename}{[표\space}
\cftsetindents{table}{0em}{3.5em} -
yihoze
2020.06.12 08:55
oblivoir(memoir) 쓸 때 caption 패키지 필요없습니다. 참조할 때 "표 1", "그림 1"이 되게 하는 건 progress님 말씀대로 \tref, \fref를 쓰면 됩니다. 문제는 차례에서도 "표 1", "표 2", "그림 1", "그림 2"가 나타나게 하는 것인데, 다소 낡은 방식이고 굳이 그렇게 할 필요가 있을까 싶습니다. 아무튼 해법은 이렇습니다.
\documentclass{oblivoir}
% 번호 앞에 표/그림 붙이기
\renewcommand\thefigure{\figurename\space\arabic{figure}}
\renewcommand\thetable{\tablename\space\arabic{table}}
% 캡션에서 이미 붙어있는 표/그림 제거하기
\makeatletter
\@namedef{fnum@figure}{\@nameuse{thefigure}}
\@namedef{fnum@table}{\@nameuse{thetable}}
\makeatother
% 차례에서 표/그림 번호 폭 넓히기
\setlength{\cftfigurenumwidth}{3.0em}
\setlength{\cfttablenumwidth}{2.5em}\begin{document}
\listoftables
\listoffigures\section{본문}
\begin{table}[b]
\centering
\caption{표라네}
\label{tab:test}
이것은 표입니다.
\end{table}\begin{figure}[t]
\centering
\caption{그림이라네}
\label{fig:test}
이것은 그림입니다.
\end{figure}\ref{tab:test}\를 보아요.\\
\ref{fig:test}\를 보아요.
\end{document}
-
달팽이
2020.06.21 11:13
감사합니다. 저도 하기 싫지만 정해진 양식이 있으니 어쩔수 없네요. 그런데 말씀하신대로 하면 어떻게 꺾쇠괄호가 나타나게 해야할지를 모르겠습니다. [그림 1-1] 이런 식으로요. 그냥 다음처럼 하면 되는 것 같긴 한데 괜찮은 것인가요?
\renewcommand\thefigure{[\figurename\space\arabic{figure}]}
-
noname
2020.06.12 13:22
\documentclass[figtabcapt]{oblivoir} \makeatletter \renewcommand*\cnm@char@open{[} \renewcommand*\cnm@char@close{]} \makeatother \begin{document} ...
[figtabcapt] 옵션을 주었을 때 <표 1> 같은 데 사용되는 꺾쇠기호는 \cnm 명령의 것을 사용합니다. 위와 같이 이 기호를 바꾸었을 때 \cnm 명령에서의 괄호 기호를 이와 다른 모양으로 쓰려 한다면 \cnm 명령 자체를 재정의하는 것이 좋습니다.
그리고 이 옵션은 caption 패키지가 로드되면 다르게 동작하므로 그때는 caption 패키지의 방법을 사용하십시오.
-
달팽이
2020.06.21 16:06
감사합니다. 정말 깔끔하게 해결할 수 있는 방법이네요. 그런데 차례에서 캡션 번호랑 제목이 겹치는 문제가 있는데 위에서 알려주신 \cfttablenumwidth를 조절하는 방법으로는 안 되고 memoir 매뉴얼을 보아도 잘 모르겠는데요. 혹시 방법이 없을까요?
\documentclass[figtabcapt,hidelinks]{oblivoir} \setlength{\cftfigurenumwidth}{3.0em} \setlength{\cfttablenumwidth}{5.0em} \captiondelim{\space} \makeatletter \renewcommand*\cnm@char@open{[} \renewcommand*\cnm@char@close{]} \makeatother \renewcommand{\thefigure}{\thechapter--\arabic{figure}} \renewcommand{\thetable}{\thechapter--\arabic{table}} \usepackage{natbib} \begin{document} \listoftables \listoffigures \chapter{장 제목} \section{본문} \setcounter{table}{990} \begin{table}[b] \centering \caption{표라네} \label{tab:test} 이것은 표입니다. \end{table} \chapter{장 제목} \begin{figure}[t] \centering \caption{그림이라네} \label{fig:test} 이것은 그림입니다. \end{figure} \tref{tab:test}\를 보아요.\\ \ref{fig:test}\를 보아요. \end{document}
-
noname
2020.06.22 06:42
cftfigure... cfttable... 명령을 \begin{document} 직후에 실행되도록 하십시오. 즉,
\AtBeginDocument{ \setlength{\cftfigurenumwidth}{5.0em} \setlength{\cfttablenumwidth}{5.0em} }
-
달팽이
2020.06.24 19:39
감사합니다! 완벽하네요.
대략 다음과 같이 하면 어떨까 합니다.
\documentclass{oblivoir}
\usepackage{caption}
\DeclareCaptionLabelFormat{brackets}{[#1 #2]}
\DeclareCaptionListFormat{brackets}{[\tablename~#1 #2]} % 여기에 '표(\tablename)' 삽입
\captionsetup{labelformat=brackets,listformat=brackets}
\cftsetindents{table}{0em}{3.5em} % 표 차례에서 [표 XX]의 너비
\renewcommand\tref[1]{[\tablename~\ref{#1}]} % 본문에서 표 참조번호를 인용할 때 사용하는 \tref는 memoir 클래스에 내재되어있음.
% 비슷한 것으로 \fref가 있음
\hypersetup{hidelinks=true}
\begin{document}
\listoftables
\section{본문}
표~\ref{tab:test}에서
\tref{tab:test}에서
\begin{table}[b]
\centering
\caption{Test}
\label{tab:test}
이것은 표입니다.
\end{table}
\end{document}