#   5.2.1 page 51

the vowels are: a, e, i, o and u
! v{els >e3 a1 ;e1 i1 o & ;u

Mrs X and Mr O
,mrs ;,x & ,mr ,o

J. S. Bach
;,j4 ;,s4 ,ba*

22b 22B 22p
#bb;b #bb,b #bbp

adagio e cantabile
adagio ;e cantabile

## [question mark and exclamation mark]
Add either ? or ! to each sentence.
,add ei ;8 or 6 to ea* s5t;e4

In Smith⁵⁶ we find …
,9 ,smi?;9#ef we f9d 444

jim@take2.com
jim`atake#b4;com

#   5.3.2 page 52

I spell it u-n-t-i-d-y.
,i spell x ;;u-n-t-i-d-y4

##E
##-
##R
##replace I with R E
##replace ,i ) ;;(,e./,r)

#   5.4.2 page 52

He spelt H-o C-h-i M-i-n-h City.
,he spelt ;;;,h-o ,c-h-i  ,m-i-n-h;' ,c;y4

Factorise: y = x²−4; y = x²−2x; y = x−x².
,factorise3 ;;;y "7 x9#b"-#d2  y "7 x9#b"-#bx2 y "7 x"-x9#b4;'

#   5.5.2 page 53

p-p-p-p-p-p-p-perishing
;;p-p-p-p-p-p-p-;'p}i%+

#   5.6.1 page 53

1st
#ast

shopping4you
%opp+#dyou

4starhotel@webnet.com
#dstarhotel`awebnet4com

#   5.6.2 page 53

I'll go 3rd–you go 4th.
,i'll g #crd,-y g #dth4

3-D
#c-;,d

3-dimensional
#c-dim5.nal

5-CD set
#e-;,,cd set

c:\personal\2009finances
c3_*p}sonal_*#bjji;'f9.es

#   5.7.1 page 54

b–e
;b,-;e

b-1
;b-#a

B-team
;,b-t1m

ev-er-y-which-way
ev-}-;y-:-way

ending in –s or –es
5d+ 9 ,-;s or ,-es

V–VII
;,v,-,,vii

viii-x
viii-;x

What have you d–
,:at h y ;d,-

What have you d…
,:at h y ;d444

p. 7
;p4 #g

p.7
p4#g

p7
p#g

the letters "a" to "g"
! lrs 8a0 to 8;g0

Sections (h) and (i).
,sec;ns "<;h"> & "<i">4

Did 'e 'n' Ma get to 't?
,did ';e ';n' ,ma get to ';t8

c/o maître d'
c_/o ma~%itre ;d'

the people's right
! p's "r

p's and q's.
;p's & ;q's4

~italic
       +
letter d
lr .2;d

~italic
+++++++++++++++++++
"X marks the spot."
.78;,x m>ks ! spot40.'

Dr J. F. Smith, M.D.
,dr ;,j4 ;,f4 ,smi?1 ,m4,d4

s-p-e-l-l-i-n-g
;;s-p-e-l-l-i-n-g

#   5.7.2 page 55

CD-ROM
;,,cd-,,rom

"Hm!" he mused.
8;,hm60 he mus$4

Could you buy a CD/DVD?
,cd y buy a ,,cd_/,,dvd8

My friends are Fr Ted and Sr Ann.
,my frs >e ;,fr ,t$ & ,sr ,ann4

the Imm family
! ;,imm family

al dente
;al d5te

Use the ALT key.
,use ! ;,,alt key4

NEC (National Executive Committee)
;,,nec "<,na;nal ,executive ,committee">

ozbrl (Australian listserve)
;;ozbrl "<,au/ralian li/s}ve">

#   5.8.1

T-SHIRTS FOR SALE
;,,,t-%irts = sale,'

~end

#   5.9.1 page 56
un-e-mo-tion-al ;;un-e-mo-tion-al [rather than] un-;e-mo-tion-;al
c-h-e-e-s-e ;;c-h-e-e-s-e
br-r-r-r ;;br-r-r-r
d-don’t ;d-don't
d-d-d-don’t ;;d-d-d-don't
about-f-f-f-face ab-;;f-f-f-face
d-d-d-dictionary ;d-;d-;d-dic;n>y [rather than] ;;d-d-d-;'dic;n>y
p-p-please ;p-;p-pl1se [rather than] ;;p-p-please
s-s-s-s-super-st-stition
;;s-s-s-s-;'sup]-st-/i;n

#   5.9.2 page 56
xyxba= ;;;x9(a./b)y "7 x;' [or] ;;x9(a./b)y "7 ;x [rather than] x;9;(a./b;)y "7 ;x

#   5.10.1 page 57
The engine stuttered rm-m-m-m-m then rm-mm-mm-mm then
settled into r-mmmmmmm.
,! 5g9e /utt]$ ;;rm-m-m-m-m !n ;;rm-mm-mm-mm !n settl$ 9to ;;r-mmmmmmm4

#   5.11.1 page 57
C is for candy. ,c is for candy4
Question 3c ,question #c;c


#   5.10.1 page 57
