Discussion:
Schriftarten Emacs (betrifft nur Unix / Linux - nicht Windows)
(zu alt für eine Antwort)
Heino Tiedemann
2015-10-22 17:07:34 UTC
Permalink
Hallo,

ich würde gerne bei meinem Emacs eine andere – nein eine größere
Schrift einstellen.

Und schon geht das X gewusel los.

In meiner .Xdefaults steht:

emacs.Font: -adobe-courier-medium-r-normal--*-100-100-100-m-90-*-*

Diese Datei scheint der Emacs aber zu ignorieren, Denn ich kann da
ändern was ich will.

Okay, dachte ich, suche ich mir im laufenden Emacs eine andere Schrift aus:
Komisch, die Adobe Schriften werden mir _nicht_ angezeigt!

Wenn ich die Schrift in meiner KDE-Konsole ändern will, WERDEN mir die
Adobe Schriften angezeigt - im Emacs nicht.

Was ins das nu schon wieder?

Was ist da zu tun?


Heino
Frank Haun
2015-10-22 18:02:19 UTC
Permalink
Post by Heino Tiedemann
ich würde gerne bei meinem Emacs eine andere – nein eine größere
Schrift einstellen.
Es gibt dutzende Möglichkeiten das zu tun. ;-)

Ich mache es hiermit:

M-x customize-face RET default RET

Frank
Heino Tiedemann
2015-10-23 08:52:50 UTC
Permalink
Post by Frank Haun
Post by Heino Tiedemann
ich würde gerne bei meinem Emacs eine andere – nein eine größere
Schrift einstellen.
Es gibt dutzende Möglichkeiten das zu tun. ;-)
M-x customize-face RET default RET
Hallo,


überlebt das einen Emacs neustart?

Heino
Frank Haun
2015-10-23 09:44:59 UTC
Permalink
Post by Heino Tiedemann
Post by Frank Haun
Post by Heino Tiedemann
ich würde gerne bei meinem Emacs eine andere – nein eine größere
Schrift einstellen.
Es gibt dutzende Möglichkeiten das zu tun. ;-)
M-x customize-face RET default RET
überlebt das einen Emacs neustart?
Klar, wenn man "Save for future sessions" drückt.

Frank
Helmut Waitzmann
2015-10-22 23:00:52 UTC
Permalink
Post by Heino Tiedemann
Hallo,
ich würde gerne bei meinem Emacs eine andere – nein eine größere
Schrift einstellen.
Und schon geht das X gewusel los.
emacs.Font: -adobe-courier-medium-r-normal--*-100-100-100-m-90-*-*
Probiere mal statt dessen

Emacs.Font: -adobe-courier-medium-r-normal--*-100-100-100-m-90-*-*

Wenn ich das Emacs‐Manual richtig verstehe, kann man mit
X‐Resources‐Daten, die den Programmnamen (hier: emacs) verwenden, nur
X‐Resources des Startfensters und fensterunabhängige X‐Resources
angeben. Im Gegensatz dazu beziehen sich X‐Resources, die den
Programm‐Klassennamen (hier: Emacs) verwenden, auf alle X‐Resources.
Post by Heino Tiedemann
Diese Datei scheint der Emacs aber zu ignorieren, Denn ich kann da
ändern was ich will.
Lädst Du sie in den X‐Server mittels xrdb? Ohne das Laden hat sie
keine Wirkung für emacs.
Heino Tiedemann
2015-10-23 08:55:56 UTC
Permalink
Post by Helmut Waitzmann
Post by Heino Tiedemann
Hallo,
ich würde gerne bei meinem Emacs eine andere – nein eine größere
Schrift einstellen.
Und schon geht das X gewusel los.
emacs.Font: -adobe-courier-medium-r-normal--*-100-100-100-m-90-*-*
Probiere mal statt dessen
Emacs.Font: -adobe-courier-medium-r-normal--*-100-100-100-m-90-*-*
Wenn ich das Emacs‐Manual richtig verstehe, kann man mit
X‐Resources‐Daten, die den Programmnamen (hier: emacs) verwenden, nur
X‐Resources des Startfensters und fensterunabhängige X‐Resources
angeben. Im Gegensatz dazu beziehen sich X‐Resources, die den
Programm‐Klassennamen (hier: Emacs) verwenden, auf alle X‐Resources.
Post by Heino Tiedemann
Diese Datei scheint der Emacs aber zu ignorieren, Denn ich kann da
ändern was ich will.
Lädst Du sie in den X‐Server mittels xrdb? Ohne das Laden hat sie
keine Wirkung für emacs.
ich habe es jetzt doch in die .emacs geschrieben. Ich war der Meinung,
das hat auf Linux/Unix keine Wirkung.
Hat es aber wohl doch. War das vielleicht mal anders, historisch gesehen?

