- The Layers of Mac OS X: Aqua
- The Layers of Mac OS X: Application Environments
- The Layers of Mac OS X: Graphics Services
- The Layers of Mac OS X: Darwin
- Domains: An Overview
- The Libraries of Mac OS X: /System/Library
- The Libraries of Mac OS X: /Library
- The Libraries of Mac OS X: /Users/"Home"/Library
- Fonts in Mac OS X: Font Formats
- Fonts in Mac OS X: Working with Fonts
Fonts in Mac OS X: Working with Fonts
The following sections cover issues regarding using fonts in applications.
Font Panel window
The Font Panel is a new way to display your Font choices in Mac OS X applications.
Most Carbonized applications running in Mac OS X, including AppleWorks and Microsoft Office, continue to provide user access to font choices in the same way that they did in Mac OS 9. That is, they use the same Font menus that they used in the Mac OS 9 versions of the application. There is no Font Panel here.
Mac OS X-only Cocoa-based applications, however, typically use the Font Panel. TextEdit is an example of an application that does so. To access the Font Panel, choose Font Panel from the Font submenu of the Format menu (Command-T).
The columns in Font Panel. The Font Panel window contains four main columns:
Font Collections. Use this column if you want to restrict your accessible fonts to a subset of the total fonts installed. This method may be advisable when you're working on a project that will use only certain fonts and you do not want to be bothered seeing the rest. Mac OS X comes with a couple of sets preconfigured (Fun, Web, and so on)
Family. The fonts included in a selected collection appear in the Family column to the right of the Font Collections column.
Typefaces. If you select a specific font in the Family column, its available typefaces appear in the next column over. What typefaces appear (italic, bold, and so on) will vary with the font.
Sizes. Finally, you can choose sizes for a font via the Sizes column. If you choose the Edit Sizes command from the Extras menu, you can modify which sizes appear in this column or switch to using a slider.
Figure 4.18 (Top) Selecting Font Panel from the Format menu and (bottom) the Font Panel main window.
Modify Collections. You can edit the fonts in a collection, create a new collection, or delete an existing one by choosing Edit Collections from the Extras pop-up menu at the bottom of the window. This command opens a new window. To edit a collection, follow these steps:
Click a collection name.
The fonts in that collection appear in the Family column.
Using the arrow keys, you can move fonts to and from the Family and All Families columns, as desired.
The plus-sign (+) button adds a new collection; the minus-sign () and Rename buttons do what you would expect.
When you finish, click Done.
Other Font-menu commands. The Font menu in TextEdit includes other choices, such as Kern, Ligature, and Colors. If you know what these options mean and how to use them, great. Otherwise, the topic gets beyond the level of font troubleshooting that's appropriate for this Mac OS X book.
Figure 4.19 (Top) Selecting Edit Collections from Font Panel's Extras menu and (bottom) the window that appears.
TAKE NOTE
Font Styles and Copy/Paste
In most Mac OS 9 text applications, as well as Carbonized Mac OS X text applications, a Style menu allows you to change the style of text from plain to italics to bold, and so on. Although the situation gets a bit more complicated with PostScript fonts, these menu options generally allow you to change a font's style even if the font file itself has only the regular (plain) variant. In essence, the application uses built-in OS routines to create a good estimate of the style variant. Mac OS X Cocoa applications such as TextEdit, however, support only styles that exist in the font file itself. Thus, if you used the X Font Info utility to examine a font file and found that it contained only regular and bold styles, only those styles would appear in TextEdit; you could not display that font in italics. As a result, even if you were to paste text of that font that had been italicized in another application, the italics would be lost when you pasted the text into TextEdit.
Yet another oddity: When you paste text into TextEdit from another application, the Font Panel window will not highlight the font name. Thus, you cannot determine the font of the pasted text easily.
Finally, if you add a version of a font to the Fonts folder in your Home directory, it will generally take precedence over versions of the same font in other Fonts folders (as covered more in the next "Take Note" on duplicate fonts). For applications such as TextEdit, adding a duplicate font could thus result in a shift in what Style options are available.
TAKE NOTE
Problems with Duplicate Fonts in Fonts Folders
While it is usually OK to have two versions of the same font in different Fonts folders, do not(!) place two versions of the same font in the same Mac OS X Fonts folder. This will almost certainly cause problems, especially within Carbon applications. The most likely symptom is a crash of the application when attempting to display the font or sometimes immediately when the application is launched. This has been known to affect Suitcase (a font management utility), Microsoft Office applications, several Adobe applications, and more.
The consensus opinion is that a bug in Mac OS X is the primary cause. Thus, it will likely require an update to the OS to fix it.
How or why would you wind up with two versions of the same font in a Fonts folder? It could happen by "accident," such as if a Mac OS 9 font suitcase containing several fonts is copied to a Mac OS X Fonts folder (most likely the Fonts folder in your Home directory, at ~/Library/Fonts). If one of the fonts in the suitcase has the identical name to one of the fonts already in the Fonts folder, you may trigger the symptoms.
Less often, problems can occur if the same font is in two different fonts folders. This has been most commonly seen when there is a duplicate between a TrueType dfont in the /System/Library/Fonts folder and a PostScript version of the same font that the user installs in either /Library/Fonts or ~/Library/Fonts. It has been reported, for example, after installing an Adobe Helvetica PostScript font. In this case, in addition to potential crashes, there may be additional oddities when displaying the font.
Problems occur here because an application must, of necessity, chose one or the other versions when deciding how to display the font. If different versions of the same font appear in multiple Library/Fonts folders, the more "local" version generally takes priority. Thus, if you place a font in your Home directory's Fonts folder that is a different version from the same-named font in the System/Library/Fonts folder, the version in your Home directory should be used in applications' Font menus. However, there is at least one situation where this does not occur.
In particular, several Adobe applications will choose the version of the font with the most glyphs (for example, visual displays of font characters) if there are multiple font versions available. This could be the system TrueType version in the System directory rather than the PostScript version in the Home directory. The result is that you may have less style variations available than you had expected via installing the PostScript font. That is, if the TrueType version does not include an italics font, you may not have italics available (as Mac OS X does not create an italics display "on the fly" from the plain text version, as Mac OS 9 can do).
A solution to this problem, assuming you wanted access to the PostScript version of the font, would be to delete the corresponding TrueType font from the System/Library/Fonts folder. However, modifying the fonts in this folder is generally considered a bad idea, as these are fonts reserved for system use by the OS and may trigger other problems if modified or deleted.
If you use the third-party utility Suitcase, it includes an option to "Override System Fonts," but even this does not prevent these crashes and display problems from occurring.
Bottom line: Until Apple (and Microsoft and Adobe, as needed) fix the cause of these symptoms, there is no ideal solution.
TAKE NOTE
TextEdit: Plain Text vs. Rich Text Format; Other Format Options
Rich Text vs. Plain Text. The default format for files saved in TextEdit is Rich Text Format (RTF). Such files will have the extension .rtf. Rich Text Format allows you to include the specialized font, justification, stylized text, and other options that TextEdit is capable of producing. You can also open RTF files in applications such as Microsoft Word.
Some applications (some email applications, for example) may not be able to understand Rich Text Format. In such cases, you may need to save the file in plain-text format (which has the file extension .txt). To do so, choose Make Plain Text from the Format menu and save the file. Now virtually any application should be able to read this file.
You can reconvert the text to Rich Text Format via the Make Rich Text command, which you will find in the Format menu when you view plain-text files. Any of the RTF formatting you did previously will not return, however.
.rtfd. You can paste graphics into an .rtf document. When you try to save this document, you will likely get an alert box that says:"You cannot save this document with the extension 'rtf' at the end of the name. The required extension is 'rtfd.'"
An .rtfd file is actually a package that combines the text and graphics (as TIFF images) data as separate elements within the package. Should you ever decide to remove the .rtfd extension from the file's name in the Finder (such as via the Name & Extension tab of the Show Info window), the file will revert to a folder. Adding back the .rtfd extension should get it to appear as a document file again.
Read-only. The Format menu also includes the option to save a file as read-only, via the "Make Read Only" command. You may want to do that when creating the Read Me files that accompany applications. Conversely, if you open a read-only file, the command in the Format menu will say "Make Editable."
Saving SimpleText documents. You can use TextEdit to open and edit documents created in Mac OS 9's SimpleText application. However, as also covered in Chapter 6 (see:"Saving Files"), when you select to Save a modified SimpleText document, you will get an error message that states:"Please supply a new name. TextEdit does not save SimpleText format; document will be saved as rich text (RTF) instead, with a new name." If you click OK, you will be given the chance to Save the document with a new name.
Wrap. Finally, the Format menu has a command that toggles between Wrap to Window and Wrap to Page. If text continues beyond the right border of a window (so that you cannot read it), choosing Wrap to Window will readjust the text so that you can read it all.
Figure 4.20 (Top) The warning message when attempting to save an rtf file after pasting a graphic into it and (bottom) inside the resulting .rtfd package file.
Font smoothing and Mac OS X
Even without any special font-smoothing effect, the display of PostScript and TrueType fonts would be quite smooth in Mac OS X. At the very least, text will likely appear as smooth as it does when displayed in Mac OS 9.
Antialiased text. Mac OS X, via its Quartz layer, adds a font-smoothing option that was not built into Mac OS 9 (although special utilities could provide it): antialiasing. This feature modifies the edges of the fonts to eliminate the inevitable "jagginess" of the display (which is due to the fact that an edgeespecially an oblique edgeis a string of square pixels, rather than a true line). Antialiasing fills in the gaps left by the pixels with various shades of gray pixels. The human eye, in almost an optical-illusion effect, views this display as a smooth line (unless the magnification level gets so high that you start seeing the gray shades).
Although antialiased text generally looks superior to nonantialiased text (which is why the technology exists in the first place!), it may not look especially good for smaller fonts. Smaller fonts may wind up looking more blurry than smooth, which makes them even harder to read.
For this reason, Mac OS X gives you the option to turn off the antialiasing effect for small font sizes. To do so, follow these steps:
Open the General pane of the System Preferences window.
The last command reads: "Turn off text smoothing for fonts sizes {#} and smaller."
Choose the font size from the pop-up menu that appears in the # location.
Your choices are point sizes 8, 9, 10, and 12. Thus, if small fonts are too blurry, choose a higher number to turn off smoothing for more font sizes. Conversely, if large fonts are too jagged, choose a lower number.
Figure 4.21 The General pane of the System Preferences window.
The General pane does not allow you to disable font smoothing for sizes larger than 12. Some users would like to turn off font smoothing for larger sizes or turn the option off altogether. You can do this easily enough with the share-ware utility TinkerTool, a user-installed system preference. Here's what to do:
Choose TinkerTool in the Others section of the System Preferences window.
Select the Font Smoothing tab.
To disable font smoothing, choose "Disable Font Smoothing in Core Graphics."
You can also manipulate font smoothing selectively for Cocoa vs. QuickDraw (Carbonized) applications. In each case, you can choose virtually any size as the threshold font size for when smoothing should occur.
Note: Due to a bug in earlier versions of Mac OS X, some fonts were not smoothed as expected in certain applications (especially Microsoft Word). This problem appears to be fixed in the latest OS versions (Mac OS X 10.1.2 and later). If you still have a problem modifying the font-smoothing size range, TinkerTool should be able to get the display to look at least reasonably smooth.
Modify default fonts. TinkerTool includes a Fonts tab, where you can change the default font settings (such as font name and size) that Mac OS X uses for its system font and applications. You cannot access these modifications from any Mac OS X-supplied System Preference. Not all applications will use these changes, however, and the changes will not affect the menu-bar font.
NOTE
You may be surprised to learn that TinkerTool doesn't implement any features of its own; it instead unlocks features that Apple built into the Mac OS X software but did not make easily accessible (so-called hidden features).
Figure 4.22 TinkerTool's (top) Fonts and (bottom) Font Smoothing tabs.
International language support: basics
Mac OS X allows you to change the language used in its menus and dialog boxes. You can also use these international language characters in text that you create in applications. For this book, I am sticking mainly with troubleshooting in English (for which there's already more than enough to know!). But it still pays to be aware of some basics regarding multiple-language support.
Multiple-language support files. Support for multiple languages in the OS itself (such as the Finder), or in specific applications that run in Mac OS X, is determined by whether the files needed for any additional language are included with the application.
To see how this situation works, use iTunes (an application with excellent multiple-language support). Follow these steps:
Select the iTunes icon in the Finder.
Control-click the icon, and choose Show Package Contents from the contextual menu.
In the window that appears, open the Contents folder and then the Resources folder within the Contents folder
Here, you will find numerous folders that end with the extension .lproj (such as English.lproj and French.lproj). Each of these folders represents the needed support for iTunes to run in the named language.
Disabling or removing language support files. The language support files in iTunes take up most of the iTunes application (around 20 MB). Eliminating these files (assuming that you have no need for additional languages in iTunes) could save a considerable amount of space.
To do this, you could remove the undesired .lproj folders from the iTunes package and drag them to the Trash (or somewhere else, should you want to save them). Or, if you want to save the files within iTunes but not have them accessible for display, drag them to the Resources Disabled folder that is also in the Contents folder.
Figure 4.23 Some of the lproj folders in iTunes' Resources folder.
Alternatively, if you do not want to bother with delving into package contents, you can do the same thing via iTunes' Show Info window. Follow these steps:
Select the iTunes icon in the Finder.
Press Command-I to bring up its Show Info window.
Choose Languages from the pop-up menu.
To disable a language, simply uncheck the appropriate checkbox. This action moves the language into the Resources Disabled folder.
or
To delete the language resource (which is what you need to do to reduce the size of the iTunes application), select an enabled language and click the Remove button.
You cannot remove a language that has been disabled. To remove a disabled language, first reenable it. If the Remove button is still dimmed when you select an enabled language, Force Quit the Finder and try again.
Choosing to remove a language places its .lprog folder in the Trash. Until you actually empty the Trash, you could drag the language folder from the Trash and save it elsewhere. In this way, you could use the Add button to return it to the list later, should you want. Note: You will have to close the Show Info window and reopen it before it will show that you have added a language.
iTunes will display its menus and other text in the first language listed in the International System Preferences window, if that language is available and enabled for iTunes. If the preferred language has been disabled or removed, iTunes will use the next enabled language listed in the International System Preferences window.
NOTE
The Show Info window for iTunes also has a Plugins tab that allows you to enable/disable or add/remove the files (located in the Plug-Ins folder inside the Contents folder) that provide support for various MP3 players (such as the Rio).
Figure 4.24 Languages tab of the Show Info window for iTunes.
International language support: troubleshooting
Following are some potential problemsand solutionswith using multiple languages in Mac OS X.
Additional software needed. Some languages may require additional software, such as a Mac OS 9 language kit or font. Apple writes: "For example, Mac OS X 10.1 includes script bundles for Cyrillic and Central European languages. However, such a script bundle does not activate unless at least one font for that script is present. Installing a font that is compatible with the script bundle will activate it. Keyboard layouts associated with the activated bundle then appear in the International Preferences panel."
Figure 4.25 The International System Preferences Language tab.
Localized OS needed. Some languages work only if you have a region-specific, or localized, version of the Mac OS installed. Thus, you may not be able to use these languages with a typical North American-English Mac OS X system. You may need to install the version of Mac OS X specific to the language in question. Apple now releases each version of Mac OS X in a variety of localized versions.
Selected keyboard needed. To type text in a given language, you may also need to select a keyboard or input method for it via the Keyboard Menu tab of the International System Preferences window. After you select additional keyboards or input methods, a new Keyboard menu with a flag icon appears in the menu bar of all applications. This menu allows you to choose among keyboards or input methods. Some input methods may create an additional menu next to the keyboard menu when they are active. Keyboards listed as Unicode in the International System Preferences window are available only in Unicode-compatible applications such as Mail, TextEdit, and the Finder. When you're typing in an application, the availability of these keyboards in the Keyboard menu indicates whether that application works with Unicode.
Figure 4.26 The International System Preferences Keyboard Menu tab.
Figure 4.27 A keyboard menu in the menu bar.
TAKE NOTE
Getting "Graphic" Fonts to Display in TextEdit
In a few cases, you may need to select a keyboard in the International System Preferences window even if you are using only the English language. You will need to do this to use graphic fontssuch as Symbol and Zapf Dingbatin Cocoa applications such as TextEdit.
Specifically, if you select some text in TextEdit and then try to change it to the Symbol or Zapf Dingbats font via the Font Panel window, the text will most likely revert to the Lucida Grande font instead. If you want to use these fonts, here is what to do:
Open the International System Preferences window, and select the Keyboard Menu tab.
Enable the Symbol and Zapf Dingbats keyboards by checking their On checkboxes.
Close the International System Preferences window.
You will see a menu to the right of the Help menu, indicated by a flag icon. If you are a U.S. user, you should see a U.S. flag icon. In this menu will be the names of the keyboards you just enabled.
Pull down the menu, and choose the menu option you want to use (such as Symbol).
or
Press Command-Option-spacebar to rotate among all the menu options until the one you want is selected.
Now when you type text, it should be in the font you selected (such as Symbol). If it is not, choose the desired font in the Font Panel window.
This system is awkward at best, and it still does not always work the way it should. Selecting some Zapf Dingbats text and changing it to a different fonts appears to be almost impossible, for example. The system works only for text that you add after making the change.
Also, shifting to these keyboards apparently is not a prerequisite for using these fonts in Carbon applications, such as Word and AppleWorks. If you do change the keyboard, however, you can get odd effects in these applications, such as characters mapped to incorrect keys. So watch out!
Keyboard Menu options. In the Keyboard Menu tab of the International System Preferences window, click the Options button. You will find an option called Font and Keyboard Synchronization. This option sounds like it is designed to select the appropriate keyboard layout automatically when you select a font (such as switch to the Symbol layout when you switch to the Symbol font). The option does not seem to work as expected, however. In Cocoa applications such as TextEdit, before I could select the Symbol font, I had to select the Symbol keyboard menu manually. In Carbon applications such as Word, I could select and display the Symbol font just fine, even though the keyboard layout remained as U.S. and did not switch to Symbol.
In any case, whether this option was on or off had no effect on my inability to change existing Zapf Dingbats or Symbol text to a different font. Changing the menu affected only text typed after the change.
At this point, you may be asking why is it so much more difficult to use fonts such as Symbol in Mac OS X than it was in Mac OS 9. The key to the answer is Mac OS X's use of Unicode (see "Technically Speaking: ATSUI and Unicode" earlier in this chapter). More specifically, this is what Apple had to say on the matter:"In Mac OS 9, the Symbol and Zapf Dingbats fonts acted like other fonts, as if they worked with the usual alphabetic and numeric characters, when in fact they contained symbol characters. In a Unicode system, the special characters in the Symbol and Zapf Dingbats fonts have their own unique Unicode character codes. Typing a character like 'A' does not work when these fonts are used with Unicode, as the fonts don't contain an 'A' character. Thus, you need to use special keyboard layouts provided for those fonts."
Figure 4.28 International System Preferences: Keyboard Menu tab's Options window.
Font utilities
In addition to the X Font Info and TinkerTool utilities, mentioned earlier in this section, you should consider several useful font-related utilities.
FontDoctor finds and repairs an assortment of font problems. This Mac OS 9 utility has been updated to work in Mac OS X. Here's a partial list of the things it can do:
- Repair damaged and corrupt fonts
- Locate missing fonts
- Find and eliminate duplicate fonts
- Fix font ID conflicts
FontExampler shows all your installed fonts in WYSIWYG mode in a single window. You can also see how any selected font looks at different sizes.
ForkSwitcher is an Apple utility that can convert a traditional Mac OS 9 font suitcase file (with a data and resource fork, and with the file type FFIL) to one that uses the Mac OS X (.dfont) data-fork-only format. Note: ForkSwitcher cannot change individual font files in Mac OS 9 that are not inside a font suitcase.
Suitcase allows you to view all fonts (including Mac OS X .dfonts) in all Mac OS X Fonts folders. It can activate or deactivate individual fonts separately for Cocoa, Carbon, and Classic applications. This utility can be especially useful when two fonts conflict or when a font causes a problem with a specific application. In such cases, you can use Suitcase to deactivate the problem font. Note: Suitcase was briefly mentioned earlier in this chapter in "Take Note: Problems with Duplicate Fonts in Fonts folders" and "Take Note: Multiple Folders Of The Same Name In Multiple Library Folders."
Font Reserve is another excellent utility in the same genre as Suitcase.