YAMLキーnociteが,--biblatex・--natbibオプションと一緒には使えない?
ことの発端は,とある書類の作成用に,要旨付き参考文献表PDFを作ろうと思ったことである。pandoc markdownを使ってそうした文献表PDFを生成するには,YAMLセクションのnociteキーに,書誌情報ファイル(私の場合は.bibファイル)のキーを@ mentionしていく。詳しいやり方は,pandocのMANUAL該当箇所を読まれたい。
しかし,現在の安定版のpandocでは,PDF生成時にbiblatexあるいはnatbibで文献を処理させるように設定すると,せっかくYAMLに書いたnociteが無視されてしまう。しかし,文献の体裁は,どうしてもbiblatexで処理しないと提出に値するものにならない(こんな仕上がりにしたい)。そのため,3年以上前に他の方が始めたもののほとんど放置状態にあったissueに重ねて,biblatexあるいはnatbibを使っていてもnociteが正しく使えるようにしてほしいとお願いした。すると,作者が早速対応してくださった。
さて,最新ほやほやpandocをインストールするにはどうすればいいの?
まずは,pandocのMANUALの該当ページを見る。今回は,任意のディレクトリに,git cloneでソースをダウンロードした。
git clone https://github.com/jgm/pandoc
cd pandoc
問題はここからである。stackというプログラムでpandocをインストールせよとのことなので,Windows 64bit版のインストーラでstackをインストールしてから,Command PromptなりWindows PowerShellなりで,下記を実行する。
stack setup
stack install
作業は順調に進むかに見えた。しかし,暗雲は立ち込めるものである。x509-validationというプログラム(なんですか,これ?)のインストールのところで,インストールが止まってしまう。エラーメッセージは<stderr>: commitAndReleaseBuffer: invalid argument (invalid character)。stderr...$\text{Standard Error}$ですかっ?!Rは動かしてませんよ!統計(まだ)かけてません!初めて見るえらあめっせーじなので,無視して再度stack installを叩く(普通無視しないと思います。良識のある読者諸賢は,検索なさるべきです)。すると,1回目のstack installでインストールされていなかったプログラムが,するするとインストールされる。1度目のときはProgress: x/129くらいあったものが,2度・3度と繰り返していくうちにProgress: x/6にまで減った(ええ,それくらいエラーメッセージを無視し続けたということですよ)。しかし,ついにProgressの数は,6から減らなくなった。エラーメッセージは変わらない:<stderr>: commitAndReleaseBuffer: invalid argument (invalid character)...
WindowsのCommand Prompt/Windows PowerShellの文字コードを変えれば,インストールは無事終了
<stderr>: commitAndReleaseBuffer: invalid argument (invalid character)で検索すると,WindowsのCommand Promptの文字コードを一時的に変えればインストールできるという記事を見つけた。紹介されている方法は,Windows PowerShellでも出来る。実に簡単で
chcp 65001
これだけである。反応は特になし。強いて言えば,画面の文字が小さくなった。このコマンドを打ってから,再度stack installを叩く。これで,出来立てのpandocのインストールは済んだ。最後に,
chcp 932
として,WindowsのCommand Prompt/Windows PowerShellの文字コードを戻すのが良いようだ。
インストールは落着したが
これで難関は突破した。あとは日ごろの不勉強を取り返して論文を読み,例の書類を期限内に提出するだけである汗
まだまだ,紆余曲折に終わりはない。