* tmac/hyphenex.sh: Slight improvements.
[s-roff.git] / tmac / hyphenex.sh
blobe97bb99e63e260e68f05ac3d6a1fa4e52dccb1ac
1 #! /bin/sh
4 # hyphenex.sh
6 # This small filter converts a hyphenation exception log article for
7 # TUGBoat to a real \hyphenation block.
9 # Written by Werner Lemberg <wl@gnu.org>.
11 # Version 1.2 (2003/04/15)
13 # Public domain.
16 # Usage:
18 # sh hyphenex.sh < tugboat-article > hyphenation-exceptions
20 sed -n '
21 1 i\
22 % Hyphenation exceptions for US English, based on the hyphenation exception\
23 % log article in TUGBoat.\
25 % This is an automatically generated file. Do not edit!\
27 % Please contact Barbara Beeton <bnb@ams.org> for corrections and omissions.\
29 \\hyphenation{
30 $ i\
33 % EOF
34 /^\\tabalign/ {
35 s/{}//g
36 s/[ ][ ]*/ /g
37 s/ *\\[^ ][^ ]*$//
38 s/\\tabalign *[^ ][^ ]*.*& *\(.*\)$/ \1/p
41 /^\\[123456]/! d
42 s/\\4/\\1/
43 s/\\5/\\2/
44 s/\\6/\\3/
45 s/[ ][ ]*/ /g
46 s/^/ /
47 s/\\1 [^ ][^ ]* {\(.*\)}$/\1/
48 s/\\2 [^ ][^ ]* {\(.*\) \(.*\),\(.*\),\(.*\)}$/\1\n \1\2\n \1\3\n \1\4/
49 s/\\2 [^ ][^ ]* {\(.*\) \(.*\),\(.*\)}$/\1\n \1\2\n \1\3/
50 s/\\2 [^ ][^ ]* {\(.*\) \(.*\)}$/\1\n \1\2/
51 s/\\3 [^ ][^ ]* {\(.*\) \(.*\) \(.*\)}$/\1\2\n \1\3/
52 s/\\1 [^ ][^ ]* {\(.*\)} .*$/\1/
53 s/\\2 [^ ][^ ]* {\(.*\) \(.*\),\(.*\),\(.*\)} .*$/\1\n \1\2\n \1\3\n \1\4/
54 s/\\2 [^ ][^ ]* {\(.*\) \(.*\),\(.*\)} .*$/\1\n \1\2\n \1\3/
55 s/\\2 [^ ][^ ]* {\(.*\) \(.*\)} .*$/\1\n \1\2/
56 s/\\3 [^ ][^ ]* {\(.*\) \(.*\) \(.*\)} .*$/\1\2\n \1\3/
57 s/\\1 {.*} {\(.*\)}$/\1/
58 s/\\2 {.*} {\(.*\) \(.*\),\(.*\),\(.*\)}$/\1\n \1\2\n \1\3\n \1\4/
59 s/\\2 {.*} {\(.*\) \(.*\),\(.*\)}$/\1\n \1\2\n \1\3/
60 s/\\2 {.*} {\(.*\) \(.*\)}$/\1\n \1\2/
61 s/\\3 {.*} {\(.*\) \(.*\) \(.*\)}$/\1\2\n \1\3/
62 s/\\1 {.*} {\(.*\)} .*$/\1/
63 s/\\2 {.*} {\(.*\) \(.*\),\(.*\),\(.*\)} .*$/\1\n \1\2\n \1\3\n \1\4/
64 s/\\2 {.*} {\(.*\) \(.*\),\(.*\)} .*$/\1\n \1\2\n \1\3/
65 s/\\2 {.*} {\(.*\) \(.*\)} .*$/\1\n \1\2/
66 s/\\3 {.*} {\(.*\) \(.*\) \(.*\)} .*$/\1\2\n \1\3/
67 s/\\1 [^ ][^ ]* \([^ ][^ ]*\)$/\1/
68 s/\\2 [^ ][^ ]* \([^ ][^ ]*\) \([^ ][^ ]*\),\([^ ][^ ]*\),\([^ ][^ ]*\)$/\1\n \1\2\n \1\3\n \1\4/
69 s/\\2 [^ ][^ ]* \([^ ][^ ]*\) \([^ ][^ ]*\),\([^ ][^ ]*\)$/\1\n \1\2\n \1\3/
70 s/\\2 [^ ][^ ]* \([^ ][^ ]*\) \([^ ][^ ]*\)$/\1\n \1\2/
71 s/\\3 [^ ][^ ]* \([^ ][^ ]*\) \([^ ][^ ]*\) \([^ ][^ ]*\)$/\1\2\n \1\3/
72 s/\\1 [^ ][^ ]* \([^ ][^ ]*\) .*$/\1/
73 s/\\2 [^ ][^ ]* \([^ ][^ ]*\) \([^ ][^ ]*\),\([^ ][^ ]*\),\([^ ][^ ]*\) .*$/\1\n \1\2\n \1\3\n \1\4/
74 s/\\2 [^ ][^ ]* \([^ ][^ ]*\) \([^ ][^ ]*\),\([^ ][^ ]*\) .*$/\1\n \1\2\n \1\3/
75 s/\\2 [^ ][^ ]* \([^ ][^ ]*\) \([^ ][^ ]*\) .*$/\1\n \1\2/
76 s/\\3 [^ ][^ ]* \([^ ][^ ]*\) \([^ ][^ ]*\) \([^ ][^ ]*\) .*$/\1\2\n \1\3/
77 s/\*//
78 s/\\llap *{\(.*\)}/\1/
79 s/\\[^ ]* //
80 s/\\[^ ][^ ]*$//
81 s/{.*}//
85 # EOF