(set-default-font "-adobe-courier-medium-r-normal--18-180-75-75-m-110-*-*")

Das klappt gut.


Heino
Wolfgang Bauer
2015-10-23 09:14:46 UTC
Permalink
Post by Heino Tiedemann
ich habe es jetzt doch in die .emacs geschrieben. Ich war der Meinung,
das hat auf Linux/Unix keine Wirkung.
Hat es aber wohl doch. War das vielleicht mal anders, historisch gesehen?
(set-default-font "-adobe-courier-medium-r-normal--18-180-75-75-m-110-*-*")
Das klappt gut.
Bei mir steht in der ~/.emacs

(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 (:family "Courier New" :foundry "outline" :slant normal :weight normal :height 120 :width normal)))))

Da kann man schnell mal den Font ändern. Dazu habe ich als
Ersatzanzeigeschrift.

(set-fontset-font t nil "Quivira")
(set-fontset-font t nil "Unifont")
(set-fontset-font t nil "Symbola")

Wolfgang
Heino Tiedemann
2015-10-23 10:37:03 UTC
Permalink
Post by Wolfgang Bauer
Post by Heino Tiedemann
ich habe es jetzt doch in die .emacs geschrieben. Ich war der Meinung,
das hat auf Linux/Unix keine Wirkung.
Hat es aber wohl doch. War das vielleicht mal anders, historisch gesehen?
(set-default-font "-adobe-courier-medium-r-normal--18-180-75-75-m-110-*-*")
Das klappt gut.
Bei mir steht in der ~/.emacs
(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 (:family "Courier New" :foundry "outline" :slant normal
:weight normal :height 120 :width normal)))))
Da kann man schnell mal den Font ändern. Dazu habe ich als
Ersatzanzeigeschrift.
(set-fontset-font t nil "Quivira")
(set-fontset-font t nil "Unifont")
(set-fontset-font t nil "Symbola")
Moin Wolfgang,


offen gesagt gefällt mir das die Variante mit
(set-default-font "-adobe-courier-medium-r-normal--18-180-75-75-m-110-*-*")

irgendwie besser. Ich verstehe sie viel schneller, auch wenn ich in
Jahren mal wieder drauf gucke. Und es ist ein oarkitscher Einzeiler.

Heino
Frank Haun
2015-10-23 10:44:16 UTC
Permalink
Post by Heino Tiedemann
offen gesagt gefällt mir das die Variante mit
(set-default-font "-adobe-courier-medium-r-normal--18-180-75-75-m-110-*-*")
╭────[ C-h f set-default-font RET ]
│ set-default-font is an alias for `set-frame-font' in `frame.el'.

│ (set-default-font FONT &optional KEEP-SIZE FRAMES)

│ This function is obsolete since 23.1;
│ use `set-frame-font' instead.
╰────

Frank
Heino Tiedemann
2015-10-23 11:15:20 UTC
Permalink
Post by Frank Haun
Post by Heino Tiedemann
offen gesagt gefällt mir das die Variante mit
(set-default-font "-adobe-courier-medium-r-normal--18-180-75-75-m-110-*-*")
╭────[ C-h f set-default-font RET ]
│ set-default-font is an alias for `set-frame-font' in `frame.el'.

│ (set-default-font FONT &optional KEEP-SIZE FRAMES)

│ This function is obsolete since 23.1;
│ use `set-frame-font' instead.
╰────
Aha, danke.

mir fällt es etwas schwer, die beiden letzten Paramater zu
deuten. Besonders den Vorletzten:

,----
| If KEEP-SIZE is nil, keep the number of frame lines and columns
| fixed. If KEEP-SIZE is non-nil (or with a prefix argument), try
| to keep the current frame size fixed (in pixels) by adjusting the
| number of lines and columns.
`----

Ich versteh nur Bahnhof. Was hesist "current Frame Size fixed" in
diesem Fall?

Wemn ich die auf nil setze ist WAS genau Festgesetzt?

,----
| If FRAMES is nil, apply the font to the selected frame only.
| If FRAMES is non-nil, it should be a list of frames to act upon,
| or t meaning all existing graphical frames.
| Also, if FRAMES is non-nil, alter the user's Customization settings
| as though the font-related attributes of the `default' face had been
| "set in this session", so that the font is applied to future frames.
`----

Okay, Das verstehe ich besser, das immer ein ein "frame" ist, der Wert
"t" sorgt dafür das dieses Setting auf alle Frame wirkt. soweit klar.

