2012-11-26 119 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(); 
}); 
相關問題