KTUGFaq

KTUG FAQ

"HLaTeX to Hangul-ucs, test"에 댓글 더하기

로그인:
비밀번호:
가입
He who spends a storm beneath a tree, takes life with a grain of TNT.
FrontPage › Karnes/2006-04
Apr 16, 2006
HLaTeX to Hangul-ucs, test
Submitted by Karnes @ 04-16 [07:13 pm]
HLaTeX 으로 작성된 문서를 가장 효과적으로 Hangul-ucs로 포팅하는 방법은 무엇인가? Hangul-ucs는 HLaTeX의 매크로에 대한 호환성을 제공하고 있지만 폰트 선택 명령만은 HLaTeX을 따르지 않았다(이것은 물론 김도현 교수의 동의를 얻은 것이지만 주로 나의 의견이었던 것으로 기억한다).

시험삼아 hlguide를 ucs로 포팅해보기로 하였다.

먼저 hlguide.tex :
  1. 이 문서는 hlguide.tex이 본문에 해당하는 hlguide-u 또는 hlguide-k를 불러들이도록 작성되어 있다. hlguide-k는 EUC-KR 인코딩이고 hlguide-u는 UTF-8인데, Lambda가 실행되면 *-u를, LaTeX이 실행되면 *-k를 부르도록 하고 있다. 우리는 UTF-8 인코딩인 hlguide-u만을 불러들이도록 하면 될 것이고, Lambda 실행 체크 루틴은 삭제한다. 그런 다음 dhucs 패키지를 얹고 Hangul-ucs 설정을 하는 부분.
    5,6c5,13
    < \ifx\nullocplist\undefined
    < \input hlguide-k.tex
    ---
    > \usepackage[hangul]{dhucs}
    > \usepackage{dhucs-ucshyper}
    > \usepackage{ifpdf}
    > \ifpdf
    > 	\usepackage{dhucs-cmap}
    > 	\usepackage{pdfsync} %% for only Mac TeXshop
    > 	\SetHangulFonts{utbt}{utgt}{uttz}
    > 	\SetHanjaFonts{utbt}{utgt}{utgt}
    > 	\def\hfontfamilynameprefix{ut}
    
  2. 폰트 관련 설정을 행한다. natbib은 bibtex을 사용하기 위한 것임. 이 부분은 다른 HLaTeX 문서 포팅에서도 유사한 방법이 사용되어야 할 것임.
    9a16,50
    > \usepackage[T1]{fontenc}
    > \usepackage{natbib}
    > 
    > \makeatletter
    > 
    > \let\hangulskip\inter@hangul@skip
    > 
    > \def\yt{\SetAdhocFonts{\hfontfamilynameprefix yt}{\hfontfamilynameprefix yt}}
    > \def\dinaru{\SetAdhocFonts{\hfontfamilynameprefix dn}{\hfontfamilynameprefix dn}}
    > \def\pagename{페이지}
    > 
    > \let\mj\rmfamily
    > \DeclareTextFontCommand{\textmj}{\mj}
    > \let\gt\sffamily
    > \DeclareTextFontCommand{\textgt}{\gt}
    > \let\tz\ttfamily
    > \DeclareTextFontCommand{\texttz}{\tz}
    > \def\gr{\SetAdhocFonts{\hfontfamilynameprefix gr}{\hfontfamilynameprefix gt}}
    > \DeclareTextFontCommand{\textgr}{\gr}
    > \def\pg{\SetAdhocFonts{\hfontfamilynameprefix pg}{\hfontfamilynameprefix gt}}
    > \DeclareTextFontCommand{\textpg}{\pg}
    > 
    > %% Greek uppercase Omega
    > \DeclareUnicodeCharacter{"03A9}{\unihangulchar{937}}% 937=0x03A9
    > %% Greek Uppercase Lambda
    > \DeclareUnicodeCharacter{"039B}{\unihangulchar{923}}% 923=0x039B
    > \newcommand\OMEGA{\index{오메가@Omega(Ω)}\texttt{Omega}(Ω)}
    > \newcommand\LAMBDA{\index{람브다@Lambda(Λ)}\texttt{Lambda}(Λ)}
    > 
    
  3. HLaTeX에 정의되어 있고 길잡이에서 사용되는 매크로 두 개 정의
    > \def\filedate{2006/04/11}
    > \def\fileversion{1.0.1}
    
  4. halpha bst를 사용할 수 없으므로, 그냥 plain으로 하기로 하고, 다음과 같이 수정
    13,16c54
    < \bibliographystyle{halpha}
    < \ifx\nullocplist\undefined
    < \bibliography{hlguide-k,texbook1,texbook3}
    < \else
    ---
    > \bibliographystyle{plain}
    


이제 본문인 hlguide-u.tex:
  1. hangul 스타일을 불러오는 문장은 삭제한다. khyper도 역시 삭제. “국배판” 옵션은 필요하다면 geometry 등으로 구현할 것.
    1c1,4
    < \usepackage[국배판]{hangul}
    ---
    > %\usepackage[국배판]{hangul}
    > 
    > \usepackage{array,makeidx,multicol}
    > %\usepackage[bookmarks=false]{khyper}
    
  2. 날짜 관련 정의에서 다음 한 문장 삭제
    8d10
    < \let\KSC@\noexpand
    
  3. 원본에 직접 입력되어 있는 람다(Λ)는 매크로로 바꾼다. 문서 전체에 대해서.
    36c36
    <       Λ & \slshape #2 \
    ---
    > 	\LAMBDA & \slshape #2 \
    
  4. hindexhead 관련 설정 삭제
    60,67d60
    < \renewcommand\hindexhead[1]{\indexspace
    <   {\bfseries
    <     『\ifcase#1 심벌\or 가\or 까\or 나\or 다\or 따\or 라\or
    <     마\or 바\or 빠\or 사\or 싸\or 아\or 자\or 짜\or
    <     차\or 카\or 타\or 파\or 하\or 한자\fi 』}
    <   \nopagebreak
    < }
    < 
    
  5. 이 다음부터가 골치아픈데... 우선 “\옛글”과 같은 한글 글꼴 설정 매크로는 전부 찾아서 바꾸어 준다. 문서 전체에 대해서. 주로 문제가 된 것은 \필기a, \옛글, \디나루 등이었음.
    71c64
    <   \title{\textbf{\Huge\옛글 한글라텍 길잡이\
    ---
    >   \title{\textbf{\Huge\yt 한글라텍 길잡이\
    448c442
    <     {\small\디나루 원천 자료방}: \ttfamily #1
    ---
    >     {\small\dinaru 원천 자료방}: \ttfamily #1
    
  6. 가장 많은 노력이 들었던 부분은 한글 레이블임. 이것은 정말 대책이 없고 전부 찾아서 바꾸어야 함.
    972c970
    <   \label{그림:문서틀}
    ---
    >   \label{fig:structure}
    979c977
    < \label{소절:문서모양새}\index{문서의 모양새}
    ---
    > \label{sec:layout}\index{문서의 모양새}
    
  7. \cite에 쓰인 한글 식별자도 모두 바꾸어야 하는데, 이것은 hlguide-u.bib을 수정해야 함. 현재 상태로는 BibDesk에서 열지도 못함. 일단 파일을 수정한 다음 그 인용 부분을 해당 식별자에 맞게 고쳐주어야 하는데... 자동화 방법은 없고 찾아서 고치는 수밖에...
    @Book{LeeJW91, % <===
    
    2293c2287
    < 큰 값이지만 \cite{이종운91}\과 KS A 0104에서 채택되고 있는 값이고
    ---
    > 큰 값이지만 \cite{LeeJW91}\과 KS A 0104에서 채택되고 있는 값이고
    
한글 식별자, 한글 레이블, 한글 글꼴선택명령만은 사용하지 않고 문서를 작성하는 것이 대단히 현명하다 하겠음.
  1. 이제 다음과 같이 컴파일하였다.
    $ latex hlguide-ucs
    $ bibtex8 -8 hlguide-ucs
    $ makeindex-dhucs -s dhucs hlguide-ucs
    $ latex hlguide-ucs 
    $ dvipdfmx hlguide-ucs
    
  2. 이밖에 Hangul-ucs에서는 채택하지 않은 자동조사 명령 {\ㅣ}가 쓰인 부분 하나를 제외함.
이 결과 얻은 PDF 파일 : @hlguide-ucs.pdf (539.29 KB)
소스 : @hlguide-ucs.zip (43.2 KB)

natbib.sty 얹으면 자동조사가 먹히지 않네요. \sfcode처럼 \josacode를 만들어 넣던지 해야지, 이거 원... -- DohyunKim 2006-04-19 01:08:40

그러네요... :( 2.6.1에서는 되고 있지 않았던가요? ... 암튼간 \josacode primitive 추가에는 찬성. -- Karnes 2006-04-19 10:18:30
이름:

서명하지 않기
 

^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2016-09-21 20:15:29
Processing time 0.0381 sec