Есть ли способ предотвратить блокировку шрифта от изменения семейства шрифтов (и изменить только цвет)? - PullRequest
6 голосов
/ 22 октября 2011

По общему признанию, это проблема первой мировой проблемы, но я немного придирчив к внешнему виду дисплея, и я нахожу это действительно раздражающим, когда какой-то режим устанавливает новый размер шрифта, семейство, полужирный / курсив и т. Д. Что я хотел бы сделать, так это поместить (set-frame-font "Menlo-10") в верхнюю часть моего .emacs, а затем заставить emacs никогда не изменять любой аспект этого шрифта по умолчанию, кроме цвета.

Я могу получить желаемый эффект, сделав что-то вроде этого:

(mapc (lambda (face) 
    (set-face-attribute face nil
                        :family "Menlo"
                        ;; something like (cdr (assoc 'font (frame-parameters)) would be better
                        ;; for the :family, but it didn't immediately work
                        :width 'normal
                        :height 1.0
                        :weight 'normal 
                        :underline nil
                        :slant 'normal))
    (remove 'default (face-list)))

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

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

В настоящее время я использую Emacs 24, извлеченный из HEAD.

1 Ответ

5 голосов
/ 23 октября 2011

Запуск customize-face с курсором на интересующем вас лице позволит вам увидеть, как определено это лицо (и изменить его).Выполнение этого в заголовке раздела дает мне font-latex-sectioning-1-face.Это наследует от font-latex-sectioning-2-face и т. Д. До font-latex-sectioning-5-face, что, в свою очередь, наследует форму variable-pitch (что и меняет семейство шрифтов).В документации также упоминается, что лучше изменить базовую грань font-latex-sectioning-5-face или переменную font-latex-fontify-sectioning.Вы можете установить этот последний на 'color, который будет делать то, что вы хотите (я думаю).Кроме того, вы можете настроить font-latex-sectioning-5-face, чтобы не наследовать от variable-pitch, или изменить variable-pitch, чтобы он не был переменной высотой тона.

...