LAYERS_PS= $(addsuffix .ps, $(LAYERS_LS))
LAYERS_L= $(addprefix ours-l, $(LAYERS_PS))
LAYERS_E= $(addprefix ours-e, $(LAYERS_PS))
-LAYERS= $(LAYERS_L) $(LAYERS_E)
+LAYERS_M= $(addprefix ours-m, $(LAYERS_PS))
+LAYERS= $(LAYERS_L) $(LAYERS_E) $(LAYERS_M)
LPAGES= $(foreach x, 0 1 2 3 4 5 6, $(foreach y, 1 2 3 4 5, ours-p0-$xx$y.ps))
$(LINK)
%.d4: %.m4 $(M4INCS) Makefile
- m4 -s <$< $o
+ m4 -s $< $o
%-a.ps: %.d4 layout
./layout <$< $(LAYOUTOPTS) '-E*lD' $o
ours-l%.ps: ours.d4 layout
./layout <$< -l$* $(LAYOUTOPTS) $(XLAYOUTOPTS_LAYER) $o
+ours-m%.ps: ours.d4 layout
+ ./layout <$< -l$* -E'=*aRscLDMno' \
+ -e'p=*rm' -E'=5RNLDA' -E'*~=5rCdsml' $o
+
ours-e%.ps: ours.d4 layout
./layout <$< -l$* -E'=*aRsclMno' \
-e'p=*rm' -e'=5RN' -E'*~=5rsm' -e'p~=5r' -e'*=*l' $o
use strict;
no strict 'subs';
+our $file_lineno= 0;
+our $file_filename;
+
our $scale= 7.0;
our $page_x= 0;
our $page_y= 0;
our @eopts;
our @segments= ('/');
+our @ident_strings= ();
our %subsegcmap;
our $drawers= 'arscldmnog';
r arcs
L LMg
l l
+ D D
+ d d
M Mnog
N MNog
O MNOg
our $olu_left= 10 * $scale;
our $olu_right= 217 * $scale - $olu_left;
-our $olu_bottom= 20 * $scale;
+our $olu_bottom= 25 * $scale;
our $olu_top= 270 * $scale - $olu_bottom;
our $olu_gap_x= 30;
our $olu_gap_y= 60;
sub ol ($) { $ol .= $_[0]; }
sub oflushpage () {
return if $subsegcmapreq;
+
print $o, $ol, " showpage\n"
or die $!;
$o=$ol='';
parametric__o_pt(&$calcfn);
o(" stroke\n");
}
- if ($draw =~ m/D/) {
- my ($pt,$ad,$len,$off);
- $param= ($p0+$p1)*0.5;
- $pt= &$calcfn;
- $ad= ang2deg($pt->{A});
- $len= sprintf "%.0f", $lenperp * abs($p1-$p0);
- $off= $draw =~ m/C/ ? $lmu_lenlabeloff : $lmu_lenlabeloffctr;
- ol(" gsave\n".
- " $pt->{X} $pt->{Y} translate\n".
- " $ad rotate\n".
- " lf setfont\n".
- " 0 $off moveto\n".
- " ($len) show\n".
- " grestore\n");
- }
- return unless $draw =~ m/[ARS]/;
- for ($pa= $p0; $pa<$p1; $pa=$pb) {
+ if ($draw =~ m/[ARS]/) { for ($pa= $p0; $pa<$p1; $pa=$pb) {
$pb= $pa + $ppu;
$param= $pa; $ends[0]= @ends ? $ends[1] : &$calcfn;
$param= $pb; $ends[1]= &$calcfn;
}
}
o(" grestore\n");
- }
+ } }
+ if ($draw =~ m/D/) {
+ my ($pt,$ad,$len,$off);
+ $param= ($p0+$p1)*0.5;
+ $pt= &$calcfn;
+ $ad= ang2deg($pt->{A});
+ $len= sprintf "%.0f", $lenperp * abs($p1-$p0);
+ $off= $draw =~ m/C/ ? $lmu_lenlabeloff : $lmu_lenlabeloffctr;
+ ol(" gsave\n".
+ " $pt->{X} $pt->{Y} translate\n".
+ " $ad rotate\n".
+ " lf setfont\n".
+ " 0 $off moveto\n".
+ " ($len) show\n".
+ " grestore\n");
+ }
}
sub arc ($$$$$) {
}
}
+sub cmd_ident {
+ my ($vs, @lt, $inf, $strft);
+ $vs= "@al";
+ $vs= $1 if $vs =~ m/^\$Revision\: ([0-9.]+)\ \$$/;
+ if (!defined $file_filename) {
+ $inf= "$vs (unknown file: $file_lineno)";
+ } elsif (!stat $file_filename ||
+ !(@lt= localtime((stat _)[9]))) {
+ $inf= "$file_filename ($1 $!)";
+ } else {
+ $strft= strftime "%Y-%m-%d %H:%M:%S +%Z", @lt;
+ $inf= "$file_filename ($1 $strft)";
+ }
+ push @ident_strings, $inf;
+ @al= ();
+}
+
sub cmd_showlibrary {
my ($obj_id, $y, $x, $ctx_save, $width, $height);
my ($max_x, $min_x, $max_y, $min_y, $nxty, $obj, $loc, $pat, $got, $glob);
o("%!\n".
" /lf /Courier-New findfont $lmu_marktpt scalefont def\n".
- " $ps_page_shift 0 translate 90 rotate\n");
+ " $ps_page_shift 0 translate 90 rotate\n".
+ " gsave\n");
if ($page_x || $page_y) {
o(" /Courier-New findfont 15 scalefont setfont\n".
cmd__one();
while (<>) {
+ $file_lineno++;
+ if (m/^\#line (\d+)$/) { $file_lineno= $1; next; }
+ if (m/^\#line (\d+) (.*)$/) {
+ $file_lineno= $1;
+ $file_filename= $2;
+ $file_filename =~ s/^\"(.*)\"$/$1/;
+ next;
+ }
next if m/^\s*\#/;
chomp; s/^\s+//; s/\s+$//;
@al= split /\s+/, $_;
}
}
+ol("grestore\n");
+
+if (@ident_strings) {
+ my ($is);
+ $is= join('; ', @ident_strings);
+ $is =~ s/[()\\]/\\$&/g;
+ ol("25 50 moveto".
+ "/Courier-New findfont 6 scalefont setfont\n".
+ " ($is) show\n");
+}
+
oflushpage();