--- loncom/xml/algebra/AlgParser.pm 2005/02/24 08:28:43 1.6 +++ loncom/xml/algebra/AlgParser.pm 2005/02/24 08:34:52 1.8 @@ -594,20 +594,30 @@ sub tolatex { # added missing trig functions # #$specialfunc = '(?:abs|logten|asin|acos|atan|sech|sgn|step|fact)'; - my $specialfunc = '(?:abs|logten|a(?:sin|cos|tan|sec|csc|cot)h?|sgn|step|fact)'; + my $specialfunc = '(?:abs|(logten)|a(sin|cos|tan|sec|csc|cot)(h)?|sgn|step|fact)'; # # End DPVC # if ($args[0] =~ /$specialfunc/) { - return ('\mbox{' . $args[0] .'}'. $p1 . $args[1]->tolatex() . $p2); + if (defined($1)) { + return ('\mbox{log}_{10}'. $p1 . $args[1]->tolatex() . $p2); + } + elsif (defined($2)) { + return ('\mbox{' . $2.$3 .'}^{-1}'. $p1 . $args[1]->tolatex() . $p2); + } + else { + return ('\mbox{' . $args[0] .'}'. $p1 . $args[1]->tolatex() . $p2); + } } else { return ('\\' . $args[0] . $p1 . $args[1]->tolatex() . $p2); } }; /special/ && do { - if ($args[0] eq 'pi') {return '\pi';} else {return $args[0];} + if ($args[0] =~/($greek|$escape)/) {return '\\'.$1;} + elsif ($args[0] =~/$delete/) {return '';} + else { return $args[0]; } }; /varname|(:?number$)/ && return $args[0]; /numberE/ && do {