Page 1 of 2

Complete Composites

Posted: Sun Jan 15, 2006 2:18 pm
by Bhikkhu Pesala

The complete composites feature, which is available in FontCreator Professional, but not in the Home Edition, may be used to create common composites, or just as an aid to the design process.

Creating Composites in the Home EditionStacking Fractions

A composite glyph is a glyph composed of two or more glyphs. Often they are used for accented characters like é (e acute) which is a composite of e and ´ (acute accent). Fractions can be composed from superscripts and/or subscripts plus the fraction slash. Geometric symbols like that illustrated below may be composites too.

Many composites can be created by selecting empty glyphs that contain mapping data. To use this powerful feature, select a glyph, or a range of glyphs, right-click and select Complete Composites. The selected glyphs will be composed using data in CompositeData.xml, which is read when FontCreator first uses the feature. This data file contains the following information for each composite glyph defined in the file:

• GlyphMapping - The decimal unicode value of the composite glyph to be generated
• Member - The decimal unicode value of each glyph to be included in the generated composite
• XPos - The horizontal offset in funits of the glyph member. Negative values are offset to the left.
• YPos - The vertical offset in funits of the glyph member. Negative values are offset downwards.
• XScale - The horizontal scaling of the glyph member. Scaling affects the horizontal position as well as the size. Valid values are in the range ± 0.0001 to 1.9999
• YScale - The vertical scaling of the glyph member. Scaling affects the vertical position as well as the size. Valid values are in the range ± 0.0001 to 1.9999
• UseMetrics - TRUE or FALSE. If TRUE, use the font metrics (left side-bearing and advance width) of this glyph member for the composite glyph's metrics. If FALSE, do not use this glyph member's metrics, but allow manual adjustment of the composite glyph's metrics. Since FALSE is assumed if TRUE is not present this parameter can always be omitted if it is false.

With the release of FontCreator 5.6 it is no longer necessary to edit CompositeData.xml to adjust the positioning of composite glyph members in different fonts. Most composites now use automatic positioning, or relative positioning. Absolulte positioning is still used in a few cases, but the new relative positioning works much better with a wider range of fonts and typestyles.

Glyph Members

Typically, a composite glyph consists of two members - a base letter, and an accent. However, other combinations are permitted such as ij or Dz diagraphs, base letters with more than one accent (see Stacking Diacritics), fractions like ¾ with three glyph members, or superscripts like ³ with only one glyph member. A composite may itself be a member of another composite, e.g. superscript ³ could be a composite of 3, but also a glyph member of fraction ¾. When hinting is added by another program composites that are used by other composites will be decomposed. Any composites that use scaling should also be decomposed as the scaling conflicts with hinting.

Stacking Diacritics

Stacking diacritics, such as those used to write Vietnamese, pose difficult problems for the font designer. For example, U+1EA4 : LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE (decimal 7844) requires too much vertical space if the standard diacritics are just stacked vertically. Some designers scale down the diacritics vertically and/or move them closer together than normal to save space. Other designers may opt to place them side by side. I found it is best to define the stacking diacritics in the Private Use Area. CompositeData.xml uses the range from decimal 57344-57364. After inserting these glyphs with "Insert Characters" use Complete Composites to compose them roughly from the single accents. Then decompose them and adjust them to fit the uppercase vowel E. Unlike single diacritics, they will be moved down for lowercase instead of being moved up for uppercase.

The above-mentioned composite gylph could be composed from two glyphs: LATIN CAPITAL LETTER A WITH CIRCUMFLEX plus ACUTE ACCENT, from three glyphs: LATIN CAPITAL LETTER A plus MODIFIER LETTER CIRCUMFLEX ACCENT plus ACUTE ACCENT, or from two glyphs: LATIN CAPITAL LETTER A plus stacking diacritic circumflex acute accent (decimal 57357). The latter method is used in CompositeData.xml, because it is more flexible for making adjustements after composition. The code-points in the Private Use area are (by definition) not assigned in Unicode. The code-points used by CompositeData.xml are used only by Font Creator.

Where they exist in both character sets, accents from Spacing Modifier Letters are used in preference to accents from Combining Diacritical Marks, because they sometimes need no horizontal offset, but Accents Grave, Diaeresis, Macron, Acute, Middle Dot, and Cedilla are used in preference to both, because they are more likely to be present. Accents Circumflex and Tilde are not used, as they are often much bigger than the spacing modifier accents.

