我在 Emacs 的 AucTex 模式下遇到了分项列表中的换行符问题。如果我遇到此问题,C-c C-e RET itemize RET
我预计会出现以下情况
\begin{itemize}
\item
\end{itemize}
而是得到
\begin{itemize}\item
\end{itemize}
此外,当我C-c C-j
在项目末尾执行此操作时,它只会给我一个新的,\item
而不会让我进入新的一行。因此,C-h k C-c C-j
显示
C-c C-j runs the command LaTeX-insert-item, which is an interactive
compiled Lisp function in `latex.el'.
It is bound to C-c C-j, M-RET, <menu-bar> <LaTeX> <Item>.
(LaTeX-insert-item)
Insert a new item in an environment.
You may use `LaTeX-item-list' to change the routines used to insert the item.
那么,我的 LaTeX-insert-item 似乎出了问题?我该如何恢复正确的C-c C-j
行为?
答案1
步骤 1:完全关闭 Emacs 并重新启动。如果问题是由您无意中更改某些设置/变量引起的,这将解决问题。
第 2 步:如果这不起作用:
注释掉 .emacs 中的所有内容除了用于加载 AUCTeX 的行。在我的例子中,该行是:
(load "auctex.el" nil t t)
命令
M-;
将注释掉活动区域中的所有内容。如果该区域已被注释,它还将取消注释该区域中的所有内容,因此您需要使用它而不是手动添加一大堆 ;;。
按照步骤 2,您应该有一个未修改的 Emacs + AUCTeX 版本,因此您应该恢复正确的行为。这将确认问题是您的 .emacs 文件中与 AUCTeX 冲突的内容。如果问题仍然存在,则可能是 AUCTeX 中的一个错误,尽管对于如此常用的功能来说,这种情况似乎不太可能发生。
步骤 3:取消注释更多 .emacs,然后重新启动。如果问题再次出现,则是由现在取消注释的代码引起的。如果没有,请重复该过程,直到找到触发问题的代码。
步骤4:自己解决问题,或者就您发现的导致冲突的具体代码提出另一个问题。
答案2
我知道这是一个老问题,但我最近遇到了同样的问题。
根据 Tyler 的建议,我发现问题出(setq comment-auto-fill-only-comments t)
在我的 init.el 中。此行位于 内emacs-lisp-mode-hook
,但变量是全局设置的。设置comment-auto-fill-only-comment
为nil
或使其成为缓冲区本地(到其他缓冲区)可以解决这个问题。
我还发现了线在 AUCTeX 邮件列表中讨论了这个问题。
答案3
我发现这个先前的问题我曾经问过一个非常类似的问题。
建议补充:
(defadvice LaTeX-insert-item (around my-LaTeX-insert-item activate)
(let ((LaTeX-insert-into-comments nil)) ad-do-it))
到 .emacs
这解决了问题。