ox-hatena.elには致命的なバグがあった。本文中にある「\C-x」の様に\に続く文字が出力されないのだ。これは、Emacsのコマンドに関することを書いた出力を見て気がついた。
他フォーマットでのエクスポートを試してみてlatexやhtmlでは問題無く出力されるので、org-modeとしても出力するのが正しいようだ。
で、原因を調べてみた。どうも、\以降の文字がlatex-fragmentとして扱われているらしい。なので、backendのFilersに
(latex-fragment . org-hatena-latex-fragment)
を追加し、ox-ascii.elからコードをそのまま引用して
; form ox-ascii.el (defun org-hatena-latex-fragment (latex-fragment contents info) "Transcode a LATEX-FRAGMENT object from Org to Hatena. CONTENTS is nil. INFO is a plist holding contextual information." (when (plist-get info :with-latex) (org-element-property :value latex-fragment)))
を追加したところ、望みの動作となった。元のコメントにあるように、latex-fragmentとして区別している部分を取得しているらしい。
全体の構造を理解していないがorg-modeに深入りする気は無いので、これでよしとする。