next up previous contents
Next: Naming conventions Up: Miscellanea Previous: Preloading

Accented characters

Accented characters in LATEX can be produced using commands such as \"a etc. The precise effect of such commands depends on the font encoding being used. When using a font encoding that contains the accented characters as individual glyphs (such as the T1 encoding, in the case of \"a) words that contain such accented characters can be automatically hyphenated. For font encodings that do not contain the requested individual glyph (such as the OT1 encoding) such a command invokes typesetting instructions that produce the accented character as a combination of character glyphs and diacritical marks in the font. In most cases this involves a call to the TEX primitive \accent. Glyphs constructed as composites in this way inhibit hyphenation of the current word; this is one reason why the T1 encoding is preferable to the original TEX font encoding OT1.

It is important to understand that commands like \"a in LATEX2e represent just a name for a single glyph (in this case `umlaut a') and contain no information about how to typeset that glyph--thus it does not mean `put two dots on top of the character a'. The decision as to what typesetting routine to use will depend on the encoding of the current font and so this decision is taken at the last minute. Indeed, it is possible that the same input will be typeset in more than one way in the same document; for example, text in section headings may also appear in table of contents and in running heads; and each of these may use a font with a different encoding.

For this reason the notation \"a is not equivalent to:

  \newcommand \chara {a}     \"\chara
In the latter case, LATEX does not expand the macro \chara but simply compares the notation (the string \"\chara) to its list of known composite notations in the current encoding; when it fails to find \"\chara it does the best it can and invokes the typesetting instructions that put the umlaut accent on top of the expansion of \chara. Thus, even if the font actually contains `ä' as an individual glyph, it will not be used.

The low-level accent commands in LATEX are defined in such a way that it is possible to combine a diacritical mark from one font with a glyph from another font; for example, \"\textparagraph will produce ¨ \textparagraph. The umlaut here is taken from the OT1 encoded font cmr10 whilst the paragraph sign is from the OMS encoded font cmsy10. (This example may be typographically silly but better ones would involve font encodings like OT2 (Cyrillic) that might not be available at every site.)

There are, however, restrictions on the font-changing commands that will work within the argument to such an accent command. These are TEXnical in the sense that they follow from the way that TEX's \accent primitive works, allowing only a special class of commands between the accent and the accented character.

The following are examples of commands that will not work correctly as the accent will appear above a space: the font commands with text arguments (\textbf{...} and friends); all the font size declarations (\fontsize and \Large, etc.); \usefont and declarations that depend on it, such as \normalfont; box commands (e.g. \mbox{...}).

The lower-level font declarations that set the attributes family, series and shape (such as \fontshape{sl}\selectfont) will produce correct typesetting, as will the default declarations such as \bfseries.


next up previous contents
Next: Naming conventions Up: Miscellanea Previous: Preloading
LaTeX3 Mail Server
1999-07-12