* bug#14629: 24.3.50; (elisp) `Face Attributes', :font -> "font object" @ 2013-06-16 6:01 Drew Adams 2013-06-17 15:14 ` Kenichi Handa 0 siblings, 1 reply; 6+ messages in thread From: Drew Adams @ 2013-06-16 6:01 UTC (permalink / raw) To: 14629 The description of face attribute :font is incomprehensible. It says that the value should be a "font object". What is that, you ask? Well, it says to see node `Font Selection' to find out. But that node says nothing about a "font object". I have no idea what it is, that is, what possible values attribute :font can have. I know about the frame parameter `font', whose value is an XLFD string (AFAICT). But I have no idea what :font can be set to. Not only that, but if I try to guess from using `M-x customize-face', there is no `Font' attribute. There are only attributes `Font Family' and `Font Foundry'. Please give us a clue what :font is - what forms its value takes. In GNU Emacs 24.3.50.1 (i686-pc-mingw32) of 2013-06-13 on ODIEONE Bzr revision: 112978 xfq.free@gmail.com-20130613224333-3yfl8navh3c1vmxy Windowing system distributor `Microsoft Corp.', version 6.1.7601 Configured using: `configure --prefix=/c/Devel/emacs/binary --enable-checking=yes,glyphs CFLAGS='-O0 -g3' CPPFLAGS='-Ic:/Devel/emacs/include' LDFLAGS='-Lc:/Devel/emacs/lib'' ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#14629: 24.3.50; (elisp) `Face Attributes', :font -> "font object" 2013-06-16 6:01 bug#14629: 24.3.50; (elisp) `Face Attributes', :font -> "font object" Drew Adams @ 2013-06-17 15:14 ` Kenichi Handa 2013-06-17 16:37 ` Drew Adams 0 siblings, 1 reply; 6+ messages in thread From: Kenichi Handa @ 2013-06-17 15:14 UTC (permalink / raw) To: 14629 > From: Drew Adams <drew.adams@oracle.com> [...] > The description of face attribute :font is incomprehensible. > It says that the value should be a "font object". What is that, you > ask? Well, it says to see node `Font Selection' to find out. But > that > node says nothing about a "font object". I've just committed the attached fix. > I have no idea what it is, that is, what possible values attribute > :font > can have. I know about the frame parameter `font', whose value is an > XLFD string (AFAICT). But I have no idea what :font can be set to. You can also specify a font name, which is written in Info as below: When specifying this attribute using `set-face-attribute' (*note Attribute Functions::), you may also supply a font spec, a font entity, or a string. Emacs converts such values to an appropriate font object, and stores that font object as the actual attribute value. If you specify a string, the contents of the string should be a font name (*note Fonts: (emacs)Fonts.); if the font name is an XLFD containing wildcards, Emacs chooses the first font matching those wildcards. > Not only that, but if I try to guess from using `M-x customize-face', > there is no `Font' attribute. There are only attributes `Font Family' > and `Font Foundry'. Ah, perhaps customize-face should be improved. --- Kenichi Handa handa@gnu.org === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2013-04-06 07:39:48 +0000 +++ doc/lispref/display.texi 2013-06-17 15:00:04 +0000 @@ -2126,7 +2126,8 @@ @item :font The font used to display the face. Its value should be a font object. -@xref{Font Selection}, for information about font objects. +@xref{Low-Level Font}, for information about font objects, font specs, +and font entities. When specifying this attribute using @code{set-face-attribute} (@pxref{Attribute Functions}), you may also supply a font spec, a font @@ -3260,7 +3261,9 @@ properties are intermediate between a font object and a font spec: like a font object, and unlike a font spec, it refers to a single, specific font. Unlike a font object, creating a font entity does not -load the contents of that font into computer memory. +load the contents of that font into computer memory. Emacs may open +multiple font objects of different sizes from a single font entity +referring to a scalable font. @defun find-font font-spec &optional frame This function returns a font entity that best matches the font spec ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#14629: 24.3.50; (elisp) `Face Attributes', :font -> "font object" 2013-06-17 15:14 ` Kenichi Handa @ 2013-06-17 16:37 ` Drew Adams 2013-06-17 20:06 ` Drew Adams 2019-11-02 15:01 ` Eli Zaretskii 0 siblings, 2 replies; 6+ messages in thread From: Drew Adams @ 2013-06-17 16:37 UTC (permalink / raw) To: Kenichi Handa, 14629 [Resending - forgot to include the bug list in my reply.] > > The description of face attribute :font is incomprehensible. > > > It says that the value should be a "font object". What is that, you > > ask? Well, it says to see node `Font Selection' to find out. But > > that node says nothing about a "font object". > > I've just committed the attached fix. Thanks for working on this so promptly. > > I have no idea what it is, that is, what possible values attribute > > :font can have. I know about the frame parameter `font', whose > > value is an XLFD string (AFAICT). But I have no idea what :font > > can be set to. > > You can also specify a font name, You say "also". In addition to what? What else can one provide here, besides a font name? > which is written in Info as below: > > When specifying this attribute using `set-face-attribute' But I am not using `set-face-attribute'. What then? This node is about face attributes generally. I'm specifying them this way, for instance: (propertize MYFONT 'face (list :foundry FOUNDRY :family FAMILY :weight WEIGHT :slant SLANT :width WIDTH)) That uses text property `face', specifying certain face attributes, which this node presumably describes. And in general it works. Text property `face' is no doubt not the same thing as a face. But what about a face attribute? Doesn't a face attribute apply to both a face and the `face' text property? And again, using the attributes with a `face' text property does work for some of the attributes. Is it not a bug that it does not work for all of them? If not, it is a doc bug that we do not specify which face attributes you can use with a `face' text property. > (*note Attribute Functions::), you may also supply a font spec, What is a font spec? Is it something like the XLFD string above? > a font entity, What is a font entity? > or a string. What kind of string? What's the format? > Emacs converts such values to an appropriate font object, As I mentioned before, "font object" seems to be defined nowhere - at least not in the node cross-referenced for it. What is a font object? > and stores that font object as the actual attribute > value. Beyond the doc, there is a real product bug - see #14634. In particular, attribute :font seems to have *no effect* when you do, for example, this: (propertize myfont 'face (list :font myfont)) > > Not only that, but if I try to guess from using > > `M-x customize-face', there is no `Font' attribute. There are > > only attributes `Font Family' and `Font Foundry'. > > Ah, perhaps customize-face should be improved. Yes. But the problem seems to be greater than Customize. See above: attribute :font has no effect in at least some contexts (beyond Customize). It's not clear what contexts it actually has the documented effect. Is it only for `set-face-attribute'? That would mean that it does not apply to contexts such as using text property `face'. > === modified file 'doc/lispref/display.texi' Thanks for the patch, but sorry, but I do not see how it is relevant to this bug. ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#14629: 24.3.50; (elisp) `Face Attributes', :font -> "font object" 2013-06-17 16:37 ` Drew Adams @ 2013-06-17 20:06 ` Drew Adams 2019-11-02 15:01 ` Eli Zaretskii 1 sibling, 0 replies; 6+ messages in thread From: Drew Adams @ 2013-06-17 20:06 UTC (permalink / raw) To: Kenichi Handa, 14629 Also, what about adding face attributes that correspond to each of the font properties listed in (emacs) `Windows Fonts'? Node (elisp) `Face Attributes' already makes clear that: "Some of these attributes are meaningful only on certain kinds of displays. If your display cannot handle a certain attribute, the attribute is ignored." IOW, what about adding these? :adstyle :registry :spacing :script :antialias ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#14629: 24.3.50; (elisp) `Face Attributes', :font -> "font object" 2013-06-17 16:37 ` Drew Adams 2013-06-17 20:06 ` Drew Adams @ 2019-11-02 15:01 ` Eli Zaretskii 2020-09-21 14:30 ` Lars Ingebrigtsen 1 sibling, 1 reply; 6+ messages in thread From: Eli Zaretskii @ 2019-11-02 15:01 UTC (permalink / raw) To: Drew Adams; +Cc: 14629 > Date: Mon, 17 Jun 2013 09:37:56 -0700 (PDT) > From: Drew Adams <drew.adams@oracle.com> > > > (*note Attribute Functions::), you may also supply a font spec, > > What is a font spec? Is it something like the XLFD string above? > > > a font entity, > > What is a font entity? There's a cross-reference there to "Low-Level Font", which tells you something about these objects. > > or a string. > > What kind of string? What's the format? There's a cross-reference there to "Fonts" in the Emacs manual, which answers that question. > > Emacs converts such values to an appropriate font object, > > As I mentioned before, "font object" seems to be defined nowhere - > at least not in the node cross-referenced for it. What is a font > object? See above. > Beyond the doc, there is a real product bug - see #14634. > In particular, attribute :font seems to have *no effect* when you do, > for example, this: > > (propertize myfont 'face (list :font myfont)) What is 'myfont' in this example? ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#14629: 24.3.50; (elisp) `Face Attributes', :font -> "font object" 2019-11-02 15:01 ` Eli Zaretskii @ 2020-09-21 14:30 ` Lars Ingebrigtsen 0 siblings, 0 replies; 6+ messages in thread From: Lars Ingebrigtsen @ 2020-09-21 14:30 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 14629 Eli Zaretskii <eliz@gnu.org> writes: >> Date: Mon, 17 Jun 2013 09:37:56 -0700 (PDT) >> From: Drew Adams <drew.adams@oracle.com> >> >> > (*note Attribute Functions::), you may also supply a font spec, >> >> What is a font spec? Is it something like the XLFD string above? >> >> > a font entity, >> >> What is a font entity? > > There's a cross-reference there to "Low-Level Font", which tells you > something about these objects. The documentation here looks OK to me now after the changes, so I'm closing this bug report. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-09-21 14:30 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-06-16 6:01 bug#14629: 24.3.50; (elisp) `Face Attributes', :font -> "font object" Drew Adams 2013-06-17 15:14 ` Kenichi Handa 2013-06-17 16:37 ` Drew Adams 2013-06-17 20:06 ` Drew Adams 2019-11-02 15:01 ` Eli Zaretskii 2020-09-21 14:30 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).