2012-08-06 14 views
19

मैं पुन: संरचित पाठ में एक गैर-ब्रेकिंग स्पेस कैसे बना सकता हूं?मैं पुन: संरचित पाठ में एक गैर-ब्रेकिंग स्पेस कैसे बना सकता हूं?

एक स्पष्ट लेकिन समस्याग्रस्त समाधान है:

`word A` 

लेकिन इसे दूसरे तरीके से इस तरह के rst2latex या rst2pdf के रूप में विभिन्न कार्यान्वयन, द्वारा इलाज किया जा सकता है। इसके अलावा यह इटालिक्स में प्रस्तुत किया जाता है।

उत्तर

4

मुझे यहां समस्या नहीं दिखाई दे रही है, docutils v0.9 चल रहा है। कम से कम rst2latex और rst2html गैर-ब्रेकिंग व्हाइटस्पेस के संबंध में ठीक से व्यवहार कर रहे हैं। लेटेक्स उत्पन्न करता है ~ और एचटीएमएल & nbsp; जब आप एक गैर-ब्रेकिंग वर्ण इनपुट करते हैं (\ xa0, \ 0240)।

शायद आपके पास एक संपादक समस्या है? यदि आप चरित्र को इनपुट करने में सक्षम हो सकते हैं, तो डॉक्यूटिल्स नौकरी करेगा।

+2

एक गैर-दृश्यमान चरित्र उपयोगी नहीं है – jterrace

+0

फिर आप या तो इसे अपने संपादक को कॉन्फ़िगर कर सकते हैं या अपनी इनपुट फ़ाइलों में अतिरिक्त प्रीप्रोकैसिंग पास का उपयोग कर सकते हैं ... –

19

आप यूनिकोड के निर्देश की जरूरत है, लेकिन यह केवल प्रतिस्थापन में इस्तेमाल किया जा सकता है। तो अगर आप इस तरह एक प्रतिस्थापन परिभाषित करने की जरूरत:

.. |nbsp| unicode:: 0xA0 
    :trim: 

और उसके बाद इस तरह इसका इस्तेमाल:

xx |nbsp| xx 

:trim: है प्रतिस्थापन आसपास के लोगों रिक्त स्थान से छुटकारा पाने के।

+0

'xx \ | nbsp | \ xx'' काम करता है? – jterrace

+0

ऐसा लगता है कि 0xA0 प्रतिस्थापन मेरे लिए HTML में वर्ण 32 के रूप में आता है :( – jterrace

+0

1) xx \ | nbsp | \ xx चीज रेंडरर में काम करती है (http://www.tele3.cz/jbar/rest/rest .html) ... 32 के बारे में कोई विचार नहीं :( – ynka

0

मैं स्फिंक्स के लिए एक कामकाज के साथ आ गया। मैं ~ वर्ण को गैर-ब्रेकिंग स्पेस में बदलने के लिए HTML और LaTeX लेखकों को ओवरराइट करता हूं। यहाँ एचटीएमएल एक है:

import sphinx.writers.html 
BaseTranslator = sphinx.writers.html.SmartyPantsHTMLTranslator 

class CustomHTMLTranslator(BaseTranslator): 

    def bulk_text_processor(self, text): 
     if '~' in text: 
      text = text.replace('~', ' ') 
     return text 

sphinx.writers.html.SmartyPantsHTMLTranslator = CustomHTMLTranslator 

और LaTeX एक:

import sphinx.writers.latex 
BaseTranslator = sphinx.writers.latex.LaTeXTranslator 

class DocTranslator(BaseTranslator): 

    def visit_Text(self, node): 
     if self.verbatim is not None: 
      self.verbatim += node.astext() 
     else: 
      text = self.encode(node.astext()) 
      if '\\textasciitilde{}' in text: 
       text = text.replace('\\textasciitilde{}', '~') 
      if not self.no_contractions: 
       text = educate_quotes_latex(text) 
      self.body.append(text) 

sphinx.writers.latex.LaTeXTranslator = DocTranslator 

यह न तो बहुत है, और यह भी आप ~ चरित्र बच नहीं करता है, लेकिन यह मेरी प्रयोजनों के लिए काम करता है।

7

|nbsp| के स्थान पर आप |_| का भी उपयोग कर सकते हैं जो कि कम दृष्टि से घुसपैठ कर रहा है, जिसे रील्डक्चरर्डटेक्स्ट के सादा पाठ के रूप में पढ़ने योग्य लक्ष्य दिया गया है।

+0

मैं आपको +1 कर रहा हूं लेकिन आपको लिखा होगा ynka उत्तर के लिए एक टिप्पणी ... – Davide

+2

@ डेविड और 'शो एन ​​अधिक टिप्पणियां' लेबल द्वारा छुपाया जा रहा है –

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