KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
Your own qualities will help prevent your advancement in the world.
FrontPage › pdflatex과latex동시사용
PDF / PDFLaTeXLaTeX 동시 사용

가끔 latex/dvipdfmx 와 pdflatex 을 동시에 사용하여야 하는 경우가 생긴다. 이 문서는 그러한 경우 처리 방법을 정리하였다. 한글은 Hangul-ucs를 이용하고 있는 것으로 가정하고, 목적 파일은 pdf라고 생각하자. 즉 PDFLaTeX, LaTeX/DVIPDFMx 어느 경로를 이용하여도 PDF를 얻을 수 있는 방법을 생각한다.

목차

1 ifpdf/iftex 패키지
2 텍스트의 검색과 추출
3 북마크와 하이퍼링크
4 그림과 색상
4.1 graphicx
4.1.1 KC2008, TeXLive2008 에서의 graphicx 사용
5 요약
5.1 링크
5.2 참조
6 예전 방법
6.1 예전 권장장안 (KC2007이전, MikTeX등의 사용자로서 위와 같이 할 수 없을 경우)

1 ifpdf/iftex 패키지

현재 컴파일러로 PDFLaTeX이 실행되고 있는지의 여부를 확인하기 위해서 ifpdf 패키지의 \ifpdf 조건 검사를 이용한다.
\usepackage{ifpdf}
\ifpdf
   %%% pdflatex 이 실행되는 경우 처리되는 루틴
\else
   %%% latex 이 실행되는 경우 처리되는 루틴
\fi

또는 좀더 최근의 iftex 패키지를 이용한다.
\usepackage{iftex}
\ifPDFTeX
 ....
\else
 ....
\fi

2 텍스트의 검색과 추출

pdftex에서 한글 검색 추출을 위해서 다음 한 줄을 써넣는다. ko.TeX의 기본 글꼴은 은 글꼴 type 1이므로 다음과 같이 한다. (DVIPDFMx를 위해서는 특별히 해야 할 일이 없다.)
\ifpdf
 \input glyphtounicode\pdfgentounicode=1 %% type 1 (default)
\fi
트루타입을 사용하는 경우에는 다음과 같이 했다. 현재는 pdftex에서 트루타입을 사용할 일이 많지 않다.
\ifpdf
 \usepackage{dhucs-cmap}
\fi

3 북마크와 하이퍼링크

hyperref 패키지는 드라이버에 매우 민감하다. pdf bookmark를 얻기 위해서는 입력 인코딩을 UTF-8으로 하고 unicode 옵션을 hyperref에 부여한다. (XeLaTeX에서는 이 unicode 옵션이 불필요하지만 pdflatex과 latex -> dvipdfmx에서는 꼭 필요함.)
\ifpdf
  \usepackage[pdftex,unicode,....]{hyperref}
\else
  \usepackage[dvipdfmx,unicode,....]{hyperref}
\fi
  • hyperref 설정을 위하여 hypersetup을 별도로 부를 수 있다.
    \hypersetup{
     colorlinks=true,
     ...
    }
    
  • Prosper나 beamer와 같이 클래스 자신이 hyperref을 미리 로드하고 있는 경우가 있다. 이럴 때는 \hypersetup을 써도 클래스가 설정한 기본값을 변경할 수 없는 경우가 생긴다. 각 클래스마다 이런 경우에 대비한 방법이 제시되어 있을 수 있으며, hyperref.cfg라는 설정파일을 잘 통제하면 이런 경우에 필요한 옵션을 활성화할 수 있다.

4 그림과 색상

4.1 graphicx

