On Fri, Nov 15, 2002 at 10:04:13AM +0100, Nicolas Ferre' wrote:
> Hi,
> 
> I just installed teTeX and on a simple example, I get the following
> error while I wanted to view the dvi file. It seems that some bitmaps
> fonts cannot be builded, whereas the metafont exists and is found !
> Thanks for any help.
> 
> This is METAFONT, Version 2.7182 (Web2C 7.3.1) (base=mf 2002.11.8)  14
> NOV 2002 16:58
> **\mode:=ljfzzzfr; mag:=1+57/600; nonstopmode; input cmsy10
> (/usr/local/teTeX/texmf/fonts/source/public/cm/cmsy10.mf
> [...]
> [69]
> ! This can't happen (m).
> <recently read> ;
>                  
> l.86 draw z2--z5--z5-(0,.1cap_curve);
>                                        % middle bar
> I'm broken. Please show this to someone who can fix can fix

Attached is a patch file for mf.ch which should fix this.  Can someone
test it in this case?  It's not a full fix; that's for Knuth to do at
some point (he's aware of this bug, at least if it's fixed by this
patch).

--- mf.ch.orig  Thu Jan 25 10:41:36 2001
+++ mf.ch       Fri Jan 26 16:10:21 2001
@@ -1207,6 +1207,58 @@
 then
 @z
 
+@x [21.433,436] Try to handle bad rounding effects
+procedure xy_round;
+var @!p,@!q:pointer; {list manipulation registers}
+@y
+procedure xy_round;
+var @!p,@!q,@!last_fixed:pointer; {list manipulation registers}
+@z
+
+@x
+until cur_rounding_ptr=0;
+end
+@y
+until cur_rounding_ptr=0;
+p:=cur_spec;
+last_fixed:=cur_spec;
+repeat q:=link(p);
+  abnegate(x_coord(q),y_coord(q),right_type(q),right_type(p));
+  if cur_x<x_coord(p) then
+  begin
+    abnegate(x_coord(p),y_coord(p),right_type(p),right_type(q));
+    right_x(p):=x_coord(p);
+    left_x(q):=x_coord(p);
+    x_coord(q):=cur_x;
+    last_fixed:=p;
+  end;
+  p:=q;
+until p=last_fixed;
+end
+@z
+
+@x
+until cur_rounding_ptr=0;
+end
+@y
+until cur_rounding_ptr=0;
+p:=cur_spec;
+last_fixed:=cur_spec;
+repeat q:=link(p);
+  abnegate(x_coord(q),y_coord(q),right_type(q),right_type(p));
+  if cur_y<y_coord(p) then
+  begin
+    abnegate(x_coord(p),y_coord(p),right_type(p),right_type(q));
+    right_y(p):=y_coord(p);
+    left_y(q):=y_coord(p);
+    y_coord(q):=cur_y;
+    last_fixed:=p;
+  end;
+  p:=q;
+until p=last_fixed;
+end
+@z
+
 @x [442] Use halfp.
 @<Compute a good coordinate at a diagonal transition@>=
 begin if cur_pen=null_pen then pen_edge:=0


   Julian

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

        Julian Gilbey, website: http://www.polya.uklinux.net/
   Debian GNU/Linux Developer, see: http://people.debian.org/~jdg/
     Visit http://www.thehungersite.com/ to help feed the hungry

Reply via email to