2009-01-11 15 views
18

मैं स्रोत कोड प्रारूपित करने के लिए LaTeX के "listings" पैकेज का उपयोग कर रहा हूं। दुर्भाग्य से मुझे सीधे उद्धरण के बजाय घुंघराले उद्धरण मिलते हैं। चूंकि घुंघराले उद्धरण हमेशा सही दिशा में इंगित नहीं करते हैं, यह बुरा लगता है। मैं इसके बजाय सीधे उद्धरण कैसे प्राप्त कर सकता हूं?लाटेक्स के 'लिस्टिंग' पैकेज का उपयोग करते समय आप घुंघराले उद्धरणों के बजाय सीधे उद्धरण कैसे प्रदर्शित करते हैं?

मैं स्रोत कोड को स्वयं बदलना या फ़िल्टर नहीं करना चाहता हूं। कोड को "से` `या '' में सही ढंग से बदलने के लिए फ़िल्टर करना, काम करेगा, लेकिन लाइन पर एकाधिक कोट्स या एकाधिक लाइनों में फैले उद्धरणों के मुकाबले यह आसान है। या आप प्रतीक या अन्य चीजों का उपयोग कर सकते हैं। लेकिन मैं (खिड़कियों पर Miktex का उपयोग कर)

\documentclass{article} 
\usepackage{listings} 
\begin{document} 
\begin{lstlisting} 
Fahrenheit=input("What is the Fahrenheit temperature?") 
Celsius=(5.0/9.0)*(Fahrenheit-32) 
print"The temperature is",Celsius,"degrees Celsius" 
\end{lstlisting} 
\end{document} 

उदाहरण आउटपुट:: 'वास्तव में स्रोत अपरिवर्तित रखने के लिए

उदाहरण LaTeX चाहते हैं। Image of source code

(Direct link to image of incorrect output)

+0

यह स्रोत कोड बदलता है लेकिन आप उद्धरण के बाईं ओर '(केवल अपनी कुंजी के बाईं ओर कुंजी) का उपयोग करके उद्धरणों की दिशा को ठीक कर सकते हैं और' (नियमित उद्धरण कुंजी पर) दायीं तरफ। – Alex

उत्तर

4

क्या आपने लिस्टिंग के लिए एक मोनोस्पेस्ड (टाइपराइटर) फ़ॉन्ट का उपयोग करने पर विचार किया है?निम्न उदाहरण काम करता है:

\documentclass{article} 
\usepackage{listings} 
\lstset{basicstyle=\ttfamily} % <<< This line added 
\begin{document} 
\begin{lstlisting} 
Fahrenheit=input("What is the Fahrenheit temperature?") 
Celsius=(5.0/9.0)*(Fahrenheit-32) 
print"The temperature is",Celsius,"degrees Celsius" 
\end{lstlisting} 
\end{document} 
+1

मूल शैली में \ ttfamily का उपयोग करने के लिए मेरे लिए बहुत अच्छा काम करता है, हालांकि यह मुझे मेरी भाषा (जैसे बोल्डिंग कीवर्ड) के लिए लिस्टिंग पैकेज द्वारा प्रदान की गई स्टाइल को खो देता है। भाषा शैली को फिर से परिभाषित करने के अलावा कोई विचार? – jasonb

18

