@@ -742,12 +742,18 @@ function GetState(state) {
742
742
MathJax . OutputJax . CommonHTML . ID = 0 ;
743
743
}
744
744
745
- // Clear any existing user defined macros
745
+ // Clear any existing user defined macros, then load macros from state
746
746
Object . keys ( TEX . Definitions . macros ) . forEach ( function ( macroName ) {
747
747
if ( TEX . Definitions . macros [ macroName ] . isUser ) {
748
748
delete TEX . Definitions . macros [ macroName ] ;
749
749
}
750
750
} ) ;
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
+ }
751
757
}
752
758
753
759
//
@@ -772,6 +778,7 @@ function ReturnResult(result) {
772
778
if ( state ) {
773
779
var AMS = MathJax . Extension [ "TeX/AMSmath" ] ;
774
780
var GLYPH = MathJax . OutputJax . SVG . BBOX . GLYPH ;
781
+ var TEX = MathJax . InputJax . TeX ;
775
782
state . AMS . startNumber = AMS . startNumber ;
776
783
state . AMS . labels = AMS . labels ;
777
784
state . AMS . IDs = AMS . IDs ;
@@ -780,6 +787,13 @@ function ReturnResult(result) {
780
787
state . defs = GLYPH . defs ;
781
788
state . n = GLYPH . n ;
782
789
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
+ }
783
797
}
784
798
serverState = STATE . READY ;
785
799
callback ( result , originalData ) ;
0 commit comments