Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Emacs+unifont

1 view
Skip to first unread message

Grygorii

unread,
Jun 14, 2010, 3:30:02 PM6/14/10
to
Здравствуйте,

Имею Debian Lenny.
Имею установленный шрифт Unifont:

gr@emdsp ~ % xlsfonts | grep unifont
-gnu-unifont-medium-r-normal--0-0-75-75-c-0-iso10646-1
-gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1

Имею Emacs23 из backport'ов:

gr@emdsp ~ % apt-cache policy emacs
emacs:
Installed: 23.1+1-4~bpo50+1
Candidate: 23.1+1-4~bpo50+1
Version table:
*** 23.1+1-4~bpo50+1 0
600 http://www.backports.org lenny-backports/main Packages
100 /var/lib/dpkg/status
22.2+2-5 0
500 http://ftp.us.debian.org lenny/main Packages
gr@emdsp ~ % emacs --version
GNU Emacs 23.1.1
Copyright (C) 2009 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

запускаю Emacs с явным указанием шрифта:
gr@emdsp ~ % emacs -fn
'-gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1' -Q

Сразу бросается в глаза зона fringe - неестественно широка.
Убираем (M-x fringe-mode) и пытаемся разделить окно по
горизонтали (C-x 3): не получается, в буфере сообщений:
split-window-horizontally: Window width 8 too small (after splitting)

это при том, что фрейм (который окно WM) на всю ширину
экрана (1280x1024). С другими шрифтами работает ожидаемо.
Ширина окна (у меня fluxbox) показываеться 15.

Если же взять, к примеру,
gr@emdsp ~ % emacs -fn
'-rfx-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1' -Q

то ширина 148 и окно Emacs'а делится.

Собственно интересует, как рисуется этот fringe?
Т.е. какой символ там рисуется? Это ведь не просто
прямоугольник средствами GTK? Или отчего такая
штука с Unifont'ом?

--
Гриша Тертычный

Grygorii

unread,
Jun 15, 2010, 2:40:02 AM6/15/10
to
Попробывал TTF Unifont:

gr@emdsp ~ % fc-list unifont
unifont:style=Medium

Выбрал шрифт 12-го размера в Emacs'е,
получил такой кусок custom-set-faces из init.el:

'(default ((t (:stipple nil :background "black" :foreground "white"
:inverse-video nil
:box nil
:strike-through nil
:overline nil
:underline nil
:slant normal
:weight normal
:height 120
:width normal
:foundry "unknown"
:family "unifont"))))

Теперь fringe-область обычная, но проблема с TAB. Он русуется
в два раза шире, чем символы алфавита. Думал, может это из
другого шрифта взялось, или не TAB вовсе, но нет, посмотрел
describe-char:

character: TAB (9, #o11, #x9)
preferred charset: ascii (ASCII (ISO646 IRV))
code point: 0x09
syntax: which means: whitespace
buffer code: #x09
file code: #x09 (encoded by coding system undecided-unix)
display: by this font (glyph code)
xft:-unknown-unifont-normal-normal-normal-*-16-*-*-*-d-0-iso10646-1 (#x0C)

______________(вот тут, правда, вопрос, что значит (#x0C)?)^^^^^^^^^^^^^^^^^^

Character code properties: customize what to show
name: <control>
old-name: CHARACTER TABULATION
general-category: Cc (Other, Control)

There are text properties here:
fontified t

Посмотрел xfd -fa unifont: там у 65 символов, включая TAB,
ширина 16, у остальных - 8.

Тогда другой вопрос: почему xterm и, например, nano внутри
него отображает TAB такой же ширины, как и символы алфавита.
И можна ли уговорить Emacs поступать также?

Также посмотрел
xfd -fn '-gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1'

Там тоже у 65 символов, включая TAB, ширина 16, у остальных - 8.
Но TAB в Emacs'е там не шире.

А если запустить
emacs -Q -fn '-gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1'
то describe-char покажет:
x:-gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 (#x09)

Тогда, как на
emacs -Q -fn '-rfx-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1'
показывает
xft:-rfx-Fixed-normal-normal-normal-*-13-*-*-*-c-80-iso10646-1 (#x74)

Вообщем, я запутался.

--
Гриша Тертычный

0 new messages