情弱ログ

参考にならないので当てにしないでください

Emacsで保存時に句読点を全角コンマと全角ピリオドに置換する設定

様式か、風習か、日本語で論文を書くときは「、」や「。」は「,」と「.」に置き換えなくてはいけない。
句読点の設定はだいたいどのIMEにもあるメジャーな設定なのでそこまで困ることではないが、グローバルに変更されると他の文章も全て全角コンマ・ピリオドになるためなかなか使い勝手が悪い。
どうせなのでTeX modeの時は保存時に句読点を全角コンマと全角ピリオドに置換してくれるEmacs Lispを書いた。

(defun replace-dot-comma ()
  "s/。/./g; s/、/,/g;する"
  (interactive)
  (let ((curpos (point)))
    (goto-char (point-min))
    (while (search-forward "。" nil t) (replace-match "."))
    
    (goto-char (point-min))
    (while (search-forward "、" nil t) (replace-match ","))
    (goto-char curpos)
    ))

(add-hook 'tex-mode-hook
          '(lambda ()
             (add-hook 'before-save-hook 'replace-dot-comma nil 'make-it-local)
             ))

これで執筆中は何も考えることなく「、」と「。」を使うことができ、保存時には勝手に「,」と「.」に置換してくれる。

今時Emacs上でTeXで論文書くような人はこんなのよりもっと便利なものを知ってそう