chiark / gitweb /
reorganise prep for fix number missing from individuals, code motion
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 6 Nov 2021 20:42:49 +0000 (20:42 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 6 Nov 2021 20:42:49 +0000 (20:42 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
pumpkin-books.ps.pl

index 19cc6c42404337ff8e849b8733bb95ade2173394..93b8defad387b3a38383e0c8d5ad21d3b9cf56f5 100755 (executable)
@@ -456,76 +456,6 @@ END
   $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)]);
 
@@ -705,7 +635,7 @@ END
 };
 
 
-$ps_framing = <<END;
+our $ps_framing = <<END;
 %!
 
 $page_pre
@@ -780,6 +710,74 @@ END
 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");