KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
Do not clog intellect's sluices with bits of knowledge of questionable uses.
FrontPage › TeX4ht/한글구현
이 페이지에서는 TeX4ht에서 한글을 사용하는 방법에 대하여 설명한다. TeX4ht/대화에서 논의된 방법 중에서 실제로 적용할 수 있는 방법을 요약하는 것이 목적이다.

목차

1 DHUcs 한글 문서의 변환
1.1 압축해제
1.2 폰트 설치
1.3 테스트해보기
2 HLaTeX 한글 문서의 변환
2.1 tex4ht에서 HLaTeX 한글 문서 변환하기
2.2 hlatex-tex4ht-texmf TEXMF Tree
2.3 스타일 및 스트립트
2.3.1 test-hangul-tex4ht.zip
2.3.2 hangul-tex4ht 스타일 설치
2.3.3 htlatex 스트립트
2.3.4 utf8, euckr CFG 파일
2.3.5 hangul-tex4ht.sty
2.3.6 overlib.js option사용하기
2.4 테스트
2.5 한글 index하기

1 DHUcs 한글 문서의 변환

KTUGContrib:2594 (by Karnes) 2005-02-05 이 글은 MiKTeX 사용자를 위한 것이지만 실행 스크립트 등만 조금 바꾸면 Linux에서도 비슷하게 시험해볼 수 있을 것입니다.

MiKTeX 사용자를 위한 김병룡 님 따라잡기

김병룡(synapse) 님은 TeX4ht 한글화를 거의 혼자서 시도해오셨습니다. 최근 dhucs 문서의 HTML 변환과 관련해서 좋은 결과를 얻으셨다고 말씀하셨는데, 궁금하신 분들이 혹시 있으실지 몰라서 김병룡 님께서 알려주신 것을 시험해볼 수 있는 테스트 파일을 묶었습니다.

주의. 이 솔루션은 완성된 것이라기보다 함께 만들어가기 위한 일종의 테스트입니다. 문제점을 발견하거나 개선책을 찾아내신 분들은 꼭 다른 분들과 함께 의논해볼 수 있도록 해주시면 대단히 감사하겠습니다.

1.1 압축해제

적당한 곳에 압축을 풉니다. 그 안에는 다시 압축파일(.tar.gz)이 하나 더 들어 있는데, 이것은 dhucs용 htf 폰트파일 묶음입니다. 이 묶음에 들어 있는 폰트는 원래 제가 맨처음 만들었던 .htf를 토대로 김병룡 님께서 작성하신 .pl 스크립트를 다시 제가 수정하고 몇가지 추가적 폰트를 보충하여 만든 것입니다. 당연히 아직은 시험용 버전입니다. 나중에 지울 수 있도록 설치하여 사용하시기 바랍니다.

1.2 폰트 설치

[localtexmf]C:\localtexmf라고 할 때
 C:\localtexmf\tex4ht\ht-fonts\unicode\ 
위의 폴더를 만듭니다. 그런 다음, unfonts-htf.tar.gz를 풀면 나오는 unfonts 폴더를 이 디렉토리에 가져다 넣습니다. 그러면
 C:\localtexmf\tex4ht\ht-fonts\unicode\unfonts\ 
아래에 unbt, ungt, ungr, untz 폴더가 생깁니다. 이 폰트는 texmf-dhucs에서 채택한 기본 폰트에 해당합니다.(다른 글꼴은 만들지 않았습니다만, 얼마든지 추가할 수 있을 것입니다.)

MiKTeX Options에서 Refresh FNDB합니다.

1.3 테스트해보기

testdhucs.tex, yap.eps, test.eps
함께 들어 있는 파일들 중에서 testdhucs.tex은 원래 이주호 님께서 작성하신 테스트 문서를 제가 dhucs 샘플 파일로 바꾼 것입니다. test.eps와 yap.eps는 이 문서에서 사용하는 그림파일들입니다. 원래의 문서와 비교해볼 때 두 군데가 수정되었습니다. 하나는 \usepackage[..]{dhucs} 를 부르기 전에 \usepackage[cjkhangul]{ucs} 를 선언한 것인데, 이 방법은 김병룡 님께서 알려주신 것입니다. 저는 조금 다르게 하고 있습니다만, 이 샘플 파일에서는 이 방법을 채택하였습니다. 또 하나는, \usepackage{txfonts} 를 코멘트처리한 것입니다. txfonts와 같은 영문 폰트는 이따금 tex4ht에서 폰트 파일을 못찾겠다고 불평하기 때문에 기본 영문 폰트로 하였습니다.

