From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.help Subject: Re: How to get the actual face attribute? Date: Mon, 22 Jun 2020 21:47:33 +0300 Message-ID: <83lfkfszsq.fsf@gnu.org> References: <60C41409-88B0-4F21-AC6D-2F18394A7C46@gmail.com> <41A32155-634A-4D5A-A878-2F92E6761917@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="115400"; mail-complaints-to="usenet@ciao.gmane.io" To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jun 22 20:48:18 2020 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jnRUQ-000TvK-RK for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 22 Jun 2020 20:48:18 +0200 Original-Received: from localhost ([::1]:39720 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnRUP-0003Zy-TZ for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 22 Jun 2020 14:48:17 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45768) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jnRTn-0003ZK-BL for help-gnu-emacs@gnu.org; Mon, 22 Jun 2020 14:47:39 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:46819) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jnRTn-0001tO-2v for help-gnu-emacs@gnu.org; Mon, 22 Jun 2020 14:47:39 -0400 Original-Received: from [176.228.60.248] (port=1704 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jnRTm-0003Sn-It for help-gnu-emacs@gnu.org; Mon, 22 Jun 2020 14:47:38 -0400 In-Reply-To: <41A32155-634A-4D5A-A878-2F92E6761917@gmail.com> (message from Yuan Fu on Mon, 22 Jun 2020 13:21:15 -0400) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:123420 Archived-At: > From: Yuan Fu > Date: Mon, 22 Jun 2020 13:21:15 -0400 > Cc: help-gnu-emacs@gnu.org, Stefan Monnier > > I have a package that aligns org tables even for variable pitch text, CJK text, images, etc are in the table: > > > > Some one reported that when they change the text size with text-scale-adjust, the alignment are messed up. That’s because the package aligns by calculating the pixel width of each cell, and when the text size are adjusted that width is no accurate anymore. I’m using this function to calculate the width of a glyph (which adds up to the width of a cell): > > (let* ((p (or point (point)))) > (if (eq (char-after point) ?\t) > (valign--tab-width (font-at p)) > ;; (font-at 0 nil (buffer-substring p (1+ p))) doesn’t work, the > ;; font is sometimes wrong. (font-at p) doesn’t work, because > ;; it requires the buffer to be visible. > (aref (aref (font-get-glyphs (font-at p) p (1+ p)) 0) 4))) Did you try using window-text-pixel-size?