Wie ändert man die Codebeispiel-Schriftgröße in LaTeX PDF-Ausgabe mit sphinx?

8

Ich finde die Standardcodebeispielschrift in der von sphinx erzeugten PDF viel zu groß.

Ich habe versucht, meine Hände in der erzeugten .tex-Datei schmutzig zu machen, indem ich Schriftgrößenbefehle wie \tiny über den Codeblöcken einfüge, aber es macht nur die Zeile über dem Codeblock winzig, nicht den Codeblock selbst.

Ich bin nicht sicher, was ich noch tun soll - ich bin ein absoluter Anfänger mit LaTeX.

    
Shabbyrobe 27.03.2012, 23:43
quelle

3 Antworten

8

Ich habe es ausgearbeitet. Segments verwendet einen \begin{Verbatim} -Block, um Code-Snippets zu bezeichnen, der das fancyvrb -Paket verwendet. Die Dokumentation, die ich gefunden habe (Warnung: PDF) erwähnt eine Option formatcom für der Verbatim-Block.

Die Latex-Schreiber-Quelle gibt eine Instanzvariable an, verboptions , wird an das Ende jedes Wortblocks geklammert und lässt Sphinx 'Latexbrücke' spenden Sie ersetzen die LatexFormatter .

Am Anfang meiner conf.py -Datei habe ich Folgendes hinzugefügt:

%Vor%

\footnotesize war meine Präferenz, aber eine Liste von Größen ist hier

verfügbar     
Shabbyrobe 31.03.2012, 22:40
quelle
4

Um die Optionen für die Latexausgabe in sphinx zu ändern, setzen Sie den entsprechenden Schlüssel latex_elements in der Build-Konfigurationsdatei. Die Dokumentation dazu finden Sie hier .

Um die Schriftgröße für alle Schriftarten zu ändern, verwenden Sie pointsize .

z.

%Vor%

Um andere Latex-Einstellungen zu ändern, die in der Dokumentation aufgelistet sind, verwenden Sie preamble oder verwenden Sie eine benutzerdefinierte Dokumentklasse in latex_documents .

z.

%Vor%

Wenn Sie den Sphinx-Quellcode standardmäßig lesen, legt der Code in LatexWriter Code-Snippets fest zum \code latex Primitiv.

Was Sie also tun möchten, ist das Ersetzen der \code durch einen geeigneten Ersatz.

Dies geschieht durch Einfügen eines Latex-Befehls wie \newcommand{\code}[1]{\texttt{\tiny{#1}}} entweder als Teil der Präambel oder als Teil einer benutzerdefinierten Dokumentklasse für sphinx, die in latex_documents als Dokumentklassenschlüssel gesetzt wird. Eine Beispielsklasse für Sphinx-Dokumente ist hier verfügbar .

Anders als nur kleiner machen mit \tiny können Sie die latex_documents Dokumentklasse oder die latex_elements Präambel ändern, um die Latex Paketlisten für eine ausgefallenere Code Formatierung zu verwenden, wie in der StackOverflow Frage hier .

Das Package-Material aus dem verlinkten Post würde als benutzerdefinierte Dokumentklasse verwendet und die Neudefinition ähnlich wie \newcommand{\code}[1]{\begin{lstlisting} #1 \end{lstlisting}} wäre Teil der Präambel.

Alternativ könntest du eine Sphinx-Erweiterung schreiben, die den Standard-Latex-Schreiber mit einem benutzerdefinierten Latex-Schreiber deiner Wahl erweitert, obwohl das erheblich mehr Aufwand bedeutet.

Andere relevante StackOverflow-Fragen beinhalten

Appleman1234 31.03.2012 12:39
quelle
0

Sie können einen modifizierten Verbatim-Befehl in Ihren PREAMBLE einfügen (Beachten Sie, dass in diesem Fall die Schriftgröße in "winzig" geändert wird)

%Vor%     
luismartingil 26.08.2014 11:55
quelle