我使用 Emacs 和 AUCTeX 作为编辑器。现在,如果我使用C-c C-e并创建一个enumerate
环境,它将为我提供
\begin{enumerate}
\item
\end{enmerate}
我想要的是
\begin{enumerate}
\item
\end{enumerate}
或者至少
\begin{enumerate}
\item
\end{enumerate}
这是开始和第一个项目之间的单个换行符。我希望这适用于所有带有项目的环境。谢谢。
答案1
这可能不是最有效的方法,但它应该可以完成工作:
(defun TeX-arg-item-with-newline (_optional)
"Insert \\item with a newline above and below the macro.
OPTIONAL is ignored."
(when (or TeX-arg-item-label-p
(string-equal (LaTeX-current-environment)
"description"))
(let ((TeX-arg-opening-brace LaTeX-optop)
(TeX-arg-closing-brace LaTeX-optcl))
(TeX-argument-insert (TeX-read-string
(TeX-argument-prompt t nil "Item label"))
t)))
(insert " ")
(save-excursion
(re-search-backward "\\\\item"
(line-beginning-position) t)
(forward-line -1)
(unless (looking-at-p "^[ ]*$")
(forward-line)
(LaTeX-newline)
(indent-according-to-mode)))
(save-excursion
(forward-line)
(unless (looking-at-p "^[ ]*$")
(LaTeX-newline)
(delete-horizontal-space))))
(add-hook 'LaTeX-mode-hook
(lambda ()
(TeX-add-symbols '("item" TeX-arg-item-with-newline ignore))))