$o;
}
-our $ps_framing;
-
-sub tile {
- my @tiles;
- my $index_i = 1;
-
- foreach my $spec (@_) {
- my @datas;
- foreach my $stem (split m{/}, $spec) {
- my $func = $stem;
- $func =~ y/-/_/;
- $func = ${*::}{"book_$func"} // die "$func ?";
- my $data = $func->();
- open F, ">book-$stem.ps" or die $!;
- print F $ps_framing, $data, "\nshowpage\n" or die $!;
- close F or die $!;
- push @datas, $data;
- }
- foreach my $dd (@datas) {
- push @tiles, [ $dd, $index_i ];
- }
- $index_i++;
- }
-
- my $pos = 0;
- my $o = '';
- my $showpage = sub {
- $o .= <<END;
-showpage
-$page_pre
-END
- };
-
- while (my $di = pop @tiles) {
- my ($d, $index) = @$di;
-
- if ($pos >= 5) {
- $pos -= 5;
- $showpage->();
- }
- $o .= <<END;
-gsave
-END
- if ($pos < 3) {
- $o .= <<END
- 0 th 10 add $pos mul translate
-END
- } else {
- $o .= <<END
-tw 2 mul 7 add
- dup th add 0 translate
- 90 rotate
- $pos 3 sub mul 0 translate
-END
- }
- $o .= "\n".$d."\n";
- $o .= <<END;
-
- /Courier-Bold findfont 6 scalefont setfont
- -0.98 0.94 dc moveto
- ($index) show
-
-grestore
-END
- $pos++;
- }
- $showpage->();
- $o;
-}
-
sub book_yellow () {
my $o = general_book($yellow, [qw(7 12 19)]);
};
-$ps_framing = <<END;
+our $ps_framing = <<END;
%!
$page_pre
END
}
+sub tile {
+ my @tiles;
+ my $index_i = 1;
+
+ foreach my $spec (@_) {
+ my @datas;
+ foreach my $stem (split m{/}, $spec) {
+ my $func = $stem;
+ $func =~ y/-/_/;
+ $func = ${*::}{"book_$func"} // die "$func ?";
+ my $data = $func->();
+ open F, ">book-$stem.ps" or die $!;
+ print F $ps_framing, $data, "\nshowpage\n" or die $!;
+ close F or die $!;
+ push @datas, $data;
+ }
+ foreach my $dd (@datas) {
+ push @tiles, [ $dd, $index_i ];
+ }
+ $index_i++;
+ }
+
+ my $pos = 0;
+ my $o = '';
+ my $showpage = sub {
+ $o .= <<END;
+showpage
+$page_pre
+END
+ };
+
+ while (my $di = pop @tiles) {
+ my ($d, $index) = @$di;
+
+ if ($pos >= 5) {
+ $pos -= 5;
+ $showpage->();
+ }
+ $o .= <<END;
+gsave
+END
+ if ($pos < 3) {
+ $o .= <<END
+ 0 th 10 add $pos mul translate
+END
+ } else {
+ $o .= <<END
+tw 2 mul 7 add
+ dup th add 0 translate
+ 90 rotate
+ $pos 3 sub mul 0 translate
+END
+ }
+ $o .= "\n".$d."\n";
+ $o .= <<END;
+
+ /Courier-Bold findfont 6 scalefont setfont
+ -0.98 0.94 dc moveto
+ ($index) show
+
+grestore
+END
+ $pos++;
+ }
+ $showpage->();
+ $o;
+}
+
def_image(1, "bag");
def_image(1, "pot");
def_image(3, "droplet");