From: Ian Jackson Date: Sun, 3 Nov 2013 23:15:29 +0000 (+0000) Subject: numbered-alias-sheet: numbers can be different size X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?p=evade-mail-usrlocal.git;a=commitdiff_plain;h=a6d847e49c436b71847c476ab7a6e4fc53bf4ffd numbered-alias-sheet: numbers can be different size --- diff --git a/numbered-alias-sheet b/numbered-alias-sheet index d27c9f0..2305a13 100755 --- a/numbered-alias-sheet +++ b/numbered-alias-sheet @@ -6,9 +6,10 @@ use POSIX; use Data::Dumper; our $papersize = 'creditcard'; +our $fontname_num = 'Helvetica'; +our $fontscale_num = 0.8; our $fontname = 'Courier'; -our $fontname_num = 'Courier'; -our $gapratio = 1; +our $gapratio = 1.5; our $lineratio = 1; our $blankratio = 1; our @borders = (4,4); @@ -21,8 +22,9 @@ our @lp_fixed; our $usage = <] ... options: - -p for libpaper, or "creditcard" default is $papersize - -f[,] font name default is $fontname + -p for libpaper, or "creditcard", default is $papersize + -f set both to same font name + -f[[*]],[] default is $fontname_num*$fontscale_num,$fontname -b|-bx all in mm -g number-to-addr gap adjustment -l inter-line space ("leading") adjustment factor @@ -76,8 +78,14 @@ for (;;) { @paperpts = mm2pt($1,$2); } elsif (s/^-f($fontname_re)$//o) { $fontname = $fontname_num = $1; - } elsif (s/^-f($fontname_re),($fontname_re)$//o) { - ($fontname_num, $fontname) = ($1, $2); + } elsif (s/^-f(?:($fontname_re)(?:\*($dbl_re))?)?,($fontname_re)?$//o) { + if (defined $1) { + $fontname_num = $1; + $fontscale_num = defined($2) ? $2 : 1.0; + } + if (defined $3) { + $fontname = $3; + } } elsif (s/^-b($dbl_re)$//o) { @borders = ($1,$1); } elsif (s/^-b($dbl_re)x($dbl_re)$//o) { @@ -304,7 +312,7 @@ sub do_layout ($) { print DEBUG "layout $fontsize\n"; - @numbers_metr = map { $_ * $fontsize } @numbers_1_metr; + @numbers_metr = map { $_ * $fontsize * $fontscale_num } @numbers_1_metr; $gap_width = $gapratio * $fontsize * $nom_gap_1_metr[4]; $colgap_width = $gap_width * 2; @texts_metr = map { $_ * $fontsize } @texts_1_metr; @@ -338,7 +346,7 @@ sub determine_size_layout () { defined $minsz or die "cannot fit at even at ${trysz}pt\n"; - if (defined $maxsz && ($maxsz / $minsz) < 1.01) { + if (defined $maxsz && ($maxsz / $minsz) < 1.001) { $usesz = $minsz; last; } @@ -392,7 +400,7 @@ sub write_output () { foreach my $nums (qw(1 0)) { prf("%s findfont %s scalefont setfont\n", psstring($nums ? $fontname_num : $fontname), - $lp_y->{f}); + ($nums ? $fontscale_num : 1.0) * $lp_y->{f}); prf "%s setlinewidth\n", $gap_width * 0.1; print DEBUG "nums? $nums rows=$rows\n"; foreach my $col (0..$lp_y->{0}-1) {