BOARDFILES= \
$(addprefix maxprintable-, a3) \
$(addprefix minprintable-, a3) \
- $(addprefix boundings-, pa3 pa4 pa1-bPageP ) \
+ $(addprefix boundings-, pa3 pa4 pa1-bPageP pa1m-bPageP ) \
$(addprefix board-, pa3-bPageB pa3-bPageMT \
pa4-bPageB pa4-bPageM pa4-bPageT \
- pa1-bPageP ) \
- $(addprefix board-, b mt) \
+ pa1-bPageP pa1m-bPageP ) \
layout-test \
$(addprefix a4-test-, b m t) \
$(addprefix layout-test-, b m t)
our $a1_h = 2384;
our $max_printeredge = 5.50 * MM2PT;
-
+our $a1m_pasteedge = 3.5 * MM2PT; # along each edge
+our $preamble_from_boundings = '';
# ----- region names from plag, incl. reverse mapping -----
sub computeboundings() {
$bb{Entire} = [ 0,0, $a4_h, $a4_w + $a3_h ];
- my $page2minprintable = sub {
- my (@p) = @{ $_[0] };
- [ $p[0] + $max_printeredge,
- $p[1] + $max_printeredge,
- $p[2] - $max_printeredge,
- $p[3] - $max_printeredge ];
+ my $submargins = sub {
+ my ($margin, $pr) = @_;
+ my @p = @$pr;
+ [ $p[0] + $margin,
+ $p[1] + $margin,
+ $p[2] - $margin,
+ $p[3] - $margin ];
};
my $somepage = sub {
my $id = shift @_;
print STDERR "defining page Page$id\n";
$bb{"Page$id"} = [ @_ ];
- $bb{"Printable$id"} = $page2minprintable->($bb{"Page$id"});
+ $bb{"Printable$id"} = $submargins->($max_printeredge, $bb{"Page$id"});
};
my $pageb_a4 = sub {
$somepage->('B', 0,0, $a4_h, $a4_w );
@{ $bb{PrintableB} }[0..1],
@{ $bb{PrintableT} }[2..3],
];
- } elsif ($maxpaper eq 'a1') {
+ } elsif ($maxpaper =~ m/^a1/) {
+ my $surround = 5 * MM2PT;
+ my $surroundw = $bb{Entire}[2] + $surround*2;
+ my $surroundh = $bb{Entire}[3] + $surround*2;
$somepage->('P', 0,0, $a1_w, $a1_h);
+ my $offx = 0.5*($bb{PageP}[2] - $bb{Entire}[2]);
+ my $offy = 0.5*($bb{PageP}[3] - $bb{Entire}[3]);
+ $bb{Entire}[0] += $offx; $bb{Entire}[1] += $offy;
+ $bb{Entire}[2] += $offx; $bb{Entire}[3] += $offy;
+ $preamble_from_boundings = <<END;
+ $offx $offy translate
+ -$surround -$surround moveto
+ $surroundw 0 rlineto
+ 0 $surroundh rlineto
+ -$surroundw 0 rlineto
+ closepath clip
+END
+ if ($maxpaper eq 'a1m') {
+ $bb{Cutout} = $submargins->($a1m_pasteedge, $bb{Entire});
+ }
} else {
confess;
}
<< /PageSize [ @$sz ] >> setpagedevice
/board {
gsave
+$preamble_from_boundings
34 -15 translate
END
if ($maxpaper eq 'a4') {
$xopts = shift @ARGV if $ARGV[0] =~ s/^-X//;
$bounding = $1 if $xopts =~ s/b(\w+)//;
$maxpaper = $1 if $xopts =~ s/p(\w+)//;
-$maxpaper =~ m/^a[134]$/ or confess;
+$maxpaper =~ m/^a[134]$|^a1m$/ or confess;
($facesf, @ARGV) = @ARGV or die;
parse_input_graph();