KTUG마당은 KTUG를 방문하는 모든 이용자가 대화를 나누고 소식을 전하는 곳입니다.

  • 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
  • Team Blog의 글을 이곳 게시판의 "정보글"로 모았습니다. Team blog는 기고자가 올린 글에 질문을 받는 부담을 줄이기 위하여 댓글을 허용하지 않았습니다. 그러나 이곳 게시판으로 모으면서 댓글을 달 수 있습니다. 게시물을 작성하실 때 댓글을 원하지 않으시면 댓글을 허용하시지 않으시기를 바랍니다. 또한 불필요한 소모성 댓글을 달지 않도록 주의하여 주시기를 바랍니다.
  • TeX과 관련된 질문이나 답변은 QnA 마당을 이용하십시오. TeX과 관련된 질문은 지웁니다
  • MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
  • 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
    • 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
  • 사용하는 편집기는 CKeditor입니다. 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
운영체제: 윈도7 32비트

지난 1월, 국가수리과학연구소에서 열린 KTS 학술대회에서 김도현 회장님께서 '어떤 텍을 주로 사용하시는가?'에 대한 질문에 '요즘 루아텍을 주로 쓰고 있노라'하신 것을 기억하시는 분이 있을 겁니다. 
루아텍 홍보(?) 차원에서 루아텍 Font names database 하는 법을 보고 드립니다. 

1. Font names database

아시다시피 지텍을 쓸 때 폰트 캐시(fc-cache)를 해주던 것과 비슷하게 루아텍을 사용할 때도 폰트 네임 DB를 구축해야합니다. 
루아텍에서 트루타입폰트(ttf) 또는 오픈타이폰트(otf)를 사용하려면 luaotfload라는 패키지를 얹어야합니다. 
우리 luatex-ko 패키지는 이를 자동으로 불러옵니다. (정확히는 luatexko-core.sty에서 이를 불러옴)

luaotfload 패키지 매뉴얼 5절에 보면 Font names database에 관한 방법이 나와있습니다. 

> luaotfload-tool --update (또는 luaotfload-tool -u)

(과거엔 luaotfload-tool이라는 명령 대신 mkluatexfontdb 명령을 사용하던 시절이 있었고 두 명령 모두 동일한 작동을 했습니다만, 텍라이브 2015 pretest는 더이상 mkluatexfontdb 명령을 지원하지 않습니다.)

한걸음 더 나아가 다음과 같이 명령을 내려봅니다. 

> luaotfload-tool -f -u -vvv

이렇게 폰트 네임 데이터베이스가 성공적으로 구축되면 말미에 대략 다음과 같은 메시지가 나옵니다. 

luaotfload | db : Found 1596 font files; 798 new entries.
luaotfload | db : Creating filename map.
luaotfload | db : Analyzing families.
luaotfload | db : Analyzing shapes, weights, and styles.
luaotfload | db : Ordering design sizes.
luaotfload | db : Rebuilt in 87888 ms.
luaotfload | db : Font index saved at ...
luaotfload | db : Gzip: C:/usr/texlive/2015/texmf-var/luatex-cache/generic/names/luaotfload-names.lua.gz
luaotfload | db : Byte: C:/usr/texlive/2015/texmf-var/luatex-cache/generic/names/luaotfload-names.luc
luaotfload | cache : Lookup cache saved.
luaotfload | cache : Lookup cache emptied.
luaotfload | db : Fonts in the database: 820
luaotfload | util : Task completed successfully.


실제로 luaotfload-names.lua.gz에 있는 luaotfload-names.lua를 에디터로 열어보면 사용자 컴퓨터에 있는 폰트와 TDS가 인식하는 폰트의 목록이 주루룩 나옵니다.


luaotfload-tool.png




그런데 한글 폰트 중에 말썽을 일으키는 폰트가 있습니다. 소위 culprit 폰트. 
이런 것들은 블랙리스트에 명단을 올려서 luaotfload-tool을 실행할 때 걸림돌이 되지 않도록 해야합니다. 
대표적인 것이 펜흘림(PENHL.TTF), 태나무(TAENMR.TTF) 등의 폰트인데요, 이들 culprit 폰트는 다음 경로에 luaotfload-blacklist. cnf 파일을 만들고 등록해줍니다.

C:\usr\texlive\texmf-local\tex\luatex\luaotfload

texmf-local 폴더의 하위로 만들어 놓는 게 향후 텍라이브를 관리할 때 좋습니다. 텍라이브를 재설치하는 경우 texmf-local 폴더 이하는 지울 필요가 없으니까요. 어쨌든 저의 경우 luaotfload-blacklist. cnf의 내용은 다음과 같습니다. 

spltfgbd.ttf
spltfgbi.ttf
spltfgit.ttf
spltfgrg.ttf
PENHL.TTF
TAENMR.TTF

예전엔 PENHL.TTF를 penhl.ttf처럼 모두 소문자로 적어줘야 되었는데, 지금은 대문자도 잘 인식하더라고요. 어쨌든 culprit 폰트가 있다면 luaotfloat-tool 명령이 성공적으로 종료되지 않고 luaotfload-names.luc나  luaotfload-names.lua.gz 파일도 생성되지 않습니다. 