Heino
Frank Haun
2015-10-23 11:58:04 UTC
Permalink
Post by Heino Tiedemann
Okay, Das verstehe ich besser, das immer ein ein "frame" ist, der Wert
"t" sorgt dafür das dieses Setting auf alle Frame wirkt. soweit klar.
Jau, so hatte ich das auch verstanden. ;-)

Frank
Heino Tiedemann
2015-10-23 13:35:51 UTC
Permalink
Post by Frank Haun
Post by Heino Tiedemann
Okay, Das verstehe ich besser, das immer ein ein "frame" ist, der Wert
"t" sorgt dafür das dieses Setting auf alle Frame wirkt. soweit klar.
Jau, so hatte ich das auch verstanden. ;-)
Aber was macht der ANDERE parameter:

,----
| If KEEP-SIZE is nil, keep the number of frame lines and columns
| fixed. If KEEP-SIZE is non-nil (or with a prefix argument), try
| to keep the current frame size fixed (in pixels) by adjusting the
| number of lines and columns.
`----

Ich versteh nur Bahnhof. Was hesist "current Frame Size fixed" in
diesem Fall?

Wenn ich die auf nil setze ist WAS genau Festgesetzt?

Heino
Frank Haun
2015-10-23 15:33:51 UTC
Permalink
Post by Heino Tiedemann
,----
| If KEEP-SIZE is nil, keep the number of frame lines and columns
| fixed. If KEEP-SIZE is non-nil (or with a prefix argument), try
| to keep the current frame size fixed (in pixels) by adjusting the
| number of lines and columns.
`----
Ich versteh nur Bahnhof. Was hesist "current Frame Size fixed" in
diesem Fall?
Wenn ich die auf nil setze ist WAS genau Festgesetzt?
Am besten einen Live Test machen. Die Fonts hier sind unterschiedlich
groß. Das sieht man sofort was KEEP-SIZE macht. Kopiere die Zeilen in
den scratch buffer, passe noch den Namen für font an.

Mit dem Cursor abwechselnd auf oder hinter den Ausdruck gehen und M-x
eval-defun RET machen, bzw. C-M-x runs the command eval-defun.

(set-frame-font "Unifont" nil nil)
(set-frame-font "DejaVu Sans Mono" nil nil)

(set-frame-font "Unifont" t nil)
(set-frame-font "DejaVu Sans Mono" t nil)

Frank
Olaf Meltzer
2015-10-23 12:24:36 UTC
Permalink
was immer ein ein "frame" ist,
http://www.gnu.org/software/emacs/manual/html_node/emacs/Frames.html

,----[ Aus o.a. Seite]
| When Emacs is started on a graphical display, e.g., on the X Window
| System, it occupies a graphical system-level “window”. In this
| manual, we call this a frame, reserving the word “window” for the
| part of the frame used for displaying a buffer. A frame initially
| contains one window, but it can be subdivided into multiple windows
| (see Windows). A frame normally also contains a menu bar, tool
| bar,and echo area.
`----

Gruß -- Olaf Meltzer
--
openSUSE 13.2 - TeX Live 2015 - aktuell mit tlmgr
Helmut Waitzmann
2015-10-23 13:47:49 UTC
Permalink
Post by Heino Tiedemann
mir fällt es etwas schwer, die beiden letzten Paramater zu
,----
| If KEEP-SIZE is nil, keep the number of frame lines and columns
| fixed. If KEEP-SIZE is non-nil (or with a prefix argument), try
| to keep the current frame size fixed (in pixels) by adjusting the
| number of lines and columns.
`----
Ich versteh nur Bahnhof. Was hesist "current Frame Size fixed" in
diesem Fall?
Wenn KEEP-SIZE nil ist, halte die Anzahl der Zeilen und Spalten im
GUI‐Fenster fest. Wenn (hingegen) KEEP-SIZE nicht‐nil ist (oder
wenn ein Präfix‐Parameter verwendet wird), versuche, die
augenblickliche Größe des GUI‐Fensters (gemessen in Pixels)
festzuhalten, indem die Anzahl der Zeilen und Spalten angepasst
wird.

Beispiel: Angenommen, Du verdoppelst in einem GUI‐Fenster die Größe eines
Fonts.

Im Fall KEEP-SIZE = nil bleibt die Anzahl der Spalten und Zeilen
gleich. Dann muss folglich das GUI‐Fenster knapp (denn der Rahmen
kann wohl bleiben, wie er ist) doppelt so hoch und breit werden,
damit die jetzt doppelt so hohen Zeilen und doppelt so breiten
Spalten reinpassen.

