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>처럼 입력하시면 좋습니다.
아랍어 사용 문제
2020.03.18 02:58
이번에는 아랍어 사용이 문제입니다.
아랍어는 xelatex으로 컴파일 할 때,
\usepackage{polyglossia}
를 써야 만 합니다.
그런데 첨부 파일 처럼 사용하면
header 글꼴이 깨지고, 또 사용 후 뒤에 붙는 한글이 깨지는 현상이 있습니다.
이를 피할 수 있는 방법은 없읍니까?
물론 앞부분 \part를 죽이면 header 글꼴은 살아납니다. 하지만 사용 후 글꼴이 깨지는 문제는
해결이 안됩니다.
간단히 컴파일 할 수 있게 파일 첨부 합니다.
댓글 11
-
yihoze
2020.03.18 09:50
-
yihoze
2020.03.18 10:15
bidi도 XeTeX의 TeX--XeT 알고리즘을 사용한다는 설명이 있어서, bidi 없이 다음과 같이 해서 같은 결과를 얻었습니다.
\TeXXeTstate=1
\newfontfamily\arabicfont[Script=Arabic]{Noto Naskh Arabic}
\newcommand\textarabic[1]{{\arabicfont\beginR #1 \endR}} -
noname
2020.03.18 11:08
앞서 yihoze께서 누차 강조해오셨고 잘 설명해주신 바대로, xetexko를 쓰겠다면 polyglossia를 조심해서 다루어야 할 것입니다. polyglossia가 더 중요한 상황이라면 xetexko 없이 main language를 korean으로 설정하는 것이 좋은 선택이라는 생각입니다.
1. xetexko를 쓰지 않고 polyglossia만 사용한 경우
2. xetexko를 사용하면서 arabxetex으로 아랍어를 표현한 경우. (저는 이 방법이 좋습니다. arabxetex은 유니코드 문자를 그대로 입력할 수도 있고 아스키 전자(transliteration) 입력도 지원하기 때문입니다.)
3. 현재의 설정을 최대한 바꾸지 않는 방법(xetexko와 polyglossia를 모두 이용)
나중에 다른 어디서 무슨 문제가 생길지는 모르겠지만 일단 아랍어 폰트만이 문제라면, 현재 소스에서 \usepackage{xetexko}와 \setmainfont, \setmainhangulfont, \setmainhanjafont 설정 부분을 아랍어 설정(\newfontfamily\arabicfont 부분)보다 뒤로 옮겨보십시오. (이것은 TeX Live 2020을 기준으로 한 것입니다. 사용하고 계신 TeX 시스템에 들어 있는 bidi가 언젯적 것인지 모르겠지만 제가 알기로 bidi는 요 근래 굉장히 많은 변화가 일어난 패키지 중의 하나입니다.)
-
yihoze
2020.03.18 12:09
xetexko를 뒤로 옮기니 문제의 증상이 나타나지 않습니다. 저는 아직 TL 2019를 사용합니다.
-
Progress
2020.03.18 14:07
다른 얘기입니다만...
1. 한글 본문 폰트로 지정한 Noto Serif CJK KR 패밀리는 다양한 굵기---Light, Regular, Medium, SemiBold, Bold 등---를 갖추고 있습니다. 굵기가 다양하지 않은 폰트라면 모를까, 이미 갖추고 있는데 굳이 AutoFakeBold 같은 딱한 옵션을 쓸 필요 없습니다. 굵기에 적합한 폰트를 직접 지정하는 것이 좋겠습니다.
다음은 Noto Serif CJK KR의 보통 굵기 폰트로 Noto Serif CJK KR Regular(아무 것도 지정하지 않으면 Regular 사용)를, 볼드 폰트로 Noto Serif CJK KR Bold를 지정한 예입니다.
% \setmainhangulfont[Ligatures=TeX]{Noto Serif CJK KR}[AutoFakeBold,AutoFakeSlant]
\setmainhangulfont[Ligatures=TeX]{Noto Serif CJK KR}[BoldFont={* Bold}]* 참고로 xetexko 버전 2.7부터는 \setmainhangulfont, \setmainhanjalfont 등 한글과 한자 폰트지정 명령에 기본 옵션으로 Ligatures=TeX이 주어지기 때문에 이것조차도 생략해도 됩니다
2. 라틴 본문 폰트로 지정한 Noto Serif 패밀리 또한 다양한 굵기의 폰트를 포함하고 있습니다. 디폴트로 Noto Serif Regular가 라틴 본문 폰트로 지정될 텐데요, 한글 Noto Serif CJK KR Regular와 비교할 때 획 굵기가 달라 어울리지 않으니 조금 수정해보는 것도 좋겠습니다.
다음은 Noto Serif의 보통 굵기 폰트로 Noto Serif Light를, 볼드 폰트로 Noto Serif Bold를 지정한 예입니다.
% \setmainfont{Noto Serif}
\setmainfont{Noto Serif}[UprightFont={* Light},BoldFont={* Bold}]===
1과 2를 적용하여 본문을 조판한 결과물이 우측에 있습니다.
-
큰바위
2020.03.18 16:29
감사합니다. Noto에도 이런 사연이 있군요. 첨부 파일은 제가 작업하는 <수학사>(1부 그리스 편 끝냄)에 아랍 부분이 시작되어 쓰다 문제가 생겨 임시로 해본 것입니다. 잘 아시겠지만, 한글은 <은신문>, <은그래픽>을 사용합니다. 일단 Noto 글꼴을 사용하니 조절하겠습니다. 혹실히 차이가 있는 것을 느낍니다. 감사합니다.
-
큰바위
2020.03.18 15:26
두 분 감사합니다. 실험으로 첨부한 파일에는 noname님의 말씀처럼 arabxetex을 이용해 아무 문제가 없었습니다.
그런데 지금 작업하고 있는 문서에 그대로 적용하니 무엇이 문제인지 모르나 bidi 어쩌구 하는 경고문이 뜨더군요.
(파일 첨부를 시도 했는데 안되는 것 같습니다.)
그래서 yihoze님께서 소개하신 2번 째 방법을 사용하니 아무 문제 없이 해결이 되었습니다.
arabxetex이 무엇과 충돌이 일으키는 것인지 잘 모르겠습니다.
경고문은 2줄입니다.
/usr/share/texlive/texmf-dist/tex/xelatex/bidi/latex-xetex-bidi-def:138:Command \XeTex already defined. ...di@reflect@box{E}}\kem-.1667em \TeX}}$}}
/usr/share/texlive/texmf-dist/tex/xelatex/bidi/latex-xetex-bidi-def:140:Command \XeTex already defined. ...di@reflect@box{E}}\kem-.1667em \LaTeX}}$}} -
큰바위
2020.03.19 04:55
1. yihoze님께서 소개 해주신 방법으로
\usepackage{bidi}를 이용했습니다. 그런데 <캄신(\textarabic{خمسين}) 무엇인지는> 이 경우는 polyglossia를 썼을 때와 같이 아무 문제가 없습니다. 문제는 두 경우 모두 바로 뒤에 \footnote{}가 놓이면 문제가 생깁니다. 즉두 경우 모두 <캄신(\textarabic{خمسين}) \footnote{내용} 무엇인지는>로 하면 <무엇인지는>이 사각형으로 나온다는 겁니다. 그래서 <캄신(\textarabic{خمسين})이 \footnote{내용} 무엇인지는> 와 같이 한글을 한자 첨가해야 아무 문제가 없다는 겁니다. 그 이유는 무엇일까요?
2. noname님께서 해주신 arabtex의 경우 잘 작동이 되지만, 고전 근동어 하나 만 들어가도 1.번에 설명한 것과 같이 됩니다.
-
yihoze
2020.03.19 07:48
noname님이 말씀하신 대로 \usepackage{bidi}와 \usepackage{xetexko}를 가장 뒤에 두세요. xetexko가 맨 뒤에 있어야 합니다.
\usepackage{bidi}
\usepackage{xetexko}결국 이 문제는 bidi가 야기하는 것으로 보이네요.
-
noname
2020.03.19 13:12
시간을 좀 내어서 지난번 질문하신 것을 포함하여 좀 찬찬히 들여다봤습니다. 선생님의 질문에 많은 분들이 관심을 가지면서도 선뜻 답변하지 못하는 이유 중에 가장 큰 요인은 "테스트해볼 수가 없다"는 것입니다.
1. "최소작업례"를 제공하십시오. "이전에 질문한 글에 있는 파일을 찾아서 테스트해보라"고 요구할 수 없습니다. Progress께서 언급하신 대로, "질문할 때마다 반복해서" 파일을 올리셔야 합니다.
2. 여러 파일이 필요한 이런 샘플의 경우에는 "모든 필요한 파일"이 다 있어야 합니다. 여러 번 클릭하게 하지 마십시오. 한 개의 zip 파일을 다운받으면 거기에 필요한 모든 파일이 있도록, 말하자면 테스트해보려는 잠재적 답변자의 불편을 최대한 덜어주는 방식이어야 합니다.
3. 답변하려는 사람이 뭔가 추가로 설치하지 않으면 안 되는 경우, 이를테면 폰트, 패키지(hierotex) 이런 것은 최소한 링크라도 제공하는 성의를 보이셔야 합니다.
====
첨부파일은 폰트를 제외하고 필요한 모든 파일을 묶은 것입니다. (질문자께서 이렇게 하지 않으시니 제가 해봤습니다.) hierotex과 어딘가에 가서 다운받아야 하는 폰트 2개를 포함해서 크기가 커졌기 때문에 게시판에는 첨부할 수 없습니다. 이럴 때는 dropbox 같은 걸로 공유하시면 좋습니다.
https://bit.ly/2U1dW01
그러나 만약 hierotex과 폰트를 제외한다면 소스를 압축하면 게시판에 첨부할 수 있을 것입니다. 적어도 그 정도는 해주십시오.
첨부파일을 풀면 test.sh가 있는데 이것으로 컴파일할 수 있습니다. 테스트해보시려는 다른 분께서는 이 방법을 이용해주십시오.
====
제가 본 것 서너 가지만 지적하겠습니다.
- 문단 나누기를 \\로 하지 마십시오. 이것은 극히 나쁜 습관이고 TeX에 적합하지 않은 것입니다. 백슬래시 두 개는 "문단 나누기"가 아닙니다. 백슬래시 두 개를 준 결과를 보면 마치 문단이 나누어진 것 같이 보일지 모르나 \par (즉 빈 줄)가 나오기까지 아직 문단이 형성되지 않은 상태입니다. 다시 강조하겠습니다. "문단 나누기를 \\로 하지 마십시오." 한 번 더 강조하겠습니다. "문단을 \\로 나누지 마십시오."
- 아랍어가 들어오면서 bidi가 문제가 되었습니다. 이 bidi라는 패키지는 유달리 패키지 로딩 순서에 민감합니다. 그래서 frame.tex 등에 있던 \usepackage 문장을 삭제하고 패키지 로딩 관련한 부분을 좀 정리했습니다. yihoze께서 권고하시는 대로, xetexko를 가장 마지막에 오는 bidi보다 뒤에 두는 것이 이 경우에는 안전해보입니다.
- cjhebrew는 xetex을 지원하지 않습니다. 이것은 pdflatex과 lualatex에서만 모든 결과가 제대로 나옵니다. polyglossia의 hebrew 지원을 이용하는 것이 좋다고 봅니다만(어차피 polyglossia를 쓰고 있으니) 여기에 대해서 별다른 조치는 취하지 않았습니다. 그냥 폰트만 지정하고 지나갔는데 이 부분은 충분히 해결하실 수 있을 것입니다.
- hierotex과 hieroglf는 둘 중 하나만 쓰시는 게 좋지 않겠습니까? hieroglf 패키지도 뭔가 이상한 동작을 할 수 있을 걸로 생각되는데요, 이를테면 \pmglyph 명령을 index에서 쓸 수 없게 될지도 모릅니다. 첨부 파일 샘플에서는 원래대로 진행하면서 \index 명령 안에 있는 \pg 부분을 제거했습니다.
- index는 komkindex로 만듭니다. komkindex -s kotex academ1.idx 명령을 한 번 내리면 될 것입니다.
- xltxltra와 xunicode는 불필요해보입니다.
- skt 패키지는 제거했습니다. 가장 최근에 올리신 샘플을 기준으로 했습니다.
- 힌디어 \hd 명령을 재정의했으니 참고하십시오.
- cframe 안에 각주가 들어가는 것은, 소스를 보니 이왕 footnote 패키지를 올리고 있더라고요. 그렇다면 savenotes를 이용하는 간단한 해법을 도입하면 쉬울 듯합니다. euclide1.tex에 제가 해둔 것이 있으니 참고하십시오.
그밖에도 뭔가 더 있을 것 같긴 한데 기억이 나지 않네요. 제가 링크한 소스로 컴파일한 결과를 첨부하겠습니다. (끝에 쯤에 산스크리트 숫자가 이상하게 나왔지만 이건 아마도 skt를 뺐기 때문에 그런 듯합니다.)
-
큰바위
2020.03.19 19:04
여러분 감사합니다.
지금 내일 오전 눈 수술이 있어 병원에 입원하고, 산동제를 넣어 잘 보이지 않지만
천천히 읽어 보았습니다.
1. bidi를 소개해주셔서 오늘 새벽에 매뉴얼을 받아 읽어 보니 <bidi를 모든 패키지 밑에 놓아야 한다.>고 되어 있어서 그렇게 했는데 결국 xereko가 bidi 다음에 오니 해결이 됐습니다.
2. noname님 말씀대로 되도록이면 보시는 분들이 간단히 실험해보도록 했어야 하는데, 자꾸 잊어 먹어 그래도 이번에는 간단히 했음에도 또 이런 일이 발생했습니다. 앞으로는 더 명료하게 하도록 노력하겠습니다.
3. \\ 도 자꾸 습관이 되어 쓰게 됩니다. 곧바로 바꾸도록 하겠습니다.
4. cjhebrew과 hierotex은 나름 쓰임이 다릅니다. cjhebrew는
\textcjhew{Klopatra} 로 명령하면 <히브리어>로 바뀌어 나옵니다. 또
hieroglf는 지원하는 문자가 몇 개 되지 않아 모든 것을 표현하지 못해
어쩔 수 없이 모든 문자를 지원하는 hierotex을 쓰게 된 것입니다.
4. 1권이 끝나고 2권을 쓰면서 이제 명령어를 주지 않고 곧바로 입력기를 통해 식자하고 있습니다.
그 내용은 제가 다른 게시판에 올려 놓았습니다. 특히 skt 패키지가 문제를 일으키는 것을 발견해
패키지 없이 문자 설정 만으로 사용할 수 있음을 그 글에 넣었습니다.
5. cframe의 각주 문제도 저번에 알려 주셔서 \footnotemake와 \footnotetext로 해결을 했습니다.
6. xunicode와 xltxltra도 처음에 제가 은신문을 쓰려할 때 noname님께서 보내주신 것인데
이번 기회에 실험을 하며 불필요 한 것을 알아 지웠습니다.
이 모든 작업을 2권을 쓰며 지금까지 지적해 주신 것을 하나 씩 실험해 봐서 알게 되었습니다.
지금은 아주 간소화해서
font 설정 만 할 수 있도록 하고 있습니다. 그래서 bidi를 실험해보며 어떤 차이가 있는지
알아보며 작업을 하고 있습니다.모든 분께 감사 드립니다.
polyglossia의 무언가가 kotex과 문제를 일으키는 것으로 보입니다. 둘 중 하나를 포기하여야 할 텐데, (kotex 없이 디폴트 언어를 korean으로 설정하는 것도 가능하지만) 어차피 필요한 것은 R2L뿐이니까 polyglossia 대신 bidi 패키지를 사용해 보시기 바랍니다.
\documentclass[a4paper]{article}
\usepackage{fontspec}
\usepackage{kotex}
\usepackage{bidi}
\setmainfont{Noto Serif}
\setmainhangulfont{Noto Serif CJK KR}
\newfontfamily\arabicfont[Script=Arabic]{Noto Naskh Arabic}
\newcommand\textarabic[1]{{\arabicfont\RLE{#1}}}
\begin{document}
캄신(\textarabic{خمسين}) 무엇인지는 모르나 문제가 있다.
\textarabic{بِسْمِ اللَّـهِ الرَّحْمَـٰنِ الرَّحِيمِالْحَمْدُ لِلَّـهِ رَبِّ الْعَالَمِينَ}
\end{document}