Editing CompositeData.xml

This file is found in the folder <Install Directory>\Composites\ and can be edited in Wordpad or a similar text editor. For convenience, comments are inserted to indicate the beginning of each Unicode character set, e.g. <!-- Latin-1 Supplement -->, for each composite e.g. <!-- A Acute -->, and the structure of each composite is indented with tabs.

• The order of the composites defined in the file must be sequential.
• The text is Case Sensitive, and all entries must begin and end with valid markers. Any syntax errors will make the entire file invalid. Always make systematic backups when editing the XML file.
TIP: Parsing errors can be located by opening the file in Opera Browser. This will tell you in which line the error occurs. Internet Explorer displays the file with syntax highlighting, but it takes much longer to load the file.
• Comments may be added at any point with lines like this: <!-- Type your comment here -->
• Each composite begins with <Composite> and ends with </Composite>
• Each composite needs to be defined with a Unicode Decimal codepoint such as <GlyphMapping>192</GlyphMapping> and needs to include at least one glyph member
• Each member begins with <Member> and ends with </Member>
• Each member needs to be defined with a Unicode Decimal codepoint such as <GlyphMapping>65</GlyphMapping>
• The horizontal offset of the glyph member begins with <XPos> and ends with </XPos>. This line can be omitted if the horizontal offset is zero and will be ignored if Autopositioning is used.
• The vertical offset of the glyph member begins with <YPos> and ends with </YPos>. This line can be omitted if the vertical offset is zero.
• The horizontal scale of the glyph member begins with <XScale> and ends with </XScale>. This line can be omitted if the horizontal scaling is equal to 1. Negative values flip the glyph horizontally about the glyph's y-axis. Be aware that flipped contours will have opposite direction and so will be white if overlayed on regular contours. You can retain the direction of rotation by flipping in both X and Y directions. Where this is unsuitable, you must make the glyph simple to change the direction of flipped contours.
• The vertical scale of the glyph member begins with <YScale> and ends with </YScale>. This line can be omitted if the vertical scaling is equal to 1. Negative values flip the glyph vertically about the glyph's x-axis.
• If the glyph member's metrics are to be used for the composite's metrics the line <UseMetrics>TRUE</UseMetrics> must be included.

Editing Offsets

With the release of FontCreator 5.6 it is no longer necessary to edit offsets. Accents are positioned based on font metrics such as the CapHeight or xHeight. If uppercase accents are too high or too low after using Complete Composites, the user can temporarily change the CapHeight, and regenerate the composites to move the accents up or down.


This feature requires:
• The selected glyph(s) must be mapped with a Microsoft Unicode mapping.
• If the selected glyph(s) are empty or simple they will be replaced wherever composites are defined. Do not include simple glyphs in your selection if you don't wish to replace them with composites.
• If the selected glyph(s) are already composites they will be replaced only if the composite glyph members are different, not if their positions or scale factors are different. You can select a range of glyphs with shift-click, then deselect individual glyphs with control-click.
• All composite members must be present in the font. If any composite members are mapped, but still empty, the composite glyph will be completed, though obviously missing the contours that have not been defined yet. Contours can be added to the glyph member later, and will simultaneously be added to all composites using that glyph member.
• Scaled composites that are hinted do not scale correctly. After composition they should be decomposed. Composites that use hinted glyph members without scaling should be left as composites to retain the hinting. I recommend that all scaled composites should be decomposed. Any composite glyph members that have been flipped with a negative scale factor should also be decomposed.
• Scaled glyphs such as superscripts scaled from numerals usually need a bold transformation to make them match the weight of regular numerals. Transform scripts will do this automatically.

Autopositioning now aligns most accents correctly, though some like Ogonek and Combining Horn will still need manual adjustment.

Acute and grave accents are offset to the right and left respectively of the vertical centre of the base glyph. This may not be quite the same as the optical centre so they may need some adjustment. A work-around is to temporarily add a contour to the base glyph to shift the physical centre to align with the optical centre, then recompose the composites.

