o(" closepath\n");
}
-sub pscolour ($) {
- my ($spec) = @_;
+sub pscolour ($;$) {
+ my ($spec, $adj1) = @_;
confess unless defined $spec;
- join ' ',
- (map { sprintf "%.6f ", hex($_) / 15.0 }
- split //, $spec),
+ my @rgb = map { hex($_) / 15.0 } split //, $spec;
+ $adj1 //= sub { $_[0] };
+ my $r = join ' ',
+ (map { sprintf "%.6f ", $_ }
+ map { $adj1->($_) } @rgb
+ ),
'setrgbcolor';
+ return $r;
}
sub preamble() {
sub label_faces() {
my $sz = 18;
+ my $hs_sz = 17 * MM2PT;
my $shadow = $sz * 0.1;
o(" /Helvetica-Bold findfont $sz scalefont setfont\n");
+ my %hs = map { $_ => 1 } @{ $c{HS} };
foreach my $rr (values %region) {
next if $rr->{Special};
o(" /words {\n");
my $words = $rr->{DisplayName};
my $pos = $rr->{Centre} + mkvec( 0, 0.5 * $sz * @$words );
+ if ($hs{$rr->{Name}}) {
+ print STDERR "adjust hs $rr->{Name}\n";
+ $pos -= mkvec(0, -$hs_sz/2);
+ }
foreach my $word (@$words) {
$pos += mkvec(0,-$sz);
o(" ", psvec($pos), " moveto");