police grasse, italique, de largeur fixe et unicode complète.
Le
François Maltey
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 muse-emphasis-2
'((t (:bold t)))
"Face for bold emphasized text."
:group 'muse-colors)
(defface muse-emphasis-3
'((t (:bold t :italic t)))
"Face for bold italic emphasized text."
:group 'muse-colors)
Dans ce mode j'utilise l'espace comme tabulation pour avoir une
présentation "plus jolie".
Enfin je compte utiliser les symboles mathématiques d'unicode comme le
appartient, le inclus et co. pour taper des petites formules de maths de
manière wysiswyg.
Je cherche une font qui a ces trois possibilités et ne trouve pas
l'oiseau rare.
Par exemple
fixed n'a pas l'italique
lucidasans-A4 n'a pas les caractères mathématiques
etc.
Dans certains cas les polices italiques et les polices droites n'ont pas
la même largeur.
Je n'arrive pas à lancer emacs avec la police monospace des xterm de
gnome, qui de toute manière ne possède pas d'italique. Connaissez-vous
son nom sous xlsfonts ?
Je cherche donc une police
1/ de même largeur fixe dans les 4 modes :
normal, gras, italique, gras-italique.
2/ avec les caractères utf des maths
et pas uniquement le symbole quelquesoit
Ai-je été assez clair dans la question ? Avez-vous une solution
emacs permet-il des couper/coller de police ?
prendre l'ascii ou le mode latin1 chez une police ayant les 4 modes
et prendre tous les symboles mathématiques sur une autre police ?
Cordialement.
F.
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 muse-emphasis-2
'((t (:bold t)))
"Face for bold emphasized text."
:group 'muse-colors)
(defface muse-emphasis-3
'((t (:bold t :italic t)))
"Face for bold italic emphasized text."
:group 'muse-colors)
Dans ce mode j'utilise l'espace comme tabulation pour avoir une
présentation "plus jolie".
Enfin je compte utiliser les symboles mathématiques d'unicode comme le
appartient, le inclus et co. pour taper des petites formules de maths de
manière wysiswyg.
Je cherche une font qui a ces trois possibilités et ne trouve pas
l'oiseau rare.
Par exemple
fixed n'a pas l'italique
lucidasans-A4 n'a pas les caractères mathématiques
etc.
Dans certains cas les polices italiques et les polices droites n'ont pas
la même largeur.
Je n'arrive pas à lancer emacs avec la police monospace des xterm de
gnome, qui de toute manière ne possède pas d'italique. Connaissez-vous
son nom sous xlsfonts ?
Je cherche donc une police
1/ de même largeur fixe dans les 4 modes :
normal, gras, italique, gras-italique.
2/ avec les caractères utf des maths
et pas uniquement le symbole quelquesoit
Ai-je été assez clair dans la question ? Avez-vous une solution
emacs permet-il des couper/coller de police ?
prendre l'ascii ou le mode latin1 chez une police ayant les 4 modes
et prendre tous les symboles mathématiques sur une autre police ?
Cordialement.
F.

Poser une question


Bonjour,
Si je comprends bien la question, non.
Oui, Emacs le peut :)
Il faut définir un "fontset", autrement dit un mapping qui indique des
plages de caractères et les polices qui servent à les afficher.
Je m'en suis déjà servi exactement pour cela (sous Mac OSX) : utiliser
une police pour le texte courant et une autre pour des caractères
unicode, en l'occurrence les "box drawing".
Tu peux avoir des infos sur un fontset avec M-x describe-fontset RET
Pour la définition des tes propres fontset, cela a peut-être bougé
depuis que j'ai joué avec en Emacs21 et 22, vu que la 23 connait utf-8
en interne. Mais voici quelques billes :
- la doc principale est dans la fonction create-fontset-from-fontset-spec
- une fois un fontset défini, on peut l'utiliser dans la définition
d'une frame, et dans ton ca notamment dans le default-frame-alist
Exemple :
(create-fontset-from-fontset-spec
"-apple-monaco-medium-r-normal--9-*-*-*-*-*-fontset-monaco,
ascii:-apple-monaco-medium-r-normal--9-90-75-75-m-90-mac-roman,
mule-unicode-0100-24ff:-apple-lucida
grande-medium-r-normal--0-0-75-75-m-0-mac-roman,
mule-unicode-2500-33ff:-apple-bitstream vera sans mono
bold-medium-r-normal--0-0-75-75-m-0-mac-roman,
latin-iso8859-15:-apple-monaco-medium-r-normal--9-90-75-75-m-90-mac-roman,
latin-iso8859-1:-apple-monaco-medium-r-normal--9-90-75-75-m-90-mac-roman")
(setq default-frame-alist
'((width . 120)
(height . 44)
(top . 426) ;;pixels
(left . 260);;pixels
;(font . "fontset-monaco");fontset-mac ;; preferences
;(font . (create-fontset-from-mac-roman-font "-apple-monaco-medium-r-normal--9-90-75-75-m-90-mac-roman"))
;(font . (create-fontset-from-mac-roman-font "unifont medium"))
(cursor-type . bar)))
Dans la définition de default-frame-alist (la fenêtre initiale d'Emacs
lors de son démarrage) il suffit de décommenter l'utilisation d'une
fonte pour l'utiliser.
(C'est extrait de mon .emacs)
Je ne sais pas du tout si ma définition de fontset fonctionnera
correctement sur ton système (j'en doute si ce n'est pas un mac) mais tu
as quelques pistes.
Si tu as besoin d'aide supplémentaire, il n'y a qu'à demander :)
--
Sébastien Kirche
Ça m'a titillé de voir si l'usage des fontsets n'était pas plus simple
que ce que j'avais expérimenté.
En fait le manuel contient une section "Modifying Fontsets", avec des
exemples pour les cas où on souhaite juste modifier un fontset existant :
;; Use Liberation Mono for latin-3 charset.
(set-fontset-font "fontset-default" 'iso-8859-3 "Liberation Mono")
;; Prefer a big5 font for han characters
(set-fontset-font "fontset-default"
'han ( font-spec :registry "big5")
nil 'prepend)
;; Use DejaVu Sans Mono as a fallback in fontset-startup before
;; resorting to fontset-default.
(set-fontset-font "fontset-startup" nil "DejaVu Sans Mono" nil
'append)
;; Use MyPrivateFont for the Unicode private use area.
(set-fontset-font "fontset-default" '(#xe000 . #xf8ff)
"MyPrivateFont")
HTH
--
Sébastien Kirche
"emacs -fn 10x20" lance un emacs qui contient tous les caractères que
je cherche, mais qui n'a ni police italique ni police grasse.
Les lettres grecs et les symboles mathématiques sont très complets.
"emacs' sans paramètre -fn ni entrée dans le .Xresources utilise une
police inconnue qui a bien et l'italique et le gras et le gras-
italique, tous de même largeur.
Je ne sais pas quelle est le nom de cette police par défaut.
Les deux polices ont a peu près la même largeur. J'utilise un emacs.
22.2 d'ubuntu.
J'ai testé pas mal de commande de cette forme :
(set-fontset-font "fontset-default" 'mule-unicode-0100-24ff "10x20")
(set-fontset-font "fontset-standard" 'mule-unicode-0100-24ff "10x20")
(set-fontset-font "fontset-default" 'greek-iso8859-7 "10x20")
Ces commandes renvoient nil, mais le
(ucs-insert #x2200)
qui devrait faire afficher un beau quantificateur qquesoit (le A tête
en bas) reste le triste rectangle vide,, alors que ce caractère est
bien visible dans emacs -fn "10x20".
Bien cordialement.
F. (qui poste cette fois-ci depuis gg)
Bah, ça me permet d'effectuer un peu de recyclage dans mes connaissances
des encodages dans Emacs et de l'affichage.
En positionnant le point (le curseur) sur un caractère donné on peut
obtenir un tas d'informations avec la version longue de la commande
what-cursor-position (C-u C-x =)
On peut voir le nom de la fonte utilisée juste en dessous de la ligne
avec "display :". Cette information n'est pas disponible en mode texte
(dans un terminal).
Si tu as un rectangle vide c'est qu'Emacs ne sait pas avec quelle fonte
afficher le caractère. Cela peut se vérifier avec la commande C-u C-x précitée.
J'expérimente un peu au fur et à mesure de ma réponse : d'après le
manuel (chapitre fontsets), la fonction set-fontset-font permet de
modifier un fontset en spécifiant quelle fonte utiliser pour quel
caractère (ici la "fonte" peut être désignée par son nom ou par sa
famille, et "caractère" peut-être une plage de caractères, un charset ou
un "script name")
Par ailleurs, (font-family-list) et (x-family-fonts) permettent
d'obtenir des listes de familles et de noms de fontes utilisables par la
frame (fenêtre) courante.
En jouant un peu, j'arrive à choisir une fonte particulière pour le
caractère "quelque soit" :
(set-fontset-font nil '(#x2200 . #x2200) "Arial Unicode MS")
Ici le premier nil signifie que je modifie le fontset par défaut (qui
s'appelle d'ailleurs fontset-default)
À la place du simple nom de police on peut utiliser (font-spec) pour
construire une sélection de fonte un peu plus élaborée :
(set-fontset-font nil '(#x2200 . #x2200)
(font-spec :family "Arial Unicode MS" :size 24))
Ceci me permet d'afficher ce même caractère 0x2200 (et seulement lui) en
Arial 24 points. On peut aussi spécifier la graisse, l'inclinaison, le
soulignement...
Exemple : (font-spec :family "Arial Unicode MS" :size 24 :slant 'italic)
Il faut regarder la doc de font-spec et de set-face-attribute pour les
possibilités (mais je n'ai pas réussi à toutes les faire fonctionner
comme barré, encadré, couleur, ...)
Je pense que si on veut mixer plusieurs définitions et les réutiliser,
on a intérêt à créer un fontset personnalisé. Par exemple :
(create-fontset-from-fontset-spec "-misc-seki-medium-r-*-*-*-*-*-*-*-*-fontset-custom_seki")
(set-fontset-font "fontset-custom_seki" 'latin-iso8859-1 '("American Typewriter" . "iso8859-1"))
(set-fontset-font "fontset-custom_seki" 'latin-iso8859-15 '("American Typewriter" . "iso8859-15"))
(set-fontset-font "fontset-custom_seki" '(#x2200 . #x2200) (font-spec :family "Arial Unicode MS" :size 24 :slant 'italic))
(set-frame-font "-misc-seki-medium-r-*-*-*-*-*-*-*-*-fontset-custom_seki")
Normalement on doit pouvoir utiliser (font . "-misc...") dans le
default-frame-alist comme je disais dans mon message précédent mais là je
n'y arrive pas...
Est-ce que ça t'aide ?
--
Sébastien Kirche
Voil