Autopositioning does not adjust the vertical position of accents on lowercase glyphs or of accents below the baseline, it only aligns them horizontally with the base glyph. Accents should be designed in the correct vertical position for lowercase. Use guidelines to align the accents vertically.


Spacing Modifier Letters are used by many other composites. Add these first.

Combining Diacritical Marks can be generated from other accents. Some, like dot below, do not have spacing modifier clones, and so are used by composites. Dot below can be generated from dot above, and is positioned relative to TypoDescender. Show the comparison toolbar (F11) and display the before and after glyphs to make correct alignment of combining diacritics easy. Autopositioning will align them anyway, but it is still good to align them correctly.


Combining hook above is defined as a superscripted question mark. After composition, make the composite glyph simple and delete the dot to get an accent that is approximately correct.

General Punctuation characters are composed from regular punctuation characters: full-stop, exclamation, question mark, apostrophe, en-dash, and em-dash. Double and triple primes and reversed primes all use single prime. Single, double, and triple dot leaders (ellipses) are designed to space evenly at 1/3 of an em.

Superscripts and Subscripts — Superscripts can be created using the Glyph Transform wizard. Change the weight and width to suit your font. Subscripts are composed from superscripts and aligned to bisect the baseline.

Currency Symbols are composed from letters and the underline glyph. Manual adjustment and Get Union of Composites will be needed to complete them. Several currency symbols use the advance width of figure zero. Where the design allows, currency symbols should have the same advance width as figures.

A few Letterlike Symbols can be composed e.g. c/o °F °C and Nº.

Number Forms include the fractions, which use the superscripts and fraction slash (8260). If this character is absent, division slash (8725), will be used if it exists. or as a last resort the forward slash. To adjust the spacing of fractions, adjust the advance width of the fraction slash.

Enclosed Alphanumerics use Geometric Shape, White Circle (9675) and superscripts. They are designed to align with Capitals and may be similar in size to © and ® though the latter are sometimes superscripted.

Block Elements use the full block element (9608) to compose other block elements. Light shade is used to compose medium and dark shades. Light shade is designed on a 256 pixel square with one 128 pixel square in each.

Geometric Shapes use white square and black squares as the basis for other shapes. I recommend that black square (decimal 9632) be designed on the Caps Height.

Miscellaneous Symbols Trigrams (9776-9783) and Digrams (9868-9871) are composed from Monogram (9866-9867) and align with the top of CapHeight.

Private Use Area - Stacking Diacritics can be composed from single accents. Decompose and adjust for uppercase vowel E. The limiting factor when designing glyphs with stacking diacritics is the space available above the uppercase. They are designed not to exceed the WinAscent line. Set guidelines for the upper and lower limits, and scale accents to fit, trying to maintain their weight as far as possible. Vietnamese characters in Latin Extended-B and Latin Extended Additional character sets can then be composed using complete composites and adjusted for horizontal position. Lowercase accents may also need adjustment for vertical position.

Alphabetic Presentation Forms can be composed using this feature, but should be made simple and combined into a harmonious single form, otherwise there is little point in adding these glyphs. "Get union of contours" makes this easy to do. After manually adjusting the spacing between the composite glyph members, convert to simple, select all, and select "Get union of contours" from the glyph toolbar.

Great Information!

Posted: Sun Jan 15, 2006 7:28 pm
by Dave Crosby
I long considered a tutorial on this subject.

I'm glad I waited because you did a far better job than I ever could!

Posted: Thu Jan 26, 2006 9:59 pm
by Bhikkhu Pesala
FontCreator 5.6 uses much better methods for alignment. This greatly reduces the work load when adding the Greek Extended character set.

The composites for Greek Extended use glyphs in the Greek and Coptic character set. If they don't exist in your font they will need to be created before Complete Composites will add the Greek Extended characters. A new Transform script will do most of the hard work.

The accents in Greek Extended are composed from Latin accents — tilde, acute, grave, diariesis, and single quotes. After composition these accents should be decomposed and modified to suit the Greek characters. Adjust the size and spacing of the accents, and then regenerate the composites that use them.

Some Greek characters can be composed from Latin Characters, others will need to be created. Use Insert Characters to add the correct mappings.

