[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mgp-users-jp 00590] print.c patch
- To: mgp-users-jp@mew.org
- Subject: [mgp-users-jp 00590] print.c patch
- From: "Takashi P.KATOH" <p-katoh@shiratori.riec.tohoku.ac.jp>
- Date: Thu, 2 Sep 1999 21:00:11 +0900
- Posted: Thu, 02 Sep 1999 19:01:15 +0900
- Reply-to: mgp-users-jp@mew.org
mgp2ps を使ったときに、イメージを文字と文字の途中に狭んだり
したような場合にうまくいかなかったのを直す patch です
(for snap-990830)。
が、ここに投げるかどうか本気で悩むくらい ad hoc でキタナイパッ
チです (_o_)
# 特に、stack に余計なものが無いことを仮定している
# (currentpoint pop count 1 rol のあたり) のが自分でもイヤです。
あと、細かい調整をしていないので微妙に右にズレてる気がします。
まぁ merge してもらえるとは思ってませんが、この辺をそろそろ
対応して欲しいなぁ、という要望を出すという意味を兼ねて、とり
あえず送ります。
一応 mgp file の sample も付けておきます。
image file は mgp のアーカイブの sample/ にあります。
# 位置の計算をするのは PostScript interpreter まかせにしちゃ
# いたいですね。
--
かとぺ / 加藤 貴司
--- kit-990830/print.c Tue May 25 18:44:30 1999
+++ kit/print.c Thu Sep 2 18:28:51 1999
@@ -846,6 +846,7 @@
icon_output(&textpool[i]);
} else {
/* image */
+ fprintf(fp, "currentpoint pop count 1 roll\n", textpool[i].xsiz);
fprintf(fp, "%d 0 rmoveto\n", textpool[i].xsiz);
}
}
@@ -1424,8 +1425,13 @@
AllPlanes, ZPixmap);
fprintf(fp, "gsave\n");
- fprintf(fp, "%d ypos %d sub translate\n",
- xpos + paper_xmargin, print_height);
+ if ((align == AL_CENTER) || (align == AL_RIGHT)) {
+ fprintf(fp, "pop %d ypos %d sub translate\n",
+ xpos + paper_xmargin, print_height);
+ } else {
+ fprintf(fp, "%d add ypos %d sub translate\n",
+ xpos + paper_xmargin, print_height);
+ }
fprintf(fp, "%d %d scale\n", print_width, print_height);
fprintf(fp, "%d %d 8\n", print_width, print_height);
fprintf(fp, "[%d 0 0 %d 0 %d]\n", print_width,
@@ -1740,7 +1746,11 @@
}
fprintf(fp, "BeginEPSF\n");
- fprintf(fp, "%d XMARGIN add ypos translate\n", xpos);
+ if ((align == AL_CENTER) || (align == AL_RIGHT)) {
+ fprintf(fp, "%d XMARGIN add ypos translate\n", xpos);
+ } else {
+ fprintf(fp, "dup %d XMARGIN add add ypos translate\n", xpos);
+ }
fprintf(fp, "%f %f scale\n", xscale, yscale);
fprintf(fp, "%d %d translate\n", -1 * x1, -1 * y2);
fprintf(fp, "%%%%BeginDocument: %s\n", filename);
@@ -1754,6 +1764,7 @@
}
fprintf(fp, "%%%%EndDocument\n");
fprintf(fp, "EndEPSF\n");
+ fprintf(fp, "pop\n");
}
/*------------------------------------------------------------*/
%include "default.mgp"
%page
Test
Centering
%center, image "dad.eps"
%leftfill
%vgap 30
Right
%right, image "dad.eps"
%vgap 30
%leftfill
Continuing (?)
This is
%cont, image "dad.eps"
sample image.