88 * 6) break the run when either the physical font or the resolved script changes. |
88 * 6) break the run when either the physical font or the resolved script changes. |
89 * |
89 * |
90 * problems: we optimize latin-1 and cjk text assuming a fixed |
90 * problems: we optimize latin-1 and cjk text assuming a fixed |
91 * width for each character. since latin-1 digits and punctuation |
91 * width for each character. since latin-1 digits and punctuation |
92 * are common, following this algorithm they will change to match |
92 * are common, following this algorithm they will change to match |
93 * the fonts used for the preceeding text, and potentially change metrics. |
93 * the fonts used for the preceding text, and potentially change metrics. |
94 * |
94 * |
95 * this also seems to have the potential for changing arbitrary runs of text, e.g. |
95 * this also seems to have the potential for changing arbitrary runs of text, e.g. |
96 * any number of digits and spaces can change depending on the preceeding (or following!) |
96 * any number of digits and spaces can change depending on the preceding (or following!) |
97 * non-COMMON character's font assignment. this is not good. |
97 * non-COMMON character's font assignment. this is not good. |
98 * |
98 * |
99 * since the goal is to enable layout to be performed using as few physical fonts as |
99 * since the goal is to enable layout to be performed using as few physical fonts as |
100 * possible, and the primary cause of switching fonts is to handle spaces, perhaps |
100 * possible, and the primary cause of switching fonts is to handle spaces, perhaps |
101 * we should just special-case spaces and assign them from the current font, whatever |
101 * we should just special-case spaces and assign them from the current font, whatever |