코코아 이맥스 24.5 글꼴 문제 (Inconsolata-dz)


10

[Inconsolata-dz] [1]을 (를) 기본 글꼴로 Emacs로 설정하려고합니다. 일반 Inconsolata는 제대로 작동하지만 DZ 버전이 제대로 작동하지 않습니다. 내가 사용하는 대부분의 기능은이 오류를 계속 발생시킵니다 (Emacs 글꼴을 설정하는 방법에 대한 모든 지침을 온라인으로 따름).

set-face-attribute: Invalid font name: "-*-Inconsolata-dz-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1"

나는 마침내 내에서 이것을하여 작동하도록했습니다 init.el.

(setq initial-frame-alist '((font . "Inconsolata-dz-13")))
(setq default-frame-alist '((font . "Inconsolata-dz-13")))

또한에 init.el의해 생성 customize-faces되었지만에서 위의 코드로 재정의하지 않는 한 글꼴을 Helvetica로 변경하는 것 같습니다.

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(custom-safe-themes
   (quote
    ("e16a771a13a202ee6e276d06098bc77f008b73bbac4d526f160faa2d76c1dd0e"
     "d677ef584c6dfc0697901a44b885cc18e206f05114c8a3b7fde674fce6180879"
     "8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4"
     default))))

(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(default ((t (:inherit nil :stipple nil :inverse-video nil
             :box nil :strike-through nil :overline nil
             :underline nil :slant normal
             :weight normal :height 140 :width normal
             :foundry "nil" :family "Inconsolata-dz")))))

위의 첫 번째 코드의 문제는을 수행 Ctrl+N하여 새 창을 만들면 동일한 잘못된 글꼴 이름 오류가 발생한다는 것입니다.

Mac에서 Inconsolata와 Inconsolata-dz를 같은 방식으로 설치했습니다. OS X에 글꼴을 설치하는 일반적인 기본 방법입니다.

아무도 내가 뭘 잘못하고 있고 Inconsolata-dz를 올바르게 사용할 수 있는지 알고 있습니까?


1
사용 가능한 글꼴을 보려면 *Scratch*버퍼 에서 다음을 평가하십시오 (insert (prin1-to-string (x-list-fonts "*"))) .없는 경우 사용할 수 없습니다.
lawlist

@lawlist 나는 거기에서 그것을 보지만 매우 긴 이름입니다. 얼굴 속성 설정에 붙여 넣으면 ((set-face-attribute 'default nil :family "-*-Inconsolata-g-normal-normal-normal-*-*-*-*-*-m-0-iso10646-1"))'잘못된 얼굴 주조'가 표시됩니다. 어떤 아이디어가 있습니까? 이름은 정확히 무엇입니까? Inconsolata는 작동하지만 Inconsolata-g 및 Inconsolata-dz는 모두 사용 가능하고 동일한 방식으로 설치 되었더라도 작동하지 않습니다. 이름에 대시라고 생각하십니까?
darksky

답변:


9

이맥스는 하이픈이있는 글꼴을 허용하지 않습니다. 글꼴 이름을 하이픈이없는 것으로 바꿉니다.

ttx를 사용하여 이를 수행 할 수 있습니다 . 예를 들어 Inconsolata-dz for Powerline.otf현재 작업 디렉토리에 이름이 지정된 글꼴이 있다고 가정합니다 .

# Convert the font to ttx format (an xml-like font format)
ttx "Inconsolata-dz for Powerline.otf"

# Replace all instances of "Inconsolata-dz" with "InconsolataDZ" in the ttx file
sed -i 's/Inconsolata-dz/InconsolataDZ/g' "Inconsolata-dz for Powerline.ttx"

# Convert the resulting ttx file back to an otf file. 
# (Will create a file called "Inconsolata-dz for Powerline#1.otf".)
ttx "Inconsolata-dz for Powerline.ttx"

그런 다음 생성 된 otf파일의 이름 을 원하는 것으로 바꾸고 글꼴 디렉토리로 옮길 수 있습니다.


" Emacs는 하이픈이있는 글꼴을 허용하지 않습니다. "
lawlist

5
내 특정 문제는 "잘못된 글꼴 이름 : Inconsolata-g for Powerline"오류가 표시되었다는 것입니다. Emacs 소스 코드에서 "Invalid font name :"을 검색 하고이 함수를 찾았습니다 . font_parse_name함수를 주의 깊게 살펴보면 전체 글꼴 이름이 두 개의 하이픈 사이에 있다고 가정하면 XFT 문자열을 하이픈으로 분할하여 XFT 문자열을 구문 분석하는 것을 알 수 있습니다.
sid-

1
정말 감사합니다 @ sid-kap, 마지막으로 답변! 나는 이것을 이해하지 못했습니다.
darksky

3
ttx글꼴 파일 을 사용 하거나 변환 하지 않고 글꼴 이름을 바꿀 수 있습니다 . I 폰트 파일 구경 Inconsolata-g.otf, Inconsolata-g.sfdInconsolata-g.ttf함께 Emacs와 "Inconsolata_g"및 "Inconsolata_d"와 "Inconsolata-g '및'Inconsolata-D '의 모든 발생을 대체. 이 텍스트는 또한 "I ^ @ n ^ @ c ^ @ o ^ @ n ^ @ s ^ @ o ^ @ l ^ @ a ^ @ t ^ @ a ^ @-^ @ g와 같이"^ @ "과 혼합되어 나타납니다. "I ^ @ n ^ @ c ^ @ o ^ @ n ^ @ s ^ @ o ^ @ l ^ @ a ^ @ t ^ @ a ^ @ _ ^ @ g ^로 대체 한 ^ @ Inconsolata-g" @Inconsolata_g ". 그런 다음 파일 이름을로 바꾸고 Inconsolata_g.*끌어서 놓았습니다 Font Book.app.
armando.sano

@ sid-kap 감사합니다. 귀하의 지시가 매우 분명했습니다. 좋은 대답입니다.
Harsh Vardhan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.