dhucs.4ht, dhucs.cfg, onmouseover.4ht
그 나머지 dhucs.4ht, dhucs.cfg, onmouseover.4ht는 김병룡 님께서 작성하신 것을 제가 조금 수정한 파일들인데, 역시 사용자의 입맛에 맞게 수정해서 사용할 수 있을 것입니다. 이 파일을 수정해서 HTML의 모양을 설정하는 문제는 전적으로 tex4ht의 사용법에 관한 문제이므로 사용자 스스로 *공부해서* 적용해보시기 바랍니다. :)

overlib.js
overlib.js는 mouseover 기능을 구현하기 위해 필요한 java script입니다.

js_mod_kr.pl, xhtex.bat
js_mod_kr.pl은 김병룡 님이 작성하신, mouseover를 구현하기 위한 perl script입니다. xhtex.bat는 역시 김병룡 님이 작성하신 mouseover 구현을 위한 실행 스크립트를 수정한 배치파일인데, 원래 들어 있던 htex을 부르는 부분은 dhucs의 경우는 불필요하므로 삭제하였습니다.

nowmakeit.bat
MiKTeX 2.4가 잘 설치되어 있는 상태에서, 함께 들어 있는 nowmakeit.bat 를 실행하면 큰 에러없이 HTML이 만들어질 것입니다. 물론 각주에 대한 mouseover도 잘 구현됩니다.

2 HLaTeX 한글 문서의 변환

아래는 김병룡(synapse) 님에 의한 HLaTeX 한글 사용설정입니다.

2.1 tex4ht에서 HLaTeX 한글 문서 변환하기

tex4ht에서 한글을 쓰기 위해서는 두가지 방법이 있습니다.

  1. 첫째로는 저의 hangul-tex4ht의 htf화일을 이용하는 방법입니다. 당연히 hangul-tex4ht에서 %\Configure{@BODY}{\NoFonts}, %\Configure{@/BODY}{\EndNoFonts} 두 항목을 주석처리해야 합니다. htf의 화일에서 2번째 field에 각각의 고유 번호를 집어 넣어야 합니다. 이렇게 되면 html source가 좀 지저분 해집니다. Uploads:euckrtex4ht.zip Uploads:unicodetex4ht.zip입니다.

  2. 두번째 방법으로는 조희대님의 hangul-tex4ht의 htf화일을 이용하는 것 입니다. 이 방법은 web 브라우저에서 필요한 글꼴을 가져다가 사용하게 됩니다. 그리고 타자체가 쓰고 싶다면 \texttt로 해서 사용하고, sanserif체가(우리글꼴로는 돋움체)가 쓰고 싶다면 \textsf로 하고 난후에 나중에 hangul-tex4ht.cfg에서 그 글짜체를 사용하는 방법입니다. 이렇게 쓰면 html source는 깨끗하게 보이기는 합니다.

아래는 조희대 님의 htf 파일을 이용하는 예를 보이겠습니다.

2.2 hlatex-tex4ht-texmf TEXMF Tree

위의 압축파일을 적당한 곳에 풀어줌
  • MiKTeX이라면 c:\hlatex-tex4ht-texmf에 풀어놓고 이것을 MiKTeX Options의 ROOTS 탭에서 새로운 TEXMF 트리로 추가하고 Refresh FNDB합니다.
  • teTeX이라면, 예컨대 ~/hlatex-tex4ht-texmf에 위의 파일을 풀었을 때, texmf.cnf를 갱신하여 새로운 TEXMF 트리로 추가하고 mktexlsr합니다.
  • 또는 기존의 HLaTeX TEXMF 트리에 풀어주는 방법도 있습니다. 여러 개의 TEXMF TREE를 관리하는 것이 불편하면 이렇게 하여도 됩니다.
  • 위의 압축파일은 조희대 님께서 준비하신 것입니다.