2. culprit 폰트를 알아내는 법
culprit 폰트를 발견하려면 윈도 powershell에서 다음과 같이 해봅니다. 

> luaotfload-tool -f -u -vvv | tee blacklist.log

그러면 화면에 나오는 메시지는 모두 blacklist.log에 기록됩니다. 이를 나중에 culprit 폰트를 발견할 때 써먹어야합니다. 어느 부분에서 더이상 luaotfload-tool이 기능을 못하고 멎어버렸는지 살펴봐야 합니다. 참고로 아주 오래전 윤고딕이나 윤명조 100번대 시리즈의 폰트(예: YGO120.TTF 따위)도 culprit 폰트이니 블랙리스트에 올려놓는 것이 안전할 것입니다. 

한편 메시지를 살펴보면 다음과 같이 '포스트스크립트 폰트 네임'이 유효하지 않다는 폰트도 열거될 수 있습니다. 

(중략)
luaotfload | db : gaesung.ttf has invalid postscript font names, using dummies.
luaotfload | db : gulim.ttc has invalid postscript font names, using dummies.
luaotfload | db : hbatang.ttf has invalid postscript font names, using dummies.
luaotfload | db : hdotum.ttf has invalid postscript font names, using dummies.
luaotfload | db : hmkba.ttf has invalid postscript font names, using dummies.
luaotfload | db : hmkbexpo.ttf has invalid postscript font names, using dummies.
luaotfload | db : hmkla.ttf has invalid postscript font names, using dummies.
luaotfload | db : hmklexpo.ttf has invalid postscript font names, using dummies
(중략)


이런 폰트는 uaotfload-blacklist. cnf에 등재하지는 않아도 luatex 실행에는 문제가 없습니다.

 
3. luatexko의 자동조사

텍라이브 2015 pretest에 있는 luatexko는 자동조사가 조금 에러가 있는데요. 
c:/usr/texlive/2015/texmf-dist/tex/luatex/luatexko/luatexko-core.sty 있는 파일을 다음 파일로 고쳐놓으면 잘 작동합니다. 


%% test_auto_josa.tex
\documentclass{article}

\usepackage[hangul]{kotex}

\setmainhangulfont{HCR Batang LVT}
% \setmainhangulfont{easop.ttf}

\begin{document}

\section{자동 조사}\label{sec:auto_josa}

\ref{sec:auto_josa}\은 \ref{sec:auto_josa}\는 

\ref{sec:auto_josa}\이 \ref{sec:auto_josa}\가 

\ref{sec:auto_josa}\을 \ref{sec:auto_josa}\를 

\ref{sec:auto_josa}\와 \ref{sec:auto_josa}\과 

\ref{sec:auto_josa}\로 \ref{sec:auto_josa}\으로 

\ref{sec:auto_josa}\라 \ref{sec:auto_josa}\이라

\end{document}


luatex_auto_josa.png




나중에는 텍라이브 2015가 확정되면 아마 tlmgr을 업데이트하는 것만으로 luatex-ko가 잘 작동할 거라 생각합니다.

번호 제목 글쓴이 날짜 조회 수
764 2017 한국텍학회 정기총회 및 학술대회 개최 안내​ [1] 이기황​ 2017.01.24 5700
763 서버 속도 [2] afextwin 2017.07.07 22266
762 함초롬체 2017년 버전이 있는 것 같습니다 [1] 허생원 2017.06.30 5917
761 TL2017 설치 기념 포스팅 [3] 작나 2017.06.07 10483
760 parselines 패키지 [6] file yihoze 2017.05.30 29653
759 안녕하세요? 이제 막 가입했습니다. 강랭 2017.05.29 5566
758 마크다운과 SVG, 그리고 레이텍 yihoze 2017.05.23 5978
757 설연휴 기간중 홈페이지 접속 장애 안내 관리자 2017.02.01 5659
756 천원술을 아십니까? [8] file yihoze 2017.03.15 11440
755 KTUG 관리자분 연락 부탁 드립니다. [3] 김정균 2017.02.22 5930
754 KTS 10주년 기념 문집 [8] file yihoze 2017.02.15 6241
753 문서를 제대로 안읽은 티가 나네요...-.-; [2] 불량양파 2017.02.11 6092
752 xparse와 environ yihoze 2017.02.20 8169
751 일반 문서 작성용으로 LaTeX 이용하시는 분들 계실까요? [2] algorist 2017.02.02 19042
750 게시판 질문을 위한 최소예제 만들기 karnes 2014.12.17 26466
749 [종료] 한국텍학회 설립 10주년 기념문집 발간 관련 [11] file 관리자 2016.11.30 6490
748 흠.. 뭔가를 시도하려 했습니다만... 더이상 진행하지 않고 놔두기로 했습니다.. 불량양파 2016.12.16 6515
747 [잡담]맥북 프로 터치바 [1] 지나가다 2016.12.05 6012
746 [참가신청] 문서작성워크숍 2016 [10] ischo 2016.10.11 7036
745 그럭저럭 또 하나의 Sample pdf 를 만들어 봤습니다. [2] 불량양파 2016.11.23 6956



XE Login