搜尋此網誌

用MathJax在網頁或部落格顯示數學方程式

以往在編寫含有數學式的文章時,都需要將先在 MathType、Word 或 LaTeX 編輯好數學式再截圖並放到圖片空間才能貼在網頁或部落格中使用,若要修改就必須再截圖一次,使用上非常不方便

現在有了 MathJax 就完全解決這個問題(手機可能無法正常顯示),做法很簡單,以 Blogger 為例,請先到後台的「主題」→「編輯HTML」,在 <head> 後面貼上

<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML" type="text/javascript">
</script>



其他解說可參考官網 Simple integration

使用方式為在想要表式數學的地方先加上以下符號,中間的 ... 插入想要的數學式
$ ... $ 或 \( ... \)
或者用以下方法顯示獨立一行的方程式
$$ ... $$ 或 \{ ... \}

以下為測試結果
When \(a \ne 0\), there are two solutions to \(ax^2 + bx + c = 0\) and they are
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$


若要替方程式加上編號的話,可參考 MathJax in Blogger 這篇文章的方式

<script src='https://cdn.mathjax.org/mathjax/latest/MathJax.js' type='text/javascript'>   
    MathJax.Hub.Config({
        HTML: ["input/TeX","output/HTML-CSS"],
        TeX: { extensions: ["AMSmath.js","AMSsymbols.js"],
               equationNumbers: { autoNumber: "AMS" } },
        extensions: ["tex2jax.js"],
        jax: ["input/TeX","output/HTML-CSS"],
        tex2jax: { inlineMath: [ ['$','$'], ["\\(","\\)"] ],
                   displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
                   processEscapes: true },
        "HTML-CSS": { availableFonts: ["TeX"],
                      linebreaks: { automatic: true } }
    });
</script>



使用方式如下,eq_name 請自行修改成想要表示該方程式的名字
\begin{equation}\label{eq:eq_name}
...
\end{equation}
範例
\begin{equation}\label{eq:eq_name}
E=mc^2
\end{equation}


而引用方式則為
(\ref{eq:eq_name})
範例
引用 (\ref{eq:eq_name}) 式子

不過如果文章裡常有程式碼或其他特殊符號時,還滿容易會出現 Undefined control sequence,主要是因為$符號的關係,改成全形就解決了,使用前請自行檢查一下

3 則留言:

  1. 嘿你好,我架設了一個給學生讀課程筆記的Blogger,但是出了一點問題。首先方程式只有在「沒有點進去看的時候正常」,但是一點進去就沒辦法顯示方程式,而只顯示 LaTeX 碼,請問您能協助我嗎?

    這是網址:https://weichihsu.blogspot.com/

    你可以點第一篇名為TEST的文章,如果你知道怎麼辦的話,我會非常感謝你

    回覆刪除
    回覆
    1. 您好,我沒看到TEST文章,但我看您其他篇文章都是可以正常顯示的,用手機看的話可能一開始因為一些載入工具的關係,一開始無法正常顯示方程式,但重新整理就好了

      刪除
    2. 非常謝謝你,我剛剛好像誤打誤撞弄好這個問題了。

      我推測原因應該是我的LaTeX碼是直接從word從unicode轉換而來,在blogger的編輯器上直接純文字貼上,我用新版編輯器裡面的 clear formating 工具之後,似乎就可以顯示了。但我不知道為甚麼會這樣。

      不過還是謝謝你

      刪除