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の文字コードを戻すのが良いようだ。
インストールは落着したが
これで難関は突破した。あとは日ごろの不勉強を取り返して論文を読み,例の書類を期限内に提出するだけである汗
まだまだ,紆余曲折に終わりはない。