KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
A man who fishes for marlin in ponds will put his money in Etruscan bonds.
FrontPage › KTUGCollection2006/TIP
KTUGCollection2006 사용을 편리하게 하는 팁을 모아두는 곳입니다. 자유롭게 기고해주십시오.

목차

1 kcltxmk의 사용
2 그림 변환 유틸리티
3 XPdf 유틸리티
4 tex4ht의 그림 generation
5 pdfTeX에서 한글 텍스트의 검색 추출
6 texinfo 문서의 컴파일
7 trivcj 폰트를 pdfTeX에서 사용하기
8 PSTricks 사용 팁 (GSView + InverseSearch with DviOut)
9 vpe 사용 팁
10 GNU tools의 사용
10.1 sed : stream editor
11 DviOut에서 jpg 그림 보기
12 dvipng
13 cygwin 셸에서 texi2dvi

1 kcltxmk의 사용

원래 MiKTeXtexify를 대체할 목적으로 도입한 스크립트 툴로서 Hangul-ucs 문서를 위하여 수정되어 있다.
  1. kcltxmk -C 부수 파일을 모두(.dvi, .pdf 등까지) 제거해줌.
  2. kcltxmk -c 최종 출력파일을 제외하고 부수 파일을 제거함.
  3. kcltxmk 아무 옵션 없이 쓰면 실행된 디렉토리 내의 .tex 파일 중에서 컴파일되지 않은 것을 찾아서 시도함.
  4. kcltxmk -pv filename 실행후 dviout을 띄워줌
  5. kcltxmk -pv -pdfdvi filename dvipdfmx를 이용하여 pdf를 만든 다음 acrobat reader를 실행하여 결과를 보여줌
  6. kcltxmk -f filename 중간에 에러가 발생해도 끝까지 컴파일하라.
TIP: kcltxmk는 makeindex-dhucs를 실행해주지만 특정한 ist(인덱스 스타일)을 사용하지는 않는다. makeindex 실행시 index style을 적용하고 싶다면, makeindex-dhucs 명령만 별도로 한번 실행해준다. 다음 순서로.
#> kcltxmk filename
#> makeindex-dhucs -s dhucs filename
#> kcltxmk filename
이마저 귀찮다면, C:\TeX\KTUG_bin\makeindex-dhucs.exe를 적당한 다른 이름, 예컨대 mkidx-dhucs.exe로 바꾼다음 makeindex-dhucs.bat 파일을 다음 내용으로 만들어둔다.
@echo off
C:\TeX\KTUG_bin\mkidx-dhucs.exe -s dhucs.ist %1 %2 %3 %4

2 그림 변환 유틸리티

  • sam2p : 래스터 그림 변환 유틸리티. EPS/PDF로 변환 가능.
  • bmeps : png/jpg/pnm 그림을 EPS로 변환
  • jpeg2ps : jpg 그림을 EPS로 변환

3 XPdf 유틸리티

  1. 한글 텍스트 추출
    #> pdftotext -enc UTF-8 foo.pdf
    
  2. 폰트 정보 확인 : 폰트 정보 확인을 위해서 AdobeReader를 열 필요가 별로 없습니다.
    #> pdffonts foo.pdf
    
  3. 윤곽선 글꼴을 유지하는 pdf -> ps 변환 : GhostScriptUtilities의 pdf2ps를 쓰면 한글 윤곽선 글꼴 정보가 흐트러집니다.
    #> pdftops foo.pdf
    

4 tex4ht의 그림 generation

----
  • [1] convert보다 안정적이고 정확하게 동작하는 것으로 생각됨.

5 pdfTeX에서 한글 텍스트의 검색 추출

2006/07/20 (4.0) 업데이트 이후 pdfTeX에는 tounicode 패치가 적용되어 있습니다. 이것을 활성화하려면 다음과 같이 합니다.
\input glyphtounicode.tex
\pdfgentounicode=1
  • 이 설정은 type 1 폰트에만 적용됩니다. 즉 트루타입 사용시에는 dhucs-cmap 스타일을 쓰는 것이 좋습니다.

DohyunKim wrote:
1. type1 을 쓰는 경우.

Han의 glyphtounicode와 우리의 dhucs-cmap을 동시에 적용하면 pdf파일에 ToUnicode 지시자가 두 개 들어가게 됩니다. 이것이 에러를 유발하지는 않으나 pdf reader에 따라 어느 것을 적용할 지 장담할 수 없습니다(acrobat reader는 dhucs-cmap의 ToUnicode를, xpdf는 Han의 ToUnicode를 적용하는 듯 합니다). 따라서 type1을 쓴다면 dhucs-cmap은 쓰지 않는 것이 바람직하다고 봅니다.