Im Fall KEEP-SIZE ≠ nil wird die Anzahl der Spalten und Zeilen
halbiert (bei ungeraden Anzahlen muss natürlich auf ganze auf‐
oder abgerundet werden), damit das GUI‐Fenster annähernd gleich
groß bleiben (»try to keep the current frame size«) kann.

»nil« bedeutet den Wahrheitswert »falsch«, alles ungleich »nil«
den Wahrheitswert »wahr«.
Heino Tiedemann
2015-10-23 14:14:15 UTC
Permalink
Post by Helmut Waitzmann
Post by Heino Tiedemann
mir fällt es etwas schwer, die beiden letzten Paramater zu
,----
| If KEEP-SIZE is nil, keep the number of frame lines and columns
| fixed. If KEEP-SIZE is non-nil (or with a prefix argument), try
| to keep the current frame size fixed (in pixels) by adjusting the
| number of lines and columns.
`----
Ich versteh nur Bahnhof. Was hesist "current Frame Size fixed" in
diesem Fall?
Wenn KEEP-SIZE nil ist, halte die Anzahl der Zeilen und Spalten im
GUI‐Fenster fest.
....
Post by Helmut Waitzmann
Wenn (hingegen) KEEP-SIZE nicht‐nil ist (oder
wenn ein Präfix‐Parameter verwendet wird), versuche, die
augenblickliche Größe des GUI‐Fensters (gemessen in Pixels)
festzuhalten, indem die Anzahl der Zeilen und Spalten angepasst
wird.
Was heisst das "augenblicklich"? Welcher Augenblick denn, ich packe
diese Zeilen in die .emacs. Die wird doch beim START eingelesen?
Nicht?
Post by Helmut Waitzmann
Beispiel: Angenommen, Du verdoppelst in einem GUI‐Fenster die Größe eines
Fonts.
Im Fall KEEP-SIZE = nil bleibt die Anzahl der Spalten und Zeilen
gleich. Dann muss folglich das GUI‐Fenster knapp (denn der Rahmen
kann wohl bleiben, wie er ist) doppelt so hoch und breit werden,
Ah.
Post by Helmut Waitzmann
Im Fall KEEP-SIZE ≠ nil wird die Anzahl der Spalten und Zeilen
halbiert (bei ungeraden Anzahlen muss natürlich auf ganze auf‐
oder abgerundet werden), damit das GUI‐Fenster annähernd gleich
groß bleiben (»try to keep the current frame size«) kann.
Danke.

Heino
Helmut Waitzmann
2015-10-23 19:20:22 UTC
Permalink
Post by Heino Tiedemann
Post by Helmut Waitzmann
Post by Heino Tiedemann
mir fällt es etwas schwer, die beiden letzten Paramater zu
,----
| If KEEP-SIZE is nil, keep the number of frame lines and columns
| fixed. If KEEP-SIZE is non-nil (or with a prefix argument), try
| to keep the current frame size fixed (in pixels) by adjusting the
| number of lines and columns.
`----
Ich versteh nur Bahnhof. Was hesist "current Frame Size fixed" in
diesem Fall?
Wenn KEEP-SIZE nil ist, halte die Anzahl der Zeilen und Spalten im
GUI‐Fenster fest.
....
Post by Helmut Waitzmann
Wenn (hingegen) KEEP-SIZE nicht‐nil ist (oder
wenn ein Präfix‐Parameter verwendet wird), versuche, die
augenblickliche Größe des GUI‐Fensters (gemessen in Pixels)
festzuhalten, indem die Anzahl der Zeilen und Spalten angepasst
wird.
Was heisst das "augenblicklich"?
Das habe ich noch nicht ausprobiert.

Das »selected frame« dürfte vermutlich das Fenster sein, das den
Tastatur‐Fokus zuletzt hatte oder noch hat.
Post by Heino Tiedemann
Welcher Augenblick denn, ich packe diese Zeilen in die
.emacs. Die wird doch beim START eingelesen?
Ja, das wird sie. Ich vermute, dass Emacs dann bereits »richtig«
läuft. Ich glaube eher nicht, dass es dann noch einen Zeitpunkt
gibt, in dem es noch gar kein Fenster gibt.

Also wird das augenblickliche Fenster das Start‐Fenster sein, das
Emacs auf den Bildschirm bringt.

Weil man Emacs auch ohne Fenstersystem (also nur in einem
Text‐Terminal) laufen lassen kann, würde ich die Funktion nur dann
aufrufen lassen, wenn ich vorher geprüft habe, dass Emacs in einem
Fenstersystem läuft, erkennbar daran, dass die Variable
»window-system« einen Nicht‐nil‐Wert hat. (Emacs reagiert
allergisch auf Fehler in der Datei »~/.emacs«.):

(when window-system
(set-frame-font …))

Loading...