@@ -618,7 +618,7 @@ sub reduce {
618618#
619619sub string {
620620 my $self = shift ;
621- my $string = $self -> SUPER::string($self , @_ );
621+ my $string = $self -> SUPER::string(@_ );
622622 return $string unless $self -> {value }-> classMatch(' Fraction' );
623623 my $precedence = shift ;
624624 my $frac = $self -> context-> operators-> get(' /' )-> {precedence };
@@ -627,15 +627,18 @@ sub string {
627627}
628628
629629#
630- # Add parentheses if they are needed by precedence
630+ # Add parentheses if they were there originally, or
631+ # are needed by precedence and we asked for exxxtra parens
631632#
632633sub TeX {
633634 my $self = shift ;
634- my $string = $self -> SUPER::TeX($self , @_ );
635+ my $string = $self -> SUPER::TeX(@_ );
635636 return $string unless $self -> {value }-> classMatch(' Fraction' );
636637 my $precedence = shift ;
637638 my $frac = $self -> context-> operators-> get(' /' )-> {precedence };
638- $string = ' \left(' . $string . ' \right)' if defined $precedence && $precedence > $frac ;
639+ my $noparens = shift ;
640+ $string = ' \left(' . $string . ' \right)' if $self -> {hadParens } ||
641+ (defined $precedence && $precedence > $frac && !$noparens );
639642 return $string ;
640643}
641644
@@ -898,7 +901,6 @@ sub string {
898901 if ($self -> getFlagWithAlias(" showMixedNumbers" ," showProperFractions" ) && CORE::abs($a ) > $b )
899902 {$n = int ($a /$b ); $a = CORE::abs($a ) % $b ; $n .= " " unless $a == 0}
900903 $n .= " $a /$b " unless $a == 0 && $n ne ' ' ;
901- $n = " ($n )" if defined $prec && $prec >= 1;
902904 return " $n " ;
903905}
904906
@@ -911,7 +913,6 @@ sub TeX {
911913 my $s = " " ; ($a ,$s ) = (-$a ," -" ) if $a < 0;
912914 $n .= ($self -> {isHorizontal } ? " $s$a /$b " : " ${s} {\\ textstyle\\ frac{$a }{$b }}" )
913915 unless $a == 0 && $n ne ' ' ;
914- $n = " \\ left($n \\ right)" if defined $prec && $prec >= 1;
915916 return " $n " ;
916917}
917918
0 commit comments