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>처럼 입력하시면 좋습니다.
overleaf에서는 한글 출력이 되는데, 로컬에서는 한글 출력이 안 됩니다
2024.08.01 09:51
안녕하세요?
학위논문을 LaTeX로 작성하고 있습니다. 국문 논문이라서 한글 출력이 되어야 하는데요, 똑같이 XeLaTeX로 설정해서 컴파일하면 overleaf에서는 한글로 잘 출력되는데, 이상하게 로컬에서 TexLive를 설치해서 쓰든, MikTeX를 설치해서 쓰든 한글 출력이 안 됩니다.
왼쪽은 로컬에서 조판한 것이고, 오른쪽은 overleaf에서 조판한 것입니다,
Overleaf에서 템플릿을 받아다가 국문 논문에 맞게 제가 수정한 manuscript.tex 파일로 조판해야 하므로 그 파일을 첨부합니다.
윈도우 11 사용 중이고, MikTex 설치되어 있는 상태입니다. 희한하게 XeLaTeX로 조판한 다음 PDF 미리보기 할 때 프로그램이 멎어버립니다. TexLive 2024는 멎지는 않았는데 뭔가 이상합니다.
각종 글꼴도 모두 다 설치했는데... 왜 안 되는지 모르겠습니다.
감사합니다.
댓글 7
-
likesam
2024.08.01 13:02
-
kungmo
2024.08.01 14:43
likesam 님 답변 주셔서 정말 감사합니다!
LaTeX의 세계는 되게 미묘하군요 ㅎㅎ overleaf에서 오류라고 안 나오고, 경고라고만 나와서 무시했습니다.
경고 문구를 보니
Font shape `TU/stix/m/n' undefined Font shape `TU/HANBatang-LVT(0)/m/it' undefined No positions in optional float specifier. Font shape `OT1/cmr/m/n' in size <7.5> not available Size substitutions with differences Some font shapes were not available, defaults substituted.
이렇게 여섯 가지가 매번 나오고 있었습니다. 알려주신 방법을 곧바로 적용해 보겠습니다!
-
kungmo
2024.08.01 15:03
likesam 님 감사합니다!
한글 출력이 엄청나게 잘 됩니다. overleaf랑 비교하면 약~간 양식이 틀어져서 줄간격 문제 등(?)으로 한 페이지에 나와야 할 것들이 넘어가는 경우는 있지만, 한글이 나옵니다!
대신,
Font \TU/HANBatang-LVT.ttf(0)/m/n/12 has only 8 fontdimen parameters.
오류가 납니다. 오류가 나는데도 신기하게 pdf는 잘 만들어집니다. ^^ 수식 글꼴 설정할 때 amsmath 옆에 amssymb가 같이 있었는데, 이게 같이 있으면 오류가 나 버려서 컴파일이 안 됐습니다.
그래서 %\usepackage{amssymb} 로 주석처리 하는 순간 컴파일이 주루룩 되고 한글이 나왔습니다.
덕분에 많이 배웠습니다. 바쁘신 가운데 시간 내셔서 답변 주셔서 정말정말 감사합니다~
-
likesam
2024.08.01 22:37
말씀하신 font has only 8 fontdimen parameters 를 구글에 물어보니 아래의 site를 알려줍니다.
https://tex.stackexchange.com/questions/186603/error-font-l-tmpa-font-has-only-8-fontdimen-parameters?noredirect=1
그런데 한글 글꼴은 설정하셨지만, 영어 글꼴은 설정하지 않으시고 기본 글꼴을 쓰셨네요. 아래 처럼 넣어 주셔도 됩니다. 이 글꼴은 위에 참조글중 어울리는 글꼴 설정을 사용하였습니다.
\setmainfont[Ligatures=TeX]{TeX Gyre Termes} \setsansfont[Ligatures=TeX]{TeX Gyre Heros}
overleaf에서는 에러가 없다고 하셔서, 궁금하여 overleaf에서 컴파일 하여 봤습니다. 함초롱 글꼴이 없어서 에러가 납니다. 아마도 올려주신 소스코드에 맞게 이름을 바꾸어둔 함초롱 글꼴을 미리 설치하여 두신 것으로 추측합니다.
그리고 siunitx와 physics 패키지에서 \qty 명령이 충돌한다는 것은 해결하여 두셨을 까요? overleaf에서 충돌과 해결방법을 알려주고 있습니다만... 어느 패키지를 사용하여야 하는지 살펴보시고 필요없는 것은 빼주세요. 둘다 써야만 하신다면, siunitx 설명서를 보시면 phsycs 패키지와 충돌을 피하는 방법을 ( siunix를 쓰라고 ^^) 설명해 두었습니다.
8 Compatibility with other packages
In general, siunitx should be usable with other packages without interference.
When the physics package is loaded before siunitx, the command \qty is not defined. Users may use the version 2 command \SI, which can be used as a dropin replacement for \qty. Alternatively, if the siunitx definition is preferred, you may use
\AtBeginDocument{\RenewCommandCopy\qty\SI}
and use the longer name \quantity to access the functionality of the physics package.아니면 siunitx를 v2 호환모드로 사용하시면 siunitx에서는 \qty를 쓰지 않을 겁니다.
5 Upgrading from version 2
The package has been largely re-written internally between versions 2 and 3. A significant number of key–value settings have new, more descriptive, names. Where possible, older names are mapped to newer ones internally: you will be warned in the log if this is the case.
It is possible to use the LATEX2ε kernel mechanism to load the last version 2 release for documents that cannot be successfully processed using version 3. This can be achieved using
\usepackage{siunitx}[=2021-04-09]
or
\usepackage{siunitx}[=v2]
This approach will work with older systems which still have version 2 installed, meaning that you can reliably use it to work between systems with different versions of siunitx.siunix나 physics 패키지의 기능을 사용하신다면 설명서를 살펴 보시길 권해드립니다.
---
overleaf에서 작업하실 때 혹시
xelatex으로 컴파일 한 것이 아니고,
pdflatex으로 컴파일 하셨고, \usepackage{fontspec}은 없는 상태로 컴파일 하셨나요? -
kungmo
2024.08.04 23:56
정성껏 답변 주셔서 정말정말 감사합니다.
overleaf에서 \usepackage{fontspec} 적용하여 XeLaTeX로 컴파일했습니다. 이제는 양이 80쪽 가까이 되다 보니 overleaf에서 컴파일 시간 초과라면서 컴파일도 잘 안 됩니다 ^^
확인해 보니 함초롱 글꼴은 제 컴퓨터에 이미 있어서 오류가 안 났나봅니다. 영문 글꼴을 알려주신 대로 설정해서 다시 컴파일해보겠습니다!
-
noname
2024.08.02 11:59
likesam께서 상세한 설명과 예제를 보여주셨기 때문에 문제는 해결되었습니다만, 아주 조금 설명을 보충하려고 합니다.
(1) 엔진 검사
\usepackage{iftex}으로 \ifPDFTeX, \ifXeTeX, \ifLuaTeX을 중첩 조건문으로 쓰고 있는데, 이것이 문제는 아니겠지만 XeTeX일 때와 LuaTeX일 때 사실상 설정이 동일하기 때문에 웬지 중복감이 들지요.
다음처럼 하는 것이 아마 최신 트렌드이겠습니다. 저는 조금 다른 문법을 잘 쓰지만 표준적인 모델을 보인다는 의미에서 예시하겠습니다.
\usepackage{etoolbox,iftex} \ifboolexpr{bool{xetex} or bool{luatex}} { ...xetex 또는 luatex일 때의 설정... } { ...xetex 또는 luatex이 아닐 때의 설정... }
(2) 레거시 폰트 설정과 유니코드 폰트 설정
제공된 소스에 의하면, 레거시 폰트 설정과 유니코드 폰트 설정이 섞이어 있습니다. 특히, 다음 사항을 강조하여 두겠습니다.
XeTeX으로 컴파일할 때, \usepackage{fontenc}가 \usepackage{kotex}보다 나중에 나오면 안됩니다.
문제는 단순히 \usepackage{fontenc}행의 위치를 바꾸는 데 그치지 않고, \usepackage{fontenc}를 내부적으로 부르는 폰트 설정 패키지의 경우입니다. 이 경우에는 stix 패키지가 그런 경우에 해당하는데, 만약 stix 또는 stix2가 \usepackage{kotex}보다 뒤에 놓이고 XeTeX으로 컴파일하는 상황에서는 한글이 한 글자도 안 나오는 당황스러운 결과가 나타날 수 있습니다. 이에 대해서는 위의 likesam께서 인용한 다른 글(아마 제가 답변한 것 같은데)에 지적되어 있습니다.
그러므로 레거시 폰트 패키지를 XeTeX과 함께 쓰고 있지 않은지 항상 확인해야 할 것입니다.
(3) 함초롬 LVT 폰트 설정의 오류
이 문제는 likesam께서 이미 지적하셨습니다. 핵심은 HANBatang-Regular.ttf라든가 HANBatang-Bold.ttf 같은 폰트가 존재하지 않는다는 것이지요. HANBatang-LVT.ttf, HANBatangB-LVT.ttf가 폰트의 파일이름입니다.
위의 (1), (2), (3)에서 지적한 사항을 적용하여 폰트 설정 부분을 다시 써보면 다음과 같이 됩니다.
\usepackage{amsmath} \usepackage{etoolbox} \usepackage{iftex} \ifboolexpr{bool{xetex} or bool{luatex}} { %%% stix2 otf \usepackage{fontspec} \setmainfont{STIX Two Text} \setmainhangulfont{HANBatang-LVT}[ Extension = .ttf, UprightFont = *, BoldFont = {HANBatangB-LVT}] \setsanshangulfont{HANDotum-LVT}[ Extension = .ttf, UprightFont = *, BoldFont = {HANDotumB-LVT}] \usepackage{unicode-math} \setmathfont{STIX Two Math} \setmathhangulfont{HANBatang-LVT.ttf} }% { \ifpdftex \usepackage[T1]{fontenc} \usepackage{amssymb} \usepackage{textcomp} \usepackage[notextcomp]{stix2} % without notextcomp, "Option clash for package textcomp." error pops up... \usepackage{dhucs-nanumfont} \fi }
(4) amssymb와 unicode-math
amssymb는 pdftex, xe/luatex에서 모두 쓸 수 있습니다만 stix 패키지가 정의하고 있는 몇 개의 부호가 amssymb에 정의되지 않은 것이 있습니다.
이 문제를 피해가려면 unicode-math를 amssymb 대신 쓰는 것입니다. unicode-math를 로드하였다면 amssymb를 제외하는 것이 좋습니다.
이 문서의 경우, pdflatex에서 stix를 쓰고 있는데, 제 생각엔 stix2가 나을 듯하고, xe/luatex에서는 stix2 otf를 적용해 보았습니다.
-
kungmo
2024.08.05 00:04
바쁘실 텐데도 시간 내 주셔서 아주 자세히 답변 주셔서 감사합니다! 정말 이번 일을 계기로 하여 덕분에 많이 배우고 있습니다.
(1) 엔진 검사도 트렌드(?)가 있군요 ㅎㅎ 되게 신기합니다. 곧바로 적용해보겠습니다.
(2) 패키지 불러오는 것도 순서가 중요하군요... 문맥상... 말씀하신 레거시 폰트 패키지가 stix이고, 유니코드 폰트 패키지가 \usepackage{fontspec}로 읽히는데요, 맞는 걸까요?
(3) 기존 것에서 더 정교하게 만들어 주셔서 감사합니다. 이 부분도 곧바로 적용하겠습니다. 진짜 정말 감사합니다.
(4) 글꼴과 LaTeX의 세계가 정말이지 신기합니다. 각 패키지별로 역사가 있는 것 같은데요, 선생님처럼 역사를 알면 다루기가 한결 편할 것 같다는 생각이 스쳐 지나갑니다. pdflatex로 컴파일하면 지금 설정으로는 (당연히) 컴파일 오류가 날 테니, XeLaTeX로 컴파일 할 것이니까 stix2를 찾아서 한 번 적용해보겠습니다.
overleaf에서는 한글이 나왔는데, local에서 compile하니 한글이 나오지 않는 다고 말씀하시고 소스도 올려주셨습니다.
한글이 나오지 않은 이유는
함초롬 글꼴의 설정이 틀립니다.
xelatex을 쓰시면서 \usepackage[T1]{fontenc} 도 같이 쓰셨습니다.
xelatex을 쓰시면서 stix글꼴을 쓰시려면 unicode-math와 mathfont를 지정하여 주시는 것이 맞을 듯합니다.
아마도 overleaf나 Local에서도 error message로 나왔을 텐데, 에러 메시지를 읽지 않으시고 콤파일 버튼만 누르셔서 PDF만 보신 것이 아닐까 생각합니다.
아래는 한글이 나오도록 수정한 부분만 거칠게 정리하여 넣은 것이고, 아마도 고수분들께서 손을 봐주실 수도 있을 겁니다.
10년전 문서이지만 http://www.ktug.org/xe/index.php?document_srl=186318#comment_186378 가 도움이 될수도 있겠다고 생각합니다.