Русская типографика в Emacs

В школе я терпеть не мог уроки русского языка. Наверное это потому, что язык — сложная вещь, а учить десятки и сотни почти не связанных друг с другом условностей для меня всегда было невыносимо. Но в то же время мне нравятся красивые вещи.

С новым тысячелетием интернет вошел в жизнь и принес с собой возможность писать и публиковать на весь мир плоды своих мыслей. Представление результатов мыслительной деятельности не сильно изменилось за последние несколько тысяч лет — это текст. Набранный текст, который я вижу на экране — это вполне материальная вещь, и если у многих людей хватает ума позаботиться о внешнем виде сайта, хорошем дизайне и красивых картинках, то должнó позаботиться и о красоте текста.

Если в школе не было настоящего мотива заморачиваться графическим представлением текстов — всё писалось от руки, написанное не читалось более чем двумя людьми, то сейчас, когда статью в блоге могут прочесть сотни и тысячи человек, мотив определенно есть.

В отличие от языка, с его сотнями сложных правил; правил которые говорят о том, как должен выглядеть красивый печатный текст гораздо меньше, и они значительно проще. Если не вдаваться в подробности профессиональной типографики, то для получения сносного текста достаточно уметь применять всего 6 символов. Здесь я не буду рассказывать о правилах применения — о них хорошо рассказал Лебедев в своем «Ководстве»: § 62. Экранная типографика, § 97. Тире, минус и дефис, § 104. Кавычки, § 158. Короткое тире; я расскажу как прикрутить типографику к Emacs.

Вам понадобится пакет typopunct.el, положите его в вашу директорию с пакетами Emacs.

Поместите нижеследующий код в конфигурационный файл Emacs'а.

  1. Загружаем typopunct.el и выбираем русскую типографику:
    (require 'typopunct)
    (setq-default typopunct-buffer-language 'russian)
    
  2. Функция включает typopunct-mode.
    (defun turn-on-typopunct-mode ()
      (typopunct-mode t))
    
  3. Здесь я включаю типографику в режимах org-mode и markdown-mode. Чтобы включить типографику в других режимах — добавте функцию turn-on-typopunct-mode в соответствующие ловушки или воспользуйтесь командой M-x typopunct-mode.
    (add-hook 'markdown-mode-hook 'turn-on-typopunct-mode)
    (add-hook 'org-mode-hook 'turn-on-typopunct-mode)
    

Запустите Emacs и типографские символы к вашим услугам:

  • Дефис: -
    Кто-либо
  • Короткое тире: --
    20092010
  • Тире: ---
    Кто здесь?
  • Неразрывный пробел и тире: C-x 8 Space ---
    Уссурийск — Владивосток
  • Кавычки-ёлочки: "
    «ёлочки»
  • Кавычки-лапки: '
    лапки
  • Одинарная кавычка: C-q '
    'символ
  • Двойная кавычка: C-q "
    "строка"