Pandocの内部の動作を再現すると次のようになるようです。
rem C:\Users\zr\AppData\Local\Temp\SOMETEMPNAME\input.tex にファイルがある set TEXINPUTS=C:\/Users/zr/AppData/Local/Temp/SOMETEMPNAME; set TEXMFOUTPUT=C:\/Users/zr/AppData/Local/Temp/SOMETEMPNAME lualatex -halt-on-error -interaction nonstopmode -output-directory C:\/Users/zr/AppData/Local/Temp/SOMETEMPNAME C:\/Users/zr/AppData/Local/Temp/SOMETEMPNAME/input.tex
ここで絶対パスの先頭が「C:\/
」のようにスラッシュが二重になっていると、LuaTeXでエラーになるようです。(XeTeX・pdfTeXは正常。)
※「C:\\
」「C:\/
」「C://
」はダメで「C:\
」「C:/
」はOK。
「C:\/
」のような表記はWindowsのパス表記としては正当(先に挙げた例は全部「C:\
」に正規化される)なのですが、果たして「Kpathseaのパス」として正当であるかは微妙だと思います。
同じバージョンで、32bit は失敗し、64bit は成功するようです。不思議です。
いろいろ試してみたところ UAC 仮想化が影響しているような気がします。
UAC 仮想化が有効になっていると \\?\C:\\tex\text.log
のようなパスがエラーになるようです。
UAC 仮想化が無効になっていると \\?\
付きでもドライブレター直後の二重 \\
はエラーにならないようです。
64bit プロセスは UAC 仮想化が無効になるのでエラーにならないと思われます。
32bit プロセスでも manifest で requestedExecutionLevel
を指定するとエラーにならないようです。
PandocのIssueで関連するのはこれですね。
unicode-mathの目的は「数式の文字を(従来のType1フォント群ではなく)OpenTypeフォントで出力する」ことなので、そこでamssymbを読み込むのは意味を成さない、というのは真っ当な議論でしょう。ただそうだとすると、自分の感想としては
「unicode-mathで\square
命令が提供されないのが問題ではないか」
と思ってしまいます。
※ちなみに、「チェック付ボックス」を表す\boxtimesはunicode-mathで定義されています。
\boxtimes
(U+22A SQUARED TIMES)と外観が揃うのはU+25A1(WHITE SQUARE)で、これのunicode-mathでの命令名は「\mdlgwhtsquare
」のようです。
\documentclass[a4paper]{article} \usepackage{unicode-math} %\setmathfont{latinmodern-math.otf}%←既定 %\setmathfont{texgyrebonum-math.otf} %\setmathfont{texgyredejavu-math.otf}%←揃わない %\setmathfont{texgyrepagella-math.otf} %\setmathfont{texgyreschola-math.otf} %\setmathfont{texgyretermes-math.otf} \begin{document} $\boxtimes$ % U+22A0 SQUARED TIMES $\mdlgwhtsquare$ % U+25A1 WHITE SQUARE \end{document}
従って、自前で回避するのであれば、次のようにすればいいでしょう。
--- title: テスト author: 某ZR documentclass: bxjsarticle classoption: - pandoc header-includes: | \providecommand{\square}{\mdlgwhtsquare} ... - [ ] ソレ - [x] アレ