読者です 読者をやめる 読者になる 読者になる

裏紙に雑文

日記とか,とりとめのないこと

はてなブログでの可換図式の書き方

雑文

はてなブログで可換図式を書くことができたので備忘録がわりに記事にしておきます. IT に関しての知識はほぼ皆無ですので,記述に誤りなどありましたらコメントでお知らせいただければ幸いです. また,私は Markdown モードで記事を書いているので,他の編集モードでは同じ結果にならないかもしれません. ご了承くださいませ.

AMScd を利用して書く

みなさんご存知のように(?)はてなブログでは MathJax を利用して数式を表示しています. MathJax は CD 環境が使えます. 一番簡単な方法はこの CD 環境を用いる方法です. 以下の情報を参考にしました:

MathJax で可換図式: SpaceLikeのブログ

MathJax TeX and LaTeX Support — MathJax 2.7 documentation

使い方は簡単で,記事本文中のどこかに[tex: \require{AMScd}]と書くだけです. これで簡単な可換図式が書けるようになります.

たとえば

\begin{CD}
S^{{\mathcal{W}}_\Lambda} \otimes T @>j>> T \\\\
@VVV                                @VV{{\mathop{\mathrm{End}}} P}V \\\\
(S \otimes T)/I                     @= (Z \otimes T)/J
\end{CD}

と書けば \begin{CD} S^{{\mathcal{W}}_\Lambda} \otimes T @>j>> T \\ @VVV @VV{{\mathop{\mathrm{End}}} P}V \\ (S \otimes T)/I @= (Z \otimes T)/J \end{CD} のような図式が得られます. AMScd を使った図式の書き方についてはググってください.

毎回[tex: \require{AMScd}]を書くのが面倒だという方には次の方法があります. はてなブログ設定>詳細設定>headに要素を追加 に次のように書きます.

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  TeX: {extensions: ["AMScd.js"]}
});
</script>

これでいきなり\begin{CD} hoge \end{CD}として大丈夫(なはず)です. ただし CD 環境では斜めの射が書けません. そこまで凝った図式が欲しいなら LaTeX で好きなツール(TikZ とか)使って書いてスクショ撮った方が良い気もしますが.

XyJaxを利用して書く

XyJax という,MathJax で XY-pic 環境を使うための拡張があります. XY-pic なら斜めの射も書けます. 参考にしたのは以下のサイトです:

XyJax - = Xy-pic extension for MathJax

XyJax/README.md at master · sonoisa/XyJax · GitHub

Blogger で数式や可換図式を書く - Diary over Finite Fields

導入方法ですが,だいたい515ひかるさんのブログ記事通りにすればできます(). ざっと書くと設定>詳細設定>headに要素を追加に以下のように記述すれば OK です.

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  extensions: ["tex2jax.js"],
  jax: ["input/TeX","output/HTML-CSS"],
  "HTML-CSS": {
    styles: {".MathJax_Preview": {visibility: "hidden"}}
  },
  tex2jax: {
    inlineMath: [['$','$'], ['\\(','\\)']]},
  TeX: {
  extensions: ["AMSmath.js","AMSsymbols.js","AMScd.js","http://sonoisa.github.io/xyjax_ext/xypic.js"]}
});
</script>
<script type="text/javascript"
  src="https://cdn.mathjax.org/mathjax/latest/MathJax.js">
</script>

ちなみに上のように記述すると MathJax も読み込むため\\(\\)で数式部を挟めば綺麗に出力されます. LaTeX のように$で挟んでも大丈夫です.

  • 例1: \\( \lim_{n \to \infty} a_n = \alpha \\)
  • 結果1: \( \lim_{n \to \infty} a_n = \alpha \)
  • 例2: $f \colon X \to Y$
  • 結果2: $f \colon X \to Y$

上の形で MathJax を読み込まなくても可換図式は書けるのかもしれませんが,試していないのでわからないです.

さて,以上のような設定で可換図式が書けるようになりました. たとえば

$$
\begin{xy}
\xymatrix {
U \ar@/\_/[drd]\_y \ar@{.>}[dr]|{\langle x,y \rangle} \ar@/^/[drr]^x & & \\\\
 & X \times_Z Y \ar[r]_p \ar[d]^q & X \ar[d]^f \\\\
 & Y \ar[r]\_g & Z
}
\end{xy}
$$

で $$ \begin{xy} \xymatrix { U \ar@/_/[drd]_y \ar@{.>}[dr]|{\langle x,y \rangle} \ar@/^/[drr]^x & & \\ & X \times_Z Y \ar[r]_p \ar[d]^q & X \ar[d]_f \\ & Y \ar[r]^g & Z } \end{xy} $$ という図式が得られます.pull-back!!!

CD 環境と違って$$で挟んで数式環境の中にいれてやる必要があります. また,MathJax の数式環境内では_などの文字を\_とエスケープしてあげないと数式化されない場合があります. 図式が書けない場合は片端からエスケープしてみましょう.

あと上の pull-back の図式\ar@/\_/[drd]\_y\ar@/\_/[ddr]\_yとしたら図式が書けませんでした. 何故だ. 理由がわかる方,教えてくださると嬉しいです…….

とりあえず以上のような方法ではてなブログに可換図式を書くことが可能となりました. めでたしめでたし.