그렇다면 type1을 쓸 때의 올바른 방법은 무엇인가. 그것은 폰트 자체에 처음부터 글리프 명칭을 제대로 부여하는 것입니다. 예컨대 한양옛한글자모의 경우 uni4E00식으로 한자영역 명칭이 붙어 있는데 이를 전부 uni1100.a 혹은 uni1100.b 이런 방식으로 고치는 것입니다. 글리프 명칭만 제대로 바꿔주면 pdftex 이든 dvipdfmx 이든 ToUnicode Cmap을 잘 삽입합니다.

은글꼴 type1은 uniac00처럼 소문자로 명칭이 들어가 있어서 pdftex은 제대로 인식하지만 dvidpfmx는 제대로 인식하지 못합니다. 이것을 모두 uniAC00처럼 대문자로 바꾸면 dvipdfmx도 정상적으로 Cmap을 넣을 것으로 생각됩니다. 하지만 어차피 dvidpfmx를 쓴다면 트루타입이 효율적이므로 사서 고생할 필요는 없지 않나 합니다.

2. truetype을 쓰는 경우

truetype의 경우 Han의 glyphtounicode 기능이 작동하지 않습니다. 따라서 dhucs-cmap을 써야만 정상적으로 추출가능한 pdf가 만들어집니다. 한양옛한글의 경우 cmap파일을 이미 만들어 두었고 새굴림 등의 PUA영역 옛한글도 마음만 먹으면 어렵지 않은 작업을 거쳐 cmap파일은 만들 수 있습니다. 이미 hanyangpua2jamo가 우리에겐 있으니까요. ^^

요는 type1을 쓸 때는 dhucs-cmap 을 사용하지 말고 truetype의 경우에만 사용하자는 것입니다. 어차피 한양옛한글자모도 애초에 트루타입이므로 굳이 type1 으로 변환하여 쓸 메리트는 없다고 봅니다.

어쨌든 Han의 이번 패치로 pdftex에서도 완전한 검색가능한 pdf를 만들 수 있게 되었습니다.

6 texinfo 문서의 컴파일

CygWin 셸에서 KTUGCollection2006을 쓰는 경우 texi2dvi 스크립트가 작동한다. 그러나 이것만을 위하여 CygWin을 설치하는 것은 부담스러우므로, 다음과 같은 간단한 배치파일을 만들어 texinfo 문서를 컴파일하자. 파일이름은 maketexi.bat로 한다.
rem texi2dvi
@echo off
if .%2.==.--pdf. goto PDF
goto DVI
:PDF
set TEXPROGRAM=pdftex
goto MAIN
:DVI
set TEXPROGRAM=tex
goto MAIN
:MAIN
if !%1!==!! goto HELP
if !%1!==!--pdf! goto HELP
if !%~x1!==!! goto NOEXTRUN
if !%~x1!==!.texi! goto RUN
:HELP
echo  Usage: maketexi filename[.texi] [--pdf]
goto END
:NOEXTRUN
%TEXPROGRAM% %1.texi
goto MKINDEX
:RUN
%TEXPROGRAM% %1
:MKINDEX
texindex %~n1.cp
texindex %~n1.fn
texindex %~n1.ky
texindex %~n1.pg
texindex %~n1.vr
texindex %~n1.tp
if !%~x1!==!! goto NOEXTRERUN
%TEXPROGRAM% %1
goto END
:NOEXTRERUN
%TEXPROGRAM% %1.texi
:END
사용법은 다음과 같다.
  • '''maketexi''' : 간단한 사용법을 보여주고 종료한다.
  • '''maketexi filename[.texi]''' : 파일명만 쓰는 경우 확장자가 .texi가 아니면 종료한다. 확장자가 .texi인 경우 컴파일을 시도한다. 확장자까지 다 써주어도 동일하게 동작한다.
  • '''maketexi filename[.texi] --pdf''' : dvi 대신 pdf 출력을 얻는다. pdftex을 사용한다. 옵션이 파일이름보다 뒤에 들어간다는 점에 주의.

7 trivcj 폰트를 pdfTeX에서 사용하기

dhucs-trivcj의 일본어 및 중국어는 폰트를 내장하는 방식이 아니고 Reader의 폰트를 가져다 표시하도록 되어 있고 이것은 DVIPDFMx에서만 정상적으로 pdf가 만들어진다. 즉 DviOut이나 pdfTeX에서 trivcj를 사용하기 어려운 듯이 보였다.

pdfTeX이나 DviOut이 trivcj 폰트를 적절하게 처리하도록 해주면 될 것이다. 일본어의 경우 MSMincho.ttf, MSGothic.ttf 그리고 중국어 간체 simsun.ttf, simhei.ttf 및 중국어 번체 mingliu.ttf를 시스템에 설치한 경우 이 폰트를 이용해서 pdf를 만들거나 pk 폰트를 생성하도록 설정한 map 파일을 만들어보았다. 각각의 폰트 파일 자체는 포함하고 있지 아니하다.
주의. 일본어 msmincho와 msgothic은 ttc 글꼴이다. 이것을 breakttc로 잘라낸 다음 0번 글꼴을 각각 MSMincho.ttf, MSGothic.ttf로 이름을 바꾸어 사용한다.

