web-dev-qa-db-ja.com

Ipythonノートブックで引用を処理する方法?

Ipythonノートブックで引用を処理する最良の方法は何ですか?理想的には、bibtexファイルを用意し、その後、latexと同様に、Ipythonマークダウンセルに短縮形のリストを持ち、ノートブックの最後に完全な参照を含めます。

私が見つけた関連資料はこれです: http://nbviewer.ipython.org/github/ipython/nbconvert-examples/blob/master/citations/Tutorial.ipynb

しかし、私はドキュメンテーションをあまりよく追跡できませんでした。誰かがそれを説明できますか?本当にありがとう!!

24
user3698176

概要

このソリューションは、主にSylvain Devilleの 優れたブログ投稿 に基づいています。マークダウンセルに単純に_[@citation_key]_を書き込むことができます。参照はドキュメント変換後にフォーマットされます。唯一の要件は、広くサポートされているLaTeXとpandocです。保証はありませんが、このアプローチは長年にわたって機能するはずです。

ステップバイステップガイド

動作するjupyterのインストールに加えて、次のものが必要です:

  1. LaTeXインストールガイド )。

  2. Pandocインストールガイド )。

  3. 引用スタイル言語[〜#〜] apa [〜#〜] などの引用スタイルをダウンロードします。 _.csl_ファイル(例:_apa.csl_)をjupyterノートブックと同じフォルダに保存します(または、後で_.csl_ファイルへのパスを指定します)。

  4. 参照を含む_.bib_ファイルサンプルのよだれかけファイル _list.bib_を使用しています。 jupyterノートブックと同じフォルダに保存します(または、後で_.bib_ファイルへのパスを指定します)。

これらの手順を完了すると、残りは簡単です。

  1. Jupyterノートブックのマークダウンセルの参照にmardown構文を使用します。例:_[@Sh:1]_構文は次のように機能します:_([@citationkey_in_bib_file])_。 _[@something]_を入力するのが速いので、他のソリューションよりもこの構文を好みます。

  2. Ipythonノートブックの最後に、次の構文でコードセルを作成し、ドキュメントを自動的に変換します(これはRコードであることに注意してください。同等のコードを使用してください) system()へのコマンド(Pythonの場合):

    _#automatic document conversion to markdown and then to Word
    #first convert the ipython notebook paper.ipynb to markdown
    system("jupyter nbconvert --to markdown paper.ipynb")
    #next convert markdown to MS Word
    conversion <- paste0("pandoc -s paper.md -t docx -o paper.docx",
                   " --filter pandoc-citeproc",
                   " --bibliography="listb.bib",
                   " --csl="apa.csl")
    system(conversion)
    _

    このセルを実行します(または単にすべてのセルを実行します)。 2番目のシステムコールは単に_pandoc -s paper.md -t docx -o paper.docx --filter pandoc-citeproc --bibliography=listb.bib --csl=apa.csl_であることに注意してください。私は単にpaste0()を使用してこれを複数行に広げ、読みやすくしました。

    出力はWord文書です。 別のドキュメントを希望する場合、代替構文について このガイド を確認してください。


エクストラ

1)変換されたドキュメントにドキュメント変換の構文が含まれることが望ましくない場合は、変換の構文を含むコードセルの上下にマークダウンセルを挿入します。上のセルに_<!--_と入力し、下のセルに_-->_と入力します。これはコメント用の通常のhtmlコマンドなので、これらの2つのセルの間の構文は評価されますが、印刷されません

2)最初のセルにyamlヘッダーを含めることもできます。例えば。、

_---
title: This is a great title. 
author: Author Name
abstract: This is a great abstract
---
_
11
Flo

Calico suiteDocument Toolsを使用できます。これは個別にインストールできます。

Sudo ipython install-nbextension https://bitbucket.org/ipre/calico/downloads/calico-document-tools-1.0.Zip

詳細については チュートリアル を読み、 YouTubeビデオ をご覧ください。


警告:引用された参照のみが処理されます。したがって、記事の引用に失敗した場合、その記事は[参照]セクションに表示されません。少し実用的な例として、以下をMarkdownセルにコピーし、「本」アイコンを押します。

<!--bibtex

