Если вы найдете решение этого вопроса, пиво на мне. Лучшее, что я смог придумать до сих пор, - это поместить следующее в моем .emacs где-нибудь и запустить функцию после загрузки режима, который делает это (в режиме org-mode).
(defun fix-fonts()
(interactive)
(mapc
(lambda (face)
(set-face-attribute face nil
;; :family (if (string= system-type "darwin")
;; "Menlo"
;; "Inconsolata")
:width 'normal
:height 1.0
:weight 'normal
:underline nil
:slant 'normal))
(remove 'default (face-list))))
Я не делаю семейную вещь больше, потому что у меня не было времени, чтобы понять, хороший способ, чтобы получить его программно право, и это, кажется, не имеет значения, но ваш пробег может варьироваться. Кроме того, я ничего не устанавливаю в шрифте по умолчанию, потому что некоторые другие значения являются относительными и нуждаются в фиксированной контрольной точке.
Вы знаете общий способ сказать: «Ничего не измените ничего, кроме лица». В идеале я хотел бы сказать Emacs игнорировать смелые, курсивы, супер и индексы, изменения размера и т. Д., И просто использовать цвет, но я никогда не нашел общий способ сделать это. Фрагмент кода, который я опубликовал в ответе ниже, отменяет эти изменения после факта, но было бы проще просто выразить свое намерение напрямую, если это возможно. – deong
@deong Я боюсь, что нет; Я установил 'font-latex-script-display',' font-latex-subscript-face' в 'nil', а затем добавил' italic-command'/'bold-command' и т. Д. В' font-latex-deactivated- keyword-classes' - мне никогда не нужно было делать больше (=. –
@ SébastienLeCallonnec: Это действительно здорово. Могу ли я попросить вас отредактировать свой ответ, чтобы включить все материалы из вашего комментария? мои навыки elisp находятся на уровне копирования и вставки: o) – hpekristiansen