UNIX で年賀状

[2003/12/29]

基本方針

xshodo の変更

ここ数年の年賀状はベースを TUT Computer Club 作の xshodo で描き,それ を gimp で加工しています. X-Window 上で筆風の描画が可能という点で xshodo は便利なのですが,一度 描いた描線が消せないという特徴があります.書道を実現するという点ではや り直しができないということは妥当かもしれませんが,やはりコンピュータ上 で描くのであれば消しゴムツールぐらいは欲しいところです.というわけで, 元の作成者の方の意図には反するかもしれませんが,xshodo に消しゴムツー ルを追加しました.マウスボタン3にはすでに機能が割り当てられていますが, 私はこれを使用したことがないので,そちらを消しゴムツールとします. 消しゴムのサイズも変更できるといいのですが,とりあえず 10x10 の固定です.
--- xshodo.c.org        Sat Mar 29 22:44:24 1997
+++ xshodo.c        Mon Dec 29 08:32:48 2003
@@ -17,4 +17,6 @@
 char *xbmfile = "xshodo.xbm";
 
+#define ADD_ERASER
+
 XtAppContext app;
 Widget top[3];
@@ -171,11 +173,28 @@
 }
 
+#ifndef ADD_ERASER
 void B3push(Widget w,XEvent *ev,String *p,Cardinal *n) {
   Pw = 0;
   Pl = 0;
 }
+#else
+void B3push(Widget w,XEvent *ev,String *p,Cardinal *n) {
+  int x=ev->xbutton.x, y=ev->xbutton.y;
+  XSetForeground(dpy,gc,WhitePixel(dpy,screen));
+  XSetForeground(dpy,gc2,0);
+  XFillRectangle(dpy,win,gc,x-5,y-5,10,10);
+  XFillRectangle(dpy,pix,gc2,x-5,y-5,10,10);
+  XSetForeground(dpy,gc,BlackPixel(dpy,screen));
+  XSetForeground(dpy,gc2,1);
+}
+#endif
 
 void B1move(Widget w,XEvent *ev,String *p,Cardinal *n) {
   int ww;
+
+#ifdef ADD_ERASER
+  if (ev->xbutton.state&Button3Mask) {B3push(w,ev,p,n); return;}
+#endif /* ADD_ERASER */
+
   if(Pl == 0 && Pw > 0) {
     Pw-=Pd[5];

GIMP の設定

ハガキサイズの設定.100mm×148mm で,300dpi として新規ウィンドウを準備する. ただ,現在使用しているインクジェットプリンタでは縁なし印刷ができず,A4 紙上にハガキを貼り付けて印刷しているため,少しはみ出すぐらいということ で,104mm×153mm ほどにしておきます.xshodo で描いた図を取り込んで切り 出し,ハガキ面に配置します.これを A4 紙にグレーで下地印刷しておき,そ の位置を頼りにハガキを貼り付け印刷します.一度に複数枚を印刷できるほう がいいので,作成した画像を複製し少し空白を設けて2枚並べこれを A4 紙に 印刷します.

hagaki の変更

宛名書きは瀬戸 米治さん作の hagakiで行ないます.宛名のうち,郵便番号のフォントが Courier になっていて少し味気ない感じがしますのでこれを Times に変更し,さらに4桁目以降のデータを小さ目にします.
--- hagaki01.c.org      Fri Dec 10 15:23:30 1999
+++ hagaki01.c  Sun Dec 28 00:18:18 2003
@@ -11,5 +11,5 @@
 % constants\n\
 /ZEN { /Ryumin-Light-V findfont exch dup /FONTSIZE exch def scalefont 
 setfont }
 def\n\
-/HAN { /Courier-Bold findfont exch dup /FONTSIZE exch def scalefont setfont } def\n\
+/HAN { /Times-Bold findfont exch dup /FONTSIZE exch def scalefont setfont } def\n\
 "
 };
@@ -133,5 +133,5 @@
     ix=(int)((100 - x + x_offset + 7*j + 2.0)/PFACT);
     iy=(int)((297 - y + y_offset)/PFACT);
-    isize=(int)(5.0/PFACT);
+    isize=(int)(((i<3)? 5.0:4.0)/PFACT);
     j++;
   

捕捉情報:FreeBSD USB 接続での pips880 の使用 (2005/2)

リンク


||Doc||

oshiro@mibai.tec.u-ryukyu.ac.jp