forked from CTeX-org/tex-by-topic-cn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchapter04.tex
647 lines (588 loc) · 25 KB
/
chapter04.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
% -*- coding: utf-8 -*-
\documentclass{book}
\input{preamble}
\setcounter{chapter}{3}
\begin{document}
%\chapter{Fonts}\label{font}
\chapter{Fonts}\label{font}
%In text mode \TeX\ takes characters from a `current font'.
%This chapter describes how \indexterm{fonts} are identified to \TeX,
%and what attributes a font can have.
In text mode \TeX\ takes characters from a `current font'.
This chapter describes how \indexterm{fonts} are identified to \TeX,
and what attributes a font can have.
%\label{cschap:font}\label{cschap:fontname}\label{cschap:nullfont}\label{cschap:hyphenchar}\label{cschap:defaulthyphenchar}\label{cschap:fontdimen}\label{cschap:char47}\label{cschap:noboundary}
%\begin{inventory}
%\item [\cs{font}]
% Declare the identifying control sequence of a font.
\label{cschap:font}\label{cschap:fontname}\label{cschap:nullfont}\label{cschap:hyphenchar}\label{cschap:defaulthyphenchar}\label{cschap:fontdimen}\label{cschap:char47}\label{cschap:noboundary}
\begin{inventory}
\item [\cs{font}]
Declare the identifying control sequence of a font.
%\item [\cs{fontname}]
% The external name of a font.
\item [\cs{fontname}]
The external name of a font.
%\item [\cs{nullfont}]
% Name of an empty font that \TeX\ uses in emergencies.
\item [\cs{nullfont}]
Name of an empty font that \TeX\ uses in emergencies.
%\item [\cs{hyphenchar}]
% Number of the hyphen character of a font.
\item [\cs{hyphenchar}]
Number of the hyphen character of a font.
%\item [\cs{defaulthyphenchar}]
% Value of \cs{hyphenchar} when a font is loaded.
% Plain \TeX\ default:~\verb>`\->.
\item [\cs{defaulthyphenchar}]
Value of \cs{hyphenchar} when a font is loaded.
Plain \TeX\ default:~\verb>`\->.
%\item [\cs{fontdimen}]
% Access various parameters of fonts.
\item [\cs{fontdimen}]
Access various parameters of fonts.
%\item [\cs{char47}]
% Italic correction.
\item [\cs{char47}]
Italic correction.
%\item [\cs{noboundary}]
% Omit implicit boundary character.
%\end{inventory}
\item [\cs{noboundary}]
Omit implicit boundary character.
\end{inventory}
%%\point Fonts
%\section{Fonts}
%\point Fonts
\section{Fonts}
%In \TeX\ terminology a font is the set of characters that
%is contained in one external font file.
%During processing, \TeX\ decides from
%what font a character should be taken. This decision is
%taken separately for text mode and math mode.
In \TeX\ terminology a font is the set of characters that
is contained in one external font file.
During processing, \TeX\ decides from
what font a character should be taken. This decision is
taken separately for text mode and math mode.
%When \TeX\ is processing ordinary text, characters are taken
%from the `current font'.
%External font file names are coupled to control sequences
%by statements such as
%\begin{verbatim}
%\font\MyFont=myfont10
%\end{verbatim}
%which makes \TeX\ load the file \n{myfont10.tfm}.
%Switching the current font to the font described in that file
%is then done by
%\begin{verbatim}
%\MyFont
%\end{verbatim}
%The status of the current font
%can be queried: the sequence
%\begin{verbatim}
%\the\font
%\end{verbatim}
%produces the control sequence for the current font.
When \TeX\ is processing ordinary text, characters are taken
from the `current font'.
External font file names are coupled to control sequences
by statements such as
\begin{verbatim}
\font\MyFont=myfont10
\end{verbatim}
which makes \TeX\ load the file \n{myfont10.tfm}.
Switching the current font to the font described in that file
is then done by
\begin{verbatim}
\MyFont
\end{verbatim}
The status of the current font
can be queried: the sequence
\begin{verbatim}
\the\font
\end{verbatim}
produces the control sequence for the current font.
%Math mode completely ignores the current font. Instead
%it looks at the `current family', which can contain
%three fonts: one for text style, one for script style,
%and one for scriptscript style. This is treated
%in Chapter~\ref{mathchar}.
Math mode completely ignores the current font. Instead
it looks at the `current family', which can contain
three fonts: one for text style, one for script style,
and one for scriptscript style. This is treated
in Chapter~\ref{mathchar}.
%See \cite{S} for a consistent terminology of fonts and typefaces.
See \cite{S} for a consistent terminology of fonts and typefaces.
%With `virtual fonts' (see~\cite{K:virt}) it is possible that
%what looks like one font to \TeX\ resides in more than
%one physical font file.
%\alt
%See further page~\pageref{virtual:fonts}.
With `virtual fonts' (see~\cite{K:virt}) it is possible that
what looks like one font to \TeX\ resides in more than
one physical font file.
\alt
See further page~\pageref{virtual:fonts}.
%%\point Font declaration
%\section{Font declaration}
%\point Font declaration
\section{Font declaration}
%Somewhere during a run of \TeX\ or \IniTeX\
%\cstoidx font\par
%the coupling between an internal identifying control sequence
%and the external file name of a font has to be made.
%The syntax of the command for this is
%\begin{disp}\cs{font}\gr{control sequence}\gr{equals}%
%\gr{file name}\gr{at clause}\end{disp}
%where
%\begin{disp}\gr{at clause} $\longrightarrow$ \n{at} \gr{dimen}
%$|$ \n{scaled} \gr{number} $|$ \gr{optional spaces}\end{disp}
%Font declarations are local to a group.
Somewhere during a run of \TeX\ or \IniTeX\
\cstoidx font\par
the coupling between an internal identifying control sequence
and the external file name of a font has to be made.
The syntax of the command for this is
\begin{disp}\cs{font}\gr{control sequence}\gr{equals}%
\gr{file name}\gr{at clause}\end{disp}
where
\begin{disp}\gr{at clause} $\longrightarrow$ \n{at} \gr{dimen}
$|$ \n{scaled} \gr{number} $|$ \gr{optional spaces}\end{disp}
Font declarations are local to a group.
%By the \gr{at clause} the user specifies that some
%magnified version of the font is wanted. The \gr{at clause} comes
%in two forms: if the font is given \n{scaled}~{\italic f\/} \TeX\
%multiplies all its font dimensions for that font by~$f/1000$;
%if the font
%has a design size~{\italic d\/}\n{pt} and
%the \gr{at clause} is \n{at}~{\italic p\/}\n{pt}
%\TeX\ multiplies all font data by~$p/d$.
%The presence of an \gr{at clause} makes no difference for
%the external font file (the \n{.tfm} file)
%that \TeX\ reads for the font; it just multiplies
%the font dimensions by a constant.
By the \gr{at clause} the user specifies that some
magnified version of the font is wanted. The \gr{at clause} comes
in two forms: if the font is given \n{scaled}~{\italic f\/} \TeX\
multiplies all its font dimensions for that font by~$f/1000$;
if the font
has a design size~{\italic d\/}\n{pt} and
the \gr{at clause} is \n{at}~{\italic p\/}\n{pt}
\TeX\ multiplies all font data by~$p/d$.
The presence of an \gr{at clause} makes no difference for
the external font file (the \n{.tfm} file)
that \TeX\ reads for the font; it just multiplies
the font dimensions by a constant.
%After such a font declaration, using the defined control sequence
%will set the current font to the font of the
%control sequence.
After such a font declaration, using the defined control sequence
will set the current font to the font of the
control sequence.
%%\spoint Fonts and \n{tfm} files
%\subsection{Fonts and \n{tfm} files}
%\spoint Fonts and \n{tfm} files
\subsection{Fonts and \n{tfm} files}
%The external file needed for the font is a \n{tfm}
%(\TeX\ font metrics) file,
%which is taken independent of any \gr{at clause}
%in the \cs{font} declaration. If the \n{tfm}
%file has been loaded already (for instance by \IniTeX\
%when it constructed the format),
%an assignment of that font file can be reexecuted
%without needing recourse to the \n{tfm} file.
The external file needed for the font is a \n{tfm}
(\TeX\ font metrics) file,
which is taken independent of any \gr{at clause}
in the \cs{font} declaration. If the \n{tfm}
file has been loaded already (for instance by \IniTeX\
when it constructed the format),
an assignment of that font file can be reexecuted
without needing recourse to the \n{tfm} file.
%Font design sizes are given in the font metrics files.
%The \n{cmr10} font, for instance, has a design size
%of 10~point. However, there is not much in the font
%that actually has a size of 10~points: the opening and closing
%parentheses are two examples, but capital
%letters are considerably smaller.
Font design sizes are given in the font metrics files.
The \n{cmr10} font, for instance, has a design size
of 10~point. However, there is not much in the font
that actually has a size of 10~points: the opening and closing
parentheses are two examples, but capital
letters are considerably smaller.
%%\spoint Querying the current font and font names
%\subsection{Querying the current font and font names}
%\spoint Querying the current font and font names
\subsection{Querying the current font and font names}
%It was already mentioned above that the control sequence
%which set the current font can be retrieved by the
%command \verb>\the\font>. This is a special case of
%\begin{Disp}\cs{the}\gr{font}\end{Disp} where
%\begin{disp}\gr{font} $\longrightarrow$
%\cs{font} $|$ \gr{fontdef token} $|$ \gr{family member}\nl
%\gr{family member} $\longrightarrow$
%\gr{font range}\gr{4-bit number}\nl
%\gr{font range} $\longrightarrow$
%\cs{textfont} $|$ \cs{scriptfont} $|$ \cs{scriptscriptfont}\end{disp}
%A \gr{fontdef token} is a control sequence defined by \cs{font},
%or the predefined control sequence \cs{nullfont}.
%The concept of \gr{family member} is only
%relevant in math mode.
It was already mentioned above that the control sequence
which set the current font can be retrieved by the
command \verb>\the\font>. This is a special case of
\begin{Disp}\cs{the}\gr{font}\end{Disp} where
\begin{disp}\gr{font} $\longrightarrow$
\cs{font} $|$ \gr{fontdef token} $|$ \gr{family member}\nl
\gr{family member} $\longrightarrow$
\gr{font range}\gr{4-bit number}\nl
\gr{font range} $\longrightarrow$
\cs{textfont} $|$ \cs{scriptfont} $|$ \cs{scriptscriptfont}\end{disp}
A \gr{fontdef token} is a control sequence defined by \cs{font},
or the predefined control sequence \cs{nullfont}.
The concept of \gr{family member} is only
relevant in math mode.
%Also, the
%\cstoidx fontname\par
%external name of fonts can be retrieved:
%\begin{Disp}\cs{fontname}\gr{font}\end{Disp}
%gives a sequence of character tokens of category~12\index{category!12}
%(but space characters get category~10\index{category!10}) that spells the font file
%name, plus an \gr{at clause} if applicable.
Also, the
\cstoidx fontname\par
external name of fonts can be retrieved:
\begin{Disp}\cs{fontname}\gr{font}\end{Disp}
gives a sequence of character tokens of category~12\index{category!12}
(but space characters get category~10\index{category!10}) that spells the font file
name, plus an \gr{at clause} if applicable.
%\begin{example} After
%\begin{verbatim}
%\font\tenroman=cmr10 \tenroman
%\end{verbatim}
%the calls
%\verb>\the\font> and \verb>\the\tenroman> both give \cs{tenroman}.
%The call \verb>\fontname\tenroman> gives \n{cmr10}.
%\end{example}
\begin{example} After
\begin{verbatim}
\font\tenroman=cmr10 \tenroman
\end{verbatim}
the calls
\verb>\the\font> and \verb>\the\tenroman> both give \cs{tenroman}.
The call \verb>\fontname\tenroman> gives \n{cmr10}.
\end{example}
%%\spoint \cs{nullfont}
%\subsection{\cs{nullfont}}
%\spoint \cs{nullfont}
\subsection{\cs{nullfont}}
%\TeX\ always knows a font that has no characters: the \csidx{nullfont}.
%If no font has been specified, or if in math mode a family member
%is needed that has not been specified,
%\TeX\ will take its characters from the nullfont.
%This control sequence qualifies as a \gr{fontdef token}:
%it acts like any other control sequence that stands for a font;
%it just does not have an associated \n{tfm} file.
\TeX\ always knows a font that has no characters: the \csidx{nullfont}.
If no font has been specified, or if in math mode a family member
is needed that has not been specified,
\TeX\ will take its characters from the nullfont.
This control sequence qualifies as a \gr{fontdef token}:
it acts like any other control sequence that stands for a font;
it just does not have an associated \n{tfm} file.
%%\point Font information
%\section{Font information}
%\point Font information
\section{Font information}
%During a run of \TeX\ the main information needed about the
%\index{\n{tfm} files}%
%font consists of the dimensions of the characters.
%\TeX\ finds these in the font metrics files, which usually have
%extension \n{.tfm}. Such files
%contain \begin{itemize} \item global information: the \cs{fontdimen}
%parameters, and some other information,
%\item dimensions and the italic corrections of characters, and
%\altt
%\item ligature and kerning programs for characters.
% \end{itemize}
%Also, the design size of a font is specified in the \n{tfm} file;
%see above. The definition of the \n{tfm} format can be found
%in~\cite{Knuth:TeXprogram}.
During a run of \TeX\ the main information needed about the
\index{\n{tfm} files}%
font consists of the dimensions of the characters.
\TeX\ finds these in the font metrics files, which usually have
extension \n{.tfm}. Such files
contain \begin{itemize} \item global information: the \cs{fontdimen}
parameters, and some other information,
\item dimensions and the italic corrections of characters, and
\altt
\item ligature and kerning programs for characters.
\end{itemize}
Also, the design size of a font is specified in the \n{tfm} file;
see above. The definition of the \n{tfm} format can be found
in~\cite{Knuth:TeXprogram}.
%%\spoint[font:dims] Font dimensions
%\subsection{Font dimensions}
%\label{font:dims}
%\spoint[font:dims] Font dimensions
\subsection{Font dimensions}
\label{font:dims}
%Text fonts need to have at least seven \csidx{fontdimen} parameters
%to describe \indextermsub{font}{dimensions}
%(but \TeX\ will take zero for unspecified parameters);
%math symbol and math extension fonts have more
%(see page~\pageref{fam23:fontdims}).
%For text fonts the minimal set of seven comprises the following:
%\begin{enumerate} \item the slant per point; this dimension is used
% for the proper horizontal positioning of accents;
%\item the interword space: this is used unless the user
% specifies an explicit \cs{spaceskip};
% see Chapter~\ref{space};
%\item interword stretch: the stretch component of the interword
% space;
%\item interword shrink: the shrink component of
% the interword space;
%\item the x-height: the value of
% the \gr{internal unit} \n{ex}, which is usually about the
% height of the lowercase letter~`x';
%\item the quad width:
% the value of the \gr{internal unit} \n{em}, which is
% approximately the width of the capital letter~`M'; and
%\item the extra space: the space added to the interword space
%at the end of sentences (that is, when \cs{spacefactor}${}\geq2000$)
%unless the user specifies an explicit \cs{x\-space\-skip}.
%\end{enumerate}
Text fonts need to have at least seven \csidx{fontdimen} parameters
to describe \indextermsub{font}{dimensions}
(but \TeX\ will take zero for unspecified parameters);
math symbol and math extension fonts have more
(see page~\pageref{fam23:fontdims}).
For text fonts the minimal set of seven comprises the following:
\begin{enumerate} \item the slant per point; this dimension is used
for the proper horizontal positioning of accents;
\item the interword space: this is used unless the user
specifies an explicit \cs{spaceskip};
see Chapter~\ref{space};
\item interword stretch: the stretch component of the interword
space;
\item interword shrink: the shrink component of
the interword space;
\item the x-height: the value of
the \gr{internal unit} \n{ex}, which is usually about the
height of the lowercase letter~`x';
\item the quad width:
the value of the \gr{internal unit} \n{em}, which is
approximately the width of the capital letter~`M'; and
\item the extra space: the space added to the interword space
at the end of sentences (that is, when \cs{spacefactor}${}\geq2000$)
unless the user specifies an explicit \cs{x\-space\-skip}.
\end{enumerate}
%Parameters 1 and~5 are purely information about the font
%and there is no point in varying them.
%The values of other parameters can be changed in order to
%adjust spacing; see Chapter~\ref{space} for examples
%of changing parameters 2, 3, 4, and~7.
Parameters 1 and~5 are purely information about the font
and there is no point in varying them.
The values of other parameters can be changed in order to
adjust spacing; see Chapter~\ref{space} for examples
of changing parameters 2, 3, 4, and~7.
%Font dimensions can be altered in a \gr{font
% assignment}\index{assignment!font}, which is a \gr{global
% assignment}\index{assignment!global} (see
%page~\pageref{global:assign}):
%\begin{Disp}\cs{fontdimen}\gr{number}\gr{font}\gr{equals}\gr{dimen}
%\end{Disp} See above for the definition of \gr{font}.
Font dimensions can be altered in a \gr{font
assignment}\index{assignment!font}, which is a \gr{global
assignment}\index{assignment!global} (see
page~\pageref{global:assign}):
\begin{Disp}\cs{fontdimen}\gr{number}\gr{font}\gr{equals}\gr{dimen}
\end{Disp} See above for the definition of \gr{font}.
%%\spoint Kerning
%\subsection{Kerning}
%\spoint Kerning
\subsection{Kerning}
%Some combinations of characters should be moved closer
%together than would be the case if their bounding boxes
%were to be just abutted. This fine spacing is called \indexterm{kerning},
%and a proper kerning is as essential to a font as the
%design of the letter shapes.
Some combinations of characters should be moved closer
together than would be the case if their bounding boxes
were to be just abutted. This fine spacing is called \indexterm{kerning},
and a proper kerning is as essential to a font as the
design of the letter shapes.
%Consider as an example\message{Kerning!}
%\begin{Disp} `Vo' versus the unkerned variant `V\hbox{}o'\end{Disp}
Consider as an example\message{Kerning!}
\begin{Disp} `Vo' versus the unkerned variant `V\hbox{}o'\end{Disp}
%Kerning in \TeX\ is controlled by information in the
%\n{tfm} file, and is therefore outside the influence of the
%user. The \n{tfm} file can be edited, however (see Chapter~\ref{TeXcomm}).
Kerning in \TeX\ is controlled by information in the
\n{tfm} file, and is therefore outside the influence of the
user. The \n{tfm} file can be edited, however (see Chapter~\ref{TeXcomm}).
%The \cs{kern} command has (almost) nothing to do with the
%phenomenon of kerning; it is explained in Chapter~\ref{glue}.
The \cs{kern} command has (almost) nothing to do with the
phenomenon of kerning; it is explained in Chapter~\ref{glue}.
%%\spoint Italic correction
%\subsection{Italic correction}
%\spoint Italic correction
\subsection{Italic correction}
%The primitive control symbol \verb-\/- inserts the
%\indexterm{italic correction}\cstoidx /\par
%of the previous character or ligature.
%Such a correction may be necessary owing to the definition
%of the \indextermbus{bounding}{box} of a character. This box always
%has vertical sides, and the width of the character as \TeX\
%perceives it is the distance between these sides.
%However, in order to achieve proper spacing for slanted or
%italic typefaces, characters may very well project outside their
%bounding boxes. The italic correction is then needed if
%such an overhanging character is followed by a
%character from a non-slanting typeface.
The primitive control symbol \verb-\/- inserts the
\indexterm{italic correction}\cstoidx /\par
of the previous character or ligature.
Such a correction may be necessary owing to the definition
of the \indextermbus{bounding}{box} of a character. This box always
has vertical sides, and the width of the character as \TeX\
perceives it is the distance between these sides.
However, in order to achieve proper spacing for slanted or
italic typefaces, characters may very well project outside their
bounding boxes. The italic correction is then needed if
such an overhanging character is followed by a
character from a non-slanting typeface.
%Compare for instance\message{Visible italic correction!}
%\begin{Disp} `{\italic\TeX} has'
%to `{\italic\TeX\/} has',
%\end{Disp} where the second version was typed as
%\begin{verbatim}
%{\italic\TeX\/} has
%\end{verbatim}
Compare for instance\message{Visible italic correction!}
\begin{Disp} `{\italic\TeX} has'
to `{\italic\TeX\/} has',
\end{Disp} where the second version was typed as
\begin{verbatim}
{\italic\TeX\/} has
\end{verbatim}
%The size of the italic correction of each character
%is determined by font information
%in the font metrics file; for the Computer Modern fonts it is
%approximately half the `overhang' of the characters;
%see~\cite{K:partE}.
%Italic correction is not the same as \cs{fontdimen1}, slant
%per point. That font dimension is used only for positioning
%accents on top of characters.
The size of the italic correction of each character
is determined by font information
in the font metrics file; for the Computer Modern fonts it is
approximately half the `overhang' of the characters;
see~\cite{K:partE}.
Italic correction is not the same as \cs{fontdimen1}, slant
per point. That font dimension is used only for positioning
accents on top of characters.
%An italic correction can only be inserted if the previous item
%processed
%by \TeX\ was a character or ligature. Thus the
%following solution for roman text inside an italic passage
%does not work:
%\begin{verbatim}
%{\italic Some text {\/\roman not} emphasized}
%\end{verbatim}
%The italic correction has no effect here,
%because the previous item is glue.
An italic correction can only be inserted if the previous item
processed
by \TeX\ was a character or ligature. Thus the
following solution for roman text inside an italic passage
does not work:
\begin{verbatim}
{\italic Some text {\/\roman not} emphasized}
\end{verbatim}
The italic correction has no effect here,
because the previous item is glue.
%%\spoint Ligatures
%\subsection{Ligatures}
%\spoint Ligatures
\subsection{Ligatures}
%Replacement of character sequences by \indexterm{ligatures} is controlled
%by information in the \n{tfm} file of a font.
%Ligatures are formed from \gr{character} commands:
%sequences such as \n{fi} are replaced by `fi' in some fonts.
Replacement of character sequences by \indexterm{ligatures} is controlled
by information in the \n{tfm} file of a font.
Ligatures are formed from \gr{character} commands:
sequences such as \n{fi} are replaced by `fi' in some fonts.
%Other ligatures traditionally in use are
%between \n{ff}, \n{ffi}, \n{fl}, and \n{ffl};
%in some older works \n{ft} and \n{st} can be found,
%and similarly to the \n{fl} ligature \n{fk} and \n{fb}
%can also occur.
Other ligatures traditionally in use are
between \n{ff}, \n{ffi}, \n{fl}, and \n{ffl};
in some older works \n{ft} and \n{st} can be found,
and similarly to the \n{fl} ligature \n{fk} and \n{fb}
can also occur.
%Ligatures in \TeX\ can be formed between explicit character
%tokens, \cs{char} commands, and \gr{chardef token}s.
%For example,
%the sequence \verb-\char`f\char`i- is replaced by the
%`fi' ligature, if such a ligature is part of the font.
Ligatures in \TeX\ can be formed between explicit character
tokens, \cs{char} commands, and \gr{chardef token}s.
For example,
the sequence \verb-\char`f\char`i- is replaced by the
`fi' ligature, if such a ligature is part of the font.
%Unwanted ligatures can be suppressed in a number of ways:
%the unwanted ligature `\hbox{halflife}' can
%for instance be prevented by
%\begin{disp} \verb>half{}life>, \verb>half{l}ife>, \verb>half\/life>,
% or \verb>half\hbox{}life>\end{disp}
%but the solution using italic correction is not equivalent
%to the others.
Unwanted ligatures can be suppressed in a number of ways:
the unwanted ligature `\hbox{halflife}' can
for instance be prevented by
\begin{disp} \verb>half{}life>, \verb>half{l}ife>, \verb>half\/life>,
or \verb>half\hbox{}life>\end{disp}
but the solution using italic correction is not equivalent
to the others.
%%\spoint Boundary ligatures
%\subsection{Boundary ligatures}
%\spoint Boundary ligatures
\subsection{Boundary ligatures}
%Each word is surrounded by a left and a right
%boundary character (\TeX3 only).
%This makes phenomena possible
%such as the two different sigmas in Greek:
%one at the end of a word, and one for every other position.
%This can be realized through a ligature with the
%boundary character. A~\csidx{noboundary} command immediately
%before or after a word suppresses the boundary character
%at that place.
Each word is surrounded by a left and a right
boundary character (\TeX3 only).
This makes phenomena possible
such as the two different sigmas in Greek:
one at the end of a word, and one for every other position.
This can be realized through a ligature with the
boundary character. A~\csidx{noboundary} command immediately
before or after a word suppresses the boundary character
at that place.
%In general, the ligature mechanism has become more complicated
%with the transition to \TeX\ version~3; see~\cite{K:TeX23}.
In general, the ligature mechanism has become more complicated
with the transition to \TeX\ version~3; see~\cite{K:TeX23}.
%\endofchapter
%%%%% end of input file [fontfam]
\endofchapter
%%%% end of input file [fontfam]
\end{document}