Sphinx logo

Table Of Contents

Previous topic

sphinx.ext.oldcmarkup 古いC言語向けマークアップとの互換性維持

Next topic

用語集

This Page

Sphinx FAQ

このセクションでは、Sphinxについてよく聞かれる質問とその答えについてまとめています。新しいセクションを気軽に追加してください!

どのようにすれば...

... LaTeXなしでPDFファイルを作成できますか?
Sphinx統合機能が組み込まれている、 rst2pdf のバージョン 0.12以降を使用することができます。詳細は、 利用可能なビルダー のセクションをご覧下さい。
... セクション番号を設定できますか?
LaTeX出力では自動的に設定されます。HTML出力では、 toctree ディレクティブに対して、ナンバリングをしたい位置に対して :numbered: オプションを付けると、設定することができます。
... ビルドするHTMLファイルの見た目をカスタマイズできますか?
HTMLテーマのサポート を読んで、テーマを利用すると、カスタマイズすることができます。
... すべてのドキュメントで置換を行ったり、インクルードできますか?
これらの定義を rst_epilog コンフィグ値を使って行ってください。
... すべての全体の目次をサイドバーに表示できますか?
おそらく、 sidebartoc ブロックに、と想像しますが、カスタムのレイアウトテンプレートの中で、 toctree を呼び出して使用することが可能です。
... 自分用のSphinx拡張を作成できますか?
Sphinx拡張チュートリアル をご覧ください。
... MoinMoinというWikiのマークアップで書かれた既存のドキュメントから変換できますか?
一番簡単の方法としてはレンダリング済みの xhtmlからreST に変換する方法でしょう。 見出しやコード例などがうまく変換できたとしても、クラスなどのマークアップはしなおす必要があるでしょう。

Sphinxと一緒に ... を使うには?

Epydoc
API ロール を提供するサードパーティ製の拡張機能があります。このロールは、与えられた識別子を持つ要素のEpydocのAPIドキュメントへの参照を行うことができます。
Doxygen
Michael Jones氏が reST/Sphinxからdoxygenへの橋渡しをする、 breathe というツールを開発しています。
SCons
Glenn Hutchings氏が、SphinxのドキュメントをビルドするためのSConsビルドスクリプトを作成しています。このスクリプトは、次のURLのところで開発されています: http://bitbucket.org/zondo/sphinx-scons
PyPI
Jannis Leidelが setuptoolsコマンド を作成しています。このコマンドを実行すると、自動的にSphinxで作られたドキュメントを、PyPIパッケージのドキュメント領域(http://packages.python.org/)にアップロードします。
github pages
Michael Jones氏の sphinx-to-githubツール を使用すると、SphinxのHTML出力を、githubページにアップロードする用に書き換えを行います。
Google Analytics

次のようなカスタムの layout.html テンプレートを使用することができます:

{% extends "!layout.html" %}

{%- block extrahead %}
{{ super() }}
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'XXX アカウント番号 XXX']);
  _gaq.push(['_trackPageview']);
</script>
{% endblock %}

{% block footer %}
{{ super() }}
<div class="footer">このページは統計情報を収集するために<a href="http://analytics.google.com/">
Google Analytics</a>を使用しています。もしも無効にしたい場合には、www.google-analytics.com
からロードされるJavaScriptをブロックして下さい。
<script type="text/javascript">
  (function() {
    var ga = document.createElement('script');
    ga.src = ('https:' == document.location.protocol ?
              'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    ga.setAttribute('async', 'true');
    document.documentElement.firstChild.appendChild(ga);
 })();
</script>
</div>
{% endblock %}

Epub情報

現在、epubビルダーはまだ実験的実装の段階です。まだSphinx本体のドキュメントでしかテストされていません。もしもepubファイルを生成したいのであれば、次の注意点をご覧になってください:

  • テキストはいくつかのファイルに分割されます。長さの長いHTMLファイルの場合、電子ブックリーダーによってはレンダリングに長い時間がかかります。極端な場合には、1分ほどかかることもあります。
  • マークアップは少なくなるようにしてください。これはレンダリング時間に関わってきます。
  • いくつかのリーダーでは、CSSの @font-face ディレクティブを使うことで、組み込みフォントや外部フォントを使用することができます。ソースコードのリストを表現する場合には、正しいマージンが行われるようになるため、 非常に これが役立ちます。デフォルトのCourierフォント(もしくはvariant)の場合には、一行につき60文字しか表現できません。もしもより狭いフォントを指定すると、一行の表示文字数を増やせます。 FontForge を使用して、フリーフォントの幅を短くしたバージョンを作成することができます。私が試した限りでは一行あたり70文字まで増やすことができました。

    納得のいく結果を得るためには、多少の試行錯誤が必要になるでしょう。

  • 作成されたepubファイルはテストしてください。いくつかの選択肢があります。私が確認するようにしているのは、 Epubcheck, Calibre, FBreader (これはCSSをレンダリングできません), Bookworm です。Bookwormは、 http://code.google.com/p/threepress/ からダウンロードして、ローカルのサーバ上で実行します。
  • 大きなフローティング指定のdiv要素は適切に表示されません。もしも複数ページにわたるdiv要素があったとしても、最初のページにしか表示されません。もしこのような場合には、 sphinx/themes/epub/static/ にある epub.css をローカルの _static/ にコピーして、float設定を削除してください。