tex4ht.env의 수정
한글을 쓰기 위해서는 몇가지 추가적인 작업이 필요합니다. t/usr/share/hlatex-texmf/fonts/tfm/! 이 필요합니다. 예제를 올려두었습니다.
(!) MiKTeX 2.4와 같이 kpathsea를 이용하도록 컴파일된 경우에는 이 파일을 수정할 필요가 없습니다.)
  • Uploads:tex4ht.env

  • 이상의 작업후에 mktexlsr시행 합니다.

    2.3 스타일 및 스트립트

    2.3.1 test-hangul-tex4ht.zip

    아래 김병룡 님의 테스트를 MiKTeX 사용자를 위해서 정리하여 묶었습니다.(Karnes)

    2.3.2 hangul-tex4ht 스타일 설치

    Uploads:hangul-tex4ht.4ht
    여기 hangul-tex4ht.4ht를 down받아서 설치한다.

    2.3.3 htlatex 스트립트

    Uploads:htlatex
    이중에 htlatex shell script를 한글 indexing이 가능하고, UTF8과 euckr에서 같이 쓸수 있게 다음과 같이 고쳤습니다. 사용방법은 euckr로 사용하고자 하는 경우는
    htlatex filename "euckr-tex4ht,html,info" "dbcs/uhc/!"
    
    이며 UTF8로 사용을 하고 자 하는 경우에는
    htlatex filename "UTF8-tex4ht,xhtml,info" "unicode/uhc/!"
    
    입니다. 여기저 중요한 점은 shell script에서 3번째 인자로 받기 때문에 꼭 2번째 인자와 3번째 인자 사이가 space key를 쳐야 한다는 것 입니다. 또한 한글이 css화일에 보이지 않기 때문에 perl script를 집어 넣었습니다. 그래서 위의 filename.tex에서 tex를 빼고 filename만 집어 넣으십시요!. 그냥 htlatex를 down받아서 보면 무슨 말인지 쉽게 알 수 있습니다.

    2.3.4 utf8, euckr CFG 파일

    아래의 utf8-tex4ht.cfg와 euckr-tex4ht.cfg화일을 받아서 작업 dirctory에 두고 작업을 하면 됩니다.

    2.3.5 hangul-tex4ht.sty

    Uploads:hangul-tex4ht.sty
    hangul-k.sty package가 hangul-tex4ht.4ht로 인해서 조금 문제가 있습니다. 그래서 문제가 되는 부분만 없앴습니다. 아직 충분히 사용해 보지 않았기 때문에 문제가 더 발생할 수도 있습니다. 하지만 현재 까지는 hangul-tex4ht.sty 이라는 이름으로 쓰겠습니다. 이 화일을 받아서 저의 경우는 /usr/share/hlatex-texmf/tex/latex/hlatex/hangul-tex4ht.sty에 놓고 사용하고 있습니다.

    2.3.6 overlib.js option사용하기

    mouseover는 각주나 문헌 인용에 마우스를 가져다 두었을 때 조그마한 창이 열리면서 내용을 보여주는 java script를 구현하는 것이다. 그리고 이 KTUGFAQwiki에 있는 htex.tex라는 조희대님의 PlainTeX 한글 사용 macro가 필요합니다. 상기의 네 파일을 down받아서 적절한 곳에 놓고나서 다음의 명령을 실행한다.
     htlatex filename "euckr_tex4ht.cfg,html,mouseover,info" "dbcs/uhc/!"
    
    • xhtex에서는 utf8이라는 option에 대해서는 사용을 고려 하지 않았습니다. 그래서 임의로 i와 t directory는 그냥 dbcs/uhc로 하였습니다.
    • hangul-k-manual를 html화 하면서 만들어진 js_mod_kr.pl입니다. 아마도 다른 것을 사용할 때도 잘 작동할 것 같기는 하지만, 혹시라도 잘 되지 않을때는 연락부탁드립니다.

    2.4 테스트

    작업문서는 아래와 같이 하면 됩니다.
    \documentclass{article}
    \usepackage{hangul-tex4ht}
    \begin{document}
    안녕하세요. tex4ht 처음 사용합니다.
    \end{document}
    
    을 만든 뒤에
      htlatex test "utf8-tex4ht,info" "unicode/uhc/!"
    
    를 실행하시면 됩니다.

    2.5 한글 index하기

    • 우선 위의 htlatex를 받아서 실행한다. 여기에는 위에서 설명한데로 --translate-file=cp8bit.tcx가 들어있습니다.
    • 또 다른 작업이 한번 더 필요한데요. 4dx를 만드는 작업입니다. 이 4dx는 tex4ht가 알아 먹는 index인데요. 이 작업을 위해서 아래의 명령을 시행해야 합니다. {{{tex --translate-file=cp8bit.tcx "\def\filename{{%1}{idx}{4dx}{ind}} \input idxmake.4ht"
      makeindex -o %1.ind %1.4dx }}}
    • 위에서 %1은 바로 tex화일입니다. 이렇게 해야지만 제대로 된 한글 index가 나옵니다.
    • 그리고 나서 다시 한번 htlatex를 돌립니다. 아예 처음부터 htlatex를 고치면 되기는 하겠는데, 워낙 어렵게 적어져 있어서요. 이전의 hind.ist의 경우에는 제대로된 index sorting을 하지 못했습니다. 제대로된 index sorting을 할 수 있는 방법은 없을까요?



    ^
    Valid XHTML 1.0! Valid CSS! powered by MoniWiki
    last modified 2005-02-05 13:00:29
    Processing time 0.0622 sec