--- loncom/xml/algebra/AlgParser.pm 2005/06/09 02:17:12 1.13 +++ loncom/xml/algebra/AlgParser.pm 2005/06/09 02:35:55 1.14 @@ -547,34 +547,20 @@ sub tolatex { return ($args[0] . $p1 . $args[1]->tolatex() . $p2); }; /binop2/ && do { - my ($p1, $p2, $p3, $p4) = ('','','',''); - if ($args[0] =~ /implicit/) { - if ( (($args[1]->head eq qq(number)) && - ($args[2]->head eq qq(number))) || - (($args[1]->head eq qq(binop2)) && - ($args[1]->[2]->head eq qq(number))) ) { - $args[0] = '\\,'; - } else { - $args[0] = ' '; - } - } - if ($args[1]->[0] =~ /binop1|numberE/) - {($p1,$p2)=qw{ \left( \right) };} - # if ($args[2]->[0] =~ /binop[12]|numberE/) - if ($args[2]->[0] =~ /binop[12]|numberE|unop1/) - {($p3,$p4)=qw{ \left( \right) };} + my ($lop,$rop) = ($args[1]->tolatex,$args[2]->tolatex); if ($args[0] eq '/'){ -# return('\frac{' . $p1 . $args[1]->tolatex() . $p2 . '}'. -# '{' . $p3 . $args[2]->tolatex() . $p4 . '}' ); - return('\frac{' . $args[1]->tolatex() . '}'. - '{' . $args[2]->tolatex() . '}' ); + return('\frac{'.$lop.'}{'.$rop.'}'); } elsif ($args[0] eq '*'){ - return($args[1]->tolatex() . '\cdot ' . $args[2]->tolatex() ); + return($lop. '\cdot ' .$rop); } else{ - return ($p1 . $args[1]->tolatex() . $p2 . $args[0] . $p3 . - $args[2]->tolatex() . $p4); + $lop = '\left('.$lop.'\right)' if ($args[1]->[0] =~ /binop1|numberE/); + $rop = '\left('.$rop.'\right)' if ($args[2]->[0] =~ /binop[12]|numberE|unop1/); + if ($args[0] =~ /implicit/) { + $args[0] = ($lop =~ m/[.0-9]$/ && $rop =~ m/^[-+.0-9]/) ? '\cdot ' : ' '; + } + return ($lop.$args[0].$rop); } }; /binop3/ && do {