Subject: Re: bug#18293: Emacs ignores the ":aspect=N" specification of xft fonts

From: Jan Djärv <[email-masked]>
Date: Sun, 07 Sep 2014 17:25:45 +0200

Den 2014-08-19 05:01, Stefan Monnier skrev:
> Package: Emacs
> Version: 24.4.50
>
>
> Try:
>
>     % xterm -fa 'DejaVu Sans Mono:pixelsize=10'
>     % xterm -fa 'DejaVu Sans Mono:pixelsize=10:aspect=0.5'
>
> See how ":aspect=0.5" changes the aspect ratio of characters.

I tried Fedora and Mint, xterm doesn't do anything with aspect=...  It is 
exactly the same as without for any value.  What system do you run?

	Jan D.

>
> and then compare:
>
>     % emacs -Q -fn 'DejaVu Sans Mono:pixelsize=10'
>     % emacs -Q -fn 'DejaVu Sans Mono:pixelsize=10:aspect=0.5'
>
> and notice how Emacs does not honor the ":aspect=0.5" specification.
>
> In my particular use-case (which is probably not that uncommon in
> Emacs's mostly monospaced world), an even better feature would be to be
> able to say "choose `size' and `aspect' such that it uses the same
> number of pixels vertically and horizontally as the default face".
>
>
>          Stefan
>
>
>
>
> In GNU Emacs 24.4.50.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw3d scroll bars)
>   of 2014-07-19 on pastel
> Repository revision: [email-masked]
> Windowing system distributor `The X.Org Foundation', version 11.0.11501000
> System Description:	Debian GNU/Linux 7.6 (wheezy)
>
> Configured using:
>   `configure -C --enable-checking --enable-check-lisp-object-type
>   'CFLAGS=-Wall -g3 -Og -Wno-pointer-sign'
>   PKG_CONFIG_PATH=/home/monnier/lib/pkgconfig'
>
> Configured features:
> XAW3D XPM JPEG TIFF GIF PNG SOUND GPM DBUS NOTIFY GNUTLS LIBXML2
> FREETYPE M17N_FLT LIBOTF XFT ZLIB
>
> Important settings:
>    value of $LANG: fr_CH.UTF-8
>    locale-coding-system: utf-8-unix
>
> Major mode: InactiveMinibuffer
>
> Minor modes in effect:
>    semantic-minor-modes-format: ((:eval (if (or semantic-highlight-edits-mode semantic-show-unmatched-syntax-mode semantic-idle-scheduler-mode)  S)))
>    dired-omit-mode: t
>    csv-field-index-mode: t
>    shell-dirtrack-mode: t
>    diff-auto-refine-mode: t
>    electric-pair-mode: t
>    url-handler-mode: t
>    global-reveal-mode: t
>    reveal-mode: t
>    auto-insert-mode: t
>    savehist-mode: t
>    minibuffer-electric-default-mode: t
>    electric-indent-mode: t
>    mouse-wheel-mode: t
>    global-prettify-symbols-mode: t
>    menu-bar-mode: t
>    file-name-shadow-mode: t
>    global-font-lock-mode: t
>    auto-composition-mode: t
>    auto-encryption-mode: t
>    auto-compression-mode: t
>    line-number-mode: t
>
> Recent input:
> <switch-frame> <switch-frame> <switch-frame> <help-echo>
> <switch-frame> <down-mouse-1> <mouse-movement> <mouse-1>
> <backspace> <backspace> <backspace> <backspace> <backspace>
> <backspace> <backspace> <backspace> <backspace> a s
> p e c t = 0 . 5 <help-echo> <help-echo> <down-mouse-2>
> <switch-frame> <switch-frame> <left> <right> <right>
> <left> <left> <right> <right> <switch-frame> <switch-frame>
> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo>
> <help-echo> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <help-echo> <switch-frame>
> <switch-frame> <switch-frame> M-x i e l m <return>
> <switch-frame> <switch-frame> C-h f s e t - f a c e
> - f o n <tab> <return> <help-echo> <switch-frame> <help-echo>
> <switch-frame> <switch-frame> <help-echo> <switch-frame>
> <switch-frame> <down-mouse-5> <mouse-5> <down-mouse-4>
> <mouse-4> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <help-echo> <help-echo> <down-mouse-2>
> <mouse-1> <switch-frame> <down-mouse-1> <mouse-1> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> C-e <right>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <help-echo> <switch-frame> <switch-frame>
> <switch-frame> ( s e t - f a c e - f o n <tab> SPC
> ' f o n t - l o - s t r - f <tab> SPC " D e j a V u
> SPC S a n s SPC M o n o C-e <return> M-p <left> <left>
> = <backspace> : p i x e l s i z e = 1 3 C-e <return>
> M-p <left> <left> <backspace> 0 C-e <return> M-p <left>
> <left> <backspace> 3 <return> M-p <left> <left> <backspace>
> 2 C-e <return> M-p <left> <left> : a s p e c t = 0
> . 5 C-e <return> <help-echo> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <help-echo> <switch-frame> <help-echo> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> <switch-frame> <switch-frame> <switch-frame>
> <switch-frame> M-x r e p o - e m - b <tab> <return
>>
>
> Recent messages:
> Creating customization setup...done
> Mark set
>
> Char: u (117, #o165, #x75) point=12366606 of 54209 (22817%) <12345678-12399887> column=24
> user-error: Node has no Up
> Mark saved where search started
> funcall-interactively: End of buffer
> Warning: turn-on-eldoc-mode is obsolete!
>
> Warning: turn-on-eldoc-mode is obsolete!
>
> Load-path shadows:
> /home/monnier/src/emacs/elpa/packages/ada-mode/ada-mode hides /home/monnier/src/emacs/work/lisp/progmodes/ada-mode
>
> Features:
> (mail-extr emacsbug crm dabbrev bbdb-com bbdb timezone quail conf-mode
> reposition log-view vc-annotate tabify imenu man sh-script descr-text
> reftex-sel reftex-parse reftex-toc tramp-cache tramp-sh tramp
> tramp-compat tramp-loaddefs trampver sml-mode smie srecode/document
> semantic/doc srecode/semantic semantic/senator srecode/extract
> srecode/insert srecode/filters srecode/find srecode/map srecode/ctxt
> srecode/compile srecode/args ede/speedbar ede/files ede ede/base
> ede/auto ede/source eieio-speedbar eieio-custom srecode/dictionary
> srecode/table srecode informat texinfo bat-mode grep cmuscheme wdired
> ls-lisp find-dired dired-aux dired-x rect csv-mode parse-time sgml-mode
> two-column skeleton reftex-dcr reftex reftex-vars tex-mode compile shell
> latexenc view cal-china lunar solar cal-dst cal-bahai cal-islam
> cal-hebrew holidays hol-loaddefs cal-french diary-lib diary-loaddefs
> cal-move completion nnheader semantic/bovine/c semantic/db-mode
> semantic/decorate/include semantic/decorate/mode semantic/decorate pulse
> semantic/bovine/c-by semantic/lex-spp semantic/idle semantic/bovine/gcc
> semantic/dep semantic/bovine semantic/analyze/refs semantic/db-find
> semantic/db-ref semantic/analyze semantic/sort semantic/scope
> semantic/analyze/fcn semantic/db eieio-base semantic/ctxt
> semantic/format semantic/tag-ls semantic/find semantic/util-modes
> semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local
> cedet hideif cpp cmacexp cc-mode cc-fonts cc-awk cc-guess cc-menus
> cc-cmds cc-styles cc-align cc-engine cc-langs cc-vars cc-defs
> smerge-mode mule-diag ffap whitespace diff-mode image-file iimage
> epa-file epa derived epg epg-config misearch multi-isearch sort
> mule-util network-stream starttls tls mpc executable copyright xscheme
> warnings unsafep trace testcover shadow scheme re-builder profiler pcase
> inf-lisp ielm pp ert elp edebug cl-indent eieio-opt speedbar sb-image
> ezimage dframe org-clock org-colview org-table org-protocol org-mouse
> org-mobile org-agenda org-indent org-feed org-crypt org-capture
> org-attach vc-git org-id org-element org-rmail org-mhe org-irc org-info
> org-gnus org-docview org-bibtex bibtex org-bbdb org-w3m org org-macro
> org-footnote org-pcomplete pcomplete org-list org-faces org-entities
> org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table
> ob-keys ob-exp ob-comint comint ansi-color ob-core ob-eval org-compat
> org-macs org-loaddefs find-func cal-menu calendar cal-loaddefs cus-edit
> cus-start cus-load wid-edit autorevert filenotify doc-view jka-compr
> image-mode debug filecache bug-reference log-edit message sendmail dired
> format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse
> rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils
> mailheader ring pcvs-util add-log vc-bzr vc-sccs vc-svn vc-cvs vc-rcs
> vc-dir ewoc vc vc-dispatcher server noutline outline easy-mmode flyspell
> ispell eldoc checkdoc thingatpt help-mode advice elec-pair url-handlers
> url-parse auth-source eieio byte-opt bytecomp byte-compile cconv
> eieio-core gnus-util mm-util help-fns mail-prsvr password-cache url-vars
> reveal autoinsert proof-site proof-autoloads cl-macs cl gv pg-vars
> time-date savehist minibuf-eldef disp-table finder-inf edmacro kmacro
> cl-loaddefs cl-lib info easymenu package bbdb-autoloads agda2
> vm-autoloads tooltip electric uniquify ediff-hook vc-hooks
> lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
> fringe tabulated-list newcomment lisp-mode prog-mode register page
> menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
> syntax font-core frame cham georgian utf-8-lang misc-lang vietnamese
> tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
> czech european ethiopic indian cyrillic chinese case-table epa-hook
> jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button
> faces cus-face macroexp files text-properties overlay sha1 md5 base64
> format env code-pages mule custom widget hashtable-print-readable
> backquote make-network-process dbusbind inotify dynamic-setting
> font-render-setting x-toolkit x multi-tty emacs)
>
> Memory information:
> ((conses 8 868800 123937)
>   (symbols 24 54520 0) (miscs 20 18726 738) (strings 16 172745 19909)
>   (string-bytes 1 6163889)
>   (vectors 8 97200) (vector-slots 4 2966948 242924) (floats 8 1173 1182)
>   (intervals 28 73818 63)
>   (buffers 512 117) (heap 1024 1011592 2597))
>
>