라텍스 모드에서 여러 줄로 된 방정식과 테이블 정렬


12

Auctex의 라텍스 모드에서 라텍스를 편집하고 있다고 가정 해 봅시다.
이 방금 들여 쓰기됩니다 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을 선택하고 정렬하려는 정규식 문자를 사용 하고 제공 할 수 있습니다 +|=. 해당 문자 중 일부를 이스케이프해야 할 수도 있습니다.
Kaushal Modi

입력 한 정규식은 실제로 [+=]입니다. 그러나 그것은 당신이 원하는 것을 정확하게 제공하지 않을 것입니다 . &그것은와 함께 정렬되지 않습니다 +.
Kaushal Modi

답변:


6

원하는 결과는 이미 2013 년 10 월 이후 AUCTeX 기능 입니다. 현재 릴리스 (11.87)에는 아직 없습니다. 당신이 할 일은 지역을 표시하고 누르십시오 TAB. LaTeX-hanging-ampersand-position들여 쓰기 구현 방법을 참조하십시오 .


좋아, TAB은 실제로 작동합니다! 이제 git repo를 패키지로 바꾸는 방법은 무엇입니까? 나는 그것을 잘 설치했다. 그러나 나는 auctex에 의존하는 elpa 패키지를 가지고 make install있으며 git repo에서 호출 하는 것이 "auctex"패키지를 정의하지 않아 다른 패키지가 초기화되지 않는 것 같습니다.
Malabarba

(require 'tex-site)make install완료 후 충분해야합니다 .
abo-abo

@ abo-abo 이것은 auctex를 활성화하지만 package.el은 여전히 ​​나를 위해 그것을 보지 못합니다. 어쨌든 Elpa에서 Auctex를 -pkg설치하고 설치 디렉토리에서 파일을 제외한 모든 것을 제거 하여이 문제를 해결했습니다 .
Malabarba

4

방정식의 \ begin과 \ end 사이에 빈 줄이 없다고 가정하면 커서가 \ begin- \ 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))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.