[Comm] [LINUX] В Emacs не хочет устанавливаться шрифт cronyx-courier по умолчанию
Eugine V. Kosenko
=?iso-8859-1?q?eugine=5Flist_=CE=C1_ukr=2Enet?=
Вс Апр 2 19:50:26 MSD 2006
Заранее прошу прощения за широкую рассылку, но я окончательно перестал
понимать в чем проблема. Началось все примерно так:
Eugine V. Kosenko wrote:
> Значица так, Gentoo, локаль UTF8, Emacs 21.4, xorg 6.8 без xfs, в
> xorg.conf прописано:
>
> FontPath "/usr/share/fonts/cyrillic/"
> FontPath "/usr/share/fonts/TTF/"
> FontPath "/usr/share/fonts/Type1/"
> FontPath "/usr/share/fonts/misc/"
> FontPath "/usr/share/fonts/75dpi/"
> FontPath "/usr/share/fonts/100dpi/"
>
> В xfontsel для семейства courier четко видны кириллические шрифты от
> adobe и cronyx.
>
> ~/.emacs зачищен, то бишь, никаких кустомизаций!
>
> Открываю любой файл с кириллицей, вижу веселые квадратики на местах
> соответствующих букв. Если поставить языковое окружение UTF-8, то в
> конфигураторе появляется:
>
> (custom-set-variables
> ;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
> ;; Your init file should contain only one such instance.
> '(case-fold-search t)
> '(current-language-environment "UTF-8")
> '(default-input-method "rfc1345"))
> (custom-set-faces
> ;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
> ;; Your init file should contain only one such instance.
> )
>
> Однако квадратики не исчезают. Иду в кустомизацию face, открываю в Basic
> Faces настройки Default, вижу Font Family adobe-courier. Понятно, что в
> этом семействе нет кириллицы, заменяю на cronyx-courier:
>
> (custom-set-variables
> ;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
> ;; Your init file should contain only one such instance.
> '(case-fold-search t)
> '(current-language-environment "UTF-8")
> '(default-input-method "rfc1345"))
> (custom-set-faces
> ;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
> ;; Your init file should contain only one such instance.
> '(default ((t (:stipple nil :background "#ffffff" :foreground "#000000"
> :inverse-video nil :box nil :strike-through nil :overline nil :underline
> nil :slant normal :weight normal :height 116 :width normal :family
> "cronyx-courier")))))
>
> Однако, достаточно скрыть секцию Default и снова открыть, чтобы увидеть
> adobe-courier. То же самое после перезапуска emacs.
>
> В то же время, попытка заменить шрифт на fixed приводит к переключению
> на misc-mixed, после чего русские буквы отображаются, потому как они
> есть в этом семействе.
>
> Вопрос: почему emacs не видит cronyx-courier и где пнуть, чтобы он начал
> говорить по-русски хоть в каком-нибудь курьере?
>
> Странно, что аналогичных проблем с осизифленным Emacs 21.4 у меня не
> было, проблемы возникли у меня и в Emacs 22.0 для ALT Sisyphus, тогда
> лечил именно переходом в fixed, но сейчас решил, что нужно сделать
> правильно. Пока что гипнотизирую файл настройки от альтов, большой
> разницы не вижу. Боюсь, что работающая настройка погибла после подъема
> версии emacs :-(
>
> Да, и еще, может кто подскажет, куда пнуть Xorg, чтобы появилась
> возможность выделять текст с помощью Shift-стрелки в gvim и emacs? Я
> думал, нужно что-то вроде DeadKeys, однако в альтах это почему-то
> работало и без DeadKeys...
>
Сейчас сравнил все это в Sisyphus (xorg 7.0, emacs 22.0), ALT 3.0 (xorg
6.8, emacs 21.3)
и Gentoo (xorg 6.8, emacs 21.4). Результаты получились следующие.
В обоих альтах emacs распознает русские буквы, однако они по начертанию
явно отличаются от латиницы. Такое впечатление, что emacs налету
переставляет шрифты в зависимости от раскладки, что позволяет отображать
русские буквы, но они явно отображаются не в courier, а в fixed. Это
уродливо. Обидно, но еще до подхъема emacs с 21.4 до 22.0 в Сизифе все
работало нормально. Сначала мне даже так и казалось, что это очередной
бок в emacs. Или я просто этого не замечал? Что может быть причиной
такого поведения?
Шрифты я, вроде бы, не трогал, в ALT 3.0 они вообще свежеустановленные,
правда, список я взял из Сизифа, чтобы сделать их идентичными. Вот их
список:
$ rpm -qa|grep fonts|sort
dmtr40in-fonts-1.0-alt2
freefont-fonts-ttf-0.050704-alt8
j2se-sun-fonts-1.4.2_08-alt2
latex-xft-fonts-ttf-0.1-alt2
ms-fonts-ttf-1.0-alt13
urw-fonts-2.0-alt26
vera-fonts-ttf-1.10-alt2
XFree86-cyr_rfx-fonts-cp1251-1.1-ipl7mdk.1
XFree86-cyr_rfx-fonts-koi8-r-1.1-alt8.1
xorg-x11-100dpi-fonts-6.8.2-alt18
xorg-x11-cyrillic-fonts-2.3.1-alt2
xorg-x11-misc-fonts-6.8.2-alt18
xorg-x11-type1-fonts-6.8.2-alt18
Что еще интересно: emacs ведет себя так же, даже если отключить xfs (как
в gentoo) и убрать практически все шрифты, кроме misc.
Что же касается Gentoo, то там emacs ни при каких раскладах не хочет
показывать русские буквы в courier. Я пытался подогнать конфигуратор от
альтов (это единственная разница):
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Minimal settings for users of Emacs who work in
; Russian (CP1251) environment.
;
; ALT Linux Team, February 2002.
(XEmacs
(set-language-environment "Cyrillic-ISO")
(set-input-method "cyrillic-jcuken")
)
(GNUEmacs
(set-language-environment "Cyrillic-CP1251")
; The following lines make the corresponding
; parameters independent of the current language-environment:
; if you change language-environment, they won't be changed;
; but if you comment out some of them, they will follow the
; language-environment parameter:
(set-terminal-coding-system 'cp1251)
(set-keyboard-coding-system 'cp1251)
; This could help for transferring data from bad old apps
;(set-selection-coding-system 'cp1251)
)
; End of the language environment settings.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Сразу же замечу, что символы XEmacs и GNUEmacs не распознаются гентушным
имаксом. Значит ли это, что альтовский имакс дотачивался напильником?
Даже если убрать окаймляющие символы, то даже присваивание set-* никак
не помогает.
Еще раз основные вопросы:
1. Как же заставить в Gentoo работать emacs хотя бы так же, как в ALT,
хотя бы с переключением шрифтов?
2. Как восстановить (или настроить) emacs в ALT, чтобы русские буквы
отображались таки в courier, а не fixed?
Подробная информация о списке рассылки community