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>처럼 입력하시면 좋습니다.
XeLaTeX으로 옛 그리스어 조판하기.
2019.12.16 21:36
밑에서 고대 페르시아어와 이집트어를 표현하기 위해 각각 12시간을 보냈습니다.
이번에는 수학모드가 아닌 직업 <그리스 문자>를 재현하는 문제 입니다.
하루 동안 검색하고 실험 했는데 전혀 결과를 얻지 못했습이다.
\documentclass{article} \usepackage{fontspec} \setmainfont{Latin Modern Roman} \begin{document} \tableofcontents \section{introduction} The Apology begins with Socrates saying he does not know if the men of Athens (his jury) have been persuaded by his accusers.\\ Οι παλαιότεροι διάλογοι του Πλάτωναµπορεί καλά να έχουν γραφεί στην εποχή της ζωής του Σωκράτη και η πρόθεσή τους είναι καλλιτεχνική, σχεδόν σατιρική. Αναφέρει συζητήσεις που τον διασκέδαζαν και δεν ασχολούνται πολύµε την έρευνα της αλήθειας.\\ \textgreek{αταραξία}.\\ \begin{greek} μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος οὐλομένην \end{greek} \end{document}
그 어떤 그리스 문자도 표현되지 않습니다. 그래서 \usepackage 부분을 다른 것으로 고쳐 실행했습니다.
\usepackage{fontspec} \usepackage{fontenc} \usepackage{inputenc} \usepackage{alphabeta} \begin{document} \end{document}
\usepackage{fontspec} \usepackage[greek.polutoniko,english]{babel} \newenvironment{greek} {\begin{otherlanguage*}{greek}} {\end{otherlanguage*}}
\usepackage{fontspec} \usepackage{lgreek}
\usepackage{fontspec} \usepackage{textgreek}
\usepackage{fontspec,xunicode} \usepackage{polyglossia} \setdefaultlanguage{english} \setotherlanguage[variant=ancient]{greek}
이와 같이 바꿔 가며 컴파일을 했지만, 결과가 얻어지지 않습니다. 심지어 경고문으로
와 같이 뜨는 경우도 있습니다.
그외 teubner.sty 가 있지만 이 또한 무의미 합니다.
이곳에 소개한 2011년 것도 그대로 해보았지만 결과는 실패입니다.
무엇이 문제입니까?
댓글 4
-
yihoze
2019.12.16 23:25
-
김인동
2019.12.17 00:15
감사합니다. 이런 황당한 일이! 결국 지원하는 폰트 지정 하나로 끝나는 군요.
-
yihoze
2019.12.17 11:04
텍 엔진과 폰트에 대해서 충분히 이해하지 못하신 것 같아 몇 가지 도움 말씀 드리겠습니다.
텍은 처음에 8비트 문자만 처리할 수 있었습니다. 그리고 트루타입 폰트보다도 먼저 만들어졌기 때문에 여러 독자적인 폰트 시스템을 사용했습니다. 한글 같은 문자들을 처리하려면 (한 파일에 256 문자가 포함된) 복수의 폰트 파일들을 사용해야 했습니다. 그리고 인코딩도 제각각이었습니다. 언어마다 서로 다른 인코딩을 사용했습니다. 그래서 특정 문자들을 식자하려면 폰트와 인코딩을 아우르는 여러 파일들이 필요했고 그것들을 서로 연결하는 패키지가 있어야 했습니다. 그 모든 것들이 pdftex의 유산입니다.
xetex과 luatex이라는 텍 엔진이 등장하면서 트루타입과 오픈타입 폰트를 그리고 유니코드를 사용할 수 있게 되었습니다. 그것은 더 이상 폰트 패키지가 필요하지 않다는 것을 의미합니다. 따라서 그리스어든 무엇이든 어떤 문자를 식자하고 싶다면 그 문자가 포함된 폰트만 갖고 있으면, 그리고 그것을 유니코드로 입력하면 됩니다.
babel 패키지는 비라틴 문자를 식자하기 위한 것이 아닙니다. xetex이나 luatex을 사용하는 경우에 어떤 문자가 식자되고 안되고는 전적으로 폰트에 달려 있습니다. babel은 두 가지 이상의 언어로 한 문서를 만들 때 필요한 것입니다. 예를 들자면 독일어를 메인 언어로 설정하면 \chapter 명령이 식자하는 것은 Chapter가 아니고 Kapitel이 됩니다. 하이프네이션 규칙도 바뀝니다. 심지어 영국 영어와 미국 영어의 하이프네이션 규칙을 번갈아 사용할 수 있습니다. 그런데 babel도 pdftex의 유산입니다. 이런 목적으로 xetex을 사용한다면 babel이 아닌 polyglossia 패키지를 사용해야 합니다.
다른 언어로 문단 이상의 수준으로 작성할 게 아니라면 polyglossia를 필요하지 않습니다. 이를테면 콜론이 영어에서는 앞 단어와 붙지만 프랑스어에서는 그렇지 않습니다. 그래서 <french> 환경에서는 콜론이 앞 단어에 붙어있든 떨어지든 자동으로 띄어쓰기 됩니다. 다시 말해 해당 언어의 타이포그래피에 맞게 처리하는 것이 polyglossia가 (pdftex에서는 babel이) 하는 것입니다.
그러니까 대분분의 경우,
\newfontfamily\XXLangFont{...}
\newcommand\textXX[1]{{\XXLangFont #1}}
\newenvironment{XXLang}{\\XXLangFont}{}이렇게 하는 것만으로 충분할 것입니다.
fontenc, inputenc 패키지는 모두 인코딩에 관한 것인데, xetex은 유니코드를 사용하기 때문에 필요하지 않습니다. 따라서 필요한 패키지는 딱 하나, fontspec뿐입니다.
-
김인동
2019.12.18 19:11
예. 처음 댓글을 주신 것을 읽고 다시 찾아보니 xetex의 기능이 엄청나다는 것을 알았습니다.
처음 87년 amstex을 쓰다가 아마도 제 기억에
89년인가 90년에 은광희 선생님과 도은이 아빠님이 dos 환경에서 한글 입력이 가능하도록
하신 것으로 압니다.
그후 90년대 들어 LaTex으로 갈아탔는데,
(그 때는 도은이 아빠님께 많은 도움을 받았습니다.)
이제는 XeLatex을 쓰면서 엄청 놀랐습니다.
지금 주신 내용도 처음 주신 글을 보고 확인 했습니다.
그리고 확실히 웹에서 지원하는 msfonts를 깔아서 Times New Roman으로 고정했습니다.
감사합니다.
http://www.ktug.org/xe/index.php?document_srl=209797