26.12.2012 Views

The Communications of the TEX Users Group Volume 29 ... - TUG

The Communications of the TEX Users Group Volume 29 ... - TUG

The Communications of the TEX Users Group Volume 29 ... - TUG

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Stanislav Jan ˇ Sarman<br />

use <strong>the</strong> traditional Bézier spline circle segment approximation<br />

for <strong>the</strong> segments 1–7 (see <strong>the</strong> 7 th segment<br />

on <strong>the</strong> left) z( 1/2) = 1, so that δ0 = δ1 =<br />

4/3 tan(θ/4) and κi = −(1 − sin 4 (θ/4)). Using this<br />

value as left point curvature <strong>of</strong> <strong>the</strong> 8 th segment (see<br />

on <strong>the</strong> right) and demanding κ1 = 0, <strong>the</strong> Hermite<br />

interpolation with <strong>the</strong> equations (1)–(2) for <strong>the</strong> unknowns<br />

δ0 und δ1 can be solved for segments with<br />

θ < 60 ◦ .<br />

z + 0<br />

z − 1<br />

z0<br />

κ0 ≈ −1<br />

κ1 ≈ −1<br />

z1<br />

a<br />

z0<br />

κ0 ≈ −1<br />

θ<br />

z + 0 z − 1<br />

a<br />

κ1 = 0<br />

Figure 3: 7 th and 8 th segment (θ = 45 ◦ ) <strong>of</strong> our unit<br />

right circle spline approximation<br />

For CV C joinings 7×7 cases are possible in<br />

all —many <strong>of</strong> <strong>the</strong>m can be transformed by reflection<br />

and rotation into one ano<strong>the</strong>r. All <strong>the</strong>se joinings can<br />

be made G (2) continuous. It must be decided before<br />

writing a right consonant, whe<strong>the</strong>r <strong>the</strong> loop is to be<br />

written as a left or as a right loop, compare:<br />

team (t)+[i](m) � vs. � (m)-[i](t) meet<br />

CV C � �� �� �� �� �� �� ��<br />

�<br />

� �<br />

�<br />

�<br />

�<br />

�<br />

�<br />

�<br />

� �<br />

�<br />

�<br />

�<br />

�<br />

�<br />

�<br />

� �<br />

�<br />

�<br />

� �<br />

�<br />

�<br />

�<br />

�<br />

�<br />

��<br />

� � � � � � �<br />

� �<br />

� �� � � � � �<br />

�<br />

Technically speaking <strong>the</strong> shorthand glyphs are<br />

realized as<br />

• an array <strong>of</strong> G (0) –G (2) continuous METAFONTpaths<br />

and<br />

• an array <strong>of</strong> discontinous marker paths.<br />

Slanting (default 22.5 ◦ ) and tilting 3 <strong>of</strong> characters<br />

is done at <strong>the</strong> time <strong>of</strong> <strong>the</strong>ir shipping.<br />

3 G (2) continuity is invariant under affine transformations.<br />

θ<br />

z1<br />

2 Phonetic writing<br />

Gregg shorthand uses its own orthography, which<br />

must be acquired by <strong>the</strong> shorthand learner and in<br />

a system such as ours, <strong>the</strong> pronunciation <strong>of</strong> a word<br />

has to be known. We use <strong>the</strong> Unisyn multi-accent<br />

lexicon 4 with about 118,000 entries[4] comprising<br />

British and American spelling variants. <strong>The</strong> fields<br />

<strong>of</strong> lexicon entries are: spelling, optional identifier,<br />

part-<strong>of</strong>-speech, pronunciation, enriched orthography,<br />

and frequency. Examples are:<br />

owed;;VBD/VBN; { * ouw }> d >;{owe}>ed>;2588<br />

live;1;VB/VBP; { l * i v } ;{live};72417<br />

live;2;JJ; { l * ae v } ;{live};72417}<br />

Homonyma cases such as “live” above, in which<br />

<strong>the</strong> pronunciation helps to identify word meaning<br />

are much more rarer than <strong>the</strong> cases in which <strong>the</strong><br />

use <strong>of</strong> pronunciation yields homophones resulting in<br />

shorthand homographs. Consider <strong>the</strong> very frequent<br />

right, rite, wright, write: { r * ai t } with short-<br />

hand glyph (r)+[ai](t)� or <strong>the</strong> heterophones<br />

read;1;VB/NN/NNP/VBP; { r * ii d };{read};94567<br />

read;2;VBN/VBD; { r * e d };{read};94567<br />

both written as � (r)+[e|i](d). Thus phonetic<br />

writing may speed up <strong>the</strong> shorthand recording, but<br />

<strong>the</strong> newly-created homographs complicate <strong>the</strong> deciphering<br />

<strong>of</strong> written notes.<br />

<strong>The</strong> pronunciation <strong>of</strong> a word has to be transformed<br />

to <strong>the</strong> above defined metaform, e.g.:<br />

needed: { n * ii d }.> I7 d >⇒ (n)-[i](dd)<br />

needing: { n * ii d }.> i ng >⇒ (n)-[i](,d,ing)<br />

This major task consists <strong>of</strong> a number <strong>of</strong> transformations<br />

done in this order:<br />

• Elimination <strong>of</strong> minor (redundant) vowels such<br />

as <strong>the</strong> schwa @r in<br />

fewer: { f y * iu }> @r r >.<br />

<strong>The</strong>re is a general problem with <strong>the</strong> schwas (@).<br />

Which are to be ruled out and which <strong>of</strong> <strong>the</strong>m are<br />

to be backtransformed 5 to <strong>the</strong> spelling equivalent?<br />

Consider<br />

data: { d * ee . t == @ } ⇒ (d)-[a](t]-[a]<br />

upon: { @ . p * o n } ⇒ (u)(p)(n)<br />

Both @ are backtransformed, but stressed o is<br />

cancelled.<br />

• Finding <strong>of</strong> prefixes (un-, re-, . ..), suffixes (-ing,<br />

-ly, . ..), handling <strong>of</strong> semiconsonants h, w.<br />

• Creation <strong>of</strong> ligatures such as dd, paren<strong>the</strong>sizing<br />

consonants and bracketing circular vowels.<br />

• Finding <strong>the</strong> proper orientation <strong>of</strong> loops.<br />

<strong>The</strong>se tranformations are done through a series <strong>of</strong><br />

cascaded context dependent rewrite rules, realized<br />

4 which itself is a part <strong>of</strong> a text-to-speech system<br />

5 by a lex program<br />

460 <strong>TUG</strong>boat, <strong>Volume</strong> <strong>29</strong> (2008), No. 3 — Proceedings <strong>of</strong> <strong>the</strong> 2008 Annual Meeting

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!