MathJax determines the scaling factor by trying to match the ex-height of the MathJax fonts to the ex-height of the surrounding font. That only works if the surrounding font has the ex-height properly set. Not all free fonts, and in particular, not all Google web fonts, have proper ex-heights. It appears that “Crimson Text” is one such font. To see this, add
<span style="display:inline-block; width:1ex; height:1ex; background-color:red"></span>
into the paragraph formatted with Crimson Text (you can even remove MathJax entirely to verify that it doesn’t have anything to do with MathJax). You should see a very small red box next to the text (when it should be as tall as an “x” in the font).
So MathJax tries to scale its fonts so that the “x” is as high as the red box. But MathJax has a configuration parameter that limits how small a scale it will use, and that is at 50%, so that is why you see the font at exactly half the original size.
One possible solution is to tell MathJax not to try to match the surrounding font. You do that by setting matchFontHeight:false in the configuration for the various output renderers:
MathJax.Hub.Config({
"HTML-CSS": {matchFontHeight: false},
SVG: {matchFontHeight: false},
CommonHTML: {matchFontHeight: false}
});
This will keep the font from getting tiny, but may mean the math doesn’t match the font height of the rest of the text as well as it might. Alternatively, you could change the minimum font scale to be something like 95% (or whatever works):
MathJax.Hub.Config({
"HTML-CSS": {minScaleAdjust: 95},
SVG: {minScaleAdjust: 95},
CommonHTML: {minScaleAdjust: 95}
});
See if one of those doesn’t do the trick.
Davide