Small Capitals Using LibreOffice Simulated Formatting compare with the lowercase letters
Small Capitals Using Advanced OpenType Features compare with the lowercase letters
Small Capitals With Simulated Formatting and Avanced OpenType Tags Applied = 1st line
The first line was directly formatted with Libertinus Serif and then applied LibreOffice’s Small Capitals effect from Menu Format, Character, Font Effects, Case, Small capitals. The effect applied was simulated by LibreOffice. Notice how the small capitals have a thinner stroke than the regular capitals and even the lowercase letters (when they should blend) and are noticeable higher than the lowercase letters. The XML code on the document is <style:text-properties fo:font-variant="small-caps" style:font-name="Libertinus Serif"/>.
The second line was directly formatted with Libertinus Serif and then applied Advanced OpenType Feature Small Capitals (use “Libertinus Serif:smcp” as the font name or go to Menu Format, Character, Font, Features, Lowercase to Small Capitals). The effect applied was built-in on the typeface’s font file (true small capitals). Notice how the built-in small capitals have the same stroke width as the capitals and are bolder than the simulated small capitals, blending perfectly with the capitals and the lowercase letters. The XML code on the document is <style:text-properties style:font-name="Libertinus Serif:smcp"/>.
The third line was directly formatted with both methods: simulated and built-in/true small capitals. LibreOffice 7.x renders them as if it was applied only the simulated method when it should apply the built-in/true small capitals. The XML code on the document is <style:text-properties fo:font-variant="small-caps" style:font-name="Libertinus Serif:smcp"/> (notice there are the two tags).
LibreOffice should be smart to detect when the font file has a “smcp” tag and then apply the built-in small capitals instead of simulating the effect when the user chooses to apply the small capitals effect, but currently the behavior is as described here.
Almost all LibreOffice components which deals with choosing typefaces have this defect that could be enhanced: Base (when creating forms), Calc, Draw, Impress, Writer. Only Math does not have the common window called when Menu Format Character is selected.
I think a good compatibility option should be accepting the documents written with the old behavior (documents with the “<meta:generator>LibreOffice/7.0.1.2</meta:generator>” or lower, for example) so there is no text reflow, and then add to them a compatibility option similar to the ones found at Menu Tools, Options, Load/Save, Microsoft Office and HTML Compatibility. I suggest a new section named Advanced Typography Compatibility, so other OpenType enhancements as true superscripts and true subscripts could be added there too. I don't know where should be the best place/tag to save that compatibility option on the document, but no tag written should mean no compatibility.
And with new documents, the Menu Format, Character, Font Effects, Case, Small Capitals should cause the documents to be saved only with “<style:text-properties fo:font-variant="small-caps" style:font-name="Libertinus Serif"/>” (even if the user goes to Menu Format, Character, Font, Features, Lowercase to Small Capitals, which now creates the “:smcp” code appended to the font name) and render the typeface with true built-in small capitals (if it exists) and only fallback to simulated small capitals if the font file does not have it.
I don’t like the “:smcp” appended on the typeface name because it creates problems when changing fonts: it loses the “small capitals” feature, even if the new font chosen has true small capitals, which is something that doesn’t happen with other font attributes and effects (regular, bold, italic, italic bold, color, underlining, etc.).