intersphinx リンクのターゲットを numpy、scipy、matplotlib に指定する 質問する

intersphinx リンクのターゲットを numpy、scipy、matplotlib に指定する 質問する

パッケージ間のSphinxドキュメントリンクを設定するためのドキュメントに従って、

intersphinx_mapping = {'python': ('http://docs.python.org/2', None),
                       'numpy': ('http://docs.scipy.org/doc/numpy/', None),
                       'scipy': ('http://docs.scipy.org/doc/scipy/reference/', None),
                       'matplotlib': ('http://matplotlib.sourceforge.net/', None)}

conf.pyリンクを張っていますが、Python自体以外のプロジェクトへのリンクは機能しないようです。例えば

:term:`svg graphics <matplotlib:svg>`

期待されるアンカーは追加されずにインデックス ページに移動するだけで、用語集を見つけることも、パッケージでサポートされているまたはを判断する方法を理解すること#term-svgもできません。scipy:ref::term:

、、:ref:および:term:で およびのターゲットを指定する方法についての説明はどこにありますか?numpyscipymatplotlib


ところで、Sphinx自体にリンクするにはどうすればいいでしょうか?

intersphinx_mapping['sphinx'] = ('http://sphinx-doc.org/', None)

そして

:ref:`Intersphinx <intersphinx>`

動作しません。

ベストアンサー1

、、:ref:および:term:で およびのターゲットを指定する方法についての説明はどこにありますか?numpyscipymatplotlib

私は要旨いくつかのintersphinxマッピングで、numpyscipy、のすべてが含まれるようにmatplotlibなりました。これらのエントリは、intersphinx_mapping、あなたの 内conf.py。このリストに追加すべきエントリについての提案があれば、Gist のコメントにリクエストを投稿してください。

これらのパッケージはすべて、fgoudraの回答ぜひ使ってみてくださいsphobjinvファイル内の各ライブラリを検索しますobjects.inv。(完全開示:私はの著者ですsphobjinv。)suggestCLI インターフェースのモードは、インタースフィンクス相互参照を作成するために必要な情報を提供するために特別に設計されています。


numpy複雑です。場合によっては、完全修飾名が必要になることがあります。例:

:func:`numpy.cross`

その他の場合 (たとえば、C 関数の場合) は、関数の基本名を参照するだけで済みますが、ドメインを明示的に示す必要があります。例:

:c:func:`PyArray_InnerProduct`

また、カスタムnpドメインを参照する必要がある場合もあります。例:

:np:func:`numpy.ma.append`

を参照せずに正しい構文が何であるかを知る方法は実際にはありませんobjects.inv

 

scipyは とほぼ同じくらい不可解ですnumpyさまざまなサブパッケージに多数のカスタム ドメインが導入されると、状況はさらに複雑になりますscipy。例:

:scipy-optimize:func:`scipy.integrate.newton_cotes`

 

のためにmatplotlib参照では常に (かなり冗長な) 完全に指定されたオブジェクト名を指定する必要があるようです。例:

:meth:`matplotlib.axes.Axes.plot`

ただし、すべてのmatplotlibコード オブジェクトはデフォルトのpyドメインに存在するように見えるため、多少は簡素化されます。

 

これらのいずれについても、リンクを適切に構築できない場合は、まず汎用:obj:ロールを使用します。例:

:obj:`matplotlib.axes.Axes.plot`

intersphinxこれにより、特定のオブジェクトが定義されたロールに関係なくリンクが構築されますが、関連するデフォルト以外のドメインを正しく指定する必要があると思います。:obj:ロールで参照が正しく機能しない場合は、オブジェクト名またはドメインのどこかにエラーがあります。両方の場所でタイプミスがないか確認してください。

おすすめ記事