2012-11-26 50 views
0

如果有一种方法可以调整数学mathjax渲染的宽度,我就会徘徊。我拥有的一些数学表达时间更长,并且不适合我创建的盒子。有没有办法挤压它,并通过改变尺寸或宽度来适合它?我试过使用换行符,但那不是我想要的。一个例子是这样的mathjax:显示大小/宽度调整

2x+3+4 - /intcos(x) dx 


234567897+sin(2x)+34567890987654. 

显示最后一行将是一个问题,因为它不适合在框中。溢出

回答

1

嗯,你可以使用\small\scriptsize\Tiny(非标准)或\tiny数学内,使之出现在一个更小的尺寸。

或者,你可以在数学上加上<span style="font-size:70%">...</span>,以便将数学缩放到任何你需要的大小。例如,

<span style="font-size:70%">\(234567897+sin(2x)+34567890987654\)</span> 

注意,数学分隔符必须是<span>内。

+0

我现在尝试。感谢发布 –

+0

有没有办法使用Mathjax配置来完成此操作。通过这个,我的意思是动态地改变字体大小。我一直在寻找,我还没有找到任何解决方案。 –

+2

不,没有配置可以告诉MathJax调整大小以适合可用空间。但是[MathJax用户论坛](https://groups.google.com/d/topic/mathjax-users/ems8PNage-0/discussion)讨论了一种技术,它展示了如何自己动态改变缩放比例。例如,它可以适应于通过多个等式来设置它们的大小。 –

0

从上方连结该Google Groups discussion

function changeSize(button) { 
    var myeqn = document.getElementById('myeqn'); 
    myeqn.style.fontSize = button.textContent; 
    MathJax.Hub.Queue(
    ['Rerender', MathJax.Hub, 'myeqn'], 

    function() { 
     document.getElementById('mylabel').innerHTML = 
      'width: ' + myeqn.offsetWidth + ", height: " + myeqn.offsetHeight; 
    }); 
} 

参见http://jsfiddle.net/nLyraL1f/http://jsfiddle.net/s2bjepk6/

这也很好,因为它获取渲染乳胶的宽度和高度,对于将其呈现为位于画布上的元素很有用,因为您可以在画布上绘制东西。

2

我发现,不需要添加元素或CSS代码的解决方案:

// resize all LaTeX Display elements to they fit in on screen 
function cvonk_ResizeMathJax() { 
    jQuery('.MathJax_Display').each(function(ii, obj) { 
     var latex = obj.children[0]; 
     var w = latex.offsetWidth; 
     var h = latex.offsetHeight;  
     var W = obj.offsetWidth; 
     if (w > W) { 
      obj.style.fontSize = 95 * W/w + "%"; 
     } 
    }); 
} 
window.MathJax = { 
    AuthorInit: function() { 
    MathJax.Hub.Register.StartupHook("Begin", function() { 
     MathJax.Hub.Queue(function() { 
     cvonk_ResizeMathJax(); 
     }); 
    }); 
    }, 
    jax: ["input/TeX", "output/HTML-CSS", "output/NativeMML"], 
    extensions: ["tex2jax.js"] 
}; 
window.addEventListener("resize", function() { 
    cvonk_ResizeMathJax(); 
});