The complete composites feature may be used just as one stage in the design process before decomposing the glyphs and shaping them to suit the font design. An example of this is the Greek capital Upsilon and the lowercase nu. Many fonts use the same designs for these as Latin Y, and Latin n, which though acceptable for Maths is not ideal for Greek.

The data for Greek Extended uses many nested composites, (i.e. composites that are themselves used by other composites). This was intended to make the design process easier. When you adjust the “‘parent” composite all of its “children” or dependent composites are automatically updated to match. There is nothing wrong with nesting composites according to the Truetype Specification, and it will reduce the size of your Truetype font as data is not duplicated. However, if you are using a third-party program to hint the fonts, nested composites will be decomposed to permit hinting. It is advised to decompose nested composites first in Font Creator.

Nested composites are identifiable in the glyph overview from their purple caption if the checkbox “Use type color in glyph caption” is checked in Tools, Options, Overview. Simple glyphs used by composites have a red caption, while composites have a blue caption. Simple glyphs not used by composites have a green caption.

To see if any nested composites remain in your font, check the Font Information from the File menu, Properties. If the MaximumComponentDepth is greater than 1, then there is at least one nested composite in the font.


Double-click on the glyph index to go that glyph.

Posted: Wed Feb 01, 2006 4:05 pm
by Bhikkhu Pesala
Some fonts need differently designed accents for uppercase letters. Due to the limited space available above the uppercase, accents may need to have a low profile compared to accents above the lower case.


I have added definitions for low profile accents to the Complete Composites feature. New definitions have been added for:

57365 • Low Profile Grave
57366 • Low Profile Acute
57367 • Low Profile Circumflex
57368 • Low Profile Caron
57369 • Low Profile Tilde
57370 • Low Profile Double Grave
57371 • Low Profile Double Acute
57372 • Low Profile Breve
57373 • Low Profile Inverted Breve
57374 • Low Profile Ring Above
57375 • Low Profile Profile Hook
57376 • Low Profile Diaeresis

With the update to FontCreator 5.6, the CompositeData.xml files for version 5.5 have become obsolete. Any future updates will be only for the most recent version, so if you haven't updated your copy yet, do it now.

To add low profile diacritics to your fonts
  • Insert characters 57365-57376 to add the mappings
  • Complete Composites to add the accents
  • Decompose the new accents and redesign them to suit uppercase, but still position them for lowercase
  • Complete composites will now use them by default, if they exist, but will use regular accents if they don't.
CompositeData.xml was updated for FontCreator 5.6. There have been major improvements to the Complete Composites feature in this version, which are documented in this PDF attached to this post.

For a less technical summary of all of the main changes in the new version, see my FontCreator Review (in my sig).

Posted: Sat Feb 16, 2008 5:48 am
by Bhikkhu Pesala
February 2008

This update makes a few additions and corrections based on my experience of using CompleteComposites while editing my latest fonts. Think of it as a proposal for permanent changes to be incorporated into the next release of FontCreator.

Changes to Existing Definitions
<!-- Low Vertical Line --> (GlyphMapping 716) now uses an offset of -1% from WinDescent. This enables the use of Format, Settings, Metrics, Maximum, Recalculate to have some effect. Several other low glyphs now use the same positioning method. Some composites, e.g. ĥ ĺ ǩ ȟ Ṥ, use a similar offset from WinAscent for the same reason.
<!-- Combining Vertical Line Below --> Now uses vertical line above (GlyphMapping 712) as its source. Only vertical line above needs to use the vertical line as its source. Other vertical line accents now use that as their source. Glyph 712 should be designed to match other accents like acute and caron.
Absolute Positioning (in u diaeresis macron GlyphMapping 470, and elsewhere) has been replaced with relative positioning. <Pos>Auto</Pos> cannot be used to position the upper accent vertically. Vertical spacing is now relative to the height of one of the accents.
Solidus Overlays (GlyphMapping 823, 824) now use forward slash.
<!-- Epsilon Tonos --> to <!-- Omega Tonos --> Now use <Pos>Next</Pos> instead of horizontal positioning. Spacing can be adjusted by changing the right side-bearing of the Tonos accent. Positioning in italic typestyles still needs manual adjustment.
<!-- o tilde acute --> (GlyphMapping 7757) and <!-- u tilde acute --> (GlyphMapping 7801) The acute accent is now positioned above the tilde accent by 25% of the acute accent’s height instead of 50% of the tilde accent’s height.
<!-- Reference Mark --> (GlyphMapping 8251) is now centered vertically on the CapsHeight to give it more space in bold typestyles. The dots are spaced more generously.
<!-- Overline --> (GlyphMapping 8254) Now 20 funits above the TypoAscender instead of 120 funits above the CapHeight.
<!-- Dot plus --> (GlyphMapping 8724) The dot (period centre) is now positioned half a dot height above the plus. This works better for fonts with different weights.
<!-- Parallel --> (GlyphMapping 8741) This no longer uses the metrics of the vertical line, which can be very narrow in some fonts. It now uses horizontal positioning and inherits left and right side-bearings from the vertical line.
<!-- Dot minus --> (GlyphMapping 8760) The dot (period centre) is now positioned one dot height above the minus. This works better for fonts with different weights.
<!-- Tilde operator --> (GlyphMapping 8764) and other maths operators are now middle of xHeight instead of middle of CapHeight.

