[M+ OUTLINE FONTS 342] EPSCut の改造

Zurück zum Archiv-Index

KANOU Hiroki kanou****@khdd*****
2005年 1月 18日 (火) 12:23:26 JST


狩野です。

村岡さんの書かれた EPS 切り出し処理を長方形領域に対応させてみました。

epscut.pl と EPSCut::cut() に、2 個までの追加引数を追加できるように
しました。5 番目が 長方形領域の x の大きさ、6 番目が y の大きさです。
(y の省略値は x と同じで、x の省略値は 100 です)。

% perl epscut.pl 0060.eps thin/uni0061.eps 6 1 100 150
とすると、mplus-thin の 'a' が uni0061.eps に書き出されます。
# ベースラインが浮いてるのって、これで正常なんですよね。

これでいよいよ、プロポーショナル英文を取り込むための部品はすべて
組み上がったはずです。
# 今のところ、太さのある線の問題は、setlinewidth を pop に置き換えて
# 対処しています。
フォント作成スクリプト全体の修正は、村岡さんにお任せしたいと思います。

--- EPSCut.pm.orig	Tue Apr 20 10:45:54 2004
+++ EPSCut.pm	Tue Jan 18 12:08:28 2005
@@ -5,8 +5,9 @@
 
 package EPSCut;
 
-my $NUNIT = 100;
-my $SCALE = 10;
+my $EM = 1000.0;
+my ($XUNIT, $YUNIT) = (100, 100);
+my $SCALE = $EM / $YUNIT;
 my $RXFLT = "-?\\d+(\\.\\d+)?";
 
 sub cut
@@ -15,11 +16,14 @@
     my $outfile = shift;
     my $row = shift;
     my $col = shift;
+    $XUNIT = shift if (@_);
+    $YUNIT = shift if (@_);
+    $SCALE = $EM / $YUNIT;
     # Prepare
-    my @size = ($SCALE * $NUNIT, $SCALE * $NUNIT);
+    my @size = ($SCALE * $XUNIT, $SCALE * $YUNIT);
     my @range = (
-	$col * $NUNIT, $row * $NUNIT,
-	($col + 1) * $NUNIT, ($row + 1) * $NUNIT
+	$col * $XUNIT, $row * $YUNIT,
+	($col + 1) * $XUNIT, ($row + 1) * $YUNIT
     );
     open IN, $infile;
     open OUT, ">$outfile";
--- epscut.pl.orig	Sun Mar  7 20:28:27 2004
+++ epscut.pl	Tue Jan 18 12:06:30 2005
@@ -5,7 +5,7 @@
 if (@ARGV < 4) {
     print STDOUT <<"__HERE__";
 ERROR: Too less arguments
-Usage: $0 {INFILE} {OUTFILE} {NROW} {NCOL}
+Usage: $0 {INFILE} {OUTFILE} {NROW} {NCOL} [{XUNIT} [{YUNIT}]]
 __HERE__
     exit 1;
 }
@@ -13,11 +13,14 @@
 $OUTFILE = shift;
 $NROW = ((shift) + 0);
 $NCOL = ((shift) + 0);
+$XUNIT = $YUNIT = 100;
+$XUNIT = $YUNIT = ((shift) + 0) if @ARGV;
+$YUNIT = ((shift) + 0) if @ARGV;
 
 if (not -r $INFILE) {
     print STDERR "ERROR: Can't read a file $INFILE\n";
     exit 1;
 }
 
-&EPSCut::cut($INFILE, $OUTFILE, $NROW, $NCOL);
+&EPSCut::cut($INFILE, $OUTFILE, $NROW, $NCOL, $XUNIT, $YUNIT);
 exit;



mplus-fonts-dev メーリングリストの案内
Zurück zum Archiv-Index