2012-03-27 8 views
8

मुझे स्पिंक्स द्वारा जेनरेट किए गए पीडीएफ में डिफ़ॉल्ट कोड उदाहरण फ़ॉन्ट बहुत बड़ा लगता है।आप स्पिंक्स के साथ लाटेक्स पीडीएफ आउटपुट में कोड उदाहरण फ़ॉन्ट आकार कैसे बदलते हैं?

मैंने जनरेटेड .tex फ़ाइल में कोड हाथों से \tiny जैसे फ़ॉन्ट आकार कमांड डालने का प्रयास किया है, लेकिन यह केवल कोड ब्लॉक के ऊपर की रेखा को छोटा बनाता है, न कि कोड ब्लॉक।

मुझे यकीन नहीं है कि और क्या करना है - मैं लाटेक्स के साथ एक पूर्ण शुरुआत कर रहा हूं।

उत्तर

8

मैं इसे बाहर काम शामिल हैं। पाइगल्स कोड स्निपेट को इंगित करने के लिए \begin{Verbatim} ब्लॉक का उपयोग करता है, जो fancyvrb पैकेज का उपयोग करता है। documentation I found (warning: PDF) शब्दशः ब्लॉक के लिए formatcom विकल्प का उल्लेख करता है।

Pygments latex bridge आप LatexFormatter की जगह देता है 'latex writer source एक उदाहरण चर, verboptions, प्रत्येक शब्दशः ब्लॉक और स्फिंक्स के अंत स्टेपल है इंगित करता है'।

मेरी 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

स्फिंक्स में लेटेक्स आउटपुट विकल्पों को बदलने के लिए, बिल्ड कॉन्फ़िगरेशन फ़ाइल में प्रासंगिक latex_elements कुंजी सेट करें, इस पर दस्तावेज़ here स्थित है।

सभी फ़ॉन्ट्स के लिए फ़ॉन्ट आकार बदलने के लिए pointsize का उपयोग करें।

उदा।

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

कि documetntation में सूचीबद्ध हैं preamble का उपयोग करें या latex_documents में कोई कस्टम दस्तावेज़ वर्ग का उपयोग अन्य लेटेक्स सेटिंग बदलने के लिए।

उदा।

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

डिफ़ॉल्ट रूप से स्फिंक्स sourcecode \code लेटेक्स आदिम को LatexWriter सेट कोड के टुकड़े में कोड पढ़ना।

तो आप एक उचित प्रतिस्थापन के साथ \code को प्रतिस्थापित करना चाहते हैं।

यह \newcommand{\code}[1]{\texttt{\tiny{#1}}} की तरह एक लेटेक्स आदेश सहित द्वारा किया जाता है या तो प्रस्तावना के या documentclass कुंजी के रूप में latex_documents में सेट हो जाता है कि स्फिंक्स के लिए एक कस्टम दस्तावेज़ वर्ग के हिस्से के रूप हिस्से के रूप में। एक उदाहरण sphinx दस्तावेज़ वर्ग उपलब्ध here है।

बस इसे \tiny के साथ छोटे आप latex_documents दस्तावेज़ वर्ग या latex_elements प्रस्तावना अधिक फैंसी कोड StackOverflow सवाल here में तरह फ़ॉर्मेट करने के लिए लेटेक्स पैकेज लिस्टिंग का उपयोग करने के संशोधित कर सकते हैं बनाने के अलावा।

लिंक किए गए पोस्ट से पैकेज सामग्री कस्टम दस्तावेज़ वर्ग के रूप में जाएगी और \newcommand{\code}[1]{\begin{lstlisting} #1 \end{lstlisting}} के समान पुनर्वितरण प्रस्तावना का हिस्सा होगा।

वैकल्पिक रूप से आप एक स्फिंक्स एक्सटेंशन लिख सकते हैं जो डिफ़ॉल्ट लेटेक्स लेखक को आपके चयन के कस्टम लेटेक्स लेखक के साथ बढ़ाता है, हालांकि यह काफी अधिक प्रयास है।

अन्य प्रासंगिक StackOverflow सवाल

0

आप में एक संशोधित शब्दशः आदेश जोड़ सकते हैं उपलब्ध है आपके PREAMBLE (इस मामले में नोट फ़ॉन्ट आकार को छोटा कर दिया गया है)

\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]% 
} 
संबंधित मुद्दे