もう何年も、いやっ何十年も悩みの種で年中愚痴っていることは:
- 圏論で使う絵図(ペースティング図やストリング図)をWeb上で描けない。描けたとしても手間がかかり過ぎる。
- 圏論で使う絵図のテキスト化がうまくいかない。やれるとしても手間がかかり過ぎる。可読性も極悪。
絵図を描くことがお手軽に上手に出来るなら、あえてテキストにすることもないので、絵図が描けないことが僕の悩みの根源です。
とはいえ、状況は徐々に改善されつつあります。園部さん(https://github.com/sonoisa)による XyJax (Xy-pic extension for MathJax) の登場により、Web上で可換図式を描くのがとても容易になりました。
「n角形の対角線とペースティング図 // 追記:CSS回転による斜め二重矢印」において、MathJax のCSS機能とXyJaxを組み合わせると、そこそこ視認性がよいペースティング図描画が出来そうだ、と述べました。やってみます。
題材は、「ペースティング図、コンピュータッド、ストリング図」で話題にした次のペースティング図です。

もともと、次のバタニンの論文の3ページに載っていた図です。PostScriptファイルから紙に印刷し、赤字でラベルを記入し、スキャンした画像が上の絵図です。
- Title: Computads for Finitary Monads on Globular Sets
- Author: M.A. Batanin
- Date: 1998
- Pages: 21p
- URL: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.53.2118
- URL 2: https://www.researchgate.net/publication/2680156_Computads_for_Finitary_Monads_on_Globular_Sets
描画法としては、「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] &{} }