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

Emacs do not show RU and IPA chars in monospaced font.

10 views
Skip to first unread message

Oleksandr Gavenko

unread,
Jul 8, 2012, 5:50:07 PM7/8/12
to help-gn...@gnu.org
M-x version 23.4.1 on Debian Wheezy.

================================================================

I set:

(set-frame-font "7x13")

For EN text I get:

x:-misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1 (#x28)

For RU text I get:

xft:-Misc-Fixed-normal-normal-normal-*-13-*-*-*-c-80-iso10646-1 (#x394)

I try set:

(set-frame-font "-misc-fixed-medium-r-normal-*-13-*-*-*-*-*-iso10646-*")

and for russian letter get (ugly bold large letters):

xft:-Misc-Fixed-normal-normal-normal-ja-13-*-*-*-c-120-iso10646-1 (#x1FC)

After a lot of experimanting I found:

(set-frame-font "-rfx-courier-medium-r-normal-*-14-*-75-75-*-iso10646-1")

which good exept missing 13px size. 12 too small, 14 look large.

I accept the situation and use this fornt until back to edit
dictionary with IPA letters.

Some IPA letters shown as @ instead of ə:

to input: type "/e" with ipa
xft:-rfx-Courier-normal-normal-normal-*-14-*-*-*-m-90-iso10646-1 (#x323)
name: LATIN SMALL LETTER SCHWA

So I return to experimentation and found font:

(set-frame-font "FreeMono-13")
xft:-unknown-FreeMono-normal-normal-normal-*-15-*-*-*-m-0-iso10646-1 (#x59)

which seems have all chars I use for text: EN, RU, IPA. But text
become pale (black is gray) because of anti-aliasing.

I add:

<match target="pattern">
<test qual="any" name="family">
<string>FreeMono</string>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>

to ~/.fonts.conf and restart X. Resulted look does not satisfy
me. For 13 px fornt size curve for small letter c was broken into
2 part but must be continuous. With size of 14 letters are too
large.

================================================================

I run old Emacs 22.2.1 on same host and after:

(set-frame-font "7x13")

I get text which looks RIGHT. Proof for EN, RU, IPA chars:

character: d (100, #o144, #x64, U+0064)
-Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO8859-1 (#x64)
character: ʌ (332332, #o1211054, #x5122c, U+028C)
-Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 (#x28C)
character: д (332884, #o1212124, #x51454, U+0434)
-Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 (#x434)

================================================================

After all I wrote I ask help.

Why for RU letters was not used same font as for EN letters?

Is this releted for Xft support? Can I disable it (I prefer
server side fonts and don't lie anti-aliasing)?

Do I need prepare bug report?

--
Best regards!


Oleksandr Gavenko

unread,
Jul 10, 2012, 5:00:42 PM7/10/12
to help-gn...@gnu.org
On 2012-07-09, Oleksandr Gavenko wrote:
> I try set:
>
> (set-frame-font "-misc-fixed-medium-r-normal-*-13-*-*-*-*-*-iso10646-*")
>
> and for russian letter get (ugly bold large letters):
>
> xft:-Misc-Fixed-normal-normal-normal-ja-13-*-*-*-c-120-iso10646-1 (#x1FC)
>
> [SKIP]
>
> Do I need prepare bug report?

I report bug:

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11889

After a while I read:

http://emacswiki.org/emacs/SetFonts
http://www.emacswiki.org/emacs/FontSets
http://www.emacswiki.org/emacs/DisplayingNonAsciiCharacters

and corresponding Emacs manuals.

That I leaned that I need some tools for viewing selected chars in selected
font.

For server-side fonts this can be done like:

$ xfontsel -sampleUCS 'əθʃçʧ θʒtð Hello Привет!'

For client-side font I found:

$ gucharmap

After looking for several problematic chars I found that they are missing in
13 px size for my font or look wrongly.

After playing with configurations I found font that cover all needed my me
characters.

And learned how use fontsets, here my setup:

(set-frame-font "-misc-fixed-medium-r-normal--14-*-*-*-c-*-iso10646-1")
(set-fontset-font "fontset-default" 'latin
"-misc-fixed-medium-r-normal--14-*-*-*-c-*-iso10646-1")
(set-fontset-font "fontset-default" 'phonetic
"-misc-fixed-medium-r-normal--14-*-*-*-c-*-iso10646-1")
(set-fontset-font "fontset-default" 'cyrillic
"-misc-fixed-medium-r-normal--14-*-*-*-c-*-iso10646-1")
(set-fontset-font "fontset-default" 'greek
"-misc-fixed-medium-r-normal--14-*-*-*-c-*-iso10646-1")

Another quiz for me was searching of script name symbols for
'set-fontset-font'. Jumping to .c source take 'char-script-table'.

After reading manual about built-in types I get this list:

(pp (char-table-extra-slot char-script-table 0))
latin phonetic greek coptic cyrillic armenian ...

Another useful thing that help me is:

(describe-fontset "default-fontset")
(describe-fontset "standard-fontset")
(describe-fontset "startup-fontset")

So algorithm to fix font displaying simple:

* Use Emacs >= 23.x for UTF support.
* Find fonts that cover your chars (xfontsel & gucharmap).
* Set fonts as say manual. I Emacs make wrong decision for selected chars,
set font manually by 'set-fontset-font'. This func support individual char,
char range and symbolic names (which I use in this post).

================================================================

Anyone can tell me test program for client-side fonts that display string that
I pass to it? gucharmap show only individual chars (opposed to xfontsel with
'-sampleUCS'). This is inconvenient, I like to pass this string to perform
on whole text:

(defun my-print-range (start end)
(let (i)
(setq i start)
(while (< i end)
(ucs-insert i)
(setq i (1+ i))
)))

;; ASCII
(my-print-range ?\u0020 ?\u0080)
;; !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

;; Cyrillic
(my-print-range ?\u0410 ?\u0460)
;; АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџ

;; Greek
(my-print-range ?\u0391 ?\u03ca)
;; ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψω

(my-print-range ?\u0250 ?\u02d1)
;; IPA
;; ɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾʿˀˁ˂˃˄˅ˆˇˈˉˊˋˌˍˎˏː

--
Best regards!


Drew Adams

unread,
Jul 10, 2012, 5:35:39 PM7/10/12
to Oleksandr Gavenko, help-gn...@gnu.org
Oleksandr, it looks like you came up with a good deal of useful info. Thanks
for sharing it. Consider posting it on an Emacs Wiki page - e.g., all in one
place.


Peter Dyballa

unread,
Jul 10, 2012, 5:49:06 PM7/10/12
to Oleksandr Gavenko, help-gn...@gnu.org

Am 10.07.2012 um 23:00 schrieb Oleksandr Gavenko:

> Anyone can tell me test program for client-side fonts that display string that
> I pass to it?

Open an UTF-8 encoded file with these characters in GNU Emacs! Or write a function that prints them in some buffer, maybe scratch*... or *Messages*. All you need is an UTF-8 encoded buffer.

--
Greetings

Pete

When Richard Stallman goes to the loo, he core dumps.


0 new messages