GhostでもMathJaxでLaTeXのようにきれいな数式を表現する

Share
GhostでもMathJaxでLaTeXのようにきれいな数式を表現する
Photo by Bozhin Karaivanov / Unsplash

本ブログではCMSにGhostを使っている。

たまぁに、数式を使う記事を書きたくなるが、GhostではLaTeXで記述したってうまいことしてくれるMarkdownはない。

どうやらウェブサイトでLaTeXのような気レインは数式を表示するのにはMathJaxというJavaScriptによる描画エンジンを使えばいいらしい。

導入が無茶苦茶簡単だったわりに、いざ使うときにつまずいたのはここだけの話。

お話の前に

Ghostではすべてのページにコードを挿入する機能がDashboardにある。

今回はその機能を使わない

数式を使う記事なんて限られているので、使う記事にだけスニペットを挿入して運用していく方向性でいく。

「いやいや俺の書く記事に数式が出てこないものなんてない!LaTeXで数式を書きまくる!」って人はDashboardのCode Injectionに以下のスニペットを突っ込めばいい。

MathJaxを導入する

Getting Startedからドキュメントを開く。

MathJax
Beautiful math in all browsers.

Web IntegrationからStart Nowボタンをクリックすると導入の手順を教えてくれる。

現時点ではMathJax version 4が2024年にでた最新版だそう。セキュリティとかそういうのを重視てくれた良い感じのバージョンっぽいので、MathJax version 4を使います。

<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js"></script>

書きたい記事のPost settingsからCode Injectionを開き、Headerにコードをペタッと貼り付ければ「MathJaxのエンジン」は導入できる。

設定を書き込む

LaTeXに慣れている人なら気づいたと思うが、設定もお忘れなくということだ。具体的には、$がよくつかわれるものだからLaTeXの文脈で使われているかどうか判断できないからデフォでインライン数式が無効化されてる。

とりあえず私が以前使ったテンプレートを共有するが、自分なりにカスタマイズをAIに頼むなりして使うといいだろう。

<script>
window.MathJax = {
  tex: {
    inlineMath: [['$', '$'], ['\\(', '\\)']],
    displayMath: [['$$', '$$'], ['\\[', '\\]']],
    // TeX エンジンの完全初期化
    packages: {'[+]': ['base', 'newcommand', 'configmacros']},
    processEscapes: true,
    processEnvironments: true
  },
  startup: {
    typeset: true  // 初期組版を有効化
  }
};
</script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js"></script>

使い方

ディスプレイ数式は$$数式$$と書けばOKで、インライン数式は$数式$と書けばいい。

Previewで数式を確認できますよ。

入力中は脳内でLaTeX数式を書き上げる必要がありますが、そんなものはお手の物ですよね?

どんな感じの記事になるかを確認したければ僕の記事を見てどーぞ。

LogicoolのStreamCamがいいなって話
LogicoolのWebカメラの一つ、StreamCamをコロナによるオンラインミーティング以降からずっと使ってきている。結局当時はカメラオフの場面が多く、さほど使うことがなかったが、大学生となりカメラをオンにしたミーティングに参加する機会が多くなった。 StreamCamStreamCamを購入。1080p 60 FPS、高性能オートフォーカスと露出、縦方向ビデオ / ポートレート方向、汎用マウント、USB-C、デュアルマイクなどが特徴ですLogitech きっかけは使っているラップトップのちょっとした不具合(キーボードバックライトが点灯しなくなった)を修理する際、メーカーのミスで画面を割ってしまい、ディスプレイの交換修理になった。出張修理ということで、メーカー委託の業者が修理してくれたのだが、ディスプレイ交換の際、内臓Webカメラを指でべったり触ってしまったらしく、カメラの保護フィルムの粘着層に指紋がついてしまったようで、使い物にならないほど白ぼけてしまった。 とはいえ別にオンライン授業で高画質な映像を届ける機会などないし、複数回にわたる修理で呆れていたので、特に何もせずその

MathJaxを使って数式を書いたよ

Read more

1Passwordを閉じるボタンが……ねえ!

1Passwordを使っていたら、いつの間にかウィンドウの 閉じる/最小化/最大化ボタンが消えていた。Ctrl+Wでウィンドウ自体は閉じられるので長らく放置していたけれど、調べてみたら原因がしょうもなかったので共有しておく。 💡結論 F11を押してみよう 症状 * ウィンドウ右上の最小化・最大化・閉じるボタンが表示されない * タイトルバーも消えている * Ctrl+W では普通に閉じられる * PC再起動、1Passwordの終了・再起動、アンインストール → 再インストール、いずれも変化なし 原因 ただフルスクリーンモードに入っていただけ。 1Passwordコミュニティの投稿「Lost window minimize buttons top rhc.」で全く同じ症状が報告されていて、コミュニティマネージャーの回答が「F11でフルスクリーンを切り替えてみて」だった。 解決手順 1. 1Passwordのウィンドウをクリックしてフォーカスを当てる 2. F11 を押す これでタイトルバーとボタン類が戻ってくる。ダメな場合は Win + ↓(ウィン

By Sakashita Yasunobu

外字と訓点を compile-time hash で解く

aozora は青空文庫の外字参照 (※[#「魚+師」、第3水準1-94-37] のような形) を約 14,000 件のテーブルで解決する。このテーブルを runtime の HashMap ではなく phf (perfect hash function) で持ち、コンパイル時に static 配列に焼き込んでいる。この記事はその選択の根拠と、JIS X 0213 → Unicode フォールバックの設計をまとめたもの。 handbook の対応章: Shift_JIS + 外字 resolver。 外字テーブルの形 外字エントリには 3 種類の解決結果があり、それぞれに対応する variant を GaijiEntry に持たせている。 static GAIJI_TABLE: phf::Map<

By Sakashita Yasunobu

青空文庫の .txt を HTML に変換する最短手順

青空文庫 で配布されている .txt ファイルを HTML に変換したい、という用途向けの手順。Rust の知識は要らない。コマンド 1 行で済む。 1. CLI バイナリを取ってくる aozora の Releases ページ から自分の OS 向けのアーカイブを落とす。 OS アーカイブ名 Linux x86_64 aozora-vX.Y.Z-x86_64-unknown-linux-gnu.tar.gz macOS arm64 aozora-vX.Y.Z-aarch64-apple-darwin.tar.gz Windows x86_64 aozora-vX.Y.Z-x86_64-pc-windows-msvc.zip SHA256SUMS も同梱されているので、

By Sakashita Yasunobu