2012-05-24 63 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