Why are only some glyphs implemented as composites? What is the criterium for determining if the glyph should be/remain composite?
I understand leaving the accented letters in Calibri as composites, but why are /questiondown and /exclamdown in Calibri composites, if colon, semicolon, ellipsis, quotes or any of the braces, brackets, parentheses, are not? All of the listed are identical with their rotated versions etc., there were no tweaks applied to them that would justify copying instead of referencing. It seems like the designer:
a) copied the glyphs expecting some tweaks might be needed, but then decided they looked fine and didn't bother to replace them with references, or
b) copied any glyphs that he thought were essential for the English language, and referenced all the glyphs they could that were only needed in some minor useless languages, like Spanish.
Point counts in the glyphs of Calibri that could be utilized as base glyphs for references but were not:
period 8
comma/quoteright/quoteleft 23, quotedblright/quotedblleft 46 (wow, the number of chromosomes in human genome:)
parenleft/parenright 27
Point counts in base glyphs that were used as base for composites:
exclam 34
question 59
One could wonder if the cost (in file size) of referencing a glyph is between the cost of a 27-node path and a 34-node one.
Some other fonts implement inverted Spanish punctuation as copies, and composites are only used for accents, though.
And one final question, does implementing a glyph as composite have any side effects? Is that why it is avoided for basic glyphs (legacy / backward compatibility issues?)
Edit:
I edited the title to match more closely what I meant, the original title was: "Why are composite glyphs used sparingly?"
Comments
I don't see any good reason for not using composites, though I have seen problems caused by mirrored or scaled composites though not for those just rotated like ¡ or ¿
I use composites extensively in my fonts, but not for colon, semicolon, single, or double quotes, etc., only for subscripts, precomposed fractions, etc.
Besides this, composites may have been decomposed in a previous step for some technical reason. You should consider many fonts are made by teams and many designers use more than one type editor. Both scenarios can demand decomposition to keep compatibility among production steps.
I see the reason behind not exporting mirrored composites (there's no way to indicate change of path direction in the reference, right?). Problems from scaled composites seem likely, too (non-integer resulting coordinates). Thanks for pointing these out.
@Igor Freiberger
What I meant was including composites in the final output files, not using them during production. I edited the discussion title.
I only encountered TTF files with non unreferenced composite glyphs. Is that even possible in OTF files? Does it depend on more than the file extension?
Adjusting fitting is trickier, depending upon the environment I happen to be working in, since different tools handle different kinds of positional adjustments slightly differently.
* 2,893 glyphs, 1298 composites, 79,653 points, 975,576 bytes
* 2,893 glyphs, zero composites, 173,282 points, 1,487,016 bytes
Hinting was applied using ttfautohint on exporting from FontCreator 10.1
Paltime has only one dot/heart/star repeated with composites. Using a more complicated dot causes the rendering in Windows to go crazy.
The more composites you need to create sophisticated shapes the bigger the file size will become again. (Perhaps even bigger than if you just draw outlines.)