Отступ LaTeX (форматирование) в Emacs - PullRequest
9 голосов
/ 19 марта 2010

Как правильно сделать отступ для документа LaTeX в Emacs (AucTex)?

Например, когда у меня есть список:

\begin{itemize}
\item orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst.
\item orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst.
\end{itemize}

и хотел бы получить:

\begin{itemize}
  \item orem ipsum dolor sit amet, consectetur
    adipiscing elit. Aliquam enim urna, mattis eu aliquet eget,
    condimentum id nibh. In hac habitasse platea dictumst.
  \item orem
    ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim
    urna, mattis eu aliquet eget, condimentum id nibh. In hac
    habitasse platea dictumst.
\end{itemize}

Я пытался indent-region, но ничего не происходит, и LaTeX-fill-* дает странные результаты, такие как:

\begin{itemize} \item orem ipsum dolor sit amet, consectetur
  adipiscing elit. Aliquam enim urna, mattis eu aliquet eget,
  condimentum id nibh. In hac habitasse platea dictumst. \item orem
  ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim
  urna, mattis eu aliquet eget, condimentum id nibh. In hac
  habitasse platea dictumst. \end{itemize}

Спасибо!

Ответы [ 3 ]

23 голосов
/ 19 марта 2010

Вы уверены, что правильно установили AUCTeX? LaTeX-режим AUCTeX называется LaTeX-mode, в то время как latex-mode является (хромой) настройкой Emacs. Проверьте текущий основной режим с помощью C-h m.

Когда я помещаю курсор в начало окружения и нажимаю C-c C-q C-e (LaTeX-fill-environment), я получаю следующее:

\begin{itemize}
\item orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam
  enim urna, mattis eu aliquet eget, condimentum id nibh. In hac
  habitasse platea dictumst.
\item orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam
  enim urna, mattis eu aliquet eget, condimentum id nibh. In hac
  habitasse platea dictumst.
\end{itemize}

Список команд заполнения AUCTeX:

  • C-c C-q C-e (LaTeX-fill-environment)
  • C-c C-q C-p (LaTeX-fill-paragraph)
  • C-c C-q C-r (LaTeX-fill-region)
  • C-c C-q C-s (LaTeX-fill-section)

Вы также можете просто нажать M-q (fill-paragraph) во время ввода.

3 голосов
/ 25 декабря 2013

Чтобы получить отступ в 2 пробела:

(setq LaTeX-item-indent 0)

( источник )

Вы можете автоматически заполнить среду:

(add-hook 'LaTeX-mode-hook 'turn-on-auto-fill)

( 1012 * источник *)

1 голос
/ 19 марта 2010

Я широко использую следующую функцию, которую я позаимствовал у Лука да Альфаро :

(defun fill-sentence ()
  (interactive)
  (save-excursion
    (or (eq (point) (point-max)) (forward-char))
    (forward-sentence -1)
    (indent-relative)
    (let ((beg (point)))
      (forward-sentence)
      (if (equal "LaTeX" (substring mode-name (string-match "LaTeX" mode-name)))
          (LaTeX-fill-region-as-paragraph beg (point))
        (fill-region-as-paragraph beg (point))))))

Это работает и вне AUCTeX. Я связываю это с M-j используя:

(global-set-key "\ej" 'fill-sentence)
...