[WIP] Add bibliography class
citeproc/ruby/formats/latex.rb を定義すればいいのかなあ?
citeproc-ruby が latex に対応したら統一的に扱える https://github.com/inukshuk/citeproc-ruby/pull/75
chapterの末尾に参考文献入れる場合と、本の最後に入れる場合がある
bibliography.rb の冒頭の require をRe:VIEWから必須じゃないように書くには、どうやって書けばいいのか?
mecabやunicode/eawだとrequireをbegin/rescueして、あとは無視するかエラーにするかとしていますね。 明示的に使うまでrequireされないならエラーにしてしまうのでもよさそう。
実装を拝見しますね。
とりあえず対応しているHTMLとテキストのフォーマッタにて見ていますが、
citeprocのほうは、
- TeXのウムラウト指定(
\"aなど)などは1文字版(ä)のほうに置き換えるロジックが入ってる模様。 <>&"'などを入れてみたらエスケープなしでそのまま出てしまった。{$\mathbf{F}_1$}は\mathbfF_1に展開されてしまい、これは扱いづらい…。- とりあえず@kdmsnr さんのLaTeX対応PRが入ったようなので、反映された1.1.13まち?
実装については、
- require類をbegin/rescue LoadErrorで囲むとして、エラーにするのはbibfileが指定されているときのみにすれば必須から回避することはできそう?
- 章単位版bibは章名.bibでもよさそうだけど、本全体版はbookname.bibとすべきか、それともconfig.yml指定にするか…(それでもデフォルトが何か必要か。)
- レンダラ部分の改良はかなり必要になりそう。HTMLだとハイパーリンクしたいとか。
<>&"'などを入れてみたらエスケープなしでそのまま出てしまった。
エスケープはしようとしてるんですけど、最後にエスケープしようとしているので汚くてTODOになってますね。いまはスペースを必要とするみたいです。
# citeproc-ruby/lib/citeproc/ruby/formats/html.rb
def finalize!
# TODO find a better solution for this (strip tags?)
# For now make sure not to double encode entities
# by matching spaces before or after.
output.gsub!(/[&<]\s/, '& ' => '& ', '< ' => '< ')
output.gsub!(/\s>/, ' >')
end
rebaseしようと思いましたがマージが大変すぎたので、新規にコミットしました。
- 使用しているライブラリ的に、これくらいが限界かなあという感じです。
- もっと凝ったことをやろうとすると、自分でライブラリ相当を書かことになりそうです。
参考文献のソートが環境によって違う? 困った。
TestWinだけ失敗している???