chiark / gitweb /
a1[m] tinies too
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 8 Mar 2019 10:47:34 +0000 (10:47 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 8 Mar 2019 10:47:34 +0000 (10:47 +0000)
generate-board

index dbba9581c1b7f17c4d746c17e17dff5aa415f0c8..e21cd5449cea62b037e8b058aadb24adad7779d0 100755 (executable)
@@ -22,6 +22,7 @@ our $facesf;
 our %vxname2pos; # $vxname2pos{VXNAME} = Math::GSL::Vector
 our %bb; # $r{Bounding...}[0..3] = points
 our $maxpaper = 'a3';
+my $a1sfactor = 1/sqrt(8);
 
 sub TAU { M_PI * 2.0; }
 sub MM2PT { 72.0 / 25.4; }
@@ -345,7 +346,7 @@ sub computeboundings() {
                         @{ $bb{PrintableT} }[2..3],
                        ];
   } elsif ($maxpaper =~ m/^a1/) {
-    my $offx = 0.5*($a1_w - $bb{Entire}[2]);
+    my $offx = ($a1_w - $bb{Entire}[2] * (1 + $a1sfactor)) / 3;
     my $offy = 0.5*($a1_h - $bb{Entire}[3]);
     $somepage->('P', -$offx,-$offy, $a1_w-$offx, $a1_h-$offy);
     my $hairs = 30 * MM2PT;
@@ -471,6 +472,16 @@ sub postamble () {
 /pgsave save def
 &&EndPageSetup
 all
+END
+  if ($maxpaper =~ m/^a1/) {
+    o(<<END);
+  $a1_w 0 translate
+  $a1sfactor dup scale
+  $a1_w neg 0 translate
+  1 1 3 { pop all 0 $a1_h 0.8 mul translate } for
+END
+  }
+  o_amble(<<END);
 pgsave restore
 showpage
 &&EOF