Maxima で綴る数学の旅

紙と鉛筆の代わりに、数式処理システムMaxima / Macsyma を使って、数学を楽しみましょう

-その他- xypic, xyjaxをはてなブログで使って、可換図式を描く

f:id:jurupapa:20050806070500j:plain


圏論の勉強ノートを書こうとすると、可換図式を描くのが必須です。等式だけよりも図式がある方が記憶に残ります。何かを理解した直後に、本やビデオを思い出しながら図式を書くと、理解が整合しているかどうか確認できます。

 

 

はてなブログではmathjaxがサポートされていますが、mathjaxで使えるいい感じの圏論お絵描きツールはサポートされていません。唯一試して動いたのが、AMScdというツールです。ただ、こいつは機能が低くイマイチだったので使っていません。ここまでの勉強ノートではxyjaxというmathjaxの拡張機能を使ってきました。

 

Xyjaxは元々xypicというlatex拡張機能から派生したもののようです。両社は図式を書くコマンドは同じなので、xypicの使い方サイトを参照すれば、複雑な図の描き方もわかります。日本語でも情報は結構あって、お世話になりました。一方、はてなで使う際に少し苦労した点もあり、他のサイトでは解決策が見つけられなかったこともあり、この記事ではその辺をまとめます。

 

xyjaxははてなブログのmathjaxサポート([tex: ...]の書式)ではサポートされていないようです。

[tex: \xymatrix{A \ar[r]^f & B}]

などと書いてもparse error:がでてしまい描けませんでした。はてなブログでxyjaxを使う場合には、独自にmathjaxを読み込めば動作しました。

はてなブログの「設定」の「詳細設定タブ」の中の「headに要素を追加」に以下のコードを追加します。以下のコードやこの記事の中で現れる全角$$は、使う際には半角のドルマーク2つに変更してください。全角[]も半角に直して使ってください。

<script type="text/javascript"
        src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS_HTML">
</script>
<script type="text/javascript">// <![CDATA[
        MathJax.Ajax.config.path["Contrib"] = "//cdn.mathjax.org/mathjax/contrib";
        MathJax.Hub.Config({
        CommonHTML: { linebreaks: { automatic: true } },
        "HTML-CSS": { linebreaks: { automatic: true } },
        showProcessingMessages: false,
        tex2jax: { displayMath: [['$$','$$']] },
        TeX: { equationNumbers: { autoNumber: "AMS" }, TagSide: "left", TagIndent: "0em",
        extensions: ["AMSmath.js","AMSsymbols.js","[Contrib]/xyjax/xypic.js"] }});
// ]]></script>

この設定後は、本文中に$$ texの式  $$とすれば中の式がレンダリングされます。上記設定の中でxyjaxが読み込まれているのがわかります。

 

通常の数式に関しては[tex: ...]も同時に使えるので、そこは適当に使い分けてください。

 

さてでは、最初のノウハウです。

  • はてなブログには自動キーワードリンクという機能で、はてな側が検知した単語を勝手にリンク化します。このせいで$$で挟まれたmathjaxが動作しない、ということがよく起こります。その際には自動リンク停止記法[]を使ってください。
    具体的には[]$$ tex式 $$[](全部半角で入力してください)という形式で書けばtex式内で自動キーワードリンクは機能しません。
    式を書くときは覚えていても図式を書いていて、うまくレンダリングされない時に、この原因には気がつきにくかったので、挙げさせていただきました。

次のノウハウは恒等射を描く時に重要です。

  • 恒等射を描くさいに\ar@(ul,dl)[]という書式を使います。通常は[]の中で矢印の行き先を指定するのですが、恒等射の場合行き先が自分自身なので[]の中は空にします。
    この時に[]のようにくっつけて書くと、自動リンク停止記法と勘違いされてしまい、xyjaxに渡りません。[ ]のように半角空白を入れることでこの勘違いを回避することができます。

はてなブログプロ契約をされていると、自動キーワードリンク機能をオフにすることも出来るようです。

 

他サイトでは見つけられないノウハウ、は以上でした。