Синтаксис Emacs AucTex Latex предотвращает моноширинный шрифт

Мой emacs (Aquamacs с AucTex) изменяет размер шрифта (например, в режиме LaTeX), чтобы показать синтаксис, например:

введите здесь описание изображения

К сожалению, это разрушает смысл моноширинного шрифта - например. мои комментарии не совпадают. Как решить эту проблему?


person hpekristiansen    schedule 02.03.2012    source источник


Ответы (2)


Для конкретного примера разделов, глав и т. д. добавьте к .emacs следующее:

(setq font-latex-fontify-sectioning 'color)

Редактировать Вот конфигурация, которую я обычно использую для настройки форматирования AUCTeX:

;; Only change sectioning colour
(setq font-latex-fontify-sectioning 'color)
;; super-/sub-script on baseline
(setq font-latex-script-display (quote (nil)))
;; Do not change super-/sub-script font
(custom-set-faces
 '(font-latex-subscript-face ((t nil)))
 '(font-latex-superscript-face ((t nil)))
 )
;; Exclude bold/italic from keywords
(setq font-latex-deactivated-keyword-classes
    '("italic-command" "bold-command" "italic-declaration" "bold-declaration"))
person Sébastien Le Callonnec    schedule 02.03.2012
comment
Знаете ли вы общий способ сказать, никогда ничего не меняйте в лице, кроме цвета? В идеале я хотел бы указать Emacs игнорировать жирный шрифт, курсив, надстрочные и нижние индексы, изменения размера и т. д., а просто использовать цвет, но я так и не нашел общего способа сделать это. Фрагмент кода, который я разместил в ответе ниже, отменяет эти изменения постфактум, но было бы чище просто выразить свое намерение напрямую, если это возможно. - person deong; 03.03.2012
comment
@deong Боюсь, что нет; Я установил font-latex-script-display, font-latex-subscript-face в nil, а затем добавил italic-command / bold-command и т. д. к font-latex-deactivated-keyword-classes — мне никогда не нужно было делать больше, чем это (=. - person Sébastien Le Callonnec; 03.03.2012
comment
@SébastienLeCallonnec: Это действительно здорово. Могу ли я попросить вас отредактировать свой ответ, чтобы включить все материалы из вашего комментария? - для дальнейшего использования, и потому что мои навыки elisp находятся на уровне копирования и вставки :o) - person hpekristiansen; 03.03.2012
comment
@SébastienLeCallonnec: Знаете ли вы, почему это работает в моем .emacs, но я не могу вызвать его из emacs с помощью M-x? - person hpekristiansen; 03.03.2012
comment
@ Hans-PeterE.Kristiansen: Я не уверен. Однако в документации AUCTeX указано, что для учета этих значений необходимо перезапустить Emacs. - person Sébastien Le Callonnec; 03.03.2012
comment
@ Hans-PeterE.Kristiansen Я добавил конфигурацию, которую обычно использую, вместе с некоторыми комментариями. Надеюсь это поможет. - person Sébastien Le Callonnec; 03.03.2012

Если вы найдете решение этой проблемы, пиво на мне. Лучшее, что я смог придумать, это поместить куда-нибудь в свой .emacs следующее и запустить функцию после загрузки режима, который делает это (режим org тоже делает это).

(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))))

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

person deong    schedule 02.03.2012