@Article{PER-GRA:2007,
  Author    = {P\'erez, Fernando and Granger, Brian E.},
  Title     = {{IP}ython: a System for Interactive Scientific Computing},
  Journal   = {Computing in Science and Engineering},
  Volume    = {9},
  Number    = {3},
  Pages     = {21--29},
  month     = may,
  year      = 2007,
  url       = "http://ipython.org",
  ISSN      = "1521-9615",
  doi       = {10.1109/MCSE.2007.53},
  publisher = {IEEE Computer Society},
}

@article{Papa2007,
  author = {Papa, David A. and Markov, Igor L.},
  journal = {Approximation algorithms and metaheuristics},
  pages = {1--38},
  title = {{Hypergraph partitioning and clustering}},
  url = {http://www.podload.org/pubs/book/part\_survey.pdf},
  year = {2007}
}

-->

Examples of citations: [CITE](#cite-PER-GRA:2007) or [CITE](#cite-Papa2007).

これにより、次のMarkdownセルが追加されます。

参考文献

^ Pérez、Fernando and Granger、Brian E .. 2007.IPython:a System for Interactive Scientific Computing[〜#〜] url [〜#〜]

^ Papa、David A.およびMarkov、Igor L .. 2007。ハイパーグラフのパーティショニングとクラスタリング[〜#〜] url [〜#〜]

9
Aristide

私は次のアプローチでそれを実行することができました:

  • 言及した tutorial のようにhtml引用を挿入します。
  • 「標準」のbibtex形式でipython.bibを作成します。 *.ipynbノートブックファイルと同じファイルに入ります。
  • チュートリアルと同様に、他のテンプレートと同じディレクトリまたは(配布に依存する)ディレクトリにテンプレートファイルを作成します。私のシステムでは、これは/usr/local/lib/python2.7/dist-packages/IPython/nbconvert/templates/latexです。
  • このチュートリアルには、テンプレート拡張latex_article.tplxがあります。私のディストリビューションではarticle.tplxです(latex_なし)。
  • nbconvert--to latexで実行します。とりわけ.auxファイルを生成します。ラテックスは欠落した参照について文句を言うでしょう。
  • bibtex yournotebook.auxを実行します。これはyournotebook.bblを生成します。参照を変更した場合にのみ、これを再実行する必要があります。
  • nbconvert--to latexまたは--to pdfで再実行します。これにより.texファイルが生成されるか、または.pdfまで実行されます。

HTML出力が必要な場合は、 pandoc を使用して、参照を整然とした引用ページにまとめることができます。メインドキュメントから参照できるhtmlページを作成するには、手動で編集する必要がある場合があります。

1
Frank M

とにかくノートブックをラテックスに変換することがわかっている場合は、純粋なLaTeXに置くように、参考文献を含む「Raw」セル(Ctrl + M R)をドキュメントの最後に追加することを検討してください。

たとえば、いくつかの外部リンクを参照する必要がある場合、適切なBibTeX処理を実行する必要はなく、ノートブックの最後に次のような「Raw」セルを配置します。

\begin {thebibliography} {1} 
\bibitem {post1} 
簡単な用語のホログラフィー。 K.Tretyakov(ブログ投稿)、2015。\\ 
\url {http://fouryears.eu/2015/07/24/holography-in-simple-terms/} 
 
\bibtem {book1} 
引用の重要性。 J.スミス。 2010。
\end {th​​ebibliography} 

アイテムは、通常の<cite data-cite="post1">(KT, 2015)</cite>を使用して、他のMarkdownセルで引用できます。

もちろん、適切なBibTeXを使用することもできます。対応するRawセルを追加するだけです。例:

\bibliographystyle {unsrt} 
\bibliography {papers} 

このようにして、個別のテンプレートファイルを編集する手間を省くことができます(ただし、生のLatexを使用してノートブックのHTMLエクスポートを乱雑にすることを犠牲にして)。

0
KT.

https://github.com/ipython-contrib/IPython-notebook-extensions のlatex_envs拡張機能を確認する必要があります(このリポジトリからインストールしてください。最新バージョンです)。この拡張機能には、bibtexファイルと標準のラテックス表記を使用して参考文献を統合する方法が含まれており、ノートブックの最後に参考文献セクションを生成します。引用のスタイルは(ある程度)カスタマイズできます。ここにいくつかのドキュメント https://rawgit.com/jfbercher/latex_envs/master/doc/latex_env_doc.html

0
jfb