Emacs:在LaTeX模式下填写段落时关闭缩进

时间:2012-05-24 19:00:48

标签: emacs

当我使用emacs编辑乳胶文档时,段落填充(Esc-q)不能满足我的要求。例如,像:

The component \vn{%vec} is not similar to

当我使用填充时,我得到:

The component \vn{%vec} is not
                  % similar to

也就是说,emacs将“%”作为注释字符并相应填写段落。但是,“\ vn”是我的一个宏,它在texttt模式下设置文本,这里“%”只是一个普通的可打印字符,所以段落填写错误。

所以我想要的是段落填充与文本模式中的相同。也就是说,没有缩进,也没有添加额外的字符。但是每次我想要段落填充时,我都不想在文本模式和乳胶模式之间切换。有没有办法做到这一点?

感谢您的帮助。 - 大卫

PS:是的,我知道如果在行尾有真正的注释,那么测试模式填充将无法正确执行。但是我从来没有在行尾给出评论所以这永远不会打扰我。

3 个答案:

答案 0 :(得分:1)

我找到了解决方案。我把它放在我的init.el文件中:

(add-hook 'latex-mode-hook        '(lambda() (setq comment-start nil)))
(add-hook 'tex-mode-hook          '(lambda() (setq comment-start nil)))

(add-hook 'latex-mode-hook        '(lambda() (setq fill-indent-according-to-mode nil)))
(add-hook 'tex-mode-hook          '(lambda() (setq fill-indent-according-to-mode nil)))

我喜欢emacs,但文档(或缺少文档)有时会让我发疯... :)。

答案 1 :(得分:0)

您可以尝试:

(setq comment-start nil)

处理这个特定情况。

答案 2 :(得分:0)

您要解决的问题是真正问题的症状 - latex-mode 天真地在“%”之后标记代码作为评论。

安装auctex-mode会解决您的问题吗?