2012-05-24 33 views
1

当我使用emacs编辑latex文档时,段落填充(Esc-q)不会执行我想要的操作。例如,像:Emacs:在填写LaTeX模式时关闭缩进

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

当我使用填补我得到:

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

也就是说,Emacs是取“%”是一个注释字符,并相应地填充段落。然而,“\ vn”是我的一个宏,它在texttt模式下设置文本,这里的“%”只是一个普通的可打印字符,所以段落填充不正确。

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

感谢您的帮助。 - David

PS:是的,我知道如果在行尾有真正的注释,那么测试模式填充将不会正确执行。但是我从不在行尾写评论,所以这绝不会影响我。

回答

0

你可以试试:

(setq comment-start nil) 

来处理这种特殊情况。

+0

这有帮助,但我仍然得到一些有趣的缩进。例如: 行1 ... 行2 ... 行3 ... – DavidS

0

您试图修复的是真实问题的症状 - latex-mode是 天真地将代码标记为“%”之后的评论。

安装auctex-mode是否解决了您的问题?

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,但文档(或缺乏)有时会让我发疯...... :)。

+0

您已通过突破其他功能解决了一个错误的症状。请考虑使用'report-emacs-bug'来提出问题。 –

+0

请注意,'setq'可以一次设置多个变量。 – Thomas

+0

到event_jr:这真的是一个错误吗?在这种情况下,emacs无法说明%是注释符。特别是因为“\ vn”是在另一个文件中定义的。 – DavidS