【YaTeX・Emacs】句読点を変換する(、。→ ,.)


はじめに

僕は現在大学院に所属しており、よく論文を書いています。
日本語の論文では、ルール(慣例?)として句読点は「,」と「.」を使うことになっています(全角です)。
なので、僕の場合Google日本語入力を使っているので、その環境設定で句読点はデフォルトで「,」と「.」になるようにしています。

しかし、PCでやることはなにも論文執筆だけじゃない。。。
LINEやSlackで連絡を取ることもあれば、TwitterやFacebook、Qiitaで情報発信したりする。

そんなときに句読点が「,」と「.」だと、ちょっと固い文章になってしまう。 …と僕は思っています。

したがって、Google日本語入力のデフォルトは「、」と「。」にして、論文書くときだけエディタ上で勝手に「,」と「.」へと変換してくれるようにしました。なので、メモとしてここに残しておきます。

環境

下記が導入済みの環境を想定しています。

  • Emacs
  • YaTeX

手順

今回はこちらの記事を参考にさせていただきました。(ありがとうございました🙇)

僕が実際に追加したのは以下のコードです。
このコードをinit.elに追記します。

ただし、今回は僕が使っているYaTeXモードにフックをかけています。
皆さんの環境に合わせてyatex-mode-hook(下から4行目)のところをtex-modeなりに変えてください。

init.el
(defun replace-dot-comma ()
  (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 'yatex-mode-hook
          '(lambda ()
             (add-hook 'before-save-hook 'replace-dot-comma nil 'make-it-local)
             ))

いざ、変換!

少し分かりづらいかもしれないですが、保存した瞬間(下の方に「Wrote 〜」と出た瞬間)に全て変換されていますね!