Mercurial > hg > xemacs-beta
diff etc/mule/m2ps.ps @ 70:131b0175ea99 r20-0b30
Import from CVS: tag r20-0b30
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:02:59 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/mule/m2ps.ps Mon Aug 13 09:02:59 2007 +0200 @@ -0,0 +1,184 @@ +%!PS +%% PostScript Header for use by m2ps Ver.2.2 +%% Copyright (C) 1992 Free Software Foundation, Inc. +%% +%% This file is part of Mule (MULtilingual Enhancement of GNU Emacs). +%% +%% Mule is free software distributed in the form of patches to GNU Emacs. +%% You can redistribute it and/or modify +%% it under the terms of the GNU General Public License as published by +%% the Free Software Foundation; either version 1, or (at your option) +%% any later version. +%% +%% Mule is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%% GNU General Public License for more details. +%% +%% You should have received a copy of the GNU General Public License +%% along with GNU Emacs; see the file COPYING. If not, write to +%% the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +%% +%% 92.10.8 written by K.Handa <handa@etl.go.jp> +%% 92.12.15 modified by K.Handa <handa@etl.go.jp> +%% Support composite character. + +/Mydict 200 dict def % define a working dictionary +Mydict begin % start using it. + +%%%% Font Manipulation + +/imagemaskmatrix [0 0 0 0 0 0] def + +/BuildGlyphDefault { % fontdict charname BuildGlyphDefault - + 0 begin + 1 index /CharData get exch get /ch exch def + /FontSize get /fs exch def + ch 0 get fs div 0 ch 1 4 getinterval { fs div } forall setcachedevice + ch 5 get ch 6 get 2 copy + 0 gt exch 0 gt and { + true + imagemaskmatrix + dup 0 fs put dup 3 fs neg put + dup 4 ch 7 get put dup 5 ch 8 get put + ch 9 1 getinterval cvx + imagemask + } { + pop pop + } ifelse + end +} bind def + +/BuildGlyphNoCache { % fontdict charname BuildGlyphNoCache - + 0 begin + 1 index /CharData get exch get /ch exch def + /FontSize get /fs exch def + ch 0 get fs div 0 setcharwidth + ch 5 get ch 6 get 2 copy + 0 gt exch 0 gt and { + true + imagemaskmatrix + dup 0 fs put dup 3 fs neg put + dup 4 ch 7 get put dup 5 ch 8 get put + ch 9 1 getinterval cvx + imagemask + } { + pop pop + } ifelse + end +} bind def + +/BuildGlyphDefault load 0 6 dict put +/BuildGlyphNoCache load 0 6 dict put + +/work 4 string def + +/nf { % font fontname fsize bbox rel cache nf - % NEWFONT + 13 dict begin + /FontType 3 def + %ifelse + { /BuildGlyph { BuildGlyphDefault } def } + { /BuildGlyph { BuildGlyphNoCache } def } + ifelse + /Relative exch def + /FontBBox exch def + /FontSize exch def + /FontMatrix [1 0 0 1 0 0] def + /Encoding 256 array %def + dup 0 1 255 { + dup (XXX) cvs + (CXXX) work copy pop + work exch 1 exch putinterval + work cvn + put dup + } for pop + def + /CharData 256 dict def + /BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec + } def + dup currentdict + end + definefont pop + findfont FontScale scalefont def +} bind def + +/g { % charname chardata g - % NEWGLYPH + currentfont begin + CharData begin def end + end +} bind def + +/f { % font f - % SETFONT + setfont +} bind def + +%%%% Page Control +/bp { % - bp - % BEGIN OF PAGE + ShortMemory { save /SaveImage exch def } if + erasepage + /y TopMargin def + LeftMargin y moveto +} bind def + +/ep { % - ep - % END OF PAGE + copypage + ShortMemory { SaveImage restore } if +} bind def + +%%%% Miscellaneous Routines for reducing traffic + +/r { % x r - % MOVE RIGHT + 0 rmoveto +} bind def + +/n { % - n - % NEWLINE + /y y LinePitch sub def LeftMargin y moveto +} bind def + +/s { % string s - % SHOW STRING + show +} bind def + +/cs1 { % string cs1 - % SHOW COMP-CHAR + dup 0 get /ch exch def + currentfont /CharData get currentfont /Encoding get ch get get + dup 2 get /lly exch def + 4 get /ury exch def + currentfont /Relative get /rel exch def + ury rel lt { /ury rel def } if + lly 0 gt { /lly 0 def } if + currentpoint /yy exch def /xx exch def + show +} bind def + +/cs2 { % string cs2 - % SHOW COMP-CHAR + gsave + dup 0 get /ch exch def + currentfont /FontSize get /fs exch def + currentfont /CharData get currentfont /Encoding get ch get get + dup 2 get /llyy exch def + 4 get /uryy exch def + xx yy moveto + llyy rel ge { + 0 ury llyy sub 1 add fs div FontScale mul rmoveto + /ury ury llyy sub uryy add 1 add def + } { uryy 0 le { + 0 lly uryy sub 1 sub fs div FontScale mul rmoveto + /lly lly uryy sub llyy add 1 sub def + } { + uryy ury gt { /ury uryy def } if + llyy lly lt { /lly llyy def } if + } ifelse } ifelse + show + grestore +} bind def + +/cs3 { % string cs3 - % SHOW COMP-CHAR + gsave + xx yy moveto show + grestore +} bind def + +end % end of Mydict