@@ -486,13 +486,15 @@ function makeSerializeHandler(
486486 // We have a LaTeX version of the symbol
487487 //
488488 if ( latex ) {
489+ const prec = entry [ 'precedence' ] ?? 10000 ;
490+
489491 if ( kind === 'postfix' )
490492 return ( serializer , expr ) =>
491- joinLatex ( [ serializer . serialize ( operand ( expr , 1 ) ) , latex ! ] ) ;
493+ joinLatex ( [ serializer . wrap ( operand ( expr , 1 ) , prec ) , latex ! ] ) ;
492494
493495 if ( kind === 'prefix' )
494496 return ( serializer , expr ) =>
495- joinLatex ( [ latex ! , serializer . serialize ( operand ( expr , 1 ) ) ] ) ;
497+ joinLatex ( [ latex ! , serializer . wrap ( operand ( expr , 1 ) , prec ) ] ) ;
496498
497499 if ( kind === 'infix' ) {
498500 return ( serializer , expr ) => {
@@ -523,26 +525,28 @@ function makeSerializeHandler(
523525 // We do not have a LaTeX version of the symbol. Use a string symbol
524526 //
525527 const id = idTrigger ?? entry . name ?? 'unknown' ;
528+ const prec = entry [ 'precedence' ] ?? 10000 ;
529+
526530 if ( kind === 'postfix' )
527531 return ( serializer , expr ) =>
528532 joinLatex ( [
529- serializer . serialize ( operand ( expr , 1 ) ) ,
533+ serializer . wrap ( operand ( expr , 1 ) , prec ) ,
530534 serializer . serializeSymbol ( id ) ,
531535 ] ) ;
532536
533537 if ( kind === 'prefix' )
534538 return ( serializer , expr ) =>
535539 joinLatex ( [
536540 serializer . serializeSymbol ( id ) ,
537- serializer . serialize ( operand ( expr , 1 ) ) ,
541+ serializer . wrap ( operand ( expr , 1 ) , prec ) ,
538542 ] ) ;
539543
540544 if ( kind === 'infix' )
541545 return ( serializer , expr ) =>
542546 joinLatex ( [
543- serializer . serialize ( operand ( expr , 1 ) ) ,
547+ serializer . wrap ( operand ( expr , 1 ) , prec + 1 ) ,
544548 serializer . serializeSymbol ( id ) ,
545- serializer . serialize ( operand ( expr , 2 ) ) ,
549+ serializer . wrap ( operand ( expr , 2 ) , prec + 1 ) ,
546550 ] ) ;
547551
548552 // Function, symbol or expression. Depends on the actual shape of the
0 commit comments