このブログの更新は X(旧Twitter)アカウント @m_hiyama で通知されます。
Follow @m_hiyama

ご連絡は上記 X アカウントに DM にてお願いします。

参照用 記事

バタニンのペースティング図をXyJax (Xy-pic extension for MathJax)で描いてみる

もう何年も、いやっ何十年も悩みの種で年中愚痴っていることは:

  1. 圏論で使う絵図(ペースティング図やストリング図)をWeb上で描けない。描けたとしても手間がかかり過ぎる。
  2. 圏論で使う絵図のテキスト化がうまくいかない。やれるとしても手間がかかり過ぎる。可読性も極悪。

絵図を描くことがお手軽に上手に出来るなら、あえてテキストにすることもないので、絵図が描けないことが僕の悩みの根源です。

とはいえ、状況は徐々に改善されつつあります。園部さん(https://github.com/sonoisa)による XyJax (Xy-pic extension for MathJax) の登場により、Web上で可換図式を描くのがとても容易になりました。

n角形の対角線とペースティング図 // 追記:CSS回転による斜め二重矢印」において、MathJax のCSS機能とXyJaxを組み合わせると、そこそこ視認性がよいペースティング図描画が出来そうだ、と述べました。やってみます。

題材は、「ペースティング図、コンピュータッド、ストリング図」で話題にした次のペースティング図です。

もともと、次のバタニンの論文の3ページに載っていた図です。PostScriptファイルから紙に印刷し、赤字でラベルを記入し、スキャンした画像が上の絵図です。

描画法としては、「n角形の対角線とペースティング図 // 面の情報を対角線により指定する」で紹介した面を示す対角線〈surface-indicating diagonal〉を使う方法です。

$`\newcommand{\SWArrow}{\style{display: inline-block; transform: rotate(-45deg)}{\Leftarrow} }
\newcommand{\SEArrow}{\style{display: inline-block; transform: rotate(45deg)}{\Rightarrow} }
\quad \xymatrix{
{}
&{}
&{}
&{4}\ar[dr]
&{}
&{}
\\
{}
&{}
&{3}\ar[ur]\ar[dr]
\ar@{.}[drrr]|{\SWArrow\gamma}
&{}
&{5}\ar[dr]
&{}
\\
{}
&{2}\ar[ur]\ar[dr]
\ar@{.}[rr]|{\Downarrow\beta}
&{}
&{9}\ar[rr]
&{}
&{6}
\\
{1}\ar[ur]\ar[rr]
\ar@{.}@/^1pc/[rr]|{\Downarrow\alpha}
&{}
&{8}\ar[ur]\ar[rr]
\ar@{.}[urrr]|{\SEArrow\delta}
&{}
&{7}\ar[ur]
&{}
}`$

悪くないですよね。

XyJaxのソースコードは次のようです。

\newcommand{\SWArrow}{\style{display: inline-block; transform: rotate(-45deg)}{\Leftarrow} }
\newcommand{\SEArrow}{\style{display: inline-block; transform: rotate(45deg)}{\Rightarrow} }
\quad \xymatrix{
 {}
 &{}
 &{}
 &{4}\ar[dr]
 &{}
 &{}
\\
 {}
 &{}
 &{3}\ar[ur]\ar[dr]
   \ar@{.}[drrr]|{\SWArrow\gamma}
 &{}
 &{5}\ar[dr]
 &{}
\\
 {}
 &{2}\ar[ur]\ar[dr]
   \ar@{.}[rr]|{\Downarrow\beta}
 &{}
 &{9}\ar[rr]
 &{}
 &{6}
\\
 {1}\ar[ur]\ar[rr]
   \ar@{.}@/^1pc/[rr]|{\Downarrow\alpha}
 &{}
 &{8}\ar[ur]\ar[rr]
   \ar@{.}[urrr]|{\SEArrow\delta}
 &{}
 &{7}\ar[ur]
 &{}
}