लेटेक्स-मोड में बहु-पंक्ति समीकरणों और तालिकाओं को संरेखित करना


12

मान लीजिए कि मैं औक्सेक्स के लेटेक्स-मोड में एक लेटेक्स का संपादन कर रहा हूं, और मेरे पास निम्नलिखित समीकरण हैं।
यह बस के साथ प्रेरित है indent-region

\begin{align}
    \phi & = a + b
    + c + d \\
    & = a + b
    + c + d + e
\end{align}

उपरोक्त संरेखण वह है जो मुझे मिलता है यदि मैं सब कुछ चुनता हूं और हिट करता हूं TAB, अर्थात, यदि मैं बस उपयोग कर रहा हूं indent-region

जो मैं प्राप्त करना चाहूंगा वह निम्नलिखित है:
ध्यान दें कि कैसे & के बाद+ c + d पाठ के साथ संरेखित किया गया है । यह सबसे अधिक समझदार होगा, जैसा कि उसी "कॉलम" का हिस्सा है ।+ c + d= a + b

\begin{align}
    \phi & = a + b
           + c + d \\
         & = a + b
           + c + d + e
\end{align}

नीचे अगर मैं फोन मैं क्या मिलता है align-current

\begin{align}
    \phi & = a + b
    + c + d \\
         & = a + b
         + c + d + e
\end{align}

जो लगभग वहाँ मिलता है, लेकिन काफी नहीं। अंतर स्पष्ट है।
इसके अलावा, अगर मैं निकालने का निर्णय लेते \phi, align-currentकुछ बस विचित्र करता है:

\begin{align}
 & = a + b
    + c + d \\
 & = a + b
         + c + d + e
\end{align}

क्या कोई ऐसा तरीका है जिससे मैं align-currentवांछित प्रभाव प्राप्त करने के लिए किसी अन्य चीज को अनुकूलित या उपयोग कर सकता हूं ?


1
मैं उचित उत्तर लिखने के लिए वर्तमान में अपने कंप्यूटर पर नहीं हूं। लेकिन आप उस क्षेत्र का चयन कर सकते हैं और उपयोग कर सकते हैं align-regexpऔर उन पात्रों का रीजेक्स प्रदान कर सकते हैं जिन्हें आप संरेखित करना चाहते हैं +|=। आपको उन पात्रों में से कुछ को बचाना पड़ सकता है।
कौशल मोदी

आपके द्वारा दर्ज किया गया रेगेक्स वास्तव में है [+=]। लेकिन यह बिल्कुल वही नहीं देगा जो आप चाहते थे .. यह &साथ संरेखित नहीं करेगा +
कौशल मोदी

जवाबों:


6

परिणाम जो आप चाहते हैं वह अक्टूबर 2013 से एयूसीटीईएक्स सुविधा पहले से ही है । यह वर्तमान रिलीज़ (11.87) में अभी तक मौजूद नहीं है। आपको बस इस क्षेत्र को चिह्नित करना है और हिट करना है TAB। देखें LaTeX-hanging-ampersand-positionकि इंडेंटेशन कैसे लागू किया जाता है।


ठीक है, TAB वास्तव में काम करता है! अब मैं git रेपो को पैकेज में कैसे बदलूं? मैं इसे ठीक से स्थापित करने में कामयाब रहा। लेकिन मेरे पास एल्पा पैकेज हैं जो auctex पर निर्भर करते हैं, और ऐसा लगता make installहै कि git रेपो से कॉल करने पर "auctex" पैकेज परिभाषित नहीं होता है, इसलिए वे अन्य पैकेज आरंभ करने में विफल होते हैं।
मालाबार

(require 'tex-site)पूरा होने के बाद पर्याप्त होना चाहिए make install
abo-abo

@ abo-abo जो auctex को सक्रिय करता है, लेकिन package.el अभी भी इसे मेरे लिए नहीं देखता है। किसी भी स्थिति में, मैंने एल्पा से एलेटेक्स को स्थापित करके और बस सब कुछ हटा दिया, लेकिन -pkgइसकी स्थापना निर्देशिका से फ़ाइल को हटा दिया ।
मालाबार

4

यह मानते हुए कि आपके समीकरणों के \ start और \ end के बीच आपकी कोई खाली लाइनें नहीं हैं, आप इस फ़ंक्शन को कॉल कर सकते हैं, जबकि आपका कर्सर कहीं भी \ start- \ end क्षेत्र के भीतर है।

(defun my/align-latex-eq ()
  "Align the & chars and then align the +/= chars."
  (interactive)
  (backward-paragraph)
  (mark-paragraph)
  ;; align-regexp syntax:  align-regexp (beg end regexp &optional group spacing repeat)
  (align-regexp (region-beginning) (region-end) "\\(\\s-*\\)&" 1 1 nil)
  (mark-paragraph)
  (align-regexp (region-beginning) (region-end) "\\(\\s-*\\)[+=]" 1 1 nil))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.