2013-10-01 4 views
6

HTML + CSS + Javascriptツールは、美しいプレゼンテーション(例:reveal.js + MathJax)を作成するのに最適です。しかし、私は通常、自分のプレゼンテーションに引用を追加する必要があり、私はそれを系統的なやり方でしたいと思っています(参考文献が編成されており、参照は形式が整えられています)。これは、LaTeXでBibTeXを使ってかなり簡単に処理できるものです。HTML/CSS/Javascript(BibTeXスタイル)による参照管理

私が今までに見つけた最良の解決策は、bibtex-jsというライブラリから来ています。 BiBTeXファイルを参考文献リストとしてHTMLでレンダリングすると良い仕事をしているようですが、これは部分的に私が望むものです。しかし、私は参考文献リストをレンダリングするだけでなく、その参考文献のエントリーをいくつかのインデックスで参照し、一様にフォーマットされた参照マーカーを取得する必要があります。ラテックスは、通常はこの問題をどのように処理するか、例えば、テイク:

%In thebibliography.bib 
@article{darwin1859origins, 
    title={On the origins of species by means of natural selection}, 
    author={Darwin, Charles}, 
    journal={London: Murray}, 
    year={1859} 
} 

%In mydocument.tex 
As \cite{darwin1859origins} sustains in his ground-breaking book... 

以前のコードでは、「ダーウィン(1859)は、彼の画期的な本で支えるように、」のようなものとしてレンダリングされます。さらに、引用がレンダリングされる書式も、カスタマイズ可能である(例えば、「Darwin、1859」、「(Darwing、1859)」、「[DWN59]」、「[1]」など)。

質問は、HTMLドキュメントで同様のタスクをどのように処理するのですか?

ありがとうございました!

+1

StackOverflowのトピックについては、「スタックオーバーフローのツール、ライブラリ、またはお気に入りのオフサイトリソースを推奨するかどうかを尋ねる質問は、オピニオン回答とスパムを引き付ける傾向があるため、代わりに、問題を説明し、それを解決するために今まで何が行われているのか」しかし、これはhttp://tex.stackexchange.comのトピックに載っているかもしれないので、私は図書館の要求のために議決するつもりはなく、むしろTeX.SEに移行することに投票しました。 –

+2

こんにちはジョシュア。私はtex.stackexchange.comに載せ​​ることを検討しましたが、事実上、そこから完全に離れています。実際にはTeXとは関係ありません。 LaTeXのようなシステムが存在しない場合、私の要件は十分に一般的なので、私の質問はまだ有効です。 LaTeXがこの機能を通常果たすという事実だけで、私はそれをより正確に定義することができます。しかし、繰り返しますが、TeXとは関係ありません。 問題は、それが提起されている方法で話題にはならないという点で、私はそれに応じてその指針を履行するように言い換えます。ご心配をありがとう。 – GermanK

答えて

0

はい、org-modeというemacs拡張があります。これはマークダウンのような構文のテキスト処理です。 これは、この明らかにする-jsのためにトラフをエクスポートすることができます。https://github.com/yjwen/org-reveal それとも私の場合、私はspacemacs拡張子を使用します。https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Bemacs/org#revealjs-support

のでORGモードは、HTML、すなわち明らかに-jsのを、あなたが好きにコンパイル中間フォーマットである、またはラテックスでさえ。 https://github.com/jkitchin/org-ref

我々は、我々はcite:後に入力するものは何でも(リンクとして提示されているすべての引用を持つ終わるreveal.jsでこれを使用する場合、私は、reveal.jsのためにこれで不幸だ: これは参照管理システムを含み)、フルフォーマットの引用はあなたが置いたスライドにグループ分けされています(3つ以上あれば正しく読むことはできませんが、HTMLで推測します)。私が望むのは、ラテックスや脚注に基づく引用の数です。スライドの場合は、脚注がうまく機能しないからです。

これはもちろんHTMLページだけで動作しますが、私のようなプレゼンテーションをしたいと思うかもしれません。私はこの未解決の質問に遭遇したとき、これに対する解決策を探していたので、あなたの答えはここにあると思います。

+1

ありがとう!私はずっと前に私のデパクトエディタとしてemacsの上にvimを選んだことを後悔しているのは初めてです。しかし、あなたが言うように、あなたはこの解決法に満足しているわけではありません。なぜなら、org-refを公開しているからです。それでも、これは私が4年前に見ていたものに本当に近いところにあり、私はまだ今でも発見することができます。 – GermanK

+1

@GermanKよく、私はvimを使って素早く編集しています(そしてemacsを発見する前に)、spacemacsはvimユーザー向けのemacsディストリビューションです(私はそれも完全なvim-erです)。あなたは一度それを試してみるべきです。 orgモードは私にそれを真剣に考えさせてくれるものですが、今ではテキストの処理が大部分です。 –

1

偶然にもbibtex-jsとも呼ばれるプロジェクトを作成しました。利用可能なon npm

ほとんどのBibTeXパーサーは解析にかなりの時間がかかります。これは、BibTeXの正式な文書であるTame the BeaSTと密接にぴったり合っているので、参照や構文解析の著者名の点ではうまくいきます。

私はあなた自身のインラインの引用機能を転がし、いくつかの書誌標準に基づいて、言う:

import {parseBibFile, normalizeFieldValue} from "bibtex"; 

// Parse bib file 
const bibFile = parseBibFile(bibtexString); // insert the darwin1859origins example as a string 

// Sanity check: print all ids of entries in the bibfile 
console.log(Object.keys(bibFile.entries$)); 

// Get the entry we are after 
const entry = bibFile.getEntry("darwin1859origins"); 

// Get the relevant fields 

// normalizeFieldValue turns a BibTeX string into a Javascript string 
const year = normalizeFieldValue(entry.getField("year")); 
// get first author 
// "author" is a special kind of BibTeX field 
const author = entry.getField("author").authors$[0]; 

function inlineCite(author){ 
    return "(" 
      + (author.firstNames 
       .concat(author.vons) 
       .concat(author.lastNames) 
       .concat(author.jrs)).join(" ") 
      + "," + year 
     + ")"; 
} 

console.log(inlineCite(author)); // (Charles Darwin, 1859) 

あなたが複数の著者を持っている場合は、et al.と複雑な何かを行うことができます。

関連する問題