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>처럼 입력하시면 좋습니다.
\everydisplay에 \setstretch 명령을 주었을 때 font warning 문제
2014.01.03 13:21
제목 그대로입니다.
한글 본문인 문서에서 줄간격을 적당히 주었을 때(여기서는 \linespread{1.5})
수식의 행렬의 행 간격이 과도하게 벌어지는 것을 막아보고자
\everydisplay{\setstretch{1.2}}를 주었습니다.
(\setstretch 명령은 setspace 패키지에 들어있는 것으로 알고 있음)
이럴 경우, 매 display 수식에서 폰트 경고를 만나게 됩니다.
LaTeX Font Warning: Command \normalsize invalid in math mode on input line 18.
LaTeX Font Warning: Command \normalsize invalid in math mode on input line 26.
===
레이텍 수식의 폰트 크기는
우리가 본문에서 사용하는 \tiny, \small, \normalsize, \large 등과는 다르게
\textstyle, \displaystyle, \scriptstyle,\scriptscriptstyle로 구성되어 있어
이런 경고를 내뱉는 것으로 이해는 합니다만, 경고를 뱉지 않고 현명하게 처리할 수 있는 방법은 없을까 해서요.
즉 본문 간격과 수식의 행렬 간격을 다르게 주고자 하는 것입니다.
% test_everydisplay.tex
\documentclass[a4paper,nanum]{oblivoir}
\usepackage{jiwonlipsum}
\usepackage{amsmath}
\linespread{1.5}
\everydisplay{\setstretch{1.2}}
\begin{document}
\jiwon[1]
\[
\begin{bmatrix}
a & b & c \\
d & e & f \\
g & h & i
\end{bmatrix}
\]
\jiwon[2]
\begin{align}
\int_{C}{F_1 dx + F_2 dy} & = \int_{t=0}^{t=2\pi}(\cos t - \sin t)(-\sin t dt)+(\cos t)(\cos t dt) \\
& = \int_{0}^{2\pi}(-\sin t \cos t +1)dt \\
& = 2\pi
\end{align}
\jiwon[3]
\end{document}
댓글 5
-
nanim
2014.01.03 13:58
-
Progress
2014.01.03 14:20
답변 고맙습니다.
\everydisplay{\setstretch{1.2}}와
\renewcommand\arraystretch{1.2}의 결과가 같지는 않군요.
(\arraystretch 값을 조정한 것이 더 행과 행 사이의 간격이 넓음)
최근 몇 년간 모두 \everydisplay{\setstretch{1.xx}}를 조절하여 행렬의 행 간격을 조절하곤 했는데,
에러는 아니라 무시하곤 했지만
디스플레이 수식이 많을 경우 latex font warning 때문에 컴파일 속도가 조금 더뎌지는 단점이 있었습니다.
아무래도 setspace.sty을 깊숙이 들여다보아야겠습니다.
\@currsize, \displayskipstretch 같은 것들이 눈에 띄니까 벌써부터 골 아프네요.
-
DohyunKim
2014.01.03 15:15
폰트를 부르지 않는 방법, 즉 baselinestretch만 재정의하는 방법도 생각해볼 수 있습니다.
\everydisplay\expandafter{\the\everydisplay\def\baselinestretch{1.2}\selectfont}
align 앞의 공백은 jiwonlipsum이 기본값으로 \par를 삽입하기 때문인 거 같으니 nopar 옵션을 주면 좀 나아지지 않을까 합니다.
-
Progress
2014.01.03 16:33
고맙습니다.
두 분의 답변대로 하면 일단 setspace 패키지의 \setstretch 명령을 쓰지 않기 때문에 font warning을 피해갈 수 있으며, 디스플레이 수식의 줄간격만 조절할 수 있어 좋습니다.
align 앞의 공백은 지적해주신 대로 제가 예제를 잘못 만들어서 그렇습니다. \par가 삽입되는 \jiwon 명령을 썼기 때문인데요, 말씀하신 대로 nopar 옵션을 주면 됩니다.
\usepackage[nopar]{jiwonlipsum}
(jiwonlipsum에는 numbers라는 옵션도 있더군요. 처음 알았습니다.)
제가 테스트해본 예제를 올립니다.
%% test_everydisplay.tex
% \documentclass[a4paper,nanum,adjustmath]{oblivoir}
% adjustmath는 {above/below}display(short)skip을 건드리는 걸까?
\documentclass[a4paper,nanum,]{oblivoir}
\usepackage[nopar]{jiwonlipsum}
\usepackage{amsmath}
\linespread{1.4}
% \renewcommand\arraystretch{1.0}
% \everydisplay{\setstretch{1.2}}
% \setlength{\lineskip}{.1\onelineskip}
\everydisplay\expandafter{\the\everydisplay\def\baselinestretch{1.0}\selectfont}
% \allowdisplaybreaks
\begin{document}
\jiwon[1]
\[ \begin{bmatrix} a & b & c \\ p & q & f \\ g & j & i \end{bmatrix}, \begin{bmatrix} 1 & 0 \\ 0 & 1\end{bmatrix}, \begin{bmatrix} 1 & 0 & \ast\! \\ 0 & 1 & \ast\! \end{bmatrix}, \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 0 & 0 \end{bmatrix}, \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \]
\everydisplay\expandafter{\the\everydisplay\def\baselinestretch{1.2}\selectfont}\[ \begin{bmatrix} a & b & c \\ p & q & f \\ g & j & i \end{bmatrix}, \begin{bmatrix} 1 & 0 \\ 0 & 1\end{bmatrix}, \begin{bmatrix} 1 & 0 & \ast\! \\ 0 & 1 & \ast\! \end{bmatrix}, \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 0 & 0 \end{bmatrix}, \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \]
\everydisplay\expandafter{\the\everydisplay\def\baselinestretch{1.4}\selectfont}\[ \begin{bmatrix} a & b & c \\ p & q & f \\ g & j & i \end{bmatrix}, \begin{bmatrix} 1 & 0 \\ 0 & 1\end{bmatrix}, \begin{bmatrix} 1 & 0 & \ast\! \\ 0 & 1 & \ast\! \end{bmatrix}, \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 0 & 0 \end{bmatrix}, \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \]
\jiwon[3]\begin{align} & \angle{BDM}=\angle{EAI}\text{(길이가 같은 두 호 } BM, CM\text{의 원주각)}\\ & \angle{DBM}=90^\circ=\angle{AEI} \\ & \text{즉 } \triangle{DBM} \sim \triangle{AEI} (AA)\\ & AI \times BM=DM \times IE=2Rr \text{(닮음비)} \end{align} 따라서 $R^2-d^2 = 2Rr$이 나오고, 이를 정리하면 $d=\sqrt{R^2-2Rr}$가 성립한다 \begin{align} \int_{C}{F_1 dx + F_2 dy} & = \int_{t=0}^{t=2\pi}(\cos t - \sin t)(-\sin t dt)+(\cos t)(\cos t dt) \\ & = \int_{0}^{2\pi}(-\sin t \cos t +1)dt \\ & = 2\pi \end{align}
\jiwon[3]
\end{document}
-
그로몹
2014.01.03 23:24
꽤 쓸모있는 팁입니다. 팀블로그에 정리해 주시는 것이 더 좋을 듯도 싶습니다.
\matrix와 같은 array 환경에 대해서는 \arraystretch를 조작하면 되겠고요,
\renewcommand\arraystretch{1.5}
align과 같은 여러줄 수식에 대해서는...
\setlength{\lineskip}{1.5\onelineskip}
이 정도는 어떠신가요?
그리고 align의 앞에 나오는 지나치게 큰 공백은 \abovedisplayskip 값을 조절하면 되지 않을까 싶네요.
\setlength{\abovedisplayskip}{0pt}
참고로, mathtools에 있는 \SwapAboveDisplaySkip도 이따금 좋은 해법일 거라고 생각합니다.