From e3830a2029a8ffc1e0c584c653d61cca505a13d6 Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 19:58:34 +0000 Subject: [PATCH] lilypond-0.1.17 --- Documentation/AUTHORS.pod | 5 +- VERSION | 2 +- bin/Makefile | 2 +- bin/clean-fonts | 5 ++ bin/mf-to-table.in | 127 ++++++++++++++++++++++++++++++++++++++ init/Makefile | 17 +++++ init/dyn10.ly | 4 ++ init/font-en-tja16.ly | 11 ++++ init/font-en-tja20.ly | 11 ++++ init/paper16.ly | 4 +- init/paper20.ly | 4 +- init/r20.ly | 7 +++ input/font.ly | 4 +- lily/VERSION | 2 +- lily/include/lookup.hh | 2 +- lily/notehead.cc | 2 +- make/Toplevel.make.in | 4 +- mf/Makefile | 27 ++++++++ mf/TODO | 1 - mf/autometric.mf | 25 +++++++- mf/bolletjes.mf | 68 ++++++++++++++++---- mf/dyn.tex | 2 + mf/dyn10.mf | 12 +++- mf/font-en-tja16.mf | 13 ++-- mf/font-en-tja20.mf | 8 ++- mf/ital-m.mf | 3 +- mf/ital-r.mf | 26 ++++++++ tex/dyndefs.tex | 7 ++- 28 files changed, 361 insertions(+), 44 deletions(-) create mode 100755 bin/clean-fonts create mode 100644 bin/mf-to-table.in create mode 100644 init/dyn10.ly create mode 100644 init/font-en-tja16.ly create mode 100644 init/font-en-tja20.ly create mode 100644 init/r20.ly create mode 100644 mf/ital-r.mf diff --git a/Documentation/AUTHORS.pod b/Documentation/AUTHORS.pod index 313befdca0..16f62c203f 100644 --- a/Documentation/AUTHORS.pod +++ b/Documentation/AUTHORS.pod @@ -24,7 +24,7 @@ lily/midi-*, mi2mu/*, parts flower/string*.cc, make/*.make, */Makefile parts of Documentation/mudela.pod, lib/*source-file*, lib/duration.cc, lib/source*, flower/*{list,cursor}*, lily/rest-collision*, lily/*abbreviation*, conflily, cygnus w32 stuff, lily/*perf*, some -input files +input files, mf/* and corresponding header files. @@ -68,4 +68,5 @@ Your name could be here! If you want to help, then take a look at the SMALLISH PROJECTS section of in the file F. Some do not involve coding C++ -[And of course, J.S.Bach, F.Schubert, T. Merula and W.A.Mozart] +[And of course we sincerely thank J.S.Bach, F.Schubert, T. Merula and +W.A.Mozart for their beautiful music] diff --git a/VERSION b/VERSION index 99ac08b1a1..fabc29c721 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ TOPLEVEL_MAJOR_VERSION = 0 TOPLEVEL_MINOR_VERSION = 1 -TOPLEVEL_PATCH_LEVEL = 16 +TOPLEVEL_PATCH_LEVEL = 17 # use to send patches, always empty for released version: TOPLEVEL_MY_PATCH_LEVEL = diff --git a/bin/Makefile b/bin/Makefile index bfee282e45..87c5cb3bcc 100644 --- a/bin/Makefile +++ b/bin/Makefile @@ -5,7 +5,7 @@ include $(depth)/make/Include.make # list of distribution files: SCRIPTS = clearlily cpgento make-patch lily.efence \ - make-version release conflily + make-version release conflily clean-fonts PERL_SCRIPTS_IN = $(wildcard *.in) PERL_SCRIPTS = $(addprefix $(outdir)/, $(PERL_SCRIPTS_IN:.in=)) EXTRA_DISTFILES = $(SCRIPTS) $(PERL_SCRIPTS_IN) diff --git a/bin/clean-fonts b/bin/clean-fonts new file mode 100755 index 0000000000..ae65586662 --- /dev/null +++ b/bin/clean-fonts @@ -0,0 +1,5 @@ +#!/bin/sh + +# remove possibly stale .pk/.tfm files + +rm `locate font-en-tja| egrep '.*pk$|.*tfm$'` diff --git a/bin/mf-to-table.in b/bin/mf-to-table.in new file mode 100644 index 0000000000..17a7c2f7a8 --- /dev/null +++ b/bin/mf-to-table.in @@ -0,0 +1,127 @@ +#!@PERL@ -w +# -*-perl-*- + +=head1 TODO + +rename me! + +Ugh . Perl sux. Anybody for Python? + +=cut + +$mf_to_table_version = 0.1; + +use Getopt::Long; + +sub last_conversion +{ + my @v = &versions; + return pop @v; +} +sub identify +{ + + print STDERR "This is mf-to-table " . $mf_to_table_version . "\n"; +} + +sub usage +{ + print STDERR "Usage: mf-to-table [options] LOG..\n" + . "Generate mozarella metrics table from preparated metafont log\n\n" + . "Options:\n" + . " -h, --help print this help\n" + . " -o, --output=FILE name output file\n" +} + +sub make_table +{ + my $line; + my $indent = 0; + while ($line = ) { + if ($line =~ /^@@/) { + $line =~ s/^@@(.*)@@/$1/; + chop ($line); + my @fields = split (/:/,$line); + my $label = $fields [0]; + my $name = $fields [1]; + print OUT "\t" x $indent; + if ($label eq "font") { + print OUT "% $name=\\symboltables {\n"; + $indent++; + } elsif ($label eq "group") { + print OUT "\"$name\" = \\table {\n"; + $indent++; + } elsif ($label eq "puorg") { + print OUT "}\n"; + $indent--; + } elsif ($label eq "tnof") { + print OUT "% } % $name\n"; + $indent--; + } elsif ($label eq "char") { + my $c = $fields [2]; + my $w = $fields [3]; + my $h = $fields [4]; + my $d = $fields [5]; + my $id = $fields [6]; + my $texstr = $fields [7]; + print OUT sprintf( "\"%s\"\t\"\\%s\"\t%.2f\\pt\t%.2f\\pt\t%.2f\\pt\t%.2f\\pt\n", $id, $texstr, 0, $w, $h, $d ); + } else { + print STDERR "mf-to-table: unknown label: \`$label\'\n"; + } + } + } +} + +sub set_files +{ + $infile = "-"; + $outfile = "-"; + $outfile = $opt_output if (defined($opt_output)); + + if ($ARGV [0]) { + $infile = $ARGV[0]; + } + if (( ! -f $infile) && (! $infile =~ /\\.log$/s ) ){ + $infile .= ".log"; + } + print STDERR "Input ", (($infile eq "-") ?"STDIN" : $infile), " .. \n"; +} + +sub do_one_arg +{ + set_files; + + die "can't open \`$infile\'" unless open IN,$infile ; + die "can't open \`$outfile\'" unless open OUT, ">$outfile"; + print OUT "% generated at " . localtime() . " from $infile\n"; + print OUT "% changes will be lost\n"; + + make_table; + + close IN; + close OUT; +} + +## "main" + +identify; + +#GetOptions ("help", "output=s", "from=i", "to=i", "minor=i", "edit", "show-rules"); +GetOptions ("help", "output=s"); + +if ($opt_help) { + usage(); + $opt_help = 0; # to extinguish typo check. + exit 0; +} + +local ($infile,$outfile); +my $processed_one=0; + +while (defined($ARGV[0])) { + do_one_arg; + shift @ARGV; + $processed_one = 1; +} +do_one_arg unless ($processed_one); + diff --git a/init/Makefile b/init/Makefile index fdab67ea61..a04eed6775 100644 --- a/init/Makefile +++ b/init/Makefile @@ -17,6 +17,23 @@ include ./$(depth)/make/Include.make INIFILES = $(wildcard *.ly) DISTFILES = Makefile $(INIFILES) +## we probably can make tex/*defs.tex and init/*.ly in one go... +## moved to mf/Makefile +FONT_FILES = $(wildcard $(depth)/mf/*[0-9].mf) +TABLES = $(patsubst $(depth)/mf/%.mf,%.ly,$(FONT_FILES)) +## +## all: $(TABLES) +## +## $(outdir)/%.log: $(depth)/mf/%.mf +## mf $< +## mv $(@F) $@ +## rm $(shell basename $< .mf).*gf +## +## %.ly: $(outdir)/%.log +## mf-to-table -o $@ $< +## +localclean: + rm -f $(TABLES) localinstall: $(INSTALL) -d $(datadir)/lilypond/init diff --git a/init/dyn10.ly b/init/dyn10.ly new file mode 100644 index 0000000000..6819259da4 --- /dev/null +++ b/init/dyn10.ly @@ -0,0 +1,4 @@ +% generated at Mon Sep 22 21:28:05 1997 from out/dyn10.log +% changes will be lost +% dyn=\symboltables { + % } % dyn diff --git a/init/font-en-tja16.ly b/init/font-en-tja16.ly new file mode 100644 index 0000000000..906985ce02 --- /dev/null +++ b/init/font-en-tja16.ly @@ -0,0 +1,11 @@ +% generated at Mon Sep 22 22:26:51 1997 from out/font-en-tja16.log +% changes will be lost +% font-en-tja=\symboltables { + "balls" = \table { + "0" "\wholeball" 0.00\pt 8.64\pt 4.80\pt 0.00\pt + "1" "\halfball" 0.00\pt 5.97\pt 4.80\pt 0.00\pt + "2" "\quartball" 0.00\pt 5.88\pt 4.80\pt 0.00\pt + "-1" "\breveball" 0.00\pt 9.60\pt 4.80\pt 0.00\pt + "-2" "\longaball" 0.00\pt 9.60\pt 4.80\pt 0.00\pt + } + % } % font-en-tja diff --git a/init/font-en-tja20.ly b/init/font-en-tja20.ly new file mode 100644 index 0000000000..c5e308b694 --- /dev/null +++ b/init/font-en-tja20.ly @@ -0,0 +1,11 @@ +% generated at Mon Sep 22 22:28:11 1997 from out/font-en-tja20.log +% changes will be lost +% font-en-tja=\symboltables { + "balls" = \table { + "0" "\wholeball" 0.00\pt 10.44\pt 5.80\pt 0.00\pt + "1" "\halfball" 0.00\pt 7.21\pt 5.80\pt 0.00\pt + "2" "\quartball" 0.00\pt 7.10\pt 5.80\pt 0.00\pt + "-1" "\breveball" 0.00\pt 11.60\pt 5.80\pt 0.00\pt + "-2" "\longaball" 0.00\pt 11.60\pt 5.80\pt 0.00\pt + } + % } % font-en-tja diff --git a/init/paper16.ly b/init/paper16.ly index 17225ca0eb..854324b424 100644 --- a/init/paper16.ly +++ b/init/paper16.ly @@ -16,8 +16,8 @@ paper_sixteen = \paper { rule_thickness = 0.4\pt; bar_size = 16.0 \pt; interline = 4.\pt; - notewidth = 5.45\pt; % ugh, see table16 for sizes - wholewidth = 8.0\pt; + notewidth = 5.93\pt; % ugh, see table16 for sizes + wholewidth = 8.64\pt; unitspace = 22.\pt; %geometric = 1.414; basicspace = 4.\pt; diff --git a/init/paper20.ly b/init/paper20.ly index 7f21f0aa17..fdfee8404b 100644 --- a/init/paper20.ly +++ b/init/paper20.ly @@ -7,8 +7,8 @@ paper_twenty = \paper { rule_thickness = 0.4\pt; bar_size = 20.0 \pt; interline = 5.\pt; - notewidth = 6.7\pt; % ugh see table20 for sizes - wholewidth = 10.0\pt; + notewidth = 7.15\pt; % ugh see table20 for sizes + wholewidth = 10.44\pt; unitspace = 22.\pt; % basicspace = 4.\pt; % geometric = 1.414; diff --git a/init/r20.ly b/init/r20.ly new file mode 100644 index 0000000000..e935658170 --- /dev/null +++ b/init/r20.ly @@ -0,0 +1,7 @@ +% generated at Mon Sep 22 22:23:19 1997 from out/r20.log +% changes will be lost +% font-en-tja=\symboltables { + "rests" = \table { + "-2" "\eighthrest" 0.00\pt 5.40\pt 17.55\pt 0.00\pt + } + % } % font-en-tja diff --git a/input/font.ly b/input/font.ly index 955c8d9b8f..4e3a499da1 100644 --- a/input/font.ly +++ b/input/font.ly @@ -10,11 +10,13 @@ TestedFeatures font-en-tja \melodic{ \octave c'; \meter 4/4; + % \longa + % \breve % \brevis c1 g c' a' c2 g c' a' c4 g c' a' a\ppp a\pp a\p a\mp a\mf a\f a\ff a\fff - %a\fp a\sf a\sfz + a\fp a\sf a\sfz % a\fz a\rf } \paper{ \paper_twenty diff --git a/lily/VERSION b/lily/VERSION index bb30177899..c905573ecc 100644 --- a/lily/VERSION +++ b/lily/VERSION @@ -1,6 +1,6 @@ MAJOR_VERSION = 0 MINOR_VERSION = 1 -PATCH_LEVEL = 15 +PATCH_LEVEL = 17 # use to send patches, always empty for released version: # include separator: ".postfix", "-pl" makes rpm barf diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index f4696f9faa..96cd46e6b7 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -36,7 +36,7 @@ struct Lookup { pos == -3: below staff */ - Atom streepjes (int pos) const; + Atom streepjes (int type, int pos) const; Atom vbrace (Real &dy) const; Atom meter (Array) const; diff --git a/lily/notehead.cc b/lily/notehead.cc index 4d65dff62e..97d69ec1ed 100644 --- a/lily/notehead.cc +++ b/lily/notehead.cc @@ -74,7 +74,7 @@ Note_head::brew_molecule_p() const ? -((-position_i_)/2) : (position_i_-staff_size_i_)/2; - Atom str = p->lookup_l()->streepjes (s); + Atom str = p->lookup_l()->streepjes (balltype_i_, s); Molecule sm; sm.add (Atom (str)); if (position_i_ % 2) diff --git a/make/Toplevel.make.in b/make/Toplevel.make.in index e472fde411..5de434c161 100644 --- a/make/Toplevel.make.in +++ b/make/Toplevel.make.in @@ -27,8 +27,8 @@ include ./$(depth)/make/Variables.make # descent order into subdirectories: # -SUBDIRS = flower lib lily mf mi2mu \ - Documentation bin init input tex make +SUBDIRS = bin flower lib lily mf mi2mu \ + Documentation init input tex make # # list of distribution files: diff --git a/mf/Makefile b/mf/Makefile index f3523f04c1..556d777dd7 100644 --- a/mf/Makefile +++ b/mf/Makefile @@ -15,6 +15,24 @@ MFFILES = $(wildcard *.mf) EXTRA_DISTFILES = $(MFFILES) $(TEXFILES) TODO # +FONT_FILES = $(wildcard *[0-9].mf) +tableout = $(depth)/init +TABLES = $(addprefix $(tableout)/, $(FONT_FILES:.mf=.ly)) +# + +all: $(TABLES) + +# localclean: +# rm -f $(TABLES) + +$(outdir)/%.log: %.mf + mf $< + mv $(@F) $@ + rm $(shell basename $< .mf).*gf + +$(tableout)/%.ly: $(outdir)/%.log + mf-to-table -o $@ $< + localinstall: $(INSTALL) -d $(MFDIR)/lilypond $(INSTALL) -m 644 $(MFFILES) $(MFDIR)/lilypond/ @@ -22,3 +40,12 @@ localinstall: localuninstall: for i in $(MFFILES) ; do rm -f $(MFDIR)/lilypond/$$i; done -rmdir $(MFDIR)/lilypond/ + +# dependencies: +# +$(tableout)/dyn10.ly: autometric.mf ital-f.mf ital-m.mf ital-p.mf ital-r.mf ital-s.mf ital-z.mf dyn10.mf +$(tableout)/font-en-tja16.ly: autometric.mf bolletjes.mf font-en-tja16.mf +$(tableout)/font-en-tja20.ly: autometric.mf bolletjes.mf font-en-tja20.mf +# + + diff --git a/mf/TODO b/mf/TODO index 53d83a7a87..ac3f4a796a 100644 --- a/mf/TODO +++ b/mf/TODO @@ -1,5 +1,4 @@ - - add r to dynfont - move to OpusTeX fonts - make own font-en-tja{10,11,13,16,20} files - opustex/lilypond fonts from the same generic driver files diff --git a/mf/autometric.mf b/mf/autometric.mf index ae9a8edc85..6d87094155 100644 --- a/mf/autometric.mf +++ b/mf/autometric.mf @@ -1,13 +1,32 @@ -% metric.mf +% autometric.mf % part of LilyPond's pretty-but-neat music font +% 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 ""; + enddef; + +def fet_endgroup(expr name) = + message "@@puorg:"&name&"@@"; + message ""; + enddef; -def fet_beginchar(expr code,w,h,d,name) = - message "@@char:"&name&":"&decimal code&":"&decimal w&":"&decimal h&":"&decimal d&"@@"; +def fet_beginchar(expr code,w,h,d,name,id,texstr) = + message "@@char:"&name&":"&decimal code&":"&decimal w&":"&decimal h&":"&decimal d&":"&id&":"&texstr&"@@"; beginchar(code,w,h,d) name; enddef; diff --git a/mf/bolletjes.mf b/mf/bolletjes.mf index 849c9f9b6f..9d7052d0c2 100644 --- a/mf/bolletjes.mf +++ b/mf/bolletjes.mf @@ -1,9 +1,12 @@ % bolletjes.mf % part of LilyPond's pretty-but-neat music font % third try at bolletjes -% most beautiful bolletjes are not circular, and not even symmetric. +% most beautiful bolletjes are pronounced, not circular, +% and not even symmetric. -interline#:=staffsize#/(stafflines-1)+stafflinethickness#; +% interline#:=staffsize#/(stafflines-1)+stafflinethickness#; +% even more pronounced (almost overdone), just like the original +interline#:=staffsize#/(stafflines-1)+2stafflinethickness#; def test_grid = if test>1: @@ -31,7 +34,7 @@ def begin_notehead = save b_h,a_w; enddef; -def end_notehead(expr code,interline,name) = +def end_notehead(expr code,interline,name,id,texstr) = save a,b,h,w,ai,bi; h#=interline; 2b#=h#*b_h; @@ -42,7 +45,7 @@ def end_notehead(expr code,interline,name) = define_pixels(a,b); define_pixels(w,h); define_pixels(ai,bi); - fet_beginchar(code,w#,h#,0,name); + fet_beginchar(code,w#,h#,0,name,id,texstr); path black,white; black=distorted_ellipse(a,b,a*err_y_a,0,super); white=distorted_ellipse(ai,bi,ai*err_y_ai,bi*err_x_bi,superi); @@ -65,6 +68,8 @@ fi endgroup; enddef; +% fet_begingroup("noteheads"); +fet_begingroup("balls"); % whole note % Wanske, p.38 % begin_notehead(incr code,interline#,"Whole notehead"); @@ -83,13 +88,13 @@ begin_notehead; superi:=0.69; b_h:=1; %no rotate-> no height correction a_w:=1; % no rotate-> no width correction - end_notehead(incr code,interline#,"Whole notehead"); + end_notehead(incr code,interline#,"Whole notehead","0","wholeball"); % half note % Wanske, p.39 begin_notehead; - a_b:=1.49; % after text - % a_b:=1.50; % after drawing + % a_b:=1.49; % after text + a_b:=1.50; % after drawing err_y_a:=0.157; alpha:=34; super:=0.66; @@ -101,13 +106,13 @@ begin_notehead; superi:=0.80; b_h:=0.935; a_w:=1.12; - end_notehead(incr code,interline#,"Half notehead"); + end_notehead(incr code,interline#,"Half notehead","1","halfball"); % quarter note % Wanske p.38 begin_notehead; - a_b:=1.57; % after text - % a_b:=1.54; % after drawing + % a_b:=1.57; % after text + a_b:=1.54; % after drawing err_y_a:=0.044; alpha:=32; super:=0.707; @@ -119,7 +124,46 @@ begin_notehead; superi:=0.707; b_h:=0.85; a_w:=1.09; - end_notehead(incr code,interline#,"Quarter notehead"); + end_notehead(incr code,interline#,"Quarter notehead","2","quartball"); -end. +% from MO*gen.mf +lthick:=.4pt; +pen line_pen; +line_pen:= pencircle scaled lthick; + +picture save_pic; +def callpic = currentpicture:= save_pic enddef; +def savepic = save_pic:= currentpicture enddef; + +def add_mirror (expr pone, ptwo) = + addto currentpicture also currentpicture + reflectedabout (round(pone), round(ptwo)) +enddef; + +def fill_square (expr xwidth, ywidth, zshift) = + fill unitsquare xscaled xwidth yscaled ywidth shifted zshift +enddef; + +% ugh +nhh#:=interline#; +nhw#:=6/5interline#; +define_pixels(nhh,nhw); + +fet_beginchar(incr code,2interline#,interline#,0,"Brevis notehead","-1","breveball"); + fill_square (5/4nhw, .25nhh, (0,.25nhh)); + add_mirror (origin, right); + x1=x2=0; x3=x4=5/4nhw; y1=-y2=y3=-y4=.7nhh; + pickup line_pen; + draw z1--z2; draw z3--z4; + savepic; + endchar; + +fet_beginchar(incr code,2interline#,interline#,0,"Longa notehead","-2","longaball"); + callpic; + pickup line_pen; + draw (5/4nhw,-.7nhh)--(5/4nhw,-1.7nhh); + endchar; + +% fet_endgroup("noteheads"); +fet_endgroup("balls"); diff --git a/mf/dyn.tex b/mf/dyn.tex index 10b1d534f0..65538bcc47 100644 --- a/mf/dyn.tex +++ b/mf/dyn.tex @@ -34,5 +34,7 @@ \hbox{\dynfp} \hbox{\dynsf} \hbox{\dynsfz} +\hbox{\dynfz} +\hbox{\dynrf} \bye diff --git a/mf/dyn10.mf b/mf/dyn10.mf index 64ea7c7af2..2eb10e628c 100644 --- a/mf/dyn10.mf +++ b/mf/dyn10.mf @@ -112,6 +112,9 @@ flare#:=52/36pt#; % diameter of bulbs or breadth of terminals mode_setup; font_setup; +input autometric; +fet_beginfont("dyn", 10); + num=-1; input ital-f; @@ -128,8 +131,8 @@ font_setup; input ital-p; slant:=.28; % tilt ratio $(\Delta x/\Delta y)$ -stem#:=30/36pt#; % lowercase stem breadth -ess#:=28/36pt#; % breadth in middle of lowercase s +stem#:=26/36pt#; % lowercase stem breadth +ess#:=24/36pt#; % breadth in middle of lowercase s crisp#:=13/36pt#; % diameter of serif corners tiny#:=13/36pt#; % diameter of rounded corners @@ -145,8 +148,11 @@ flare#:=42/36pt#; % diameter of bulbs or breadth of terminals font_setup; input ital-m; +input ital-r; input ital-s; input ital-z; font_slant slant; font_x_height x_height#; -bye. + +fet_endfont("dyn"); +end. diff --git a/mf/font-en-tja16.mf b/mf/font-en-tja16.mf index 9531e570e0..aa75cc4d16 100644 --- a/mf/font-en-tja16.mf +++ b/mf/font-en-tja16.mf @@ -1,8 +1,13 @@ % font-en-tja16.mf % part of LilyPond's pretty-but-neat music font -mode_setup; +% font_identifier:="font-en-tja16"; +% font_size 16pt#; +input autometric; +fet_beginfont("font-en-tja", 16); + +mode_setup; test:=0; @@ -11,11 +16,9 @@ stafflines:=5; stafflinethickness#:=0.4pt#; code:=-1; -input autometric; -% fet_beginfont; -fet_beginfont("font-en-tja", 16); - input bolletjes; +fet_endfont("font-en-tja"); + end. diff --git a/mf/font-en-tja20.mf b/mf/font-en-tja20.mf index 79c33835db..f7dcf17232 100644 --- a/mf/font-en-tja20.mf +++ b/mf/font-en-tja20.mf @@ -3,6 +3,9 @@ mode_setup; +input autometric; +fet_beginfont("font-en-tja", 20); + test:=0; staffsize#:=20pt#; @@ -11,10 +14,9 @@ stafflines:=5; stafflinethickness#:=0.4pt#; code:=-1; -input autometric; -fet_beginfont("font-en-tja", 20); - input bolletjes; +fet_endfont("font-en-tja"); + end. diff --git a/mf/ital-m.mf b/mf/ital-m.mf index c3d8563683..d132ad31c1 100644 --- a/mf/ital-m.mf +++ b/mf/ital-m.mf @@ -12,7 +12,8 @@ % cmchar "Italic letter m"; % beginchar("m",15u#,x_height#,0); \"Dynamic letter m"; -beginchar(incr num,15u#,x_height#,0); +% beginchar(incr num,15u#,x_height#,0); +beginchar(incr num,10u#,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; diff --git a/mf/ital-r.mf b/mf/ital-r.mf new file mode 100644 index 0000000000..607774e2be --- /dev/null +++ b/mf/ital-r.mf @@ -0,0 +1,26 @@ +% 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; diff --git a/tex/dyndefs.tex b/tex/dyndefs.tex index b31a2303e9..790c19cda1 100644 --- a/tex/dyndefs.tex +++ b/tex/dyndefs.tex @@ -7,8 +7,9 @@ \def\dynnf{\dynfont\char1} \def\dynp{\dynfont\char2} \def\dynm{\dynfont\char3} -\def\dyns{\dynfont\char4} -\def\dynz{\dynfont\char5} +\def\dynr{\dynfont\char4} +\def\dyns{\dynfont\char5} +\def\dynz{\dynfont\char6} \def\kdynf{\dynnf} \def\kdynp{\dynp\kern-.1ex} @@ -24,4 +25,6 @@ \def\dynfp{{\kdynf\dynp}} \def\dynsf{{\dyns\kern-.3ex\dynnf}} \def\dynsfz{{\dynsf\dynz}} +\def\dynfz{{\dynf\dynz}} +\def\dynrf{{\dynr\dynf}} -- 2.39.5