Ich versuche, [Inconsolata-dz] [1] als meine Standardschriftart auf Emacs festzulegen. Regular Inconsolata funktioniert gut, aber die dz-Version funktioniert nicht richtig. Die meisten Funktionen, die ich verwende, lösen diesen Fehler immer wieder aus (befolgen Sie alle Online-Anweisungen zum Festlegen der Emacs-Schriftart):
set-face-attribute: Invalid font name: "-*-Inconsolata-dz-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1"
Ich habe es endlich zum Laufen gebracht, indem ich dies in meinem init.el
:
(setq initial-frame-alist '((font . "Inconsolata-dz-13")))
(setq default-frame-alist '((font . "Inconsolata-dz-13")))
Ich habe auch dies in init.el
, das von generiert wurde customize-faces
, aber es scheint die Schriftart in Helvetica zu ändern (sofern nicht durch den obigen Code überschrieben):
(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")))))
Das Problem mit dem ersten Code oben ist nun, dass Ctrl+N
beim Erstellen eines neuen Fensters derselbe Fehler "Ungültiger Schriftname" ausgegeben wird.
Ich habe Inconsolata und Inconsolata-dz auf die gleiche Weise auf meinem Mac installiert. Nur die normale Standardmethode zum Installieren von Schriftarten unter OS X.
Weiß jemand, was ich falsch mache und wie ich Inconsolata-dz richtig verwenden kann?
*Scratch*
Puffer:(insert (prin1-to-string (x-list-fonts "*")))
Wenn es nicht vorhanden ist, ist es nicht verfügbar.((set-face-attribute 'default nil :family "-*-Inconsolata-g-normal-normal-normal-*-*-*-*-*-m-0-iso10646-1"))
einfüge, erhalte ich 'Ungültige Gesichtsgießerei'. Irgendwelche Ideen warum? Was genau soll der Name sein? Inconsolata funktioniert, aber Inconsolata-g und Inconsolata-dz funktionieren nicht, obwohl sie alle auf dieselbe Weise verfügbar und installiert sind. Ich vermute, es ist der Strich im Namen?Antworten:
Emacs erlaubt keine Schriftarten mit Bindestrichen. Ich würde die Schriftart in etwas umbenennen, das keine Bindestriche enthält.
Sie können dies mit ttx tun . Angenommen, Sie haben eine Schriftart mit dem Namen
Inconsolata-dz for Powerline.otf
in Ihrem aktuellen Arbeitsverzeichnis:Anschließend können Sie die erstellte
otf
Datei nach Belieben umbenennen und in Ihr Schriftartenverzeichnis verschieben.quelle
font_parse_name
Funktion genau ansehen , werden Sie feststellen, dass die XFT-Zeichenfolge analysiert wird, indem Sie sie an den Bindestrichen aufteilen, vorausgesetzt, der gesamte Schriftname ist zwischen zwei Bindestrichen enthalten.ttx
oder zu konvertieren. Ich besuchte die Schriftart - DateienInconsolata-g.otf
,Inconsolata-g.sfd
undInconsolata-g.ttf
mitEmacs
und ersetzt jedes Vorkommen von „Inconsolata-g“ und „Inconsolata-d“ mit „Inconsolata_g“ und „Inconsolata_d“. Dieser Text erscheint auch mit "^ @" vermischt, wie in "I ^ @ n ^ @ c ^ @ o ^ @ n ^ @ s ^ @ o ^ @ l ^ @ a ^ @ t ^ @ a ^ @ - ^ @ g ^ @ Inconsolata-g ", die ich als" I ^ @ n ^ @ c ^ @ o ^ @ n ^ @ s ^ @ o ^ @ l ^ @ a ^ @ t ^ @ a ^ @ _ ^ @ g ^ ersetzt habe @Inconsolata_g ". Ich habe dann die Dateinamen umbenanntInconsolata_g.*
und per Drag & Drop in sie eingefügtFont Book.app
, was funktioniert hat.