'Postscript' 태그가 지정된 글

Postscript language editing

Postscript로 만들어진 .ps 또는 .eps 파일은 앞의 글에서 보셨던 것처럼, 일반적인 text 편집기로 편집할 수 있는 ascii 파일입니다. 파일의 내용은 출력물을 만들어내는 postscript 언어죠. 따라서 postscript 언어를 알면 eps 그림 파일도 마음대로 편집할 수 있습니다. Postscript language를 배우고 싶으신 분은 Adobe site에 가셔서 매뉴얼을 받아보시면 됩니다. 여기서는 앞의 글에서 만들었던 파일에서 legend unit의 위치를 바꾸는 법만 살펴보도록 하겠습니다. 앞에서 보았던 그림은 다음과 같습니다.

before editing

before editing

위 그림에서 오른쪽 끝에 있는 “m/s”를 legend(scale bar) 위로 옮겨봅시다. 결과는 다음과 같습니다.(옮긴 후 bounding box도 바꿔줬습니다.)

after editing unit

after editing unit

위의 결과를 얻기 위해서는 .eps 파일을 열어서 ‘m/s’라는 문자열을 찾아 지워줍니다. 파일 끝에서 약간 앞에 두 개가 있을겁니다. 그런 후 아래의  코드를 .eps 파일 끝부분의 ‘showpage’ 명령 앞에 넣어줍니다.

%%%%% changed the position of unit
GS
270 190 TR
NP
/Helvetica findfont 8 scalefont setfont
0 0 0 setrgbcolor
21.96 -6.462 M
(m/s) SW exch -0.5 mul
exch -0.5 mul RM (m/s) SH
S
GR
%%%%%

%%%%%는 comment이고, ‘m/s’라는 문자열의 위치는 ‘GS’ 아래에 있는 두 개의 숫자(x좌표, y좌표)로 조정합니다. 그림 크기에 따라 위치는 달라집니다. 제가 보기엔 옮긴 후의 그림이 더 보기 좋고, 그림 크기 제한이 있을 때 속도모델 크기도 더 키울 수 있어 좋지만, 취향에 따라 옮기기 전의 그림을 선호하는 사람도 있겠죠.^^

Postscript bounding box

SU(Seismic Un*x)에 있는 psimage로 Marmousi 속도모델을 그리면 다음과 같습니다.(그림 겉부분의 회색은 그림에 포함되어 있지 않은 부분으로, 경계를 표시하기 위해 넣었습니다.)

original eps file

original eps file

여기서 사용한 명령은 다음과 같습니다.
psimage par='../marm8m.txt' label1="Depth (km)" label2="Offset (km)" labelsize=8 height=1.0 width=2.4 legend=1 lstyle=vertright lwidth=0.1 lheight=1 units="m/s" < ../marm8m.drt > marm.eps
이 때, psimage는 그림 주위로 지나치게 넓은 공간을 만들어 줍니다. Bounding box 정보가 정확하지 않기 때문이죠. 이 상태로는 eps 파일을 다른 그림파일로 변환하여 paper에 넣거나 power point 발표자료에 넣기에 좋지 않습니다.(물론 자르기crop 기능을 이용할 수도 있기는 하죠.) 이 공간을 없애기 위해서는 어떻게 해야 할까요?

이 공간을 없애기 위해서는 아래 명령을 이용합니다.

gs -sDEVICE=bbox -dNOPAUSE -dBATCH marm.eps

그럼 다음과 같은 결과를 보여줍니다.

GPL Ghostscript 8.63 (2008-08-01)
Copyright (C) 2008 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Loading NimbusSanL-Regu font from /usr/share/fonts/default/Type1/n019003l.pfb… 2656772 1085343 2641408 1357198 2 done.
Loading NimbusSanL-Bold font from /usr/share/fonts/default/Type1/n019004l.pfb… 2673436 1178370 2661504 1363393 2 done.
%%BoundingBox: 87 107 327 200
%%HiResBoundingBox: 87.695997 107.509005 326.645990 199.601994

위의 결과에서 마지막 두 줄에 나온 것이 흰 공간을 없앤 bounding box의 크기입니다. 둘 중 하나를 쓰시면 됩니다. 네 개의 숫자는 각각 왼쪽 아래 x좌표, 왼쪽 아래 y좌표, 오른쪽 위 x좌표, 오른쪽 위 y좌표를 의미합니다. Eps 파일을 텍스트 편집기로 열어서 %%BoundingBox 라고 써진 줄을 찾아 bounding box 크기를 위의 정보로 고쳐주면 아래와 같은 결과를 얻을 수 있습니다.

after fixing bounding box

after fixing bounding box

또는 SU에 있는 psbbox 라는 프로그램을 이용할 수도 있습니다.

psbbox llx=87 lly=107 urx=327 ury=200 < marm.eps >marmfx.eps



팔로우

모든 새 글을 수신함으로 전달 받으세요.

다른 39명의 팔로워와 함께 하세요