4.1.1 KC2008, TeXLive2008 에서의 graphicx 사용

 \usepackage{ifpdf}

 \ifpdf
  \usepackage{graphicx}
  \usepackage[svgnames]{xcolor}
 \else
  \usepackage[dvipdfmx]{graphicx}
  \usepackage[dvipdfmx,svgnames]{xcolor}
 \fi
  • KC2008에서 LaTeX 혹은 PDFLaTeX 으로 컴파일 할 경우는 위와 같이 코드를 작성하고,
  • latex을 실행할 때 --shell-escape 또는 -shell 옵션을 넣어준다.(KCmenu를 쓰는 경우 불필요하다.)
    • .eps는 사용하지 않는 것이 좋다. (PDFLaTeX에서 사용할 수 없다.)
    • 벡터 그래픽은 .pdf 포맷으로 변환하고, 사진과 같은 래스터 그림은 .png나 .jpg로 변환한다. pdflatex의 경우, 흑백 그림은 jbig2를 사용할 수도 있다.
    • graphicx 패키지를 쓰되, DVIPDFMx로 PDF를 만들 경우 dvipdfmx 옵션을 사용한다. 또한, 되도록 color 패키지 대신 xcolor를 쓰는 쪽을 권장한다.
    • boundingbox (.bb)를 미리 만들어 둘 필요가 없다.
    • 출처 : kc08manual

5 요약

\documentclass{article}
\usepackage{kotex}
\usepackage{ifpdf}

\ifpdf
  \input glyphtounicode\pdfgentounicode=1 %type 1 font사용시
  % \usepackage{dhucs-cmap} % true type 글꼴 사용시
  % \pdfmapfile{+unttf-pdftex-dhucs.map} % truetype글꼴사용시
  \usepackage[pdftex,unicode]{hyperref}
  \usepackage[pdftex]{graphicx}
  \usepackage[pdftex,svgnames]{xcolor}
\else
  \usepackage[dvipdfmx,unicode]{hyperref}
  \usepackage[dvipdfmx]{graphicx}
  \usepackage[dvipdfmx,svgnames]{xcolor}
\fi
%KC2008의 공식예제인 first.tex와 ko.TEX v0.1.0 사용 설명서 참조
%hangul-ucs 4.0 이전 버전에서는 dhucs-ucshyper라는 부가 패키지가 제공되었으나, 
%hyperref의 기능 향상에 따라 불필요해졌으므로 
%ko.TEX에서는 이를 제공하지 않는다.

5.1 링크

6 예전 방법

6.1 예전 권장장안 (KC2007이전, MikTeX등의 사용자로서 위와 같이 할 수 없을 경우)


PDFLaTeX은 eps 그림을 인식하지 못한다는 점에 특히 주의한다.
\ifpdf
 \usepackage[pdftex]{graphicx,color}
\else
 \usepackage{graphicx,color}
 \DeclareGraphicsExtensions{.jpg,.pdf}
 \DeclareGraphicsRule{.jpg}{eps}{.bb}{}
 \DeclareGraphicsRule{.pdf}{eps}{.bb}{}
\fi
  • graphicx 및 color에게 [dvipdfm] 옵션을 주면 pdf, png, jpg 그림을 사용할 수 있다. 그러나 위와 같이 설정하는 쪽이 graphicx.cfg와 같은 설정 파일의 영향을 받지 않고 문서를 작성할 수 있는 방법이다.
  • 특히 DVIPDFMx의 경우에는 바운딩박스 파일(.bb)을 미리 작성해두어야 한다.

\documentclass{article}
\usepackage{dhucs}

\usepackage{dhucs-ucshyper}

\usepackage{ifpdf}
\ifpdf
  \usepackage{dhucs-cmap}
  \pdfmapfile{+unttf-pdftex-dhucs.map}
  \usepackage{pdfsync} %%% 매킨토시의 TeXShop 사용자의 경우
  \usepackage[pdftex]{graphicx,color}
\else
  \usepackage{graphicx,color}
  \DeclareGraphicsExtensions{.jpg,.pdf}
  \DeclareGraphicsRule{.jpg}{eps}{.bb}{}
  \DeclareGraphicsRule{.pdf}{eps}{.bb}{}
\fi

^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-05-04 00:33:27
Processing time 0.0602 sec