KCupdate 형식의 파일이므로, kcupdate를 이용하여 설치하면 된다.
\ifpdf
\pdfmapfile{+trivcj-pdftex.map}
\fi

breakttc는 쉽게 구할 수 있는 dos 프로그램이지만, 편의를 위해서 링크를 하나 걸어둔다.

8 PSTricks 사용 팁 (GSView + InverseSearch with DviOut)

KTUGSetup:9759 (by IsCho)

  1. PSTricks로 작성한 그림을 DviOut으로 직접 볼 수 없다. 뿐만 아니라, DviOut으로 결과를 확인하려고 할 때 PSTricks 코드가 있는 페이지마다 심하게 버벅거린다.
  2. DviOut의 버벅거림을 방지하려면 DviOut이 ps코드를 찾지 않게 하면 된다. 이를 위해서는 다음과 같이 DviOut설정을 바꾼다. (그러면, DviOut에서 버벅거림이 없이 텍스트를 확인할 수 있다.)
  3. 이제, PSTricks로 작성한 그림의 결과는 dvips를 거쳐 GSView로 확인하고, DviOutInverseSearch를 위한 보조수단으로 이용할 수 있다.
    • foo.ps파일을 확인하다 (InverseSearch를 위해) foo.dvi의 동일한 페이지로 가려면 (먼저 DviOut으로) foo.dvi를 열고 DviOut에서 특정 단어를 search할 수도 있고
    • Dviout에게 해당 페이지를 직접 알려줄 수도 있다.
ps2dviout2INVsearch1.jpg

9 vpe 사용 팁

vpe 사용에 대해서는 http://faq.ktug.or.kr/faq/Karnes/2006-06#28을 참고. 재미있는 것은 pdflatex이 돌려주는 $s 값과 kcltxmk가 돌려주는 $s 값이 조금 다르다는 것이다. 그러므로 pdflatex을 직접 사용할 때는 vpe.cfg를
\vpesetup{system=win,application=EmEditor.exe,parameters=-l $d "$s"}
와 같이 하고, kcltxmk를 이용하는 경우에는
\vpesetup{system=win,application=EmEditor.exe,parameters=-l $d "$s.tex"}
으로 하면 잘 된다.

vpe에서 tabular가 에러를 내는 경우 해결책은, tabular만을 별도의 파일로 pdf를 만든 다음 이 pdf를 그림처럼 불러오게 하면 해결될 것이다.

10 GNU tools의 사용

10.1 sed : stream editor

여기서는 간단한 Excel 파일을 Excel에서 csv로 저장하여 얻은 test.csv를 tabular 환경 안에 input하기 위하여 test.tab으로 변경하는 것을 해보자.
  1. 먼저 test.csv의 인코딩을 변경한다.
    #> hencnvt -eu test.csv
    
  2. test.csv 내의 ; 구분자는 &로, 개행문자는 \\로 일괄 변경한다.
    #> sed -e "s/\;/ \& /g; s/$/ \\\\/g;" <test.csv >test.tab
    
  3. 문서의 tabular 안에서 이것을 불러들인다.
    \begin{tabular}{....}
    \input test.tab
    \end{tabular}
    

11 DviOut에서 jpg 그림 보기

eps 그림을 쓰지 않고 jpg 그림을 일관되게 사용한다면, 다음과 같이 하면 DviOut에서 jpg 그림을 "정확하게" 볼 수 있다.

먼저 DviOut의 GRAPHICS 설정을 다음과 같이 한다.
dviout_graphics_set.jpg
C:\TeX\dviout\GRAPHICS\LATEX2E 폴더에 가면 dviout.def라는 파일이 있다. 이것을 C:\TeX\share\texmf\tex\latex\graphics 폴더로 이동하고 mktexlsr 하여둔다.

그리고 문서를 다음과 같이 작성한다.
\ifpdf
\usepackage{graphicx}
\else
\usepackage[dviout]{graphicx}
\fi

latex을 실행하여 DviOut으로 본다.
sample_dviout.jpg


만약 위의 절차로 잘 되지 않으면, 다음 명령으로 그림을 미리 .bmp로 변환해둔다. (GraphicsMagick를 설치하여야 함. GraphicsMagick은 설치 CD의 UTILITIES 폴더에 들어 있다.)
#> for %i in (*.jpg) do gm convert %i %i.bmp

12 dvipng

  • dvi 파일을 페이지별로 png 그림 파일로 만들어준다.
  • resolution을 조정하려면
    #> dvipng -D 300 foo
    
  • 특정 페이지만 출력하려면
    #> dvipng -pp 3,4 foo
    
  • 도움말을 얻으려면
    #> dvipng --help
    

13 cygwin 셸에서 texi2dvi

CygWin 셸에서는 texi2dvi, texi2pdf를 사용할 수 있다. KC2006의 texi2dvi를 사용하기 위해서는 다음과 같은 조치가 필요하다.

^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2007-01-04 01:51:14
Processing time 0.0630 sec