मैं इंडेंटेशन को तोड़े बिना एलटीटीएक्स मोड में [0,1) कैसे लिख सकता हूं?


9

जब LaTeX का उपयोग करते हुए लिखते हैं latex-mode, तो मैं अक्सर अपने पाठ में "आधा-खुला अंतराल" लिखना चाहता हूं। उदाहरण के लिए, [0,1), सभी संख्याओं के समूह को संदर्भित करता है जो xसाथ 0 <= x < 1

दुर्भाग्य से, ये "असंतुलित परिसीमन" इंडेंटेशन पार्सर को भ्रमित करने के लिए प्रतीत होते हैं, जिससे निम्नलिखित पाठ अनुचित रूप से इंडेंट हो जाता है, आमतौर पर दाईं ओर बहती है।

यहाँ एक उदाहरण दस्तावेज़ है। नीचे दिए गए पाठ को करने के बाद परिणाम है C-x h M-x indent-region। सही व्यवहार 0 पैरा द्वारा इंडेंट किए गए दोनों पैराग्राफ के सभी होने चाहिए।

\documentclass{article}
\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam volutpat
at dui et mattis. Here is a half open interval $[0,1)$.  Proin
  fringilla lectus nec mi tincidunt aliquet. Vestibulum fermentum eu
  neque id egestas. Here is another $[1,2)$.  Nullam et lectus
    convallis, placerat neque non, vehicula nisi.  Fusce imperdiet
    dignissim ante, eget fringilla nisi.

    Integer fermentum nunc eget purus molestie commodo. Integer
    tristique tincidunt odio, vel rutrum diam commodo quis. Fusce a
    aliquet quam. Cras suscipit est et nisl sollicitudin
    iaculis. Aliquam erat volutpat. Phasellus sapien arcu, aliquet ut
    hendrerit in, lobortis nec ante.

\end{document}

वर्तमान में मैं इसके बारे में बदसूरत हैक के साथ काम कर रहा हूं: मैं एक एलएटीएक्स मैक्रो को परिभाषित करता हूं जो कुछ भी नहीं फैलता है, और इस मैक्रो के एक आह्वान के अंदर "मिलान" सीमांकक लिखता है। इससे सिंक में इंडेंट वापस मिलता है।

\documentclass{article}
\newcommand{\ugh}[1]{}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam volutpat
at dui et mattis. Here is a half open interval $[0,1)$.  Proin
  fringilla lectus nec mi tincidunt aliquet. Vestibulum fermentum eu
  neque id egestas. \ugh{(]} Now on the next line we are back in sync.
Nullam et lectus convallis, placerat neque non, vehicula nisi.  Fusce
imperdiet dignissim ante, eget fringilla nisi.
\end{document}

लेकिन यह वास्तव में अप्रिय है। क्या कोई बेहतर समाधान है?

मैं 24.4.1 जीएनयू एमएसीएस का उपयोग कर रहा हूं।


3
आपके प्रश्न का उत्तर नहीं दे रहा है, लेकिन क्या आपने AUCTeX को आजमाना माना है? यह इस छोटी बग से पीड़ित नहीं है, एक के लिए।
गियोर्डानो

@giordano: मैं इसे देखा है। इसका डिफ़ॉल्ट व्यवहार जो मैं चाहता हूं उससे बहुत अधिक भारी है। मैं कोड की तरह LaTeX को संपादित करना पसंद करता हूं, और मैं वास्तव में WYSIWYG- शैली में संपादक प्रतिपादन नहीं करना चाहता। शायद यह संभव है कि सभी को बंद कर दिया जाए और एक पाठ संपादक का अनुभव हो, लेकिन यह अभी भी AUCTeX को ओवरकिल की तरह लगता है।
नैट एल्ड्रेडगे

6
आप किस WYSIWYG-तरह के व्यवहार का उल्लेख कर रहे हैं? केवल ऐसी विशेषताएं पूर्वावलोकन और तह-मोड हैं और उनमें से कोई भी डिफ़ॉल्ट रूप से सक्रिय नहीं है (आपको AUCTXX का उपयोग करने के लिए संबंधित पैकेज लोड करने की आवश्यकता नहीं है)। AUCTeX और वेनिला के बीच मुख्य अंतर * TeX मोड मैक्रो और वातावरण सम्मिलित करते समय एक बहुत ही बेहतर ऑटोोकम्पशन तंत्र है। यदि आप स्वतः पूर्णता को मान लेते हैं तो AUCTeX जाने का रास्ता है। इसके अलावा, AUCTeX में आपको हमेशा * TeX कोड को एडिट करना होता है, कोई अन्य संभावनाएं नहीं हैं, मुझे नहीं पता कि आपके पास यह गलत धारणा क्यों थी।
जिओरडनो

जवाबों:


7

Emacs समाधान नहीं है, लेकिन मेरा LaTeX कोड इस तरह के अंतराल को लिखता है \halfopen{0}{1}, जहां

\newcommand\halfopen[2]{\ensuremath{[#1,#2)}}

यह सम्मेलन संतुलन की समस्या को एक ऐसी जगह पर धकेल देता है जहाँ समस्याएँ उत्पन्न होने की संभावना नहीं है। और यह खोज योग्य है :-)


2
आप किस चीज का उपयोग करते हैं (0,1]?
एंड्रयू स्वान

@ शायद एंड्रयू-स्वान \openhalfhehehe
Dox

@AndrewSwann\halfclosed
नॉर्मन राम्से

2

खरोज समारोह latex-indentका latex-modeसेट करने के लिए वाक्य रचना की मेज tex-latex-indent-syntax-tableऔर कॉल latex-find-indentबारी कॉल में जो latex-backward-sexp-1

का सिंटैक्स ?\(और ?\)सेट है "."जो "विराम चिह्न" के लिए खड़ा है। इसलिए यह अब परिसीमन नहीं है।

इसलिए, जैसे भाव [0,1)एक में परिणाम scan-errorमें latex-backward-sexp-1जो अप्रत्याशित व्यवहार करने के लिए होता है।

आप अपनी इनिट फ़ाइल में निम्न जोड़कर इससे बच सकते हैं:

(eval-after-load "tex-mode"
    '(progn (modify-syntax-entry ?\( "()" tex-latex-indent-syntax-table)
             (modify-syntax-entry ?\) ")(" tex-latex-indent-syntax-table)))

लेकिन, मुझे इस सेटिंग के नकारात्मक परिणामों का पता नहीं है क्योंकि मैं उपयोग करता हूं auctex। तो, सबसे खराब की उम्मीद; ;-)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.