@@ -742,12 +742,18 @@ function GetState(state) {
742742 MathJax . OutputJax . CommonHTML . ID = 0 ;
743743 }
744744
745- // Clear any existing user defined macros
745+ // Clear any existing user defined macros, then load macros from state
746746 Object . keys ( TEX . Definitions . macros ) . forEach ( function ( macroName ) {
747747 if ( TEX . Definitions . macros [ macroName ] . isUser ) {
748748 delete TEX . Definitions . macros [ macroName ] ;
749749 }
750750 } ) ;
751+ if ( state && state . macros ) {
752+ for ( var macroName in state . macros ) {
753+ TEX . Definitions . macros [ macroName ] = state . macros [ macroName ] ;
754+ TEX . Definitions . macros [ macroName ] . isUser = true ;
755+ }
756+ }
751757}
752758
753759//
@@ -772,6 +778,7 @@ function ReturnResult(result) {
772778 if ( state ) {
773779 var AMS = MathJax . Extension [ "TeX/AMSmath" ] ;
774780 var GLYPH = MathJax . OutputJax . SVG . BBOX . GLYPH ;
781+ var TEX = MathJax . InputJax . TeX ;
775782 state . AMS . startNumber = AMS . startNumber ;
776783 state . AMS . labels = AMS . labels ;
777784 state . AMS . IDs = AMS . IDs ;
@@ -780,6 +787,13 @@ function ReturnResult(result) {
780787 state . defs = GLYPH . defs ;
781788 state . n = GLYPH . n ;
782789 state . ID = ID ;
790+ state . macros = { } ;
791+ for ( var macroName in TEX . Definitions . macros ) {
792+ var macro = TEX . Definitions . macros [ macroName ] ;
793+ if ( macro . isUser ) {
794+ state . macros [ macroName ] = macro ;
795+ }
796+ }
783797 }
784798 serverState = STATE . READY ;
785799 callback ( result , originalData ) ;
0 commit comments