Complete Composites in FontCreator 13

Before asking a question on FontCreator look here for possible solutions and tutorials. Please do not post support requests here.
Locked
Bhikkhu Pesala
Top Typographer
Top Typographer
Posts: 9873
Joined: Tue Oct 29, 2002 5:28 am
Location: Seven Kings, London UK
Contact:

Complete Composites in FontCreator 13

Post by Bhikkhu Pesala »

Many things changed in FontCreator 12. Some sections of the previous tutorial on Complete Composites have been superseded, and many new definitions based on Glyph Names rather than on Glyph Mappings have been added. Glyph Mappings can be used within the definitions for unmapped glyphs, e.g. this one for Small Capital A will generate a composite from Latin Capital A:

Code: Select all

<Composite><!-- Unmapped Small Capital A -->
<GlyphName>a.smcp</GlyphName>
	<Member id="1">
	<GlyphMapping>65</GlyphMapping>
		<UseMetrics>TRUE</UseMetrics>
	</Member>
	</Composite>
The Unmapped Latin Small Capitals Transform script will use this code to compose Small Capital A, then decompose it, scale it down, and make it slightly bolder to compensate for the scaling.

FontCreator now has an Anchor Based Composites feature. Anchor-based composites usually improve the positioning of diacritics, especially for italic typefaces.

Definitions of Latin character sets use combining diacritics wherever they available, only using modifier letter accents as fallback glyphs. One can add several different types of combining diacritics for use with anchored based composites and the legacy complete composites features.
  1. Combining diacritical marks such as gravecomb ($0300 hex, 768 decimal) or graveacute ($0301 hex, 769 decimal) are added to new fonts by default.
  2. Unmapped uppercase case-sensitive combining diacritical marks with suffix .case for use with Uppercase glyphs (formerly known as Low Profile Diacritics). These optional diacritics are designed to use less vertical space, and should be positioned vertically to suit Uppercase base glyphs. They will also be used, if available, for Small Capitals and Petite Capitals.
  3. Unmapped diacritical marks with suffix .narrow designed for use with narrow glyphs: I, i, J, j, lowercase l, and below lowercase r and t. These optional diacritics should be designed in the correct vertical position for lowercase, with the same weight as regular diacritics, but with glyphs that are about 80% of the width.
  4. Unmapped stacking diacritical marks with suffix .case for use with Uppercase Vietnamese composite glyphs in the Latin Extended Additional character set.
  5. Unmapped smaller diacritical marks with suffix .cap for use with Petite Capitals or Small Capitals. Dot below and commaaccent below, for example, will be used with glyphs that are not narrow.
Unmapped Accented Petite Capitals and Small Capitals will use the previously defined base glyphs and accents designed for Petite or Small Capitals if they are available. The following definition first looks for a narrow dieresis accent designed to suit narrow glyphs like i, j, or l. If this is not available, or is incorrectly named, it will look for a smaller accent designed for Uppercase glyphs. If that is not available either, it will use the combining accent, and if that is missing it will use the dieresis accent in Latin-1 Supplement. The code will then centre the accent horizontally on the base glyph, and position it vertically offset from the top of the base glyph by a proportion of the height of the base glyph. The same proportion is used for both Petite and Small Capitals. The spacing could be adjusted by editing CompositeData.xml using a global find and replace if you find the spacing too tight or too loose.

Code: Select all

<Composite><!-- Unmapped Petite Capital i dieresis -->
<GlyphName>idieresis.pcap</GlyphName>
	<Member id="1">
	<GlyphName>i.pcap</GlyphName>
		<UseMetrics>TRUE</UseMetrics>
	</Member>
	<Member id="2">
	<GlyphName>dieresiscomb.narrow</GlyphName>
		<GlyphName>dieresiscomb.case</GlyphName>
			<GlyphName>dieresiscomb</GlyphName>
				<GlyphName>dieresis</GlyphName>
	</Member>
	<AlignHorizontal>
		<Source>
			<Member>1</Member>
			<Position>Center</Position>
		</Source>
		<Dest>
			<Member>2</Member>
			<Position>Center</Position>
		</Dest>
	</AlignHorizontal>
	<AlignVertical>
		<Source>
			<Member>1</Member>
			<Position>Top</Position>
			<Offset>22.17%</Offset>
		</Source>
		<Dest>
			<Member>2</Member>
			<Position>Middle</Position>
		</Dest>
	</AlignVertical>
	</Composite>
Naming and Positioning of Diacritics

Since the code now uses glyph names, the correct spelling of the unmapped accents is critical. If it is incorrect, Complete Composites will not find them. Transform scripts will insert correctly named glyphs. Combining diacritics are named as acutecomb, gravecomb, etc., while the case-sensitive accents that are designed for Uppercase must have a suffix of .case, and must be positioned vertically for uppercase base glyphs. Narrow combining diacritics must have a suffix of .narrow, but must be positioned for lowercase glyphs, just like regular combining accents.
brevecomb.narrow.png
brevecomb.narrow.png (13.15 KiB) Viewed 23731 times
The horizontal position of diacritics is not critical as they are positioned horizontally by the code for base glyphs of different widths, but the advance width should be zero. Regular combining accents must be positioned vertically for lowercase glyphs. Diacritics are often centre-aligned vertically, but may be bottom-aligned. Use guidelines or the Transform Toolbar to aid with the correct positioning.
Vertical Alignment.png
Vertical Alignment.png (14 KiB) Viewed 23731 times
Complete Composites as a Design Aid

Many definitions in CompositeData.xml are intended just as an aid to design. The Per Mille Symbol, for example, is composed from Per Cent, and looks like this after composition:
Per Mille Composed.png
Per Mille Composed.png (24.93 KiB) Viewed 23731 times
This is obviously not how the final glyph is meant to look. The user must decompose it, and delete unwanted contours.
Per Mille Edited.png
Per Mille Edited.png (15.81 KiB) Viewed 23731 times
Attachments
Composite Data Update.pdf
(240.47 KiB) Downloaded 574 times
My FontsReviews: MainTypeFont CreatorHelpFC15 + MT12.0 @ Win 10 64-bit build 19045.2486
Bhikkhu Pesala
Top Typographer
Top Typographer
Posts: 9873
Joined: Tue Oct 29, 2002 5:28 am
Location: Seven Kings, London UK
Contact:

Re: Complete Composites in FontCreator 13

Post by Bhikkhu Pesala »

I have added definitions for eight more Miscellaneous Symbols that can be easily generated using composites using whitesquarewithroundedcorners, whitecircle, and periodcentered.

Empty Glyphs
Image

Composite Glyphs
Image

Stacking Fractions
Alternative Fractions (.afrc) or Stacking Fractions were also enhanced. They no longer need code-points to be assigned , they just require the correct glyph names e.g. onequarter.afrc, onenumerator.afrc, divisor.afrc, fourdenominator.afrc, and the appropriate composite glyph members to be included in the font.
CompositeData.7z
(62.81 KiB) Downloaded 466 times
This thread is locked. Please ask any questions in the FontCreator Support Forum if you need help with editing CompositesData.xml or using the Complete Composites feature.
My FontsReviews: MainTypeFont CreatorHelpFC15 + MT12.0 @ Win 10 64-bit build 19045.2486
Locked