<!-- Combining Horn --> Now uses <Position>Middle</Position>, former value <Position>Center </Position> was invalid for vertical positioning, and so was just ignored.
<!-- ¶¶ Alphabetic Presentation Forms --> in the Private Use Area have been renamed to <!‑‑ ¶¶ Miscellaneous Ligatures --> to avoid confusion with the character set of that name.
<!-- ligature fö --> mapped to code-point 61132 should have been <!-- ligature fü -->
<!-- ligature tr --> (GlyphMapping 61145) corrected to (GlyphMapping 61144)
<!-- ligature tt --> (GlyphMapping 61146) corrected to (GlyphMapping 61145)

New Additions
Capital Schwa (GlyphMapping 399): This merely scales lowercase schwa by 1.4. It will need to be decomposed and the weight will need to be reduced to match the font’s uppercase.
Greek Capital Theta (GlyphMapping 920), centres Iota on Omicron and scales Omicron vertically. Composite should be decomposed and the contours combined.
Greek Capital Phi (GlyphMapping 934), centres Iota on Omicron. Composite should be decomposed, the Iota must be rotated and resized by moving some nodes.
Ligatures bb, bg, ck, ey, gg, pp, PP use the mappings proposed by the Medieval Unicode Font Initiative, with the exception of <!-- ligature sp -->, which is mapped to 61143 (proposed by MUFI for “Latin small ligature with flourish.” Ligature sp is far more common. Not knowing where it should go, this seems like the best option. I don’t think many users will make use of these ligatures. I have added ligatures ck and sp to my fonts and to the Miscellaneous Ligatures Glyph Transformation Preset, but I don’t propose to add these other ligatures, as they are only appropriate in Medieval fonts.
<!-- ligature Qu --> GlyphMapping 61150) and <!-- ligature Th --> (GlyphMapping 61151) These two ligatures are found in Adobe’s fonts. I have used the otherwise unused code-points at the end of the MUFI block for non-structural ligatures. Adobe’s fonts also contain several more ligatures using ſ (long-s), but I don’t consider them worth adding to my fonts even though some are included in the MUFI proposal. I may add them to CompositeData later. They are: ſh, ſi, ſl, ſſ, ſſi, ſſl. Adobe fonts have ſb and ſk which are not in MUFI. Then ſä, ſõ, ſp, ſü, ſti, and ſtr are in MUFI, but not in Adobe’s fonts.

Not finding any real standards to follow, I have had to improvise. I am happy with this. If you think any of this is worth adding to the next version of FontCreator then at least the groundwork has been done.

To test the update, download CompositeData.xml, backup CompositeData.xml in your \FontCreator\Composites\ directory, and extract the update to that folder. XML files are plain text files that can be updated in any text editor, but a single typing error can prevent Complete Composites from working in FontCreator. XML files can be parsed to find errors by opening them in Opera.

Posted: Sun Nov 09, 2008 3:10 pm
by Bhikkhu Pesala
Creating Composites in the Home Edition

The Home Edition of FontCreator doesn't have the Complete Composites feature to create composites automatically, but if you just need the usual ANSI characters it is not hard to do with copy and paste.

Step One

