参考文献DBとの連携
https://twitter.com/windowmoon/status/1321853175494668288 からのスレッド
BibtexかBibLatexに対応するか、ZoteroかMendeleyかEndnoteと連携できるようになってくれればいいのだが
Zotero・Mendeley・Endnote・ReadCubeから出力できる形式を読めるようにするか、現在の形式を出力するZotero・Mendeley・Endnote・ReadCubeプラグインを用意すればいいだろうと思います。あと、本文中での体裁を調整するCitation Style Languageに対応すればLaTeXからの移行が可能になると思います。
Zoteroからは、CSL JSONやEndnote XMLで出力できるので、これらに対応すればいいのではないでしょうか。
プラグインについては本筋から外れそうなので誰かに任せるとして、JSON・XMLの書き出しをインポートするのはできるかもしれない。 ただ、各ビルダにおいて実際どういう結果になればベストなのか、どのくらいカスタマイズは要求されるのかが私はアカデミックに疎めなのでよくわからないところあり。 なお、bibtexを読み込むのは茨すぎるので避けたい。
MendeleyとReadCubeで共通で出力できるのは.bibと.ris (Research Information Systems) なので、bibtex が無難といえば無難ですけどねえ(茨がどんなものかわからない。。。)
RIS https://en.wikipedia.org/wiki/RIS_(file_format)
gemでよければ ref_parsers (Parser for various types of reference file formats. It currently supports RefMan (.ris) and EndNote (.enw))ってのはありました。 https://rubygems.org/gems/ref_parsers/versions/0.0.11
おぉ。
bibtexはTeXシステム前提で密接すぎるので、あれをHTML/plain/IDGXMLと混ぜるのかなりきつそうな感じがしています。中にTeXマクロ入れられちゃうとその解析どうするのとか。
ref_parser見てみます。あとは結局取り込んでどう表現するのかという問題もありますね…。ユーザが妥当な順序付きで書き出してるのでそれをそのまま出力すればいい、のかな?
おそらく書き手側はbibtexでファイルを用意したいと思うんですよね。それで、Re:VIEWから使うときは、何かライブラリで読み書きして、そのままは使わないようにするとかですかね。
これは利用者数多そうでした。 https://rubygems.org/gems/bibtex-ruby/versions/5.0.0?locale=ja
実際どれだけ利用者がいるかわからないので、gemがあれば使える、的な利用で問題なさそうですね。 bibtexでもできなくはない、か…。 ちなみに @kdmsnr 的にはこういう機能はあると嬉しい気がします? bibtex出力を活用できる人だと結局普通にTeXで書けちゃうのでは…という気もしたりしなかったり。
bibtexはツールから作れても、自分でTeXは触れない、というのは一定数いそうな気はします(私もそう)。論文だと規定のテンプレートを埋めればいいでしょうが、同人誌となると自分でいちから整備しないといけないので、Re:VIEWに頼ろうという人はいそうです。なので「参考文献が多い論文っぽい本を同人誌として出したい」という状況であれば、需要がありそうというのはなんとなくわかります。
どっちにしろ@<bib>はともかく //bibpaer はいろいろと作り直したい気持ちがあるので、新しいものとして何か作ってしまってもよいかなと思っています。互換性とるの大変そうだから、@<cite>とかの別名かな…
@<cite> は既存のものがありました
まだ雑ですけど、こういう感じでいけそうでした。 (暫定的に ref / references を使っています)
## builder.rb
def citeproc
require 'bibtex'
require 'citeproc'
require 'csl/styles'
@bibtex ||= BibTeX.open("bib.bib") # TODO: set via config
style = 'apa' # TODO: set via config
@citeproc ||= CiteProc::Processor.new style: style, format: bibtex_format
@citeproc.import @bibtex.to_citeproc
rescue LoadError
error "not found bibtex library"
end
def bibtex_format
"text"
end
# @<ref>{key}
def inline_ref(key)
citeproc.render :citation, id: key
end
# //references
# print all bibs
def references
puts citeproc.bibliography
end
## htmlbuilder.rb
def bibtex_format
"html"
end
## compiler.rb
defsingle :references, 0
definline :ref
事前にライブラリが必要です
gem install bibtex-ruby
gem install citeproc-ruby
gem install csl-styles
実装がものすごく雑で申し訳ないですが…… #1595 で作ってみました。