2011-04-30 44 views
5

在Emacs中,我正在處理一個文本文檔,將unicode明文轉換爲LaTeX。如何定義爲特定字符串使用`replace-string`的Emacs命令

有,我想運行正則表達式的幾集,例如

M-x replace-string ± RET \pm RET 
M-x replace-string µ RET \textmu 

如何保存這些正則表達式,這樣我可以重複運行呢?

感謝

+0

我不知道這裏的完整故事,但你有沒有考慮切換到支持unicode的TeX引擎?我發現XeLaTeX是一個很好的選擇。 – zdav 2011-04-30 20:06:49

+0

我一直在使用xelatex,他們仍然沒有出現。例如,我試圖渲染 ±是$ \ pm $ 並且第一個沒有出現 – stevejb 2011-04-30 20:51:17

+0

您使用的是什麼字體?可能只有你的數學字體有±字形。我用minion pro試過它,它工作正常,輸入爲unicode。 – zdav 2011-05-01 18:28:42

回答

3

我一般喜歡寫自定義命令,這裏是一個爲你的第一個替換:

(defun replace-plus-minus() 
    (interactive) 
    (replace-string "±" "\\pm" nil (point-min) (point-max))) 

但是,你也可以使用鍵盤宏。請查看wikidocs

基本上,你會怎麼做:

C-x (M-x replace-string ± RET \pm RET C-x) 

然後你就可以將其命名,並將其保存到你的.emacs:

M-x name-last-kbd-macro 
M-x insert-kbd-macro 
+0

謝謝。我很欣賞自定義命令howto。我用宏錄製的麻煩是,我不知道如何使用我的鍵盤輸入±字符。我只是從其他地方粘貼它。而且,從其他地方粘貼它會殺死宏的錄製,或者至少這樣做是因爲它沒有做到我想要的。 – stevejb 2011-04-30 20:29:48

+0

只要Emacs接收*粘貼的*字符,而不是「粘貼這個」命令字符(或鼠標點擊),粘貼就可以工作。你如何做到這一點取決於你的環境(但在shell中運行'emacs -nw'可能會更容易)。 – phils 2011-05-01 22:13:44

+0

或者更容易,只需輸入任何佔位符字符,而不是錄製宏時,然後鍵入'C-x C-k RET RET'來編輯宏,並將佔位符更改爲正確的字符。在編輯器中,您沒有錄製的限制,所以您可以愉快地插入或粘貼東西。 – phils 2011-05-01 22:18:32

0

您是否嘗試過創建macro

一旦你創建了一個宏,你也可以save it到您的.emacs文件 此外,您可以運行M-X更換串並只需點擊進入兩次,它會運行一個命令。

+0

謝謝。我確實嘗試了一個宏,但看到我的意見,爲什麼這不起作用的其他答案。 – stevejb 2011-04-30 20:31:00

+0

您可能需要確保該文件支持unicode:http://www.emacswiki.org/emacs/UnicodeEncodingFind。然後找到正確的emacs組合鍵來獲得該角色(或者只是粘貼在應該工作中)。你也可以用一個臨時字符運行這個宏,用上面的方法將它保存到你的bash中,然後修改這個宏(一旦你保存,它就在你的.emacs文件的底部)。 – 2011-04-30 23:13:45

相關問題