2026年10月3日土曜日

MathJaxで数式表示(3)

MathJaxで数式表示(2)からの続き


図:下記サンプルの数式表示の実例


7年半前に,MathJaxによるbloggerの数式表示に若干の問題があることを報告していたが,そのまま放置していた。数式部分がかなり小さく表示されてしまうのだ。数回リロードすると直ることもあるが,同じページで再発することもあって面倒だった。

この度,思いついてChatGPTに相談してみると,あっという間に解決してしまった。こんなことなら早く聞いておくのだった。MathJaxの初期化と,ページ全体のレンダリングの順序が混乱することによるらしい。使っているのは,MathJax 2.7.2でもうだいぶ古いとも言われた。

そこで,MathJax 4.1.3にして,現在の数式部分のコードとも矛盾しない解決案(下記参照)を提示してくれた。最新のものでは,$ $ で数式を囲うのはなしになったそうだ。確かに普通の$記号と間違えて数式が乱れることが多かった。過去のものはそのまま成立するようにしている。BloggerのテーマのカスタマイズでHTMLのところの冒頭を修正すればいいのだ。

なお,今後は,次のようにせよとのことだった。
(※HTMLエディタと混線するので,途中の改行なし直書きが必要)
(1) 行内数式: 
  \\( E=mc^2 \\)
(2) 独立数式:
  \\[E=mc^2 \\]
(3) 複数行式:
  \\begin{aligned} E &= mc^2,\\ p & = mv. \\end{aligned}
(4) 番号つき複数行式
  \\begin{align} E &= mc^2,\\ p & = mv. \\end{align}


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
<head>

<script type='text/javascript'>
window.MathJax = {
  tex: {
    inlineMath: [
      ['\$', '\$'],
      ['\\(', '\\)']
    ],
    displayMath: [
      ['\$\$', '\$\$'],
      ['\\[', '\\]']
    ],
    processEscapes: true,
    tags: 'ams',

    macros: {
      bm: ['\\boldsymbol{#1}', 1],
      argmax: '\\mathop{\\rm arg\\,max}\\limits',
      argmin: '\\mathop{\\rm arg\\,min}\\limits'
    }
  },

  output: {
    displayOverflow: 'linebreak',
    linebreaks: {
      inline: true,
      width: '100%'
    }
  }
};
</script>

<script defer='defer'
  src='https://cdn.jsdelivr.net/npm/mathjax@4.1.3/tex-mml-chtml.js'
  type='text/javascript'>
</script>

<meta expr:content='data:blog.isMobile         ? &quot;width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0&quot;         : &quot;width=1100&quot;' name='viewport'/>
<b:include data='blog' name='all-head-content'/>

0 件のコメント: