Taille de police et getenv

La question :

Bonjour,

Je voudrais que la taille de la /default face/ soit lue dans une variable
d'environnement. Actuellement dans .emacs j'ai :

(custom-set-faces
'(default ((t (:inherit nil :stipple nil :background "grey80" :foreground
"black" :inverse-video nil :box nil :strike-through nil verline nil
:underline nil :slant normal :weight normal :height 110 :width normal
:foundry "unknown" :family "Droid Sans Mono"))))
....

Et je voudrais donc que le 110 soit remplacé par la valeur de
EMACS_FACESIZE. Il y a quelques années, pour lire la taille de la fenêtre
dans une variable, on m'avait donné ici ce bout de code (qu'« on » soit à
nouveau remercié, d'ailleurs) :

'(default-frame-alist (cons (cons (quote height) (string-to-int (getenv
"EMACS_HEIGHT"))) (quote ((menu-bar-lines . 1) (tool-bar-lines . 0) (width
.. 82)))))

J'ai essayé de l'adapter mais comme je n'y connais rien en Lisp je n'y
arrive pas. Le plus proche auquel j'arrive c'est [en coupant des bouts
pour le test] :
(cons ':inherit (cons nil (cons ':weight (cons 'normal (cons ':height
(cons (string-to-int (getenv "EMACS_HEIGHT")) '(:foundry "unknown")))))))
Je suppose qu'il y a moyen avec moins de parenthèses !

--
LL
?? ???? ??? ????? ???? (????????)

Poser votre question sur le forum OS alternatifs

Les 5 réponses :

Bonjour,

Le 16 janvier 2017, à 16:02, Lucas Levrel a écrit :


Je voudrais que la taille de la /default face/ soit lue dans une variable
d'environnement. Actuellement dans .emacs j'ai :

(custom-set-faces
'(default ((t (:inherit nil :stipple nil :background "grey80" :foreground
"black" :inverse-video nil :box nil :strike-through nil verline nil
:underline nil :slant normal :weight normal :height 110 :width normal
:foundry "unknown" :family "Droid Sans Mono"))))
...


J'ai posé la question sur emacs.stackexchange.com
(http://emacs.stackexchange.com/questions/30109/size-of-default-face-from-environment-variable)
et l'on m'a proposé ceci :

(custom-set-faces
`(default ((t (:inherit nil [...]
:height ,(string-to-int (getenv "EMACS_FONT_HEIGHT"))
[...] :family "Droid Sans Mono"))))
)

Le gros inconvénient, c'est qu'il n'est plus possible d'utiliser Custom ?
même pour des variables autres que des polices ! ? car il écrase cette
expression par un réglage de la valeur « en dur ».

J'ai essayé de sortir ce réglage de custom-set-faces et de le faire « à
part » avec set-face-attribute mais je n'y arrive pas. Auriez-vous une
solution ?

--
LL
?? ???? ??? ????? ???? (????????)

Bonjour,

Le 24/01/2017 à 13:12, Lucas Levrel a écrit dans le message
 :


Je voudrais que la taille de la /default face/ soit lue dans une
variable d'environnement. Actuellement dans .emacs j'ai :

(custom-set-faces
'(default ((t (:inherit nil :stipple nil :background
"grey80" :foreground "black" :inverse-video nil :box
nil :strike-through nil verline nil :underline nil :slant
normal :weight normal :height 110 :width normal :foundry
"unknown" :family "Droid Sans Mono"))))
...


J'ai posé la question sur emacs.stackexchange.com
(http://emacs.stackexchange.com/questions/30109/size-of-default-face-from-environment-variable)
et l'on m'a proposé ceci :

(custom-set-faces
`(default ((t (:inherit nil [...]
:height ,(string-to-int (getenv "EMACS_FONT_HEIGHT"))
[...] :family "Droid Sans Mono"))))
)

Le gros inconvénient, c'est qu'il n'est plus possible d'utiliser
Custom ? même pour des variables autres que des polices ! ? car il
écrase cette expression par un réglage de la valeur « en dur ».

J'ai essayé de sortir ce réglage de custom-set-faces et de le faire
« à part » avec set-face-attribute mais je n'y arrive pas. Auriez-vous
une solution ?


Peut-être que le mieux reste de te faire un thème personnalisé ; voir
« 14.6 Custom Themes » dans le manuel elips ou, par exemple,
<https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el>.

--
Benoit Izac

Le 24 janvier 2017, à 15:21, Benoit Izac a écrit :


(custom-set-faces
`(default ((t (:inherit nil [...]
:height ,(string-to-int (getenv "EMACS_FONT_HEIGHT"))
[...] :family "Droid Sans Mono"))))
)


Peut-être que le mieux reste de te faire un thème personnalisé ; voir
« 14.6 Custom Themes » dans le manuel elips ou, par exemple,
<https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el>.


Merci Benoît. Le lien fait plutôt peur vue la faible ampleur des modifs
que j'ai à faire, mais en suivant aussi la doc d'Emacs
https://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Custom-Themes.html#Creating-Custom-Themes
j'y suis parvenu.

J'ai donc maintenant deux micro-thèmes contenant quelque chose comme :
---
(custom-theme-set-faces
'toto
'(default ((t (:height 127)))))
---
et dans mon .emacs j'ai inséré :
---
(if (string-equal "toto" (getenv "PROFIL"))
(load-theme 'toto t)
(load-theme 'titi t))
---

--
LL
?? ???? ??? ????? ???? (????????)
C'est mieux avé les accents (F. Patte)

Lucas Levrel a écrit :


Le 24 janvier 2017, à 15:21, Benoit Izac a écrit :


(custom-set-faces
`(default ((t (:inherit nil [...]
:height ,(string-to-int (getenv "EMACS_FONT_HEIGHT"))
[...] :family "Droid Sans Mono"))))
)


Peut-être que le mieux reste de te faire un thème personnalisé ; voir
« 14.6 Custom Themes » dans le manuel elips ou, par exemple,
<https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el>.


Merci Benoît. Le lien fait plutôt peur vue la faible ampleur des
modifs que j'ai à faire, mais en suivant aussi la doc d'Emacs
https://www.gnu.org/software/emacs/manual/html_node/emacs/Creating-Custom-Themes.html#Creating-Custom-Themes
j'y suis parvenu.

J'ai donc maintenant deux micro-thèmes contenant quelque chose comme :
---
(custom-theme-set-faces
'toto
'(default ((t (:height 127)))))
---
et dans mon .emacs j'ai inséré :
---
(if (string-equal "toto" (getenv "PROFIL"))
(load-theme 'toto t)
(load-theme 'titi t))
---


Dans mon fichier d'init, j'ai le code suivant que j'ai créé il y a
vraiment un bout de temps, et je ne me souviens plus d'où j'ai sorti
cela.

Ce qu'il faut retenir c'est que j'utilise la variable
initial-frame-alist pour régler les paramètres initiaux de la fenêtre
(taille, police, taille de police).

Un petit détail : j'utilise la bibliothèque mathématique calc-ext pour
faire les calculs, mais en fait il y a tout ce qu'il faut en Elisp de
base.

--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
;; Plein écran & police
;;-------------------------------------------------------------------
(require 'calc-ext)
(let ((font-size 14)
(h-font-size (math-read-number "11.6"))
(v-font-size (math-read-number "20.5"))
(tool-bar-lines 0)
(menu-bar-lines 1)
calc-command-line)
(setq initial-frame-alist
`(
(font . ,(concat "-*-Lucida Console-*-*-*-*-*-"
(number-to-string (* 10 font-size))
"-*-*-*-*-iso8859-1"))
(top . 1)
(left . 1)
(width . ,(math-fixnum
(calcFunc-round (math-div
(x-display-pixel-width)
h-font-size))))
(height . ,(math-fixnum
(calcFunc-round
(calcFunc-sub (math-div (x-display-pixel-height) v-font-size)
tool-bar-lines menu-bar-lines))))
(tool-bar-lines . ,tool-bar-lines)
(menu-bar-lines . ,menu-bar-lines)
(right-fringe)
(left-fringe);
));
)

;; calcul de la hauteur du cadre, 37 de base, et on ajoute 1
;; s'il y a la barre d'outils, et encore 1 s'il y a la barre
;; de menu.
(let ((height 49))
(dolist (k '(tool-bar-lines menu-bar-lines))
(let ((c (assoc k initial-frame-alist)))
(when (and c (= 0 (cdr c)))
(setq height (1+ height))
)
)
)
(setq initial-frame-alist (cons (cons 'height height) initial-frame-alist))
)
--8<----8<----8<----8<----8<-- end -->8---->8---->8---->8---->8----

Vincent.

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus

Le 14 mars 2017, à 10:40, Vincent Belaïche a écrit :


Dans mon fichier d'init, j'ai le code suivant que j'ai créé


(...)

Wow. J'archive ton code, mais pour l'instant je n'utilise que deux écrans
différents donc je reste avec mon choix entre deux réglages trouvés à la
main

Merci.

--
LL
?? ???? ??? ????? ???? (????????)

Poser votre question sur le forum OS alternatifs

Questions similaires :

Police "UbuntuMono" avec emacs 23

Bonjour Je travaille actuellement avec Ubuntu 10.04 et emacs 23.1.1. J'aimerais pouvoir utiliser la police "UbuntuMono-R" dans emacs, mais je ne vois pas comment faire. Cette police est installée sur mon système, mais emacs ne la reconnait pas (par exemple (set-default-font "UbuntuMono-R-12")...

Changement de police facile sous emacs

Bonjour, J'utilise emacs principalement pour la programmation et l'édition de texte bilingues français-japonais avec XeLaTex, donc codés en utf-8. Mes polices sont celles par défaut, donc courier je pense. Pas de problème pour la programmation mais les caractères chinois et japonais sont atrocement...

police grasse, italique, de largeur fixe et unicode complète.

Bonjour, J'utilise le mode muse-el d'emacs comme d'un bloc-note. Il exploite 4 sortes de polices : normale, italique, grasse et grasse-italique gérés par des . Elles sont codées ainsi : (defface muse-emphasis-1 '((t (:italic t))) "Face for italic emphasized text." :group 'muse-colors) (defface...

ajuster la taille de la police

Bonjour, Je souhaite ajuster la taille de la police de caractère de mon Emacs 23.0.60.1. La taille par défaut me semble un peu petite. Pour ce faire, ceci dans mon .emacs: (global-font-lock-mode 1) (setq font-lock-maximum-decoration t) (setq line-number-mode t) (setq column-number-mode...

choisir ma taille de police

Bonjour, je suis débutant sous emacs. Je sais me déplacer dans mon buffer, faire des sélections, etc... j'ai besoin d'un affichage plus gros pour mon usage courant. Alors je vais dans le menu Options->Mule- Ce réglage n'est pas sauvegardé. J'ai essayé SaveOption, mais ça n'a pas marché. Comment...