Redhat 6.0기반 리눅스 시스템의 teTeX환경에서 hTeXp 와 hLaTeXp 설치 임택균 mongmong@milab.yonsei.ac.kr v0.1.0 1999년 7월 18일 일요일 ----------------------------------------------------------------------- 이 글은 Redhat-6.0을 기반으로 한 배포본의 teTeX환경에서 완성형 한글 TeX컴파일러인 hTeXp과 한글 LaTeX 패키지중 하나인 hLaTeXp설치에 관한 글입니다. 많은 리눅스 배포본에서는 teTeX패키지를 포함하고 있습니다. 이 글을 쓰는 시점에서 알짜 6.0과 Mandrake Cooker에서는 teTeX-1.0.5가 포함되어 있습니다. 이 글은 Mandrake Cooker에서 테스트 된 것입니다. Mandrake의 경우 Redhat의 디랙토리 구조를 사용하고 있으므로 같은 방법으로 적용할 수 있습니다. 처음 이 글을 작성할 당시 사용하던 teTeX시스템은 RH 5.2이상에서 RH 6.0까지 배포본에 포함되었던 0.9였습니다. 이들 teTeX 패키지는 거의 비슷한 디랙토리 구조를 갖고 있기 때문에 설치 방법은 대동소이합니다. 단, RH 5.1이전 것을 사용하시는 분 그리고 OpenLinux과 같이 다른 배포본을 사용하시는 분은 TeX 시스템이 설치된 디랙토리 구조를 잘 확인하시고, 설치에 임해 주시기 바랍니다. 참고로 「한글 TeX」홈페이지와 FTP서버는 다음과 같습니다. ----------------------------------------------------------------------- 차례 1. 개요 2. 필요한 패키지 준비 (1) teTeX 패키지 준비 (2) hTeXp 및 hLaTeXp 준비 (3) 점검 3. teTeX, hTeXp, hLaTeXp 설치 (1) teTeX 설치 (2) 폰트 설치 (3) hTeXp설치 (4) hLaTeXp설치 4. hLaTeXp 테스트 5. HLaTeX을 위한 hTeXp설치 (1) hTeXp설치 (2) latex.fmt 포멧 덤프 (3) hlatex 편집 6. 앞으로 ---------------------------------------------- 1. 개요 이 글은 에 게시 하였던 두개의 기사를 통합하여 만든 것입니다. 이 글은 Redhat-5.2 이상의 호환되는 배포본의 teTeX시스템에서 완성현 TeX컴파일러인 hTeXp와 한글 LaTeX패키지중 하나인 hLaTeXp설치 법에 관하여 다루고 있습니다. 2. 필요한 패키지 준비 (1) teTeX 패키지 준비 Redhat의 경우 TeX과 LaTeX과 관련된 패키지는 인스톨시 선택할 수 있습니다. 하지만, teTeX의 덩치가 매우 큰 관계로 알짜의 경우 오래전 부터 기본 인스톨 목록에서 빠져있습니다. 기본적으로 인스톨 하여야 하는 teTeX패키지는 tetex, tetex-afm, tetex-dvips, tetex-latex, tetex-xdvi입니다. (2) hTeXp 및 hLaTeXp 패키지 준비 hTeXp를 인스톨 하기 위해서 필요한 것은 X-시리즈 pk폰트, X-시리즈 폰트 메트릭스 파일, hTeXp, hLaTeXp 패키지 입니다. 「한글 TeX」 홈페이지에서 제공하는 폰트는, HLaTeX의 경우 METAFONT를 포함한 여러가지 형식의 폰트로 제공되는 반면, 저작권 문제로 PK폰트만 제공하고 있습니다. 1) X-시리즈 pk폰트 준비 「한글 TeX」 홈페이지에서는 300dpi, 600dpi, 1200dpi 세가지 해상도의 pk폰트를 gzip으로 압축된 tar형식으로 제공합니다. 자신이 사용하는 프린터에 맞추어 이들 셋중 하나를 받으시면 됩니다. 참고로 리눅스에서 gv를 이용하여 프린팅을 하시는 경우 폰트의 해상도가 정확히 자신의 프린터와 일치할 필요는 없습니다. 폰트가 있는 위치는 입니다. 저는 LaserJet 5000을 사용하기 때문에 1200dpi폰트를 준비했습니다. 필요한 파일은 han.1200pk.tar.gz, hanja.1200pk.tar.gz, symb.1200pk.tar.gz이었습니다. 다른 해상도의 폰트를 원하신다면, 제가 받은 파일 이름중 두번째 항목인 1200pk가 600pk또는 300pk인 폰트를 받으시면 됩니다. 2) X-시리즈 폰트 메트릭스 파일 준비 폰트 메트릭스는 pk폰트의 해상도에 상관없이 동일한 파일을 사용합니다. 따라서 pk폰트 해상도에 관계없이 pk폰트가 있는 디랙토리에서 htex.tfm.tar.gz파일을 받으시면 됩니다. 3) hTeXp 준비 리눅스용 hTeXp는 에 있습니다. 이곳에는 몇개의 실행 파일이 있는데, 자신이 사용하는 환경에 맞추어 적절한 파일을 받으시면 됩니다. 최근 리눅스용으로 컴파일된 두개의 hTeXp 실행 파일이 있습니다. 하나는 htexp-glibc-2.0.7이고, 다른 하나는 htexp-glibc-2.1.1입니다. htexp-glibc-2.0.7은 RH 5.2와 같은 glibc-2.0.7을 위한 것입니다. 이 파일을 glibc-2.1.1(RH 6.0, OL 2.2 등)에서 사용할 때, 문제점을 발견하지 못했지만, 차재춘님께서 glibc-2.1.1환경에서 htexp를 다시 만들어 주셨습니다. 그러므로 RH 6.0이상을 사용하시는 분은 htexp-glibc-2.1.1을 받으시기 바랍니다. 위 실행 파일과 함께 tex.poo를 같이 받으셔야 합니다. 4) hLaTeXp 준비 hLaTeXp 패키지는 에 있습니다. 이 디랙토리에 보면 unpacked.tar.gz 파일이 있습니다. 이 파을 받으셔도 되지만, 저의 경우 이 디랙토리에 있는 파일중, HISTORY.TXT, README.TXT, dbfont.map, hangul.sty, hcode.dat, hlatex.ltx, hlatexp.ltx, hltxman.tex, preload.cfg만을 받았습니다. (3) 점검 teTeX : tetex, tetex-afm, tetex-dvips, tetex-latex, tetex-dvi X-시리즈 pk 폰트 : han.[프린트 해상도]pk.tar.gz, hanja.[프린트 해상도]pk.tar.gz, symb.[프린트 해상도]pk.tar.gz X-시리즈 폰트 메트릭스 : htex.tfm.tar.gz hTeXp 컴파일러 : htexp-glibc-2.x.x, tex.poo hLaTeXp : dbfont.map, hangul.sty, hcode.dat, hlatex.lt, hlatexp.ltx, preload.cfg hltxman.tex 3. teTeX, hTeXp, hLaTeXp 설치 (1) teTeX 설치 래드햇 계열의 배포본에서는 rpm을 패키지 매니저로 사용하고 있습니다. root계정에서 다음 방법을 이용하여 tetex, tetex-afm, tetex-dvips, tetex-latex, tetex-dvi를 차례로 인스톨 합니다. $ rpm -ivh [패키지 파일명] 패키지 설치가 끝나면, 기본적인 teTeX설정을 해 주어야만 합니다. teTeX에서는 이러한 설정을 위하여 「texconfig」라는 프로그램이 있습니다. root계정으로 이 texconf를 실행하여 다음 사항을 검토하십시오. 1) MODE : 이 메뉴는 xdvi와 dvips를 위한 기본 프린팅 모드를 설정하는 부분입니다. 이 메뉴를 선택하면 여러가지 프린트 모드와 프린터가 출력됩니다. 저의 경우 lj5000을 위해서 ljfzzz을 선택했습니다. 2) XDVI : xdvi프로그램 리소스를 설정하는 부분입니다. 이곳에서 PAPER를 설정하게 됩니다. 보통 letter용지가 기본으로 되어 있지만, 현재 우리나라는 A4가 일반적이므로 PAPER를 A4로 설정합니다. 3) DVIPS : GLOBAL에서 종이 크기를 A4로 설정하고, MODE에서 ljfzzz를 사용할 것을 확인하였으며, CMD에서 「lpr -Plj5000」로 설정하였습니다. 만약이 CMD부분을 공란으로 설정하면, dvips는 포스트 스크립 출력을 바로 프린팅 하지 않고, 파일로 만들어 줍니다. 물론 저와 같이 설정하신후 dvips의 -o 옵션을 이용하여 포스트 스크립 출력 파일을 얻을 수 있습니다. 저는 특별히 필요한 경우가 아니라면, 포스트스크립 파일을 개인 컴퓨터에 보관할 필요가 없다고 생각하기 때문에, dvips는 dvi파일을 프린터로 출력할 경우만 사용하고 있습니다. 4) FONT : OPTIONS메뉴에서 varfonts를 꼭 켜두도록 합니다. 이 것은 새롭게 생성되는 pk폰트를 「/var/lib/texmf/fonts/」에 저장되도록 하는 옵션입니다. 최근 만들어진 teTeX-1.0.5패키지를 보면, texmf.cnf파일의 VARTEXFONTS가 「/var/lib/texmf/fonts/」로 설정이 않된 경우를 볼수 있었습니다. 따라서, VARDIR옵션에서 경로명이 정확한지 확인하고, 이상이 있다면, 경로명을 입력합니다. 5) REHASH : 마지막으로 texcofnig명령을 종료하기 전에 REHASH를 꼭 선택해 줍니다. 이 작업은 「/tex/share/texmf/ls-R」, 「/var/lib/texmf/ls-R」파일을 갱신해 줍니다. 이 작업은 프롬프트상에서 texhash명령을 실행시켜도 됩니다. 보통 teTeX를 패키지로 설치하는 경우 패키지 관리자가 texhash명령을 주기적으로 실행할 수 있게 crontab에 등록합니다. (2) 폰트 설치 1) X-시리즈 PK폰트 설치 Redhat 5.2 이후 배포본에서 tetex의 실행 파일은 「/usr/bin」에 TeX의 texmf경로 구조는 「/usr/share/texmf」에 있으며, 부수적인 경로로 「/var/lib/texmf」를 사용할 수 있습니다. 저는 PK폰트를 위해서 /usr밑의 구조 사용을 꺼리고, /var의 하부 구조에 넣습니다. 이것은 개인 취향에 따라 틀리기 때문에 각자 결정하시기 바랍니다. 「한글 TeX」에서 제공하는 PK의 폰트의 경우 hLaTeXp를 사용하는 동안 추가 생성작업이 없기때문에 예외를 두어 「/usr/share/texmf/fonts/pk」에 설치하였습니다. 「한글 TeX」홈페이지에서 제공하는 PK폰트는 각 프린터 해상도에 따라 세개의 파일로 묵여있습니다. 이들은 모두 tar.gz으로 묶여 있습니다. 「/usr/share/texmf/fonts/pk/xhan」디랙토리를 생성하고, 이곳에 원하는 프린터 해상도의 han, hanja, symb폰트를 복사합니다. 보통 root계정으로 디랙토리를 생성하면, 디랙토리의 퍼미션은 적절하게 선택되지만, 폰트의 소유와 퍼미션은 「/usr/share/texmf/fonts/pk/xhan」에서 다음 명령을 통해 확인합니다. 잊지 않고, 「texhash」명령으로 파일 이름 데이터 베이스를 갱신해 줍니다. $ chown -R root:root * $ chmod ugo+r * $ chmod ugo-wx * $ texhash 제가 사용하는 1200dpi 폰트의 경우 전체 크기가 134M정도 입니다. 2) X-시리즈 폰트 메트릭스 파일 설치 tfm파일은 htex.tfm.tar.gz파일 하나로 되어 있습니다. 이 파일을 풀어서 각 tfm파일을 「/usr/share/texmf/fonts/tfm/public/xhan」에 복사한후 PK폰트 설치에서 한 작업과 같은 작업을 합니다. 3) texmf.cnf 수정 폰트 메트릭스 파일은 teTeX기본 설정으로 검색이 되지만, PK폰트의 경우 「/usr/share/texmf/web2c/texmf.cnf」파일을 수정해 주어야 합니다. 수정하는 방법도 여러가지가 있을 수 있습니다. 저는 다음 부분을 수정해 주었습니다. ---원본--------------------------------------------------------------- PKFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless,}// ---------------------------------------------------------------------- ---수정------------------------------------------------------------------- PKFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless,xhan}// -------------------------------------------------------------------------- (3) hTeXp설치 1) 「한글 TeX」에서 받은 htexp-glibc-2.1.1(glibc 2.0.7사용자는 htexp-glibc-2.0.7)을 htexp라는 이름으로 「/usr/bin」에 복사하고, 파일 퍼미션을 $ chmod ugo+rx /usr/bin/htexp $ chmod ugo-w /usr/bin/htexp 명령을 이용하여 설정합니다. 2) 「/usr/bin」에 다음 내용을 갖는 htexpini라는 파일을 만들어 줍니다. -------- htexpini 내용 ------------------------------------------------ #!/bin/csh setenv TEXINPUTS /usr/share/texmf/tex/latex//:/usr/share/texmf/tex/generic// setenv TEXFORMATS /usr/share/texmf/htexp setenv TEXFONTS /usr/share/texmf/fonts/tfm// setenv TEXPOOL /usr/share/texmf/htexp setenv TEXEDITOR "vi +%d %f" htexp $* -------- htexpinit 내용 끝 -------------------------------------------- 파일을 생성한후 다음 명령으로 파일의 퍼미션을 조절해 줍니다. $ chmod ugo+rx htexpini $ chmod ugo-w htexpini 3) 「/usr/bin」에 다음 내용을 갖는 hlatexp라는 파일을 만들어 둡니다. ---- hlatexp 내용 ------ #!/bin/sh htexpini "&hlatex" $1 ------------------------ 파일 생성후 다음 명령으로 파일의 퍼미션을 조절합니다. $ chmod ugo+rx hlatexp $ chmod ugo-w hlatexp 4) 「/usr/share/texmf/htexp」디랙토리를 만들고, 「한글 TeX」에서 받은 tex.poo파일을 이 디랙토리로 복사하고 다음과 같이 퍼미션을 조절합니다. $ chmod ugo+r tex.poo $ chmod ugo-wx tex.poo (4) hLaTeXp설치 1) 「/usr/share/texmf/tex/hlatexp」를 생성하고, dbfont.map, hangul.sty, hcode.dat, hlatex.ltx, hlatexp.ltx, preload.cfg hltxman.tex를 이 디랙토리에 복사한 후, 다음 명령으로 퍼미션을 조절합니다. $ chmod ugo+r * $ chmod ugo-w * 2) htexpini를 이용하여 hlatex.fmt를 덤프하고 덤프된 포멧파일을 「/usr/share/texmf/htexp」에 복사합니다. $ htexpini hlatex.ltx $ ls hlatex.fmt $ mv hlatex.fmt /usr/share/texmf/htexp/ $ texhash 4. hLaTeXp 테스트 위 작업중 특별한 문제가 없었다면, 인스톨은 적절히 잘 이루어진 것입니다. hLaTeXp를 받으실때, hltxman.tex란 파일을 받으셨을 것입니다. 이 파일을 hLaTeXp에 대한 설명서입니다. 이 파일을 컴파일하고, 출력결과를 xdvi를 통해 관찰합니다. $ hlatexp hltxman.tex $ xdvi hltxman 5. HLaTeX을 위한 hTeXp설치 (1) hTeXp설치 3-(3)을 참조 하시기 바랍니다. (2) latex.fmt 포멧 덤프 「/usr/share/texmf/tex/latex/base」디랙토리에서 다음 명령을 통해 latex.fmt 포멧을 덤프하고 latex.fmt를 「/usr/share/texmf/htexp」로 복사 합니다. $ htexpini latex.ltx $ ls latex.fmt $ mv latex.fmt /usr/share/texmf/htexp/ (3) hlatex 편집 「/usr/bin」에 다음과 같은 내용의 hlatex파일을 생성합니다. 이 파일은 latex 파일을 교체할 수 있습니다. 저의 경우 hlatex로 만들어 두었는데, 이 파일로 기존의 latex파일로 교체는 각자 결정하시기 바랍니다. ---- hlatex 내용 ------- #!/bin/sh htexpini "&latex" $1 ------------------------ 6. 앞으로 이 글은 마음껏 수정하셔서 다른 곳에 배포하셔도 됩니다. 다만 수정 하신 부분이 있다면, 저에게 알려 주시기 바랍니다. 제가 hTeXp와 hLaTeXp를 좋아하는 이유는, 셈틀로 미디어에서 제공하는 dvi솔루션을 이용하여 dvi를 온라인 문서로 제공할 수 있기때문입니다. 다만 PK폰트량이 큰 편인데, PK폰트 중에서 사용하지 않는 폰트는 제외 시킬 수 있습니다. 이는 hltxman.tex를 참조하시기 바랍니다. 다른 경로를 통해 얻은 소식으로 새로운 한글 TeX시스템이 곧 발표됩니다. 내용을 밝힐 적당한 시기가 되면 직접 발표하실 것입니다. 저는 dvi에서 한글 검색만 되면, 다른 포멧은 거들떠 보지도 않을 것이라고 이야길 하곤 했습니다. 현재 Window환경에서 셈틀로 미디어에서 제공하는 솔루션에서는 이 문제를 해결하였습니다. 곧 X에서도 KDE베이스에서 이것이 가능해질 것 같습니다. :-)