मैं प्रलेखन में देखता हूं (जिसे पैक के साथ वितरित किया जाना चाहिए था, लेकिन http://www.ctan.org/tex-archive/macros/latex/contrib/listings/listings.pdf पर उपलब्ध है) listings के लिए upquote नामक एक सेटटेबल संपत्ति है, इसकी देखभाल करने के लिए।

प्रलेखन से:

upquote=⟨true|false⟩            false 
    determines whether the left and right quote are printed ‘’ or `'. This 
    key requires the textcomp package if true. 
कुछ

करो

तरह
\lstset{upquote=true} 

begin से पहले सूची पर्यावरण ing, या का उपयोग

\begin{lstlisting}[upquote=true] 
... 
\end{lstlisting} 

यह भी संभव है कि Tis हैसंपत्ति पहले से ही उचित भाषा परिभाषा में निर्धारित है (पृष्ठ 12 पर पूर्वनिर्धारित भाषाओं की बड़ी सूची, फिर से दस्तावेज़ देखें)।

उपयोग:

\lstloadlanguages{<dialects you need>} 
शीर्षक में

। और उसके बाद विकल्प चुनने के लिए उपरोक्त किसी भी सम्मेलन का उपयोग करके भाषा सेट करें।

+0

यह आशाजनक लग रहा था, लेकिन दुर्भाग्य से जब मैंने कोशिश की तो यह काम नहीं किया। घुंघराले उद्धरण अभी भी लिनक्स और विंडोज़ पर मेरे लिए दिखाई देते हैं, जिसमें मिक्टेक्स के साथ मैंने सत्य को अपरिवर्तित किया है। इसे गलत पर सेट करना या तो काम नहीं करता था। –

+0

मुझे बस दस्तावेज़ों को छोड़ने के लिए मिलता है। क्रिसन की सही संपत्ति प्रतीत होती है, लेकिन यदि आप उपयुक्त हैं तो मैं आपको पूर्वनिर्धारित भाषाओं का उपयोग करने के लिए प्रोत्साहित करता हूं। और, दस्तावेज़ पढ़ें, यह सब वहाँ है। चीयर्स। – dmckee

+0

मैं अपने वास्तविक काम में पूर्वनिर्धारित भाषा का उपयोग करता हूं। मैंने उदाहरण को कम से कम करने के लिए जो कुछ भी कर रहा हूं, उसे हटा दिया। वह पीडीएफ एक अच्छा संसाधन है, लेकिन इसके माध्यम से खोजना मुझे अभी भी जवाब नहीं मिला। हालांकि धन्यवाद। –

7

dmckee's answer शायद ऊपर काम करता है। यदि आप अपनी आखिरी स्थिति छोड़ देते हैं, यानी आप कोड में परिवर्तन की अनुमति देते हैं, तो एक और सामान्य समाधान है, जिसका उपयोग मैं करता हूं जब भी (ला) टीएक्स किसी चरित्र को किसी भी तरह से अलग करता है, मुझे उम्मीद है कि \symbol कमांड का उपयोग करना है । मैं उन्हें यहां सूचीबद्ध है, क्योंकि यह भी अन्य स्थितियों में उपयोगी हो सकते हैं:

\newcommand{\qq}{\symbol{34}} % 34 is the decimal ascii code for " 

और फिर अपने उदाहरण:

\begin{lstlisting} 
... 
print{\qq}The temperature is{\qq},Celsius,{\qq}degrees Celsius{\qq} 
... 
\end{lstlisting} 

नोट घुंघराले ब्रेसिज़ जो माना जाता है कि वापस LaTeX मोड में लिस्टिंग ले (देखें escapechars विकल्प पैकेज का।)

+1

यह मेरे लिए काम किया, धन्यवाद! –

+0

इसे मुफ्त टेक्स्ट में कैसे काम करना है? यह वर्तमान में –

0

शायद यह है क्योंकि मैं लिस्टिंग जल्दी एक LaTeX उपयोगकर्ता के रूप में स्थापित है, लेकिन मैं यह जानने के लिए लिस्टिंग के बिना पैकेज है कि व्यवहार किसी भी अलग है हैरान हूँ।

मेरे समाधान डेविड हनाक के समान था, लेकिन मैं LaTeX चीट शीट में वर्णित के रूप दोहरे-उद्धरण के लिए प्रतीकों का प्रयोग किया (http://stdout.org/~winston/latex)

\newcommand{\QQ}[1]{``#1''} 
3

यहाँ एक समाधान

\usepackage[T1]{fontenc} 
\usepackage{textcomp} 
\usepackage{lmodern} 

% in the listings package configuration, try: 
literate={"}{\textquotedbl}1, 
5

मैं है फोंटस्पेक का उपयोग करके, वही समस्या थी, और समाधान \defaultfontfeatures{Mapping=tex-text} पर सेट किया गया था, लेकिन इसके बजाय Mapping=tex-text को विशेष रूप से केवल मुख्य और सैन्स फ़ॉन्ट पर सेट करना और टीटी फ़ॉन्ट टी छोड़ना ओ यह अपने डिवाइस है। :)

संबंधित मुद्दे