+++ /dev/null
-#!@PERL@ -w
-# -*-Perl-*-
-
-
-# stupid script to generate WWW site. The WWW site is my
-# test-suite for LilyPond, I usually don't distribute versions that
-# fail to make the website
-
-use FileHandle;
-use Getopt::Long;
-
-my $lily_version;
-my $footstr;
-my $mw_id = "<!make_website!>";
-my $id_str = "make-website 0.4";
-my $TAR="tar";
-my $MAKE="make";
-
-sub get_version
-{
- my ($vstr)=("");
- open V, "$depth/VERSION";
- while (<V>) {
- s/#.*$//g;
- next if (/^ *$/);
- s/^/\$/;
- s/= *(.*)$/=\"$1\";/;
- $vstr .= $_;
- }
- eval ($vstr);
-
- $lily_version= "$TOPLEVEL_MAJOR_VERSION.$TOPLEVEL_MINOR_VERSION.$TOPLEVEL_PATCH_LEVEL$TOPLEVEL_MY_PATCH_LEVEL";
-
- # stupid checks.
- $lily_version= $lily_version;
-
- close V;
-}
-
-sub set_html_footer
-{
- my $MAILADDRESS=$ENV{MAILADDRESS};
- my @pw=(getpwuid($<));
- my $username=$pw[6];
-
- $footstr =
- "\n<hr>Please take me <a href=index.html>back to the index</a>\n
-of LilyPond -- The GNU Project Music typesetter
-<hr>
-<font size=-1>
-This page was built using <code>" . $id_str . "</code> from lilypond-"
- . $lily_version .
- " by<p>
-<address><br>$username <a href=mailto:"
- . $MAILADDRESS . "><<!bla>" . $MAILADDRESS ."</a>></address>
-<p></font>";
-}
-
-
-# do something, check return status
-sub my_system
-{
- my (@cmds) = @_;
- foreach $cmd (@cmds) {
- my ($ignoreret)=0;
- if ( $cmd =~ /^-/ ) {
- $ignoreret = 1;
- $cmd = substr ($cmd, 1);
- }
-
- my $ret = ( system ($cmd));
- if ($ret) {
- if ($ignoreret) {
- print STDERR "ignoring failed command \`$cmd\' (status $ret)\n";
- }else {
- print STDERR "\nmake_website: failed on command \`$cmd\' (status $ret)\n";
- exit 2;
- }
- }
- }
-}
-
-
-local $base="lilypond/";
-
-local @examples=("twinkle-pop",
- "wtk1-fugue2",
- "standchen-16",
- "standchen-20",
- "wtk1-prelude1",
- "toccata-fuga-E",
- "scsii-menuetto",
- "cadenza",
- "gallina",
- "twinkle",
- "collisions",
- "font",
- "font20",
- #"scales",
- "rhythm",
- "multi" );
-
-
-sub gen_html
-{
- print "generating HTML\n";
- my_system "$MAKE -kC .. html";
-}
-
-sub gen_examples
-{
- print "generating examples: \n";
- my @todo=();
- foreach $a (@examples) {
- push @todo, "out/$a.ps.gz", "out/$a.gif", "out/$a.ly.txt";
- }
-
- my_system ("$MAKE -C .. " . join(' ', @todo));
-}
-
-my @texstuff = ("mudela-man", "mudela-course");
-
-sub gen_manuals
-{
- print "generating TeX doco list\n";
- open HTMLLIST, ">tex_manuals.html";
- print HTMLLIST "<HTML><TITLE>PostScript Manuals</TITLE>\n" ;
- print HTMLLIST "<BODY><h1>LilyPond manuals (in PostScript)</h1>";
- print HTMLLIST "<ul>\n";
- my @todo=();
- foreach $a (@texstuff) {
- push @todo , "out/$a.ps.gz";
- print HTMLLIST "<li><a href=$a.ps.gz>$a.ps.gz</a>";
- }
- print HTMLLIST "</ul>";
-
- print HTMLLIST "</BODY></HTML>";
- close HTMLLIST;
-
- my_system( "$MAKE -C .. " . join(' ', @todo));
-}
-
-sub gen_list
-{
- print "generating HTML list\n";
- open HTMLLIST, ">example_output.html";
-
- print HTMLLIST "<html><body><TITLE>Rendered Examples</TITLE>\n
-These example files are taken from the LilyPond distribution.
-LilyPond currently only outputs TeX and MIDI. The pictures and
-PostScript files were generated using TeX, Ghostscript and some
-graphics tools. The papersize used for these examples is A4. The GIF
-files have been scaled to eliminate aliasing.";
-
-
-
- foreach $a (@examples)
- {
- $name=$a; print HTMLLIST "<h1>example file: $name</h1>\n<XMP>\n";
-
- open IF, "$depth/input/$a.ly";
- input_record_separator IF "\n}";
-
- $desc = <IF>;
- close IF;
-
- print HTMLLIST "$desc\n</XMP>";
-
- $inputf="$a.ly.txt";
- $giff="$a.gif";
- $jpegf="$a.jpeg";
- $pngf = "$a.png";
- $psf="$a.ps.gz";
- $midif="$a.midi";
-
- print HTMLLIST "<ul>";
-
- print HTMLLIST "<li><a href=$inputf> The input file</a>"
- if ( -f $inputf );
-
- print HTMLLIST "<li><a href=$giff>The output (picture)</a>"
- if ( -f $giff );
-
- print HTMLLIST "<li><a href=$psf>The output (PS)</a>\n"
- if ( -f $psf );
-
- print HTMLLIST "<li><a href=$midif>The output (MIDI)</a>\n"
- if ( -f $midif );
- print HTMLLIST "</ul>";
- }
- print HTMLLIST "</BODY></HTML>";
- close HTMLLIST;
-}
-
-sub edit_html
-{
- print STDERR "adding footer\n";
-
- OUTER:
- foreach $a (<*.html>) {
- open H, "$a";
- my $sep="</BODY>";
- input_record_separator H $sep;
- my $file="";
-
- while (<H>) {
- if (/$mw_id/) {
- close H;
- next OUTER;
- }
- $file .= $_;
-
- }
- close H;
-
- my $subst = $footstr;
- $subst .= $back if (! $a =~ /index.html/ );
- $file =~ s/$sep/$subst$sep/g ;
- $file =~ s/\.gif/\.$image/g;
- $file =~ s!<TITLE>(.*)</TITLE>!<TITLE>LilyPond WWW: $1</TITLE>!g;
- open H, ">$a";
- print H $mw_id;
-
- print H $file;
- close H;
- }
-}
-
-sub copy_txt_file
-{
- my ($f) = @_;
- my $d = $f;
- $d =~ s!^.*\/!!;
- if (! $f =~ /.txt$/) {
- $d = "$f.txt";
- }
- print, $d;
-}
-
-sub top_of_NEWS
-{
- open NEWS, "NEWS.txt";
- input_record_separator NEWS "****";
- $desc = <NEWS>;
- chop ($desc);
- close NEWS;
-
- return $desc;
-}
-
-sub edit_index
-{
- $ton = top_of_NEWS();
- $ton = "\n<XMP>\n$ton\n</XMP>\n";
- open INDEX, "index.html";
- input_record_separator NEWS undef;
- $index = <INDEX>;
- close INDEX;
- $index =~ s/top_of_NEWS/$ton/;
- open INDEX, ">index.html";
- print INDEX $index;
- close INDEX;
-}
-
-
-sub copy_files
-{
- print "copying files\n";
- my_system "ln -s $depth/out ./docxx" if ( ! -x "docxx" ) ;
- my_system "cp $depth/TODO ./TODO.txt",
- "cp $depth/ANNOUNCE ./ANNOUNCE.txt",
- "cp $depth/NEWS ./NEWS.txt",
- "cp $depth/DEDICATION ./DEDICATION.txt";
- my_system "make -C .. gifs";
-
-}
-
-sub set_images
-{
- for $a (<*.gif>) {
- if ($opt_png) {
- my_system "gif2png -d $a";
- }
- if ($opt_jpeg) {
- my $b=$a;
- $b =~ s/.gif/.jpeg/;
- my_system "cjpeg -o $b $a";
- }
- }
-}
-
-sub docxx_update
-{
- open BANNER, ">/tmp/lilybanner.html";
- my $ban = $footstr;
- $ban =~ s!index.html!../index.html!g;
- print BANNER $ban;
- close BANNER;
- my_system("BANNEROPT=\"-B /tmp/lilybanner.html\" $depth/bin/out/make-docxx");
- unlink "/tmp/lilybanner.html";
-}
-
-sub do_tar
-{
- print "tarring.\n";
- $files = join (' ', < *.html *.$image *.ps.gz *.txt *.midi docxx/*>);
- my_system
- "-$TAR zvhcf website.tar.gz $files;",
-# "gzip -f9 website.tar;";
-}
-
-sub identify
-{
- print STDERR "This is " . $id_str . "\n";
-
-}
-sub clean_tmp
-{
- @a = </tmp/gs*>;
- unlink @a;
-}
-
-sub main
-{
- identify;
- GetOptions("jpeg", "gif", "png", "noexamples");
-
- local $image="gif" ;
- $image = "png" if ($opt_png);
- $image = "jpeg" if ($opt_jpeg);
-
- $depth = "../";
- my $cwd;
- chomp($cwd = `pwd`);
- die "need to be in directory Documentation\n" if ( ! ($cwd =~ /Documentation$/));
- get_version;
- print "lily v. " . $lily_version . "\n";
- set_html_footer;
-
-
- $depth = "../../";
-
- chdir ("out");
- $ENV{"TEXINPUTS"} .= ":$depth/input/:";
- $ENV{"LILYINCLUDE"} = "$depth/input/";
- $ENV{"LILYTOP"} = $depth;
-
- gen_html;
- copy_files;
-
- if (! $opt_noexamples) {
- gen_examples;
- gen_list;
- gen_manuals;
- }
- set_images;
-
- edit_html;
- edit_index;
- docxx_update;
- do_tar;
- clean_tmp;
-}
-
-main;
+++ /dev/null
-lilypond for DEBIAN
--------------------
-
-Starting with version 0.1.12, LilyPond comes with some new MF fonts.
-These fonts are not currently listed in /usr/lib/texmf/fontname/special.map
-(from the teTeX package), therefore the fonts will be created in a
-non-standard directory somewhere under /var/spool/texmf. The problem is
-usually only aesthetic. TeTeX can create and find the *.tfm and *.pk files
-without any problems.
-
-However, if you experience any font problems (such as the note heads
-not showing up, characters in the wrong places, error messages from
-TeX), especially after upgrading to a new version of LilyPond, you may
-need to delete the relevant *.tfm and *.pk files under the directory
-/var/spool/texmf. You may also file a bug report about this if you
-like.
-
-LilyPond is still in active development, and many things may still change.
-When it is stablized in the future, these new fonts will probably be
-added into the standard special.map file.
-
-Anthony Fok <foka@debian.org>, Thu, 23 Oct 1997 16:59:32 -0600
+++ /dev/null
-%
-% autometric.mf -- administrative MF routines
-%
-% source file of the Feta (Font-En-Tja) pretty-but-neat music font
-%
-% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-% Jan Nieuwenhuizen <jan@digicash.com>
-%
-% these macros help create ascii logging output
-% to automate generation of lily tables and tex backend
-% The output should be parsed by the mf-to-table script
-
-% font or database?
-def fet_beginfont(expr name,size) =
- font_identifier:=name&decimal size;
- font_size size;
- message "@{font@:"&name&"@:"&decimal size&"@}";
- message "";
- enddef;
-
-def fet_endfont(expr name) =
- message "@{tnof@:"&name&"@}";
- message "";
- enddef;
-
-% group or table?
-def fet_begingroup(expr name) =
- message "@{group@:"&name&"@}";
- message "";
- begingroup
-enddef;
-
-def fet_endgroup(expr name) =
- endgroup;
- message "@{puorg@:"&name&"@}";
- message "";
-enddef;
-
-def autometric_output_char=
- message "@{char@:"&charnamestr&"@:"&decimal charcode&"@:"&decimal charbp&"@:"&decimal charwd&"@:"&decimal chardp&"@:"&decimal charht&"@:"&idstr&"@:"&texstr&"@}";
-enddef;
-
-def hround_pixels(expr sharped) = hround(sharped * hppp) enddef;
-def vround_pixels(expr sharped) = vround(sharped * vppp) enddef;
-
-
-
-def tand(expr alpha) =
- (sind alpha/cosd alpha)
- enddef;
-
-%breapth, width, depth, height
-% breapth x-depth
-def set_char_box(expr b_sharp, w_sharp, d_sharp,h_sharp) =
- save scharbp, scharht, scharwd, schardp;
-
- % some paranoia if someone calls set_char_box(charwd, charbp, .. )
- scharbp := b_sharp;
- scharht := h_sharp;
- schardp := d_sharp;
- scharwd := w_sharp;
-
- charbp := scharbp;
- charht := scharht;
- chardp := schardp;
- charwd := scharwd;
-
- w := hround(w_sharp *hppp);
- b := hround(b_sharp *hppp);
- h := hround(h_sharp *vppp);
- d := hround(d_sharp *vppp);
-enddef;
-
-def no_dimen_beginchar(expr c) =
- begingroup
- charcode := if known c: byte c else: 0; fi;
- charic := 0;
- clearxy;
- clearit;
- clearpen;
- scantokens extra_beginchar;
-enddef;
-
-code:=-1;
-
-% starts just as plain mf's beginchar:
-% charcode,
-% and then adds:
-% charname see below
-% id index in lily's table
-% texstr name of tex macro in lily's table and tex backend
-
-% the dims are uninitialised; you should use set_char_box manually.
-def fet_beginchar(expr name, id_lit, texstr_lit) =
- save texstr, idstr, charnamestr;
- save charbp;
- save w,b,h,d;
- string texstr, idstr, charnamestr;
- texstr := texstr_lit;
- charnamestr := name;
- idstr := id_lit;
-
- no_dimen_beginchar(incr code) name;
- enddef;
-
-
-def makebox_with_breapth(text r) =
- for y = -d, 0, h: r((-b, y),(w,y)); endfor
- for x = -b, 0, w: r((x, -d),(x, h)); endfor
-enddef;
-
-%
-% override plain endchar. We want a different box.
-%
-def breapth_endchar =
- scantokens extra_endchar;
- if proofing > 0: makebox_with_breapth(proofrule); fi
- chardx := 10*(w + b);
- shipit;
- endgroup
-enddef;
-
-def fet_endchar=
- autometric_output_char;
- breapth_endchar;
- enddef;
+++ /dev/null
-% ital-f.mf
-% from itall.mf
-%
-% Computer Modern Italic lower case:
-% This lowercase italic alphabet was prepared by D. E. Knuth in December, 1979,
-% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
-% The programs were revised for the new \MF\ conventions in 1985.
-
-% Character codes \0141 through \0172 are generated.
-% not
-
-% cmchar "Italic letter f";
-% beginchar("f",max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
-\"Dynamic letter f";
-beginchar(incr num,max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
-italcorr asc_height#*slant+.75u#;
-adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
-numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
-pos0(flare,0); pos1(hair,0); pos2(vair,90);
-pos3(.5[hair,stem],180); pos4(stem,theta+90);
-pos5(stem,theta-90); pos6(.5[hair,stem],0);
-pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
-rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
-y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
-% y4=.25[x_height,h]; y5=.5[-d,y4];
-y4=x_height-.5bar; y5=y4;
-z4=whatever[z88,z89]; z5=whatever[z88,z89];
-x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
-bulb(2,1,0); bulb(7,8,9); % bulbs
-filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
-filldraw z4r--z5l--z5r--z4l--cycle; % stem
-filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
-pickup crisp.nib; pos20(bar,90); pos21(bar,90);
-top y20r=top y21r=x_height;
-%lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
-lft x20=lft x4r-.5stem-xbar; rt x21=rt x4l+.5stem+1.5xbar;
-filldraw stroke z20e--z21e; % crossbar
-math_fit(desc_depth#*slant+u#,x_height#*slant);
-penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar;
+++ /dev/null
-% ital-m.mf
-% from itall.mf
-%
-% Computer Modern Italic lower case:
-% This lowercase italic alphabet was prepared by D. E. Knuth in December, 1979,
-% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
-% The programs were revised for the new \MF\ conventions in 1985.
-
-% Character codes \0141 through \0172 are generated.
-% not
-
-% cmchar "Italic letter m";
-% beginchar("m",15u#,x_height#,0);
-\"Dynamic letter m";
-% beginchar(incr num,15u#,x_height#,0);
-beginchar(incr num,12u#,x_height#,0);
-italcorr 1/3x_height#*slant+.5hair#+.5u#;
-adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
-numeric shaved_stem; shaved_stem=mfudged.stem;
-save stem; stem=shaved_stem;
-pos2(stem,0); x1=x2;
-if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
-else: x0=0; lft x2l=hround(2.5u-.5stem);
- hook_in(0,a,1); fi % opening hook
-y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
-x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
-pos5(stem,0); y5=y2; x5=x4;
-filldraw circ_stroke z5e--z4e; % middle stem
-x7+.5stem=hround(w-2.5u+.5stem);
-x8=x7-.25u; ital_arch(5,6,7); % right arch
-if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
- pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
-else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
-filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
-math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
-penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+++ /dev/null
-% ital-p.mf
-% from itall.mf
-%
-% Computer Modern Italic lower case:
-% This lowercase italic alphabet was prepared by D. E. Knuth in December, 1979,
-% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
-% The programs were revised for the new \MF\ conventions in 1985.
-
-% Character codes \0141 through \0172 are generated.
-% not
-
-% cmchar "Italic letter p";
-% beginchar("p",9u#,x_height#,desc_depth#);
-\"Dynamic letter p";
-beginchar(incr num,9u#,x_height#,desc_depth#);
-italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
-adjust_fit(0,0); pickup fine.nib;
-x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
-pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
-x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
-bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
-filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
- & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
-pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
-z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
-dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
-math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
- 2u#-.5stem#-desc_depth#*slant),ic#);
-penlabels(0,1,2,3,4,5,6,7); endchar;
+++ /dev/null
-% ital-r.mf
-% from itall.mf
-%
-% Computer Modern Italic lower case:
-% This lowercase italic alphabet was prepared by D. E. Knuth in December, 1979,
-% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
-% The programs were revised for the new \MF\ conventions in 1985.
-
-% Character codes \0141 through \0172 are generated.
-% not
-
-% cmchar "Italic letter r";
-% beginchar("r",5.5u#+max(1.75u#,flare#),x_height#,0);
-\"Dynamic letter r";
-beginchar(incr num,5.5u#+max(1.75u#,flare#),x_height#,0);
-italcorr x_height#*slant;
-adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
-x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
-hook_in(0,1,2); % opening hook
-filldraw circ_stroke z3e--z2e; % left stem
-pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
-x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=h+oo;
-filldraw stroke z3'e{up}...z4e{right}; % link
-y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
-math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
-penlabels(0,1,2,3,4,5,6); endchar;
+++ /dev/null
-% ital-s.mf
-% from itall.mf
-%
-% Computer Modern Italic lower case:
-% This lowercase italic alphabet was prepared by D. E. Knuth in December, 1979,
-% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
-% The programs were revised for the new \MF\ conventions in 1985.
-
-% Character codes \0141 through \0172 are generated.
-% not
-
-% cmchar "Italic letter s";
-% beginchar("s",5.25u#+max(1.75u#,flare#),x_height#,0);
-\"Dynamic letter s";
-beginchar(incr num,5.25u#+max(1.75u#,flare#),x_height#,0);
-italcorr x_height#*slant-.5u#;
-adjust_fit(0,0); pickup fine.nib;
-numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
-pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
-x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
-y0-.5ess=y7l+.55(y2r-y7l-ess);
-lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
-x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
-ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
-ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
-interim superness:=more_super;
-filldraw stroke super_arc.e(2,3) & z3e{down}
- ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
-pos1(hair,0); pos10(hround .75[hair,flare],0);
-pos2'(vair,90); z2'=z2;
-pos8(hair,-180); pos9(flare,-180);
-rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
-bulb(2',1,10); bulb(7,8,9); % bulbs
-math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+++ /dev/null
-% ital-z.mf
-% from itall.mf
-%
-% Computer Modern Italic lower case:
-% This lowercase italic alphabet was prepared by D. E. Knuth in December, 1979,
-% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
-% The programs were revised for the new \MF\ conventions in 1985.
-
-% Character codes \0141 through \0172 are generated.
-%not
-
-% cmchar "Italic letter z";
-% beginchar("z",5.5u#+max(1.5u#,stem#),x_height#,0);
-\"Dynamic letter z";
-beginchar(incr num,5.5u#+max(1.5u#,stem#),x_height#,0);
-italcorr x_height#*slant+.5hair#;
-adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
-pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
-lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
-top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
-pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
-x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
-bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
-pair p; p=(z4-z5) yscaled 2;
-filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
-filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
-filldraw stroke z5e{p}..{p}z4e; % diagonal
-math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
-penlabels(1,2,3,4,5,6,7,8); endchar;
+++ /dev/null
-% Black font for Imagen with proofsheet resolution 75 pixels per inch
-
-% if mode<>imagen: errmessage "This file is for imagen only"; fi
-
-font_identifier "BLACKIMAGEN";
-picture pix_picture; pix_wd := pix_ht := 8;
-pix_picture := nullpicture;
-addto pix_picture contour (fullcircle scaled (8*1.6) shifted (4,4));
-
-%pix_picture := unitpixel scaled 4;
-% More-or-less general gray font generator
-% See Appendix H of The METAFONTbook for how to use it
-
-forsuffixes m = mag,rep:
- if unknown m: m := 1;
- elseif (m<1) or (m<>floor m):
- errmessage "Sorry, " & str m & " must be a positive integer";
- m := 1; fi endfor
-
-mg := mag; mag := 1; mode_setup;
-if mg>1: hppp := hppp*mg; vppp := vppp*mg;
- extra_endchar:=
- "if charcode>0:currentpicture:=currentpicture scaled mg;fi"
- & extra_endchar; fi;
-
-if picture pix_picture: rep := 1;
- cull pix_picture keeping (1,infinity);
-else: for z=(0,2),(1,0),(2,3),(3,1):
- fill unitsquare shifted z; endfor
- if not boolean lightweight: addto currentpicture also
- currentpicture rotated 90 xscaled -1; fi
- if unknown scale: scale := max(1,round(pixels_per_inch/300)); fi
- pix_wd := pix_ht := 4scale;
- if rep>1: picture pix;
- currentpicture := currentpicture shifted-(1,1); pix := currentpicture;
- for r=1 upto rep-1: addto currentpicture also pix shifted(4r,0); endfor
- cullit; pix := currentpicture;
- for r=1 upto rep-1: addto currentpicture also pix shifted(0,4r); endfor
- unfill unitsquare xscaled 4rep yscaled 2 shifted-(1,1);
- unfill unitsquare yscaled 4rep xscaled 2 shifted-(1,1); cullit; fi
- picture pix_picture; pix_picture := currentpicture scaled scale;
- pix_wd := pix_ht := 4scale*rep; fi
-
-def # = *72.27/pixels_per_inch enddef;
-if unknown dotsize: dotsize := 2.5pix_wd/rep; fi
-
-beginchar(0,1.2dotsize#,1.2dotsize#,0);
-fill fullcircle scaled dotsize scaled mg; endchar;
-
-numeric a[]; newinternal b,k;
-def next_binary =
- k := 0; forever: if k>b: a[incr b] := 0; fi
- exitif a[k]=0; a[k] := 0; k := k+1; endfor
- a[k] := 1 enddef;
-def next_special_binary =
- if a[0]=1: for k=0 upto b: a[k] := 0; endfor a[incr b]
- else: k := 0; forever: exitif a[incr k]=1; endfor
- a[k-1] fi := 1 enddef;
-
-def make_char =
- clearit; next_binary;
- for k=0 upto b: if a[k]=1:
- addto currentpicture also pix_picture shifted(0,-k*pix_ht); fi endfor
- charcode := charcode+1; chardp := b*charht;
- scantokens extra_endchar; shipout currentpicture enddef;
-
-charwd := pix_wd#; charht := pix_ht#; chardx := pix_wd*mg;
-b := -1;
-
-if boolean large_pixels:
- for k=1 upto 7: make_char; charlist k:k+120; endfor
- charcode := 120; b := -1;
- addto pix_picture also pix_picture shifted (chardx,0);
- charwd := 2charwd; chardx := 2chardx;
- for k=1 upto 7: make_char; endfor
-else: for k=1 upto 63: make_char; endfor
- let next_binary = next_special_binary;
- for k=64 upto 120: make_char; endfor
- for k=121,122: charcode := k;
- addto currentpicture also currentpicture shifted (chardx,0);
- charwd := 2charwd; chardx := 2chardx;
- scantokens extra_endchar; shipout currentpicture; endfor
- charlist 120:121:122; fi
-
-font_coding_scheme "GFGRAY";
-font_size 8(pix_wd#);
-font_normal_space pix_wd#;
-font_x_height pix_ht#;
-font_quad pix_wd#;
-fontdimen 8: if known rulethickness: rulethickness
- else: pix_wd#/(2rep) fi;
-bye.