当サイトではアフィリエイトプログラムを利用して商品を紹介しています。

【MathJax】LaTeXで日本語テキストを上手く表示できない

「なんとなくの数学日記」です。
筆者(あとりえこばと)がその日の気分次第で適当なことをおしゃべりするコーナーです。

LaTeXの日本語フォントがおかしいです

当サイトは MathJax を使って LaTeX の数式を表示しているのですが、数式の中に日本語を入れると、(サイト全体の書体を決める)CSS のフォントを反映せずに、とてもおかしな字体になってしまうのです。たとえば、こんなかんじ。

\[{}_{16}\mathrm{C}_{3}=560\;通り\]
おかしいですよね。平仮名の「り」が大きすぎるし。いや、ていうか
「この怪しげな書体は何!? 見たことないけど!?」
て叫んでしまいたくなるような未確認飛行書体です(飛んではいないけど)。

せめて明朝か MS ゴシックならば …

ちなみに LaTex では \verb コマンドでテキストを表示できることになっているのですが、試しにそれを使って書いてみると

\[{}_{16}\mathrm{C}_{3}=560\;\verb|通り|\]
「同じやん!」とやはり叫んでしまうのです。いえね、何も色々な日本語フォントを自由に表示できるようにしろとまでは言わないけど、こんな未確認飛行書体でなく、せめて明朝か MS ゴシックが表示されるようになっていればいいのにと思うわけです。数式を $$ でインラインにして、日本語の部分は数式の外に出すということはできます。

${}_{16}\mathrm{C}_{3}=560$ 通り

ただ、上のように数式を中央表示したい場合には html のタグで囲まなきゃいけないので面倒です。上下の空白もやや不満です。それに array 環境を使って数式を複数行並べる場合にはこの方法が使えません。まあ、何か良い方法があったら改善したいと思います(きっとすごく面倒な設定をしなきゃいけないのでしょう)。今回の日記はこれでおしまい。つまらない愚痴を言って申し訳ありませんでした。

追記です。ChatGPTにこの問題について質問してみました。

[Q] MathJaxの数式に任意フォントの日本語を埋め込む方法を教えてください。

[A] MathJaxは数式を美しく表示するためのライブラリで、通常はLaTeXのような数式記法を使用します。MathJaxはLaTeXの数式をサポートしていますが、特定のフォントを埋め込む方法は、ブラウザーのフォント設定やCSSを使用してカスタマイズすることができます。

以下は、MathJaxを使用して数式にカスタムフォントを埋め込む一般的な方法です。

カスタムフォントの用意:
まず、数式で使用したいカスタムフォントを用意してください。これはWebフォント(.woff、.woff2など)として提供されることが一般的です。フォントをウェブサーバーにアップロードし、フォントファイルのURLを取得します。

CSSスタイルの作成:
カスタムフォントを数式に適用するためのCSSスタイルを作成します。例えば、次のようになります:

.custom-font {
  font-family: 'YourCustomFont', sans-serif;
}

ourCustomFont’の部分は、実際のフォントファミリー名に置き換えてください。

MathJaxの設定:
MathJaxの設定ファイルを編集し、カスタムフォントを数式に適用します。MathJaxの設定ファイルは通常JavaScriptで記述されており、以下のようになります:

MathJax.Hub.Config({
  TeX: {
    extensions: ["autoload-all.js"],
    Macros: {
      // ここで数式にカスタムフォントを適用
      customfont: ["{\\style{font-family: YourCustomFont;}{#1}}", 1]
    }
  }
});

customfontという新しいマクロを定義し、そのマクロを使用して数式内でカスタムフォントを適用します。

数式内でカスタムフォントを使用:
数式内でカスタムフォントを適用するには、以下のようにcustomfontマクロを使用します:

\customfont{カスタムフォントを適用したいテキスト}

カスタムフォントが適用されるはずです。

この方法を使用して、MathJaxをカスタマイズして日本語テキストに任意のカスタムフォントを埋め込むことができます。ただし、フォントライセンスに注意してください。選択したフォントをWebサイトで使用する前に、フォントのライセンスを確認し、適切な許可を取得する必要があります。

エクセルや数学に関するコメントをお寄せください

  1. 匿名 より:

    同じ状態で謎に思って検索してここにたどりつきました。

    • Blog Cat より:

      そうでしたか。
      私はいまだにこの問題を解決できていません。
      何か良い方法が見つかったらお知らせします。