1. In the glyph overview, copy the base character and the accent to the clipboard in the glyph overview. In the illustration, I have copied just a and o, plus the diaeresis accent, but you could, for example, copy all lowercase glyphs at once (copy the dotless ı not the normal i glyph).


Step Two

2. Open the glyph edit window for the target glyph, in this case ä diaeresis, and paste the clipboard contents to get something like this:


Step Three

3. Delete the unwanted glyph members and adjust the accents for horizontal position while holding the shift key to constrain the vertical position.


You can also Insert Glyphs from the Insert menu or the Glyph toolbar to add composite glyph members to an empty glyph or to a composite glyph. Copy and paste from the overview as described above is quicker when creating a whole set of composite glyphs for the complete ANSI character set or more.

Re: Complete Composites

Posted: Tue Dec 16, 2008 4:19 pm
by Darius
I'm trying to understand the "complete composites" (com-com) command. I've read the instructions, I've read related posts on this forum, and I've watched the YouTube video. I'm probably missing something somewhere because I still don't understand what this is all about.

I have had MainType and Font Creator for about a year but have only used them extensively for a couple of months. Most of the fonts I'm working with are fonts that I created from scan-scratch using Corel Draw. Most of them consist of only uppercase letters and numerals. Some of them have lowercase and some punctuation. They were symbol fonts when I imported them into Font Creator. Since then I've cleaned them up, converted them to Microsoft Unicode BMP, and tweaked various settings.

My impression of the "Complete Composites" macro-script is that it somehow will combine some of my uppercase and/or lowercase glyphs with some diacritical marks to create a bunch more characters, without too much work on my part. I just can't figure out what glyphs I need to have in my font and which ones to highlight before I push the "complete composites" button.

What glyphs and characters do I need to start? Do I need empty glyphs? What boxes do I highlight before running the com-com script? What should I be careful not to do?

Re: Complete Composites

Posted: Tue Dec 16, 2008 6:43 pm
by Bhikkhu Pesala
Darius wrote:What glyphs and characters do I need to start? Do I need empty glyphs? What boxes do I highlight before running the com-com script? What should I be careful not to do?
Before you start you need the empty, but mapped, accented glyphs that you will normally see as blue in a new font. You don't need any empty, unmapped glyphs. You need the accents that you intend to use — grave, acute, diaeresis, tilde, circumflex, cedilla, ring, etc. Generic accent glyphs are added to a new font if you select "Include Outlines."

From the Edit menu, Select Incomplete, then Complete Composites.

If you select a simple glyph like Æ and use Complete Composites, you will lose your original Æ glyph. However, you can undo the Complete Composites action.

Stacking Fractions

Posted: Thu Apr 30, 2009 12:28 pm
by Bhikkhu Pesala
Creating Composites in the Home Edition (contd.)

This tutorial shows you how to make a full set of stacking fractions with composites using the copy and paste method, but first you will need to create the simple glyphs by scaling the figures.

Stage 1

Copy and paste the simple glyphs from stacking fractions ½ ¼ ¾ etc., to blank new glyphs. These glyphs don't need to be mapped as they are only going to be used as composite glyph members.
Stacking Fractions 01.png
Stacking Fractions 01.png (1.68 KiB) Viewed 44457 times
Stage 2

Delete the unwanted contours from each glyph, and invert the six to get the nine, so that you now have the composite glyph members that you will need. One more glyph is needed for the divider.
Stacking Fractions 02.png
Stacking Fractions 02.png (1.42 KiB) Viewed 44460 times
Stage 3

In the glyph overview, select the composite glyph members for ½ and copy them to the clipboard.
Stacking Fractions 03.png
Stacking Fractions 03.png (8.39 KiB) Viewed 44461 times

Re: Complete Composites

Posted: Thu Apr 30, 2009 12:34 pm
by Bhikkhu Pesala
Stage 4

Open the ½ stacking fraction in the Glyph Edit Window, select the simple glyph contours, and delete them. Paste the composite glyph members from the clipboard to replace them.
Stacking Fractions 04.png
Stacking Fractions 04.png (26.59 KiB) Viewed 44461 times
Scroll to the ¼ stacking fraction in the glyph edit window.

Don't close the glyph edit window to return to the overview, but use the shortcut Control + Tab to switch to the other window (or use the Window Menu). Select the next pair of composite glyph members 1/4, copy them to the clipboard, switch back to the glyph edit window, delete the simple glyph contours, and paste the clipboard contents. Continue in the same way to create 3/4 1/3 2/3 1/5 etc.

Insert more mapped glyphs in the Private Use Area for fractions 1/16 to 63/64 if you want a full set. You can copy more than one pair of glyphs at one time to reduce the amount of window switching. In that case, delete unwanted glyph members after pasting into the composite.
Stacking Fractions 06.png
Stacking Fractions 06.png (8.56 KiB) Viewed 44468 times

Re: Complete Composites

Posted: Sat Nov 26, 2011 3:25 am
by Mike Thompson
I did a search of my C: disk for "CompositeData.xml" but did not find it. Does it have a new name?

Re: Complete Composites

Posted: Sat Nov 26, 2011 6:20 am
by vanisaac
Mike Thompson wrote:I did a search of my C: disk for "CompositeData.xml" but did not find it. Does it have a new name?
It should be in your FCP folder ./Composites, and it's too large for me to upload to the forum.

Re: Complete Composites

Posted: Mon Dec 03, 2012 5:11 am
by Bhikkhu Pesala
I attach my latest version of CompositeData.xml compressed using 7-Zip with PPMd compression, which is the best for plain text, HTML, or XML files. The original is 1.02 Mbytes!

Use a free utility like Exam Diff to see what I have modified from the version installed with the program. Here is a brief summary of the main changes. There is nothing official about these changes — they are just what I did for my own needs.
  1. Numerous fallback glyphs were added for fonts that might not have the preferred glyph for creating the composite.
  2. Several currency symbols were added to bring it up to date for Unicode version 6.2
  3. The code for creating Stacking Fractions in the Private Use Area was streamlined and improved.
  4. A few definitions for low profile accents for use with Petite Capitals or Small Capitals were added in the Private Use Area.
  5. Definitions were added for Titling Capitals in the Private Use Area. If a font already has Petite Capitals, then these code-points could be used for Small Capitals instead. The Titling Capitals script would insert the required characters, and complete composites. Instead of applying a thin transformation and increasing the side-bearings for Titling Capitals, one would apply a scale transformation (about 75%) to reduce the glyphs to the desired size for Small Capitals, then a bold transform to increase the weight slightly. Please refer to the PDF version of the Working with Glyph Transformations Tutorial.
Composite Data Update.pdf explains more about editing CompositeData.xml and the most recent changes.

Re: Complete Composites

Posted: Sat Jun 20, 2015 8:37 pm
by Bhikkhu Pesala
I have so far made four new additions to the CompositeData.xml file for FontCreator after Unicode 8.0 was released.
  1. Georgian Lari Currency Symbol @ decimal codepoint 8382 (this is only a rough aid to design, you will need to cut it and join contours to make a suitable glyph design. See this thread.)
  2. Turned Digit 2 @ decimal codepoint 8586
  3. Turned Digit 3 @ decimal codepoint 8587
  4. Plus Ligature ffj @ decimal codepoint 61399 in the Private Use Area used by Complete Composites for Discretionary Ligatures
New Definitions.png
New Definitions.png (4.22 KiB) Viewed 15037 times

Re: Complete Composites

Posted: Wed Feb 03, 2016 10:06 pm
by Bhikkhu Pesala
I have added some more definitions for characters in the IPA Extensions character set — superscripted small modifier letters, which can be used for Ordinals, Superscripts, or fractions. I changed the vertical alignment of some other characters to match. The baselines should now align to half of the CapsHeight. The tops of lowercase glyphs with descenders align to the CapHeight.
Superscripts for Ordinals.png
Superscripts for Ordinals.png (22.99 KiB) Viewed 13260 times
I attach the updated 7-Zip archive. Extract to FontCreator's AppData folder. Make a backup of your own CompositeData.xml file if you have modified it. Use ExamDiff or a similar utility to compare changes.

These updates were applied to the latest version of FontCreator 10. If you want to edit the CompositeData.xml file, the original copy in C:\Program Files will not be affected.

This thread is locked. Please post in the FontCreator Support forum if you need any help with editing CompositesData.xml or using the Complete Composites feature.