2012-03-27 8 views
8

私は、sphinxによって生成されたPDFのデフォルトのコードサンプルフォントがはるかに大きいことがわかりました。LaTeX PDF出力でsphinxでコード例のフォントサイズをどのように変更しますか?

コードブロックの上に\tinyのようなフォントサイズのコマンドを挿入して、生成された.texファイルを手に入れようとしましたが、コードブロックの上の行がコードブロックよりも小さくなりました。

私は他に何をすべきかわかりません - 私はLaTeXの絶対初心者です。

答えて

8

が含まれます。 Pygmentsは\begin{Verbatim}ブロックを使用してfancyvrbパッケージを使用するコードスニペットを示します。 documentation I found (warning: PDF)には、逐語ブロックのオプションがformatcomと記載されています。

Pygments' latex writer sourceは、インスタンス変数、verboptionsを示し、各逐語的にブロックの終わりにホチキス止めされており、Sphinxのlatex bridgeあなたがLatexFormatterを置き換えることができます。私conf.pyファイルの先頭に

、私は次のように追加しました:

from sphinx.highlighting import PygmentsBridge 
from pygments.formatters.latex import LatexFormatter 

class CustomLatexFormatter(LatexFormatter): 
    def __init__(self, **options): 
     super(CustomLatexFormatter, self).__init__(**options) 
     self.verboptions = r"formatcom=\footnotesize" 

PygmentsBridge.latex_formatter = CustomLatexFormatter 

\footnotesizeは私の好みだったが、サイズのリストがhere

+0

私にとっては唯一の答えです。 +1 – Trilarion

4

sphinxでラテックス出力オプションを変更するには、関連するキーをビルド設定ファイルに設定してください。ドキュメントはhereです。

すべてのフォントのフォントサイズを変更するには、pointsizeを使用します。

など。

latex_elements = { 
    'pointsize':'10pt' 
} 

documetntation使用preambleに記載されているその他のラテックスの設定を変更したり、latex_documentsでカスタムドキュメントクラスを使用します。

など。デフォルトでは、Sphinxのソースコード\codeラテックスプリミティブにLatexWriterセットのコードスニペット内のコードを読み取る

mypreamble='''customlatexstuffgoeshere 
''' 
latex_elements = { 
'papersize':'letterpaper', 
'pointsize':'11pt', 
'preamble':mypreamble 
} 

だから、\codeを適切な交換品に交換してください。

これは、\newcommand{\code}[1]{\texttt{\tiny{#1}}}のようなLatexコマンドをプリアンブルの一部として、またはドキュメントクラスのキーとしてlatex_documentsに設定されたsphinxのカスタムドキュメントクラスの一部として含めることによって行われます。スフィンクス文書クラスの例は、hereです。

ちょうどあなたがStackOverflowの質問 hereのように書式設定より派手なコードのためのラテックスパッケージのリストを使用する latex_documentsドキュメントクラスまたは latex_elementsプリアンブルを変更することができ \tinyと、それを小さくする以外

リンクされた投稿のパッケージはカスタムドキュメントクラスになり、\newcommand{\code}[1]{\begin{lstlisting} #1 \end{lstlisting}}に似た再定義はプリアンブルの一部になります。

また、デフォルトのラテックスライターを独自のカスタムラテックスライターで拡張することもできますが、これはかなり手間がかかります。

その他の関連StackOverflowの質問は、私はそれを働い

0

利用可能であるあなたは、あなたのように変形逐語コマンドを追加することができますPREAMBLE(この場合、フォントサイズはtinyに変更されます)

\renewcommand{\Verbatim}[1][1]{% 
    % list starts new par, but we don't want it to be set apart vertically 
    \bgroup\parskip=0pt% 
    \smallskip% 
    % The list environement is needed to control perfectly the vertical 
    % space. 
    \list{}{% 
    \setlength\parskip{0pt}% 
    \setlength\itemsep{0ex}% 
    \setlength\topsep{0ex}% 
    \setlength\partopsep{0pt}% 
    \setlength\leftmargin{10pt}% 
    }% 
    \item\MakeFramed {\FrameRestore}% 
    \tiny % <---------------- To be changed! 
    \OriginalVerbatim[#1]% 
} 
関連する問題