Apache OpenOffice (AOO) Bugzilla – Issue 31803
Change in font susbtitution strategy
Last modified: 2013-08-07 14:38:26 UTC
After discussion in the GSL list, I have been asked by Herbert to submit this proposal and set ft@openoffice.org as the owner of the issue. This relates to a discussion under Subject “automatic font switch in Calc and Impress†in July 2004 Font substitutions. The present font substitution system does not allow a user to change to his favorite CTL font and start typing. When encountering a character identified as CTL, it automatically look for a present-locale substitution table, and not finding it, switches (I am told) to the “en†substitution table in VCL.xcu, therefore finding a font that is rarely fit to type the user’s CTL script. The user experience related to this is: - The user starts work. He opens OOo writer and selects his favorite font for his language (say a Khmer moul font, used for headings in Khmer language, this font would not be in the Khmer substitution table). - Types his first character. Two things may happen: o A Khmer locale was active, the font is switched to the first font in the list (correct script, but not the font he wants to use) o The English or another locale was active. OOo changes to Tahoma font and displays a white square - The user thinks that he has done something wrong, erases the square and starts again, with the same result. - With the white square in the screen, the user changes again to his favorite font and types his first character again. This time it works. Now he has to: o Go back one character. o Erase the first character that he wrote (white square). o Go forward one step. o Keep on writing. With the current system, in theory even an English speaker would have problems using his desired font in English. A user will never understand why the behavior of the word processor, or other application is different for the first and for the second character that he types. Principles for this correction It seems correct that if a user chooses the font that he likes, and it is fit for the language he is writing on (the code points are in the font), that font should never be automatically switched by the word processor or any other application. This is the behavior in other word processors. A default substitution font should only be used at start time (before the user chooses the font) or when the present font does not include the code-points that are being typed. Also, it is desirable that the main substitution font be definable by the user, superseding the VCL.xcu defined substitution fonts. Modern fonts appear that are rarely updated in the substitution list, therefore giving the option of using a modern font is important. This now only happens in the Formatïƒ cell option of Calc, but it should be OOo-wide. By default, the definable font should be the first one in the substitution table (the first one that is actually present in the system). In other word processors, user selected fonts are not switched unless they are unfit for the character that has just been typed. If the font is not fit, the word processor looks for a font that can be used as a substitute. If it finds it, it switches font (and does not go back to the original one if the user types in English, unless that font does not have English). As there is no substitution table, the system decides itself which font to use. I believe is the older (date of installation) font for that code-point range that is installed. Preliminary proposal. The hearth of the proposal is that a font that has been chosen by the user and that is fit for the character that has been typed should not be changed to a default font. Only if a font does not contain a code-point (the first code-point?), it should be changed. First, the substitution system should be considered. In case it does not have it, the code-point will be identified as latin (under 256) or language specific (unicode range). If latin, the font will be selected based on the preferences of VCL for the current locale. If special (CJK or CTL), it will identify the locale corresponding to the range of the character, and look for a replacement font for that locale in the VCL.xcu file. This could also be improved by allowing the user to define the replacements fonts, for the current locale in Impress and Writer, in the same way that is done in Cell formatting in Calc (create a Ooo wide definition). In this case, if the code-point typed is not in the font (for CJK and CTL), it will look for the right locale for that code-point. If the locale of the code-point is not the current locale, it will look directly for a font for that locale in VCL.xcu. If the locale of the code-point corresponds with the current locale, it will use the user-defined CTL or CJK default font (which by default will be the first font for that locale in VCL.Xcu). Do any users normally use CJK and CTL at the same time? This could be changed into a unique "Special" language case. Also, what OOo calls Asian Languages, for clarification, should be East-Asian, and naming the languages would be much more clear, as there are only three (old vietnamese excluded). Instead of CTL I would talk about Indic, South-east Asian and other complex scripts, this would help users identify themselves with these concepts. In short: - All OOo would allow a user changing default Latin, CJK and CTL fonts. - A working font for the first character would never be changed. - Selected font depends on locale of code-point, if current locale, look for user-defined font. - Changing names in UI.
FT: I'm very sorry, but since this issue has no target milestone set it has evaded all my issue tracking queries :o( That's why I'm looking into it that (too) late. In other words: Thank you very much for your proposal but it is too late to integrate in 2.0. Therefore I must re-target it to OfficeLater but have elevated the priority.
I talked to Herbert at the meeting in Berlin in September about this, and I knew already that it was too late for 2.0. After seeing really how the font substitution strategy works, I believe that it would be better to have a discussion on the list after 2.0 is released. I have seen things that work much better that in MS word (for example, when writing in Khmer and changing to English, OOo changes automatically to the prefered English font, and when changing to Khmer it goes back the favorite Khmer font. I believe that this is very good, and should be integrated in what I wrote).
FT: Targeted, priorised and re-assigned to default feature request owner.
OpenOffice.org Issue Tracker - Feedback Request. The Issue you raised is currently assigned to 'Requirements' pending review, but has not been updated within the last 2+ years. Please consider re-testing with one of the latest versions of OOo, as the problem(s) may have already been addressed. Either use the recent stable version: http://download.openoffice.org/index.html or consider trying the new OOo 3 BETA (still in testing): http://download.openoffice.org/3.0beta/ Please report back the outcome so this Issue may be Closed or Progressed as necessary - otherwise it may be Resolved as Invalid in the future. You may also wish to search for (and note) any duplicates of this Issue that may have advanced further by checking the Issue Tracker: http://www.openoffice.org/issues/query.cgi Many thanks, Andrew Cleaning-up and Closing old Issues as part of: ~ The Grand Bug Squash, pre v3 ~ http://marketing.openoffice.org/3.0/announcementbeta.html