KTUGFaq

KTUG FAQ

bb파일얻기 (rev. 1.17)

로그인:
비밀번호:
가입
A king's castle is his home.
FrontPage › bb파일얻기

ebb

DVIPDFMx에서 jpg, png, pdf 그림을 넣으려면 bb 파일이 있어야 한다. bb 파일 만들 때 DVIPDFm 유틸리티인 ebb를 쓰면 편리하다. 이 유틸리티로는 jpg, png, pdf 그림의 bb를 얻을 수 있다.

/!\ MiKTeX의 ebb는 pdf의 버전이 1.4 이상이면 동작하지 않는다. 그러나 KC2006의 ebb는 그러한 문제가 없다. 이 페이지는 KC2006(W32TeX/ko) 또는 KC2007(TeXLive 2007)에 포함된 ebb의 사용법만을 기술한다.
  • Linux/Mac에서는 TeXLive 2007에서도 같은 문제를 겪을 수 있으나, 이를 대용할 xbb 유틸리티가 있다.
  • MiKTeX 2.6은 xbb도 없고 ebb도 예전 방식으로 동작하므로, 사실상 pdf 1.4 이상 그림에 대해서는 ebb를 이용한 대책이 없다.

사용법은 다음과 같다.
#> ebb foo.jpg

명령행에서 루프 돌리면 쉽게 모든 그림 파일의 *.bb 파일을 얻을 수 있다.
#> for /L %i in (*.jpg) do ebb %i

KC2006의 ebb를 사용할 경우, 간단하게 다음과 같이 해도 여러 개의 bb를 한꺼번에 얻을 수 있다. (MiKTeX 버전은 이 기능이 없음)
#> ebb *.pdf

xbb : an extension of ebb

ChoF 님께서 ebb의 몇 가지 문제점을 수정하여 확장한 ebb.
  • dvipdfmx 프로젝트의 일부임. dvipdfmx를 컴파일하면 바이너리를 얻을 수 있다.
  • Windows 실행 파일은 W32TeXKC2006에서 배포됨
  • Intel Mac 바이너리는 [http]dvipdfmx contrib/bin 에서 구할 수 있음.
  • 관련 기사 : KTS

ebb 대신 GhostScript를 이용하여 같은 일을 하는 방법.

Windows: getbb.bat (KTUGContrib:2765) by Karnes

pdf와 jpg의 bb를 얻을 수 있는 배치파일
@echo off
rem AFPL gs 8.54 및 Graphics Magick 필요.
if !%~x1!==!.jpg! goto JPG
if !%~x1!==!.JPG! goto JPG
if !%~x1!==!.pdf! goto PDF
if !%~x1!==!.PDF! goto PDF
echo Usage: [call] getbb foo.jpg(.pdf) [dpi]
echo no jpg/pdf file specified. exit.
goto FIN

:JPG
echo %~x1
if !%2!==!! goto JPGNODENSITY
gm convert -density %2 %~n1.jpg %~n1.pdf
goto JPGCONVERT
:JPGNODENSITY
gm convert -density 100 %~n1.jpg %~n1.pdf
:JPGCONVERT
gswin32c -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox -sOutputFile=- %~n1.pdf -c quit 2> %~n1.bb
del /F /Q %~n1.pdf
goto FIN

:PDF
echo %~x1
gswin32c -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox -sOutputFile=- %~n1.pdf -c quit 2> %~n1.bb
goto FIN

:FIN

사용법은 파일이름만 적어주면 됩니다.

#> getbb foo.jpg

#> getbb bar.pdf

다만 jpg 그림에 대해서는 resolution을 두번째 인자로 줄 수 있습니다.

#> getbb foo.jpg 200

한 디렉토리 내의 모든 JPG 파일에 대해서 .bb를 한꺼번에 얻으려면,

#> for %i in (*.jpg) do call getbb %i


png 파일의 bb는 ebb로 얻으면 됩니다.

Shell Script (by DohyunKim)

pdf의 bb를 얻을 수 있는 셸 스크립트
#!/bin/bash
for A in $*
do
    F=`echo $A | sed -e 's/\.[a-zA-Z]*$//'`
    gs -q -dNOPAUSE -dBATCH -sDEVICE=bbox $A >& $F.bb
done

^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-09-18 14:48:43
Processing time 0.0490 sec