Thank you for the advice. I see that `window-text-pixel-size' returns true displayed width but I think that's TRT for only the other bug I reported (bug#48149). These two bugs looks similar but the root causes are completed different.
This bug (bug#48148) is actually caused by the difference of the width detection methods between line 1036 in ox-ascii.el (`length') and `fill-region'. This is because `org-ascii-template--document-title' first detects the title width by `length' and then tries to fill it by `org-ascii--fill-string' which does the action by `fill-region' inside. And since the filling point in `fill-region' is based on `move-to-column' and it looks like giving the same result as `string-width', I think `string-width' is TRT for this bug. In other words, specific to this bug, only the same width detection method as `fill-region' is required, even if it doesn't give you the precise width displayed. Please correct me if I am wrong. --- Shingo Tanaka On Sun, 02 May 2021 18:11:41 +0900, Eli Zaretskii wrote: > > > From: Nicolas Goaziou <m...@nicolasgoaziou.fr> > > Cc: Shingo Tanaka <shingo....@gmail.com>, 48...@debbugs.gnu.org > > Date: Sun, 02 May 2021 10:23:34 +0200 > > > > > The accurate method of lining up in these cases is to use > > > window-text-pixel-size instead. That function will return the exact > > > width of a string as it will displayed, in pixels, because it uses the > > > same code as the display engine. > > > > Would you mind giving an example about `window-text-pixel-size' usage in > > this situation? > > I'm not sure what kind of example is necessary. How about if you ask > specific questions about the arguments of that function which you > don't understand clearly how to use? > > > AFAIU, `window-text-pixel-size' returns the size of the window > > No, it returns the size of _text_ when displayed in a window. > > > Note that `text-width' in the code above is not related to the width > > of the window, but is a maximum number of allowed characters on a > > line. > > I didn't mean text-width, I meant the use of string-width: it should > be replaced by a call to window-text-pixel-size.