年賀状書いた。
%! << /PageSize [285 420] >> setpagedevice /fun { % y=x^2/81 for x<9, y=(x-18)^2/81 for x>=9 dup 9 le {dup mul 81 div} {18 sub dup mul 81 div} ifelse } def /colwidth 62 def % set column width /xoffset 15 def /linehfactor 1.3 def /fontsize 170 def /numfont { /Sixties % /Bookman-Demi or /Times-Bold are also good } def /setrandcolor { % def /m exch def /r1 {rand 10 mod 7 div 1 m fun sub mul m 9 eq {1 add} if} def /r2 {rand 10 mod 7 div 1 m fun sub mul 0 add} def /r3 {rand 10 mod 7 div 1 m fun sub mul 0 add} def r1 r2 r3 setrgbcolor } def /centeringchar { % def dup stringwidth pop colwidth exch sub 2 div 0 rmoveto } def % remaining a character string on top of the opstack xoffset 0 moveto 0 1 3 { % for /i exch def i colwidth mul 0 rmoveto [3 1 2 3] i get % map (+1) (2 0 1 2) /base exch def 0 1 10 { % for /t exch def /num t base add 10 mod def /f {i 3 eq {12} {9} ifelse} def /h {t 9 mul fun 2 mul f add} def numfont findfont [fontsize 1 0 linehfactor h mul 1 0] makefont setfont t setrandcolor num 10 1 string cvrs currentpoint /y exch def /x exch def centeringchar true charpath gsave fill grestore 0.5 setgray stroke x h y add moveto } for xoffset 0 moveto } for showpage
去年まではちゃんと印刷して写真をとっていたのだけど、今年は ps2pdf の出力を Scribd にアップするだけというていたらくです。
20122010年、2011年と、ぐるぐる回す系のデザインが続いたので、今年は縦スクロールにしてみました。回す系より地味だけど、縦のセンターを合わせなければいけないので、カラム幅と文字幅をもとに座標を調整したり、座標のリセットをしたり、見た目から想像されるよりも手間がかかります。
ナンバリング風の演出は、最初は円周の割合でフォントの高さの変化率を決めてみたのだけど、どうにも格好がつかず、適当な二次曲線(上記の /fun
)を使ったらなんかいい具合になりました。あと「2012」だけが目に飛び込むような配色に苦労した。
今回の作例で使ったフォントは Sixties というフリーフォントです。他の一般的なフォントを使う場合は、Bookman-Demi とか Times-Bold のようなひげのあるフォントがおすすめ。
ここから Ghostscript で TrueType フォントを使うときのメモを書くけれど、自分ではよくわかってない話なので、個人マシンで遊ぶときとか意外には参考にしないでください。
Web から入手したフリーの TrueType フォントを PostScript 遊びで使いたいとき、インタプリタが Acrobat なら Windows や Mac にフォントをインストールすれば勝手に使ってくれるけれど、Ghostscript ではそうはいかない。基本的な手順は、
- TrueType フォントの名前を調べる
- GS から見える場所に置く
- GS の Fontmap に登録(
/usr/share/ghostscript/8.71/Resource/Init/
とかにあるやつ)
$ ttf2pt1 -GA -l latin1 Sixties.ttf - 2> /dev/null | grep FontName FontName Sixtiesフォントの置き場所もなかなか一筋縄ではいかなくて、Fontmap に絶対パスを書きさえすればどこに置いてもいいのかと思いきや、GS が見に行ってくれる場所(
/usr/share/ghostscript/fonts/
とか)にないとだめっぽい。Fontmap への登録も、システムワイドな Fontmap ファイルに直接書かないと有効にならないようで、今回は Sixties.ttf を /usr/share/ghostscript/8.71/Resource/Init/Fontmap
にこんなふうに登録した。
%! % See Fontmap.GS for the syntax of real Fontmap files. %% Replace 1 (Fontmap.GS) (Fontmap.GS) .runlibfile (Sixties) (Sixties.ttf) ;
0 件のコメント:
コメントを投稿