9

コード ブロックは、PDF 出力で醜く見えます (引用符を確認してください)。

ここに画像の説明を入力

Sphinx のバージョン 1.1.3 を使用し、次のコマンドを使用してドキュメントを作成しました。

$ make latexpdf

また、PDF からスニペットをコピーすると、貼り付け時にインデントが破棄されます。

@view_config(route_name=’hello’)
def hello_world(request):
return Response(’Hello World!’)

私はこれを期待します:

@view_config(route_name=’hello’)
def hello_world(request):
    return Response(’Hello World!’)

これはさらに良いでしょう:

@view_config(route_name='hello')
def hello_world(request):
    return Response('Hello World!')
4

3 に答える 3

3

Sphinx は本当に優れたツールですが、latexpdf ターゲットのデフォルトの PDF 出力にもいくつか問題があります。

具体的には:

  • コード ブロック内の単一引用符は、ソース コードでは正しく見えない鋭いスタイルの引用符に変換されます。
  • コード ブロックは、メイン テキストからインデントされていません。私にとって、これはそれらを読みにくくします。
  • 私は他のフォントとピグメントを好みますが、それは個人的な選択であり、構成することができます.

この一部は、Sphinx conf.py の LaTeX プリアンブル セクションで修正できますが、引用符は Sphinx によってカスタム LaTeX エンティティに変更されるため、upquote LaTeX パッケージを使用して修正することはできません。

さまざまな設定オプションでかなりの実験を行った後、PDF をビルドする前に LaTeX ソースを変更するための小さなスクリプトを作成することになりました。スクリプトはここにあり、生成したかった出力はここにあります。(比較のために、同じドキュメントのデフォルト出力を次に示します。)

誰かがよりクリーンなソリューションを持っている場合、たとえば、Sphinx conf.py を介して完全に実行できるため、変更がReadTheDocsによって取得される場合、私は興味があります。

また、PDF からコピーして貼り付けるときにインデントが失われるという問題は、おそらく Sphinx/LaTeX の問題ではありません。

于 2013-04-23T08:36:22.697 に答える
2

これは、最終的な解決策につながる可能性のある部分的な回答にすぎません。Sphinx の HTML 出力でタイポグラファーの引用符 (カーリー引用符またはスマート引用符とも呼ばれます) を無効にするには、SmartyPantsの conf.py のデフォルト設定 を True から Falseに変更します。

引用符を変換し、HTML 出力から同じロジックを使用して PDF 出力に適用する関数を Sphinx で見つけることができると思います。

于 2013-10-04T06:57:00.423 に答える
1

Steve Piercy が提案したオプションは機能しなくなりました (Sphinx 1.6 以降):

Deprecated since version 1.6: Use the smart_quotes option 
in the Docutils configuration file (docutils.conf) instead.

私には明らかではなかったのは、この設定を適用する方法でした。docutils.confファイルを作成して、次のいずれかの場所に配置する必要があります。

  • /etc/docutils.conf
  • ./docutils.conf
  • ~/.docutils

最も簡単なオプションは、YMMV からドキュメントを作成している場所に配置することです。少なくとも次のものが含まれている必要があります。

[general]
smart_quotes: no
于 2017-06-13T10:26:46.530 に答える