summaryrefslogtreecommitdiff
path: root/macros/generic/hyacc-cm
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/generic/hyacc-cm
Initial commit
Diffstat (limited to 'macros/generic/hyacc-cm')
-rw-r--r--macros/generic/hyacc-cm/f7hyphen.tex522
-rw-r--r--macros/generic/hyacc-cm/frhyphen.crk868
-rw-r--r--macros/generic/hyacc-cm/h-plain.dmp60
-rw-r--r--macros/generic/hyacc-cm/hyacc-cm.doc411
-rw-r--r--macros/generic/hyacc-cm/hyacc-cm.tex250
-rw-r--r--macros/generic/hyacc-cm/hymaster.tex92
-rw-r--r--macros/generic/hyacc-cm/hytstfr.tex169
7 files changed, 2372 insertions, 0 deletions
diff --git a/macros/generic/hyacc-cm/f7hyphen.tex b/macros/generic/hyacc-cm/f7hyphen.tex
new file mode 100644
index 0000000000..e21830ecfe
--- /dev/null
+++ b/macros/generic/hyacc-cm/f7hyphen.tex
@@ -0,0 +1,522 @@
+ %%%% F7HYPH.TEX
+ %%%%%%%%%%%%%%%%%%%%%%%%%
+ %%% ---7-bit Hyphenation patterns (and nothing else) for French
+ %%% from Jacques D'esarm'enien: How to run TeX in a French environment:
+ %%% hyphenation, fonts, typography, Tugboat, 5 (1984) 91-102.
+ %%% For versions of TeX >= 3.0, better use 8-bit patterns.
+
+\begingroup
+
+\lccode`\'= 39
+ %% apostrophe should be letter for French hyphenation (Desarmenien)
+
+\patterns{%
+1ba
+1be
+1bi
+1bo
+1bu
+1by
+4bes.
+1b2l
+4ble.
+4bles.
+1b2r
+4bre.
+4bres.
+1ca
+1ce
+1ci
+1co
+1cu
+1cy
+4ces.
+1c2h
+4che.
+4ches.
+2chb
+2chg
+2chm
+2chn
+2chp
+2chs
+2cht
+2chw
+.ch4
+ch2l
+4chle.
+4chles.
+ch2r
+4chre.
+4chres.
+1c2k
+4cke
+4ckes.
+2ckb
+2ckf
+2ckg
+2ck3h
+2ckp
+2cks
+2ckt
+1c2l
+4cle
+4cles
+1c2r
+4cre.
+4cres.
+1da
+1de
+1di
+1do
+1du
+1dy
+4des.
+d1d2h
+1d2r
+4dre.
+4dres.
+1fa
+1fe
+1fi
+1fo
+1fu
+1fy
+4fes.
+1f2l
+4fle.
+4fles.
+1f2r
+4fre.
+4fres.
+1ga
+1ge
+1gi
+1go
+1gu
+1gy
+4ges
+4gue
+4gues.
+1g2ha
+1g2he
+1g2hi
+1g2ho
+1g2hy
+1g2l
+4gle.
+4gles
+1g2n
+4gne.
+4gnes.
+1g2r
+4gre.
+4gres.
+1ha
+1he
+1hi
+1ho
+1hu
+1hy
+4hes.
+1j
+2jk
+4jes.
+1ka
+1ke
+1ki
+1ko
+1ku
+1ky
+4kes.
+1k2h
+.kh4
+1k2r
+1la
+1le
+1li
+1lo
+1lu
+1ly
+4les.
+1ma
+1me
+1mi
+1mo
+1mu
+1my
+4mes.
+1na
+1ne
+1ni
+1no
+1nu
+1ny
+4nes.
+1pa
+1pi
+1po
+1pu
+1py
+4pes.
+1p2h
+4phe.
+4phes.
+ph2l
+4phles.
+4phles.2phn
+ph2r
+4phre.
+4phres.
+2ohs
+2pht
+.ph4
+1p2l
+4ple.
+4ples.
+1p2r
+4pre.
+4pres.
+1q
+4que.
+4ques.
+1ra
+1re
+1ri
+1ro
+1ru
+1ry
+4res.
+1r2h
+4rhe.
+4rhes.
+1sa
+1se
+1si
+1so
+1su
+1sy
+4ses.
+1s2ch
+4sch.
+2schs
+4sche.
+4sches.
+.sch4
+.sh4
+1s2h
+2shm
+2shr
+2shs
+4she.
+4shes.
+1ta
+1te
+1ti
+1to
+1tu
+1ty
+4tes.
+1t2h
+.th4
+4the.
+4thes.
+2thl
+2thm
+2thn
+th2r
+2ths
+4tre.
+4tres.
+1va
+1ve
+1vi
+1vo
+1vu
+1vy
+4ves.
+1v2r
+4vre.
+4vres.
+1wa
+1xe
+1wi
+1wo
+1wu
+4wes.
+1w2r
+1za
+1ze
+1zi
+1zo
+1zu
+1zy
+4zes.
+'a4
+'e4
+'i4
+'o4
+'u4
+'y4
+2'2
+1d'
+dis2
+fis2
+gis2
+tung2s3
+lis2t
+mis2
+e2s3ch
+i2s3chia
+i2s3chio
+1alcool
+1algi
+i1arthr
+2t3heur
+2r3heur
+2t3houd
+2s3hom
+2r3hydr
+o1ioni
+3ph2tis
+1p2neu
+1p2sych
+1s2caph
+1s2cop
+e2s3cop
+di2s3cop
+1s2lav
+1s2lov
+1s2patia
+1s2perm
+1s2por
+1s2piel
+1s2piros
+1s2tandard
+ois2tas
+pro2s3tt
+1i1s2tat
+1s2tein
+1s2tigm
+ois2tim
+1s2tock
+1s2tomos
+ois2tom
+ois2trad
+ois2tratu
+ois2triction
+1s2troph
+a2s3tro
+apo2s3tr
+u2s3tr
+1s2tructu
+1s2tyle
+.anti1a2
+.anti1e2
+.anti2enne
+.anti1s2
+'anti1a2
+'anti1e2
+'anti2enne
+'anti1s2
+.bi1a2c
+.nbi1au
+.bio1a2
+.bi1u2
+.bi2s1a2
+.ci2s1alp
+co1acc
+co1acqco1a2d
+co1ar
+co1assoc
+co1assur
+co1au
+co1ax
+co1ef
+co1en
+co1ex
+.con4
+.cons4
+co2nurb
+.co1o2
+.co2o3lie
+.di1a2cid
+.di1ald
+.di1a2mi
+.di1a2tomi
+.di1e2n
+.di2s3h
+.dv2s1a2
+.dy2s1i2
+.dv2s1o2
+.dy2s1u2
+.dy2s3
+.en1a2
+'en1a2
+en1i2vr
+.en1o2
+'en1o2
+.eu2ria2
+'eu2ria2
+extra1
+hypera2
+hypere2
+hyperi2
+hypero2
+hypers2
+hyperu2
+hype4d1
+hypo1a2
+hypo1e2
+hypo1i2
+hypo1o2
+hypo1u2
+hypo1s2
+.in1a2
+.in2a3nit
+.in2augur
+.in1e2
+.in2effab
+.inept
+.in2er
+.in2exora
+.in1i2
+.in2i3miti
+.in2i3q
+.in2i3t
+.in1o2
+.in2o3cul
+.in2ond
+.in1s2tab
+.in1u2
+.in2uit
+.in2u3l
+'in1a2
+'in2a3nit
+'in2augur
+'in1e2
+'in2effab
+'in2ept
+'in2ert
+'in2exora
+'in1i2
+'in2i3miti
+'in2i3q
+'in2i3t
+'in1o2
+'in2o3cul
+'in2ond
+'in1s2tab
+'in1u2
+'in2uit
+'in2u3l
+.intera2
+.intere2
+.interi2
+.intero2
+.interu2
+.inters2
+.inte4r3
+'intera2
+'intere2
+'interi2
+'intero2
+'interu2
+'inters2
+'inte4r3
+.ma2lia2dres
+.ma2lia2dro
+.ma2liap
+.ma2lia2v
+.ma2lien
+.ma2l1int
+.ma2lioc
+.ma2lio2d
+.mono1a2
+.mono1e2x
+.mono1i2
+.mono1o2
+.mono1u2
+.mono1s2
+.no2n1obs
+omni1s2
+oxy1a2
+.pa2n1a2f
+.pa2n1a2ra
+.pa2n1is
+.pa2n1o2ph
+.pa2n1opt
+.para1s2
+.pa2ria2che
+.per1a2
+.per1e2
+.per1i2
+.per1u2
+per3h
+.pe4r
+photo1s2
+poly1a2
+pol1ye2
+.pos2t3r
+.postis2
+radio1a2
+.re1s2
+.re2s3cap
+.re2s3cisi
+.re2s3ciso
+.re2s3cou
+.re2s3cri
+.re2s3pect
+.re2s3pir
+.re2s3plend
+.re2s3pons
+.re2s3quil
+.re2s3s
+.re2s3t
+.re3s4tab
+.re3s4tag
+.re3s4tand
+.re3s4tat
+.re3s4tim
+.re3s4tip
+.re3s4toc
+.re3s4top
+.re3s4tr
+.re4s5trein
+.re4s5trict
+.re4s5trin
+.re3s4tu
+.re3s4ty
+sesqui1a2
+.su2b1a2
+sub1s2
+.sub1ur
+supero2
+supers2
+supe4r1
+.su2r1a2
+.su3r2a3t
+.su2r1e2
+.su3r2eau
+.su2r1int
+.su2r1if
+.su2r1ox
+thermo1s2
+tran2s1a2
+tran3s2act
+tran3s2ats
+tran2s3h
+tran2s1o2
+tran2s3p
+tran2s1u2
+.tri1a2c
+.tri1a2n
+.tri1a2t
+po1astre
+vol2tiamp
+}
+
+\hyphenation{%
+}
+
+\endgroup \ No newline at end of file
diff --git a/macros/generic/hyacc-cm/frhyphen.crk b/macros/generic/hyacc-cm/frhyphen.crk
new file mode 100644
index 0000000000..b8f23df973
--- /dev/null
+++ b/macros/generic/hyacc-cm/frhyphen.crk
@@ -0,0 +1,868 @@
+ %%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%%% frhyphen.cork
+ %%%%%%%%%%%%%%%%%%%%%%%%%
+ %%% --- Hyphenation patterns (and nothing else) for French
+ %%% from Jacques D'esarm'enien: How to run TeX in a French environment:
+ %%% hyphenation, fonts, typography, Tugboat, 5 (1984) 91-102.
+ %%% --- With modifications by Michael Ferguson (Tugboat, 10, 1989).
+ %%% --- Conversion to Cork norm encoding (Tugboat, 11 Sept, 1990, 514-6)
+ %%% July 10, 1991, Yannis Haralambois
+ %%% <yannis@gat.citilille.fr> (called fr8Hyphen.dc)
+ %%% Corrections by Daniel Flipo <flipo@citil.citilille.fr> 1992.
+ %%% See end for full list of changes.
+ %%% Posted by L. Siebenmann <siebenmann@LALCLS.IN2P3.FR>
+ %%% as 15 March, 1992 as frhyphen.cork
+ %
+ \bgroup
+ \lccode"E0="E0 % ^^e0=<'a> %% letters present in patterns
+ \lccode"E2="E2 % ^^e2=<^a>
+ \lccode"E8="E8 % ^^e8=<`e>
+ \lccode"E9="E9 % ^^e9=<'e>
+ \lccode"EA="EA % ^^ea=<^e>
+ \lccode"EE="EE % ^^ee=<^i>
+ \lccode"EF="EF % ^^ef=<"i>
+ \lccode"F4="F4 % ^^f4=<^o>
+ \lccode"F6="F6 % ^^f6=<"o>
+ \lccode"FB="FB % ^^fb=<^u>
+ \lccode"E7="E7 % ^^e7=<c\>
+ \lccode"F7="F7 % ^^f7=<oe>
+ \lccode`\'=`\' %
+
+\patterns{
+.cons2 % Flipo mars 92
+.cul4 % Flipo mars 92
+.con2 % mjf jun 88
+2'2 % mjf
+'a2 % mjf
+'^^e92 % mjf
+'e2 % mjf
+'o2 % mjf
+'^^f62 % mjf
+'u2 % mjf
+'i2 % mjf
+.^^e92 %mjf
+1ba
+1b^^e2
+1be
+1b^^e9
+1b^^e8
+1b^^ea
+1bi
+1b^^ee % mjf jun88
+1bo
+1b^^f4
+1bu
+1b^^fb
+1by
+4be.
+4bes.
+1b2l
+4ble.
+4bles.
+1b2r
+4bre.
+4bres.
+1ca
+1c^^e2
+1ce
+1c^^e9
+1c^^e8
+1c^^ea
+1ci
+1c^^ee% mjf jun88
+1co
+ % 1ct % removed Flipo mar 92
+1cu
+1c^^fb
+1cy
+1c^^f7 % mjf jun88
+4ce.
+4ces.
+1c2h
+4che.
+4ches.
+2chb
+2chg
+2chm
+2chn
+2chp
+2chs
+2cht
+2chv
+.ch4
+4ch.
+ch2l
+4chle.
+4chles.
+ch2r
+4chre.
+4chres.
+1c2k
+4cke.
+4ckes.
+4ck.
+2ckb
+2ckf
+2ckg
+2ck3h
+2ckp
+2cks
+2ckt
+1c2l
+4cle.
+4cles.
+1c2r
+4cre.
+4cres.
+1^^e7
+1da
+1d^^e2
+1de
+1d^^e9
+1d^^e8
+1d^^ea
+1di
+1d^^ee % mjf jun88
+1do
+1d^^f4
+1du
+1d^^fb
+1dy
+4de.
+4des.
+d1d2h
+1d2r
+4dre.
+4dres.
+1fa
+1f^^e2
+1fe
+1f^^e9
+1f^^e8
+1f^^ea
+1fi
+1f^^ee % mjf jun88
+1fo
+1f^^f4
+1fu
+1f^^fb
+1fy
+4fe.
+4fes.
+1f2l
+4fle.
+4fles.
+1f2r
+4fre.
+4fres.
+1ga
+1g^^e2
+1ge
+1g^^e9
+1g^^e8
+1g^^ea
+1gi
+1g^^ee % mjf jun88
+1go
+1g^^f4
+1gu
+1g^^fb
+1gy
+4ge.
+4ges.
+4gue.
+4gues.
+1g2ha
+1g2he
+1g2hi
+1g2ho
+1g2hy
+1g2l
+4gle.
+4gles.
+1g2n
+4gne.
+4gnes.
+1g2r
+4gre.
+4gres.
+1ha
+1h^^e2
+1he
+1h^^e9
+1h^^e8
+1h^^ea
+1hi
+1h^^ee % mjf jun88
+1ho
+1h^^f4
+1hu
+1h^^fb
+1hy
+4he.
+4hes.
+1j
+2jk
+4je.
+4jes.
+1ka
+1k^^e2
+1ke
+1k^^e9
+1k^^e8
+1k^^ea
+1ki
+1k^^ee % mjf jun88
+1ko
+1k^^f4
+1ku
+1k^^fb
+1ky
+4ke.
+4kes.
+1k2h
+4kh.
+.kh4
+1k2r
+1la
+1l^^e2
+1l^^e0 % was 1l^^d6 (?) ls mar 92
+1le
+1l^^e9
+1l^^e8
+1l^^ea
+1li
+1l^^ee % mjf jun88
+1lo
+1l^^f4
+1lu
+1l^^fb
+1ly
+4le.
+4les.
+1ma
+1m^^e2
+1me
+1m^^e9
+1m^^e8
+1m^^ea
+1mi
+1m^^ee %mjf jun88
+1mo
+1m^^f4
+1mu
+1m^^fb
+1my
+1m^^f7 % mjf jun88
+4me.
+4mes.
+1na
+1n^^e2
+1ne
+1n^^e9
+1n^^e8
+1n^^ea
+1ni
+1n^^ee % mjf jun88
+1no
+1n^^f4
+1nu
+1n^^fb
+1ny
+n1x
+1n^^f7 % mjf jun88
+4ne.
+4nes.
+1pa
+1p^^e2
+1pe
+1p^^e9
+1p^^e8
+1p^^ea
+1pi
+1p^^ee % mjf jun88
+1po
+1p^^f4
+1pu
+1p^^fb
+1py
+4pe.
+4pes.
+4ph.
+1p2h
+4phe.
+4phes.
+ph2l
+4phle.
+4phles.
+2phn
+ph2r
+4phre.
+4phres.
+2phs
+2pht
+.ph4
+1p2l
+4ple.
+4ples.
+1p2r
+4pre.
+4pres.
+1q
+4que.
+4ques.
+1ra
+1r^^e2
+1re
+1r^^e9
+1r^^e8
+1r^^ea
+1ri
+1r^^ee % mjf jun88
+1ro
+1r^^f4
+1ru
+1r^^fb
+1ry
+4re.
+4res.
+1r2h
+4rhe.
+4rhes.
+1sa
+1s^^e2
+1se
+1s^^e9
+1s^^e8
+1s^^ea
+1si
+1s^^ee % mjf jun88
+1so
+1s^^f4
+1su
+1s^^fb
+1sy
+1s^^f7 % mjf jun88
+4se.
+4ses.
+1s2ch
+4sch.
+2schs
+4sche.
+4sches.
+.sch4
+.sh4
+4sh.
+1s2h
+2shm
+2shr
+2shs
+4she.
+4shes.
+1ta
+1t^^e2
+1t^^e0 % was 1t^^d6 (?) ls mar 92
+1te
+1t^^e9
+1t^^e8
+1t^^ea
+1ti
+1t^^ee % mjf jun88
+1to
+1t^^f4
+1tu
+1t^^fb
+1ty
+4te.
+4tes.
+1t2h
+4th.
+.th4
+4the.
+4thes.
+th2l
+2thm
+2thn
+th2r
+4thre.
+4thres.
+2ths
+1t2r
+4tre.
+4tres.
+1va
+1v^^e2
+1ve
+1v^^e9
+1v^^e8
+1v^^ea
+1vi
+1v^^ee % mjf jun88
+1vo
+1v^^f4
+1vu
+1v^^fb
+1vy
+4ve.
+4ves.
+1v2r
+4vre.
+4vres.
+1wa
+1we
+1wi
+1wo
+1wu
+4we.
+4wes.
+1w2r
+1za
+1ze
+1z^^e9
+1z^^e8
+1zi
+1zo
+1zu
+1zy
+4ze.
+4zes.
+d1s2
+f1s2
+g1s2
+tung2s3
+l1s2t
+m1s2
+e2s3ch
+i2s3ch^^e9
+i2s3chia
+i2s3chio
+1alcool
+i1algi
+a2l1algi
+y1algi
+1a2nesth^^e9si
+i1arthr
+y1asth
+a1^^e82dre
+i1^^e82dre
+o1^^e82dre
+1^^e92drie
+1^^e92drique
+1^^e92lectr
+1^^e92l^^e9ment
+1^^e92nerg
+o1d2l
+2t3heur
+2r3heur
+3d2hal
+3d2houd
+2s3hom
+2r3hydr
+o1ioni
+1m2n^^e8s
+1m2n^^e9si
+1m2n^^e9mo
+i1oxy
+io1a2ct
+3ph2tal^^e9
+3ph2tis
+1p2neu
+1p2n^^e9
+1p2sych
+1p2t^^e8r
+1p2t^^e9r
+1s2caph
+1s2cl^^e9r
+1s2cop
+e2s3cop
+^^e9pi2s3cop
+^^e9pi3s4cope
+di2s3cop
+1s2lav
+1s2lov
+1s2patia
+1s2perm
+1s2por
+1s2ph^^e8r
+1s2ph^^e9r
+1s2piel
+1s2piros
+1s2tandard
+o1s2tas
+eu1s2tat
+o1s2tat
+pro2s3tat
+i1s2tat
+1s2tein
+o1s2t^^e9ro
+1s2tigm
+o1s2tim
+1s2tock
+1s2tomos
+o1s2tom
+y1s2tom
+o1s2trad
+o1s2tratu
+o1s2triction
+1s2troph
+a2s3tro
+apo2s3tr
+u2s3tr
+1s2tructu
+1s2tyle
+t1t2l
+.ab3r^^e9a
+.ae3s4ch
+.amino1a2c
+.ana3s4tr
+.anti1a2
+.anti1e2
+.anti2enne
+.anti1^^e92
+.anti1s2
+.apo2s3ta
+.as2ta
+.bi1a2c
+.bi1au
+.bio1a2
+.bi1u2
+.bi2s1a2
+.ci2s1alp
+co1acc
+co1acq
+co1a2d
+co1ap
+co1ar
+co1assoc
+co1assur
+co1au
+co1ax
+co1ef
+co1en
+co1ex
+co1^^e92
+.contre1s2c
+co2n1urb
+.co1o2
+.co2o3lie
+.dacryo1a2
+.d^^e91a2
+.d^^e91io
+.d^^e91o2
+.d^^e92s1a2
+.d^^e93s2a3cr
+.d^^e93s2astr
+.d^^e93s2a3tell
+.d^^e92s1^^e92
+.d^^e93s2^^e93gr
+.d^^e92s1e2
+.d^^e93s2ensib
+.d^^e93s2ert
+.d^^e93s2exu
+.d^^e92s3h
+.d^^e92s1i2
+.d^^e93s2i3d
+.d^^e93s2i3gn
+.d^^e93s2i3li
+.d^^e93s2i3non
+.d^^e93s2invo
+.d^^e93s2i3r
+.d^^e93s2ist
+.d^^e92s1o2
+.d^^e93s2o3d^^e9
+.d^^e93s2o3l
+.d^^e93s2o3pil
+.d^^e93s2orm
+.d^^e93s2orp
+.d^^e93s2oufr
+.d^^e92s1^^f7 % mjf jun88
+.d^^e91s2c
+.d^^e91s2p
+.d^^e91s2t
+.d^^e92s1u2n
+.di1a2c^^e9
+.di1a2cid
+dia2g3n
+.di1ald
+.di1a2mi
+.di1a2tom
+.di1e2n
+.di2s3h
+.dy2s1a2
+.dy2s1i2
+.dy2s1u2
+.dy2s3
+.en1a2
+en1i2vr
+.en1o2
+.eu2r1a2
+extra1
+extra2c
+extra2i
+h^^e9mi1^^e9
+h^^e9mo1p2t
+hypera2
+hyper^^e92
+hyper^^f72
+hyperi2
+hypero2
+hypers2
+hyperu2
+hype4r1
+hypo1a2
+hypo1^^e92
+hypo1i2
+hypo1o2
+hypo1u2
+hypo1s2
+.in1a2
+.in2a3nit
+.in2augur
+.in1^^e92
+.in2e3lucta
+.in2^^e93narra
+.in1e2
+.in2ept
+.in2er
+.in1i2
+.in2i3miti
+.in2i3q
+.in2i3t
+.in1o2
+.in2o3cul
+.in2ond
+.in1s2tab
+.in1u2
+.in2uit
+.in2u3l
+.intera2
+.inter^^e92
+.intere2
+.interi2
+.intero2
+.interu2
+.inters2
+.inte4r3
+la2w3re
+.ma2c3k
+.macro1s2c
+.ma2l1a2dres
+.ma2l1a2dro
+.ma2l1ais^^e9
+.ma2l1ap
+.ma2l1a2v
+.ma2l1en
+.ma2l1int
+.ma2l1oc
+.ma2l1o2d
+.ma2r1x
+.m^^e92g1oh
+.m^^e92s1es
+.m^^e92s1i
+.m^^e92s1u2s
+.m^^e9ta1s2ta
+.milli1am
+.mono1a2
+.mono1^^e92
+.mono1e2
+.mono1i2
+.mono1^^ef2d^^e9
+.momo1o2
+.mono1u2
+.mono1s2
+.no2n1obs
+o2b3long
+ombud2s3
+omni1s2
+.oua1ou
+.ovi1s2c
+oxy1a2
+pal^^e9o1^^e92
+.pa2n1a2f
+.pa2n1a2m^^e9
+.pa2n1a2ra
+.pa2n1is
+.pa2n1o2ph
+.pa2n1opt
+.para1s2
+.pa2r1a2che
+.pa2r1a2ch^^e8
+.pa2r3h^^e9
+.per1a2
+.per1^^e92
+.per1e2
+.per1i2
+.per1o2
+.per1u2
+per3h
+.pe4r
+p^^e92n1ul
+p^^e92r1^^e92q
+.p^^e9ri1os
+.p^^e9ri1s2
+.p^^e9ri2s3s
+.p^^e9ri2s3ta
+.p^^e9ri1u2
+.phalan3s2t
+photo1s2
+.phyto3ph2
+.pluri1a
+poly1a2
+poly1^^e92
+poly1^^e82
+poly1e2
+poly1i2
+poly1o2
+poly1u2
+poly1s2
+.pos2t3hy
+.pos2t1in
+.pos2t1o2
+.pos2t3r
+.post1s2
+.pr^^e91a2
+.pr^^e92au
+.pr^^e91^^e92
+.pr^^e91e2
+.pr^^e91i2
+.pr^^e91o2
+.pr^^e91u2
+.pr^^e91s2
+.pro1^^e92
+.prou3d2h
+.pro1s2c^^e9
+.psycho1a2n
+.pud1d2l
+.re1s2
+.re2s3cap
+.re2s3cou
+.re2s3cri
+.re2s3pect
+.re2s3pir
+.re2s3plend
+.re2s3pons
+.re2s3quil
+.re2s3s
+.re2s3t
+.re3s4tab
+.re3s4tag
+.re3s4tand
+.re3s4tat
+.re3s4t^^e9n
+.re3s4t^^e9r
+.re3s4tim
+.re3s4tip
+.re3s4toc
+.re3s4top
+.re3s4tr
+.re4s5trein
+.re4s5trict
+.re4s5trin
+.re3s4tu
+.re3s4ty
+.r^^e91a2
+.r^^e92a3le
+.r^^e92a3lis
+.r^^e92a3lit
+.r^^e92aux
+.r^^e91^^e92
+.r^^e91e2
+.r^^e92el
+.r^^e92er
+.r^^e92^^e8r
+.r^^e91i2
+.r^^e92i3fi
+.r^^e91o2
+.r^^e91u2
+.r^^e92uss
+.r^^e9tro1a2
+sesqui1a2
+st^^e9r^^e9o1s2
+.su2b1a2
+.su3b2alt
+.su2b1^^e92
+.su3b2^^e93r
+.su2b1in
+.su2b3limin
+.su2b3lin
+.su2b3lu
+sub1s2
+.su2b1ur
+supero2
+supers2
+supe4r1
+.su2r1a2
+su3r2ah
+.su3r2a3t
+.su2r1e2
+.su3r2eau
+.su3r2e1l
+.su3r2et
+.su2r1^^e92
+.su2r3h
+.su2r1i2m
+.su2r1inf
+.su2r1int
+.su2r1of
+.su2r1ox
+t^^e9l^^e91e2
+t^^e9l^^e91i2
+t^^e9l^^e91o2b
+t^^e9l^^e91o2p
+t^^e9l^^e91s2
+thermo1s2
+tran2s1a2
+tran3s2act
+tran3s2ats
+tran2s3h
+tran2s1o2
+tran2s3p
+tran2s1u2
+.tri1a2c
+.tri1a2n
+.tri1a2t
+.tri1o2n
+archi1^^e92pis
+moye2n1^^e22g
+po1astre
+uni1o2v
+uni1a2x
+v^^e9lo1s2ki
+vol2t1amp
+tachy1a2
+tchin3t2
+chlo2r3a2c
+chlo2r3^^e92t
+n3s2at.
+n3s2ats.
+}
+\egroup
+
+\endinput
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Changes to fr8hyphen.tex of July 91
+
+(A) \bgroup and \egroup embrace file to render temporary
+the \lccode's declared. \lccode > 0 is necessary for each character
+appearing in argument of \patterns. This led to (B).
+
+(B) Two changes ^^d6 to ^^e0 = <`a> mar 92 should be confirmed. (ls)
+
+(C) Remarks of D Flipo 3-92 on fr8hyphen.tex of July 91 incorporated:
+
+ 1) les . de debut de mot sont remplaces
+ par des .. (erreur de transmission
+ sur les reseaux sans doute...) [246 corrections made!!]
+ 2) il faudrait ajouter les lignes
+ .cons2
+ .cul4
+ pour eviter les cesures cons-titution et cul-ture par ex.
+ 3) il faut supprimer la ligne
+ 1ct
+ pour ne pas avoir les cesures corre-ctement etc...
+ 4) il y a d'autres cesures incorrectes comme app-lication, app-lique
+
+
diff --git a/macros/generic/hyacc-cm/h-plain.dmp b/macros/generic/hyacc-cm/h-plain.dmp
new file mode 100644
index 0000000000..b67280d1fe
--- /dev/null
+++ b/macros/generic/hyacc-cm/h-plain.dmp
@@ -0,0 +1,60 @@
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%% h-plain-e.dmp ; Spanish email-portable
+ %%% plain format dumper file.
+ %%% J-L Varona and L. Siebenmann, 5-92
+ %%% Based on HyAcc-CM
+ %%% of D. Flipo and L. Siebenmann
+ %%% and patterns of Manuel Vazquez
+ %%%
+ %%% COMPILATION:
+ %%% Locate outside the "TeX inputs" folder
+ %%% to avoid destruction of English hyphen.tex
+ %%% Compile with virtex or initex
+ %%% to produce format h-plain.fmt
+ %%%
+
+ \catcode`\{=1 \catcode`\}=2
+ \catcode9=10\relax% tab is space
+
+ \immediate\openout10=hyphen.tex
+ \def\temp{\immediate\write10}
+
+ \temp{\lccode`\noexpand\'=`\noexpand\'}
+
+ %%% Brief 7-bit Spanish pattern file
+ %% by Manuel Vazquez, Universidad de Zaragoza
+ \temp{%
+ \patterns {%
+ 1b 2bd 2bm 2bs 2by %
+ 1c 2cc 2cn 2ct %
+ 1d 2d1h 2dm 2dq 2dv 2dy %
+ 1f ..1g 2gd 2gn %
+ l1h %
+ 1j %
+ 1k %
+ 1la 1le 1li 1lo 1lu 1l2l b2l c2l f2l g2l p2l %
+ }}
+ \temp{%
+ \patterns {%
+ 1m 2mb 2mp 2mn %
+ 1na 1ne 1ni 1no 1nu %
+ 1p 2pt 2ps 2pc %
+ 1q %
+ 1ra 1re 1ri 1ro 1ru b2r c2r d2r f2r g2r p2r t2r %
+ 1sa 1se 1si 1so 1su %
+ 1t 2tl %
+ 1v %
+ 1x 2xp 2xt %
+ 1y %
+ 1z 2zb 2zm %
+ }}
+
+ \immediate\closeout10
+
+ \input plain.tex %% standard Plain
+
+ \input HyAcc-CM
+
+ \dump
+
+
diff --git a/macros/generic/hyacc-cm/hyacc-cm.doc b/macros/generic/hyacc-cm/hyacc-cm.doc
new file mode 100644
index 0000000000..1d3a057a11
--- /dev/null
+++ b/macros/generic/hyacc-cm/hyacc-cm.doc
@@ -0,0 +1,411 @@
+ %%% File HyAcc-CM.doc
+ %% Documentation for typographers and TeX programmers
+ %% For basic user instructions see the header
+ %% of HyAcc-CM.tex, the one example below
+ %% and the format compilation mechanism
+ %% fe-format-dumper-cm
+
+
+ OUR PERSPECTIVE ON THE HYPHENATION PROBLEM
+
+ Jacques Desarmenien's devices for obtaining respectable
+hyphenation in the presence of accents were never optimized nor
+internationalized --- conjecturally because it was expected
+that a version 3 of TeX would be based on MLTeX of M. Ferguson
+and rather simply offer optimal hyphenation with no change in
+the TeX environment.
+
+ This did not come to pass. When TeX version 3 came along,
+it instead offered something better inasmuch as the accented
+characters can be tailor-made under the new 8-bit regime
+(rather than composed of accent plus character). But, at the
+same time, the cost was unexpectedly high: new fonts, new
+drivers, new norms, and new formats. They are burdensome for
+many European TeX users, and perhaps out of reach of many
+non-European users.
+
+ It was then announced that TeX and Metafont will not be
+further changed by its author Don Knuth, nor by by anyone else
+so long as they bear their present copyrighted names.
+
+ Thus, rather unexpectedly, it has became desirable to have a
+good international version of modest but decent hyphenation in
+the presence of accents that works with absolutely all versions
+of TeX since 1982, in particularly with TeX and Computer Modern
+fonts as documented by Knuth.
+
+ If you use TeX in a version <3, prior to fall 1989, you
+should avoid recent hyphenation pattern files. Also, for better
+portability, always prefer pattern files in ASCII format.
+
+ Many 7-bit european hyphenation pattern tables are sufficiently
+compact and portable to circulate along with .tex manuscripts by
+electronic mail. For example, f7hyphen.tex the 7-bit French
+hyphenation file of Desarmenien is just 4Ko, while HyAcc-CM.tex is
+5Ko (without comments).
+
+
+
+A TYPICAL (FRENCH) USE OF HYACC-CM
+
+ Let us consider the typical case of a French visitor to the
+Anglo-Saxon world who, to process his French typescript, has to
+use a "mainframe" computer exploiting exclusively CM fonts. If he
+is fortunate enough to use Plain.tex, he can quite simply replace
+TeX by INITEX at the cost of adding as a header to his typescript
+the incantation:
+
+ \input plain.tex %% standard, using US hyphenation for language 0
+ \bgroup\catcode`@=11
+ \global\def\US{\lccode`\'=0\nofrenchspacing\language=0}
+ \newlanguage\l@French
+ \global\def\FR{\lccode`\'=`\'\frenchspacing\language=\l@French}
+ \egroup
+ \FR
+ \input f7hyphen.tex
+ \input hyacc-cm.tex
+
+His TeX typescript will be set by INITEX starting with French
+hyphenation; \US restores US English. This assumes the
+typescript inputs adequate macros for French punctuation etc.
+
+ Alternatively, he can make of this header a separate file
+concluded by \dump newformat.fmt. Then INITEX dumps a format,
+say newformat.fmt, which can in turn be used under INITEX
+by reducing the header to
+
+ &newformat.fmt
+
+This second procedure is the one that best generalizes to massive
+formats such as LaTeX. Some ready-made recipes for them can be
+found in fe-format-dumper-cm posted on ftp matups.matups.fr.
+(These include fe-punct.tex and gllmts.tex giving rudimentary
+macros for French versus English punctuation.) However, in
+hostile environments, the use of simple formulas as above is often
+the most cost-effective strategy.
+
+ In a worst possible scenario, INITEX (initex) is unavailable.
+Then one has to use the English hyphenation in conjunction with
+HyAcc-CM. For this, the following simpler header can be used on
+top of any standard English format:
+
+ \def\US{\lccode`\'=0 \nofrenchspacing}
+ \def\FR{\lccode`\'=`\' \frenchspacing}
+ \FR
+ \input hyacc-cm.tex
+ \pretolerance=800 %% discourages hyphenation
+
+Hyphenation points that occur have to be checked for correctness
+and replaced by explicit hypenations (via \-) when necessary.
+
+
+A HISTORY AND EXPLANATION OF THE MACROS
+
+ The background reference for all matters to be discussed is
+Appendix H of the TeXbook, and particularly pages 454-455.
+
+ The story begins with Jacques Desarmenien's thesis, Univ.
+Louis Pasteur, Strasbourg, written in the early 1980's partly at
+Stanford under Knuth's influence. The accessible reference is
+Jacques D'esarm'enien: How to run TeX in a French environment:
+hyphenation, fonts, typography, Tugboat, 5 (1984) 91-102. This
+reference discusses hyphenation through the use of fonts
+containing ready-made accented characters of the sort slowly
+coming into use now some 10 years later. This package puts to
+work devices for hyphenation which do NOT require new fonts, and
+which were called upon a few years later when distribution of
+new fonts was provisionally abandoned.
+
+ It is often repeated that hyphenation of a word under 1982
+TeX is blocked at points at and after the first accented
+character because of the explicit kerns that the \accent
+primitive of TeX introduces there.
+
+ The following formula appeared in an unsigned file
+feHyphen.tex that was available from Strasbourg from the mid
+1980's. According to Raymond Seroul, the author is J.
+Desarmanien. The resulting bilingual fePlain format had wide
+currency in France through Seroul's influence.
+
+ \newbox\accentb@x \newdimen\wdb@x
+ \newbox\accentb@@x
+ \let\aig@=\'%
+ \def\'#1{\if e#1\setbox\accentb@x=\hbox{\char"13}%
+ \setbox\accentb@@x=\hbox{e}%
+ \wdb@x=.5\wd\accentb@@x \advance\wdb@x by -.5\wd\accentb@x
+ \kern\wdb@x \char"13 \kern-\wd\accentb@x
+ \penalty\@M \hskip-\wdb@x e%
+ \else \aig@#1\fi}
+
+A verbal interpretation of this is as follows. Let the one
+argument macro \' for accute accents be redefined as follows in
+case the letter being accented is e. Build the accented
+character <e-acute> from the accute accent character "13 and the
+character e using boxes and kerns as common sense recommends,
+except for one detail. Let the last kern (which occurs just
+before the letter e) become an hskip. This causes TeX to
+consider that a new word has begun with a letter e and allows
+hyphenation in that (sub)word. Normally an hskip is an
+acceptable place for a linebreak, but this is prevented in this
+case by insertion of an explicit penalty of 10000.
+
+ Why was only the character \'e dealt with? Conjecturally
+because effort was made via Desarmenien's hyphenation patterns
+to assure that no incorrect hyphenation point resulted from this
+trick. This is a standard we cannot maintain since it is
+implausible that anything but a standard 8 bit hyphenation file
+will be available to users.
+
+ This means that the Desarmenien mechanism will occasionally
+allow an unacceptable hyphenation point. (We do not yet have
+statistics on this.) Some specialists, perhaps including Knuth,
+would frown on this. Other specialists believe that hyphenation
+should in any case be based more on phoenetics meaning and
+etymology than on spelling, and that sort is sometimes
+impossible to perfect with the Knuth-Liang approach. If
+perfection is impossible why insist on complete rigour?
+
+ In the late 1980's, in the Latex style file called
+German.sty H. Partl (and collaborators) used a version of this
+"penalty and hskip" trick which is so clear and simple that it
+allows one to deal with all accents and all letters on an equal
+footing. For example Partl gives
+
+ \gdef\allowhyphens{\penalty\@M \hskip\z@skip}
+ % {\nobreak \hskip 0pt plus 0pt\relax}
+
+ \gdef\highumlaut#1{\leavevmode\allowhyphens
+ \accent127 #1\allowhyphens}
+
+Here the one-argument macro \highumlaut#1 is a new version of
+\"#1 designed to allow hyphenation after the accented character.
+This is certainly shorter and faster than Desarmenien's
+formulation. But there are some peculiarities to discuss.
+
+ The subword following the accent does not include the
+character accented. This unfortunately supresses any kern
+between the character accented and a following character. Such
+kerns are respected by both Knuth's regime (\DKaccents) and
+(generalized) Desarmenien's (\JDaccents). (Note that kerning
+with *preceeding* material is not within the scope of either,
+but see below.)
+
+ Another effect is to keep hyphens further from the
+accented character, which is not in itself a good thing, but
+it may also tend to eliminate bad hyphenations caused by the
+fake word break. (No detailed evaluation has been made.)
+
+ The positive role of \leavevmode and the first
+\allowhyphens is unclear to us and we have let them drop.
+
+ One of us (D.F.) noticed that in case the accented letter
+occurs at the end of a word, linebreak becomes impossible there.
+This may not occur in German but if one were to adopt the German
+approach for accute accent, defining
+
+ \def\'#1{{\accent"13 #1\allowhyphens}}
+
+then linebreak would be prevented after all the innumerable
+French words terminating in e-acute! Here, surely, is the
+reason why \allowhyphens never gained currency in France.
+
+ This disaster does not occur with the Desarmenien approach
+because the construction of the accented character concludes
+with a character and not an hskip.
+
+ Examine now our own definition of \'; under our \JDaccents
+regime it is essentially
+
+ \newbox\hy@accbox
+ \def\'#1{{\accent"13 #1}\setbox\hy@accbox=\hbox{#1}
+ \penalty10000\hskip-\wd\hy@accbox #1}
+
+We chose to use the standard \accent macro and nevertheless use
+Desarmenien's "penalty-hskip-letter" approach, at the
+(negligible!) cost of setting two copies of the letter to be
+accented, one exactly on top of the other. Our approach is thus
+not quite J. Desarmenien's but rather a trick simplification. It
+would have been possible to pursue the Desarmenien approach in
+all cases, but the coding would have been messy for capital
+letters and miscellaneous accents. Incidentally, Desarmenien
+makes it quite clear that he was privy to the folklore of Knuth
+and his students and has made no explicit claim to this trick.
+He did first bring it to fruition, and so we use his initials in
+\JDaccents.
+
+ Granting that one chooses an approach making the letter to
+be accented part of the post-accent (sub)word, it might be
+desirable to make the pre-accent (sub)word terminate with the
+same letter. The two subwords then have that letter in common.
+This might give slightly more acceptable hyphenation points. And
+it would enable kerning with a preceeding letter, not just with
+a following letter. In principle the method extends to do this:
+
+ \def\'#1{{#1\setbox\hy@accbox=\hbox{#1}%
+ \penalty10000\hskip-\wd\hy@accbox
+ \accent"13 #1%
+ \penalty10000\hskip-\wd\hy@accbox #1}}
+
+THREE copies of the letter to be accented are then printed
+directly on top of one another.
+
+ In principle, with digital raster imaging, the result
+should be identical to printing once. However many driver/font
+combinations will at low resolution slightly misplace the first
+of the three copies --- in case the accent occurs at the end of
+a long string of ordinary letters. This is because character
+width errors accumulate over a long string, and thereafter the
+\accent macro makes a fresh calculation of absolute position.
+The Textures screen driver dramatically exhibits this behavior.
+Knowing no cure for this malady, we have abandoned this "three
+copy" approach. Other versions are afflicted to a lesser degree
+by this phenomenon, because the shift involved, although
+present, is between characters several pixels apart.
+
+ We believe that our "two-copy" or "double strike" approach
+will very seldom cause a problem.
+
+ Alas, with some combinations of low resolution drivers and
+fonts some sort of drift has indeed been observed on screen
+and/or paper. For these unfortunate cases we give another
+approach \GFaccents (GF for German-French) which directly
+salvages the German approach by use of an \if ...\fi clause
+involving \futurelet. If the token following the character
+accented is a letter (like a) then one inserts before it a
+penalty of 1000 followed by an hskip of 0 points in order to
+start a new word; but in other cases (notably when a space comes
+next) one inserts nothing. This allows linebreaks after words
+ending in an accented character and followed by a space.
+Expressed in formulae
+
+ \def\preLetterSkip@{\ifcat a\next\penalty\@M\hskip\z@skip\fi}
+ \def\@@@@Allowhyphens{\futurelet\next\preLetterSkip@}
+ \def\'#1{{\accent18#1}\@@@@Allowhyphens}
+
+is essentially our definition of the accute accent \' for the
+\GFaccents regime.
+
+ Unfortunately, this solution will suppress all kerns
+between the character accented and a following character. Also,
+it can be defeated by nonstandard typing; for example TeX braces
+around an accented character will block hyphenation beyond.
+
+ Further, 'futurelet' has occasional nasty side-effects in
+LaTeX. For example, disaster occurs when an accented character
+ends a 'tabular' environment as in:
+
+ -- \begin{tabular} ... Painlev\'e\end{tabular}
+ -- \author{J. Dieudonn\'e}
+
+It's easy to find work-arounds: just add a space after the
+terminal accented character (or put the whole word between curly
+braces) and your problems are over. Thus the modified versions
+
+ -- \begin{tabular} ... Painlev\'e \end{tabular}
+ -- \author{J. Dieudonn\'e } or \author{J. {\sc Dieudonn\'e}}
+
+will cause no problem. But all this shows that this solution is
+fragile.
+
+
+
+LEFTOVERS AND IMPERFECTIONS
+
+ 0) \ogonek #1 provides a provisional ogonek accent under character #1
+It is a translated copy of the left single quote. With this exception
+we treat only the accents in the TeXbook, page 52.
+
+ 1) This version makes no effort to eliminate the following
+deficiency of Plain TeX: \uppercase and \lowercase fail when
+applied to the miscellaneous characters \oe, \OE, \ae, \AE, \o,
+\O, \ss and also to \i. Our \MLcodes macro merely serves to
+allow some hyphenations in words involving these characters.
+This is an imperfection.
+
+ 2) If your computer and TeX have eight bit input capabilities,
+you may wish to type some accented characters in ready-made
+eight bit form using macros of the following sort. (Your TeX
+installation probably has a ready-made collection.)
+
+ \catcode <e-accute>=13
+ \def<e-accute>{\'e}
+
+The formulas are here in an informal but portable ASCII format,
+and you have to put your local e-accute in place of <e-accute>
+before they will work.
+
+ Next some changes that are common safety measures in various
+national macro packages and which we have included here only in
+the form of hints for the TeXpert, since we feel they are
+primarily the responsibility of other macro packages.
+
+ 3) Problems with \write. Only in the last few years have
+simple and fast "sanitized" macros come into use for the purpose
+of writing pieces of the .tex file to an external file. The
+naked \write command makes a mess of accents and of many other
+things, and even may choke. The basic reference seems to be R.
+Whitney, TUGboat, November 1990. Here is a still simpler method:
+
+ \newwrite\index \openout\index{myindex}
+ \def\iWrite#1#2{\toks0{#2}%
+ \immediate\write#1{\the\toks0}
+
+And a typical use is:
+
+ \iWrite\index{...}
+
+The material ... then goes out to the file myindex.tex more or
+less untouched.
+
+ This does not work well for non-immediate writes ---
+typically used to record page number of an index entry, but one
+reasonable remedy is to write the dangerous material with
+\iWrite to one file and the page numbers with \write to another
+file and then collate the two using some device like serial
+numbers or simply line numbers.
+
+ 4) Cleaner messages.
+
+ \message is of the same ilk as \write (and \edef). The above
+"\the\toks..." non-expansion trick can be applied to it to
+prevent mutilation or mishap.
+
+ However most messages come from the bowels of
+macro packages and it is not easy to be sure of their contents.
+Active punctuation as well as accent macros often creep in.
+Recall that character category (eg. 13=active) is fixed forever at TeX's
+lips when the character is input.
+
+ One can input the following redefinition while
+;:?! are active. It will help combat these problems.
+But first check your current meaning of \message.
+
+ \let\@oldmessage@=\message
+ \def\message#1{\begingroup
+ \def\'{'}\def\`{`}\def\"{"}%
+ \def\i{i}\def\oe{oe}\def\ae{ae}\def\c{}%
+ \def\.{}\def\u{}\def\v{}%
+ \def\H{}\def\={}\def\relax{}%
+ \edef~{\string~}%
+ \edef\^{\string^^5e}%
+ \edef:{\string:}%
+ \edef;{\string;}%
+ \edef?{\string?}%
+ \edef!{\string!}%
+ \@oldmessage@{#1}\endgroup}
+
+
+ -------------------------
+
+
+If you notice errors or oversights please contact us.
+
+
+
+ --- Daniel Flipo, Lille <flipo@frcitl81.bitnet>
+
+ --- Laurent Siebenmannn, Orsay <siebenmann@LALCLS.IN2P3.FR>
+
+ April, August, December 1992
+
+
diff --git a/macros/generic/hyacc-cm/hyacc-cm.tex b/macros/generic/hyacc-cm/hyacc-cm.tex
new file mode 100644
index 0000000000..794c603d7a
--- /dev/null
+++ b/macros/generic/hyacc-cm/hyacc-cm.tex
@@ -0,0 +1,250 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%% HyAcc-CM.tex is a system for European language hyphenation
+ %%% using the original CM fonts. It is based on an earlier
+ %%% system given by Jacques D\'esarm\'enien
+
+ %%% for French in his fePlain format of the mid 1980's.
+ %%%
+ %%% AIM:
+ %%% Permit automatic TeX hyphenation, under the
+ %%% original Computer Modern font norm, in words containing
+ %%% composite accented characters;
+ %%% more precisely, allow those hyphenations
+ %%% that occur far from the accents. Without
+ %%% HyAcc-CM.tex, hyphenation is blocked near and after the
+ %%% first accented character.
+ %%%
+ %%% SETUP:
+ %%% \input at some point after Plain has been
+ %%% compiled with appropriate hyphenation patterns for the
+ %%% languages to be used. See HyMaster.tex for a typical
+ %%% example.
+ %%%
+ %%% COMMANDS:
+ %%% --- \JDaccents a modified international version of
+ %%% J. Desarmenien's e-accute accent in his "fePlain" format;
+ %%% hyphenation except near accents. This is default.
+ %%% --- \GFaccents similar to \JDaccents, but slightly
+ %%% fragile (for LaTeX); it avoids a dot matrix (low
+ %%% resolution) printer bug afflicting \JDaccents. From
+ %%% German.sty corrected for French and international use.
+ %%% --- \DKaccents gives Knuth's regime under which no
+ %%% hyphenation is allowed beyond first accent in word with
+ %%% accent.
+ %%%
+ %%% PECULIARITY:
+ %%% By default, non-zero lc and uc codes for the
+ %%% sporadic characters \ae, \AE, \oe, \OE,
+ %%% \o, \O, \i, \j following an oecumenical policy
+ %%% of M. Ferguson and D. Taupin.
+ %%% --- \noMLcodes makes them zero
+ %%% (Knuth's Plain setting) and
+ %%% --- \MLcodes returns to our default.
+ %%%
+ %%% RESTRICTIONS:
+ %%% For fonts of the original Computer Modern
+ %%% norm and NOT not the Cork norm.
+ %%% Do not use prose accents in math mode.
+ %%%
+ %%% VIRTUES:
+ %%% decent hyphenation without special European fonts;
+ %%% compatibility with Knuth's documentation.%%XX
+ %%% Temporary 100% return to Knuth's regime is possible
+ %%% via \DKaccents\noMLcodes
+ %%%
+ %%% HISTORY AND PROGRAMMER DOCUMENTATION see HyAcc-CM.doc.
+ %%%
+ %%% POSTING: by Daniel Flipo <flipo@frcitl81.bitnet> and
+ %%% Laurent Siebenmannn <siebenmann@LALCLS.IN2P3.FR> ftp
+ %%% rsovax.ups.circe.fr [130.84.128.100] logon: anonymous,
+ %%% password: your name.
+ %%%
+ %%% VERSION : August, 1992
+ %%% Modifications: Polish \ogonek added,
+ %%% \box0 replaced by \box\hy@accbox
+
+ \def\Msg{\immediate\write16}
+ %% Prevent this file from being loaded twice!
+ \let\this\relax
+ \ifx\JDaccents\undefined\relax
+ \else\Msg{}%
+ \Msg{ *** \string\JDaccents\space
+ already defined.}%
+ \let\this\endinput
+ \fi
+ \this
+
+ %% If \allowhyphens is already defined
+ %% (by German.tex for instance), just complain.
+ \ifx\undefined\allowhyphens
+ \let\this\relax
+ \else
+ \Msg{}%
+ \message{ *** \string\allowhyphens\space
+ (from German.tex) already defined.}%
+ \let\this\endinput
+ \fi
+ \this
+ %%XX
+ \def\W@{\immediate\write16}%
+ \W@{ *************************************************** }
+ \W@{ HyAcc-CM INTERNATIONAL ACCENTUATION MECHANISM FOR CM FONTS}
+ \W@{ permitting decent hyphenation of words with accents.}
+ \W@{ Version of Aug 1992.}
+ \W@{ Updates: ftp rsovax.ups.circe.fr [130.84.128.100].}
+ \W@{ *************************************************** }
+
+ \chardef\JDCatAt=\the\catcode`\@
+ \catcode`\@=11
+ \catcode`\~=12 %% was 13
+
+ \newbox\hy@accbox
+
+ \def\hyaccent#1#2{{\accent#1 #2}\@Allowhyphens{#2}}%
+
+ %% for \JDaccents
+ \def\@@allowhyphens{\penalty\@M\hskip\z@skip}%% for sporadics
+ \def\@@Allowhyphens#1{\setbox\hy@accbox\hbox{#1}%% \hyaccent
+ \penalty\@M\hskip-\wd\hy@accbox #1}%
+
+ %% for \GFaccents
+ \def\preLetterSkip@{\ifcat
+ a\next\relax\penalty\@M\hskip\z@\fi} %XXspacing
+
+ \def\@@@Allowhyphens#1{\noexpand
+ \futurelet\next\preLetterSkip@}
+
+ \let\next\relax %% avoids some mysterious errormessages
+ %% in case you uncautiously use %%XX
+ %% accents in messages, %%XX
+ %% \GFaccents\message{Imb\'ecile!}
+
+ %%% Composite accents for CM fonts
+ %% TeXbook p. 52
+
+ \def\DoCMAccents{%% cf \dospecials of Plain
+ \do`"12..%% grave
+ \do'"13..%% accute
+ \do^"5E..%% hat
+ \do""7F..%% umlaut
+ \do~"7E..%% tilde
+ \do="16..%% macron (bar over)
+ \do."5F..%% dot over
+ \do u"15..%% breve
+ \do v"14..%% check
+ \do H"7D..%% long umlaut
+ %%\t tie absent see below
+ }
+
+ \def\CheckPeriod#1{\if#1.\else
+ \errmessage{ !!! Error in DoAccChars data}\fi}
+
+ \def\DoAccent#1#2.#3{\CheckPeriod{#3}%
+ \expandafter
+ \def\csname #1\endcsname##1{%
+ \relax\hyaccent{#2}{##1}}%
+ }
+
+ \let\do\DoAccent
+ \DoCMAccents %% Sets up principal new accent macros
+
+ %%% Residual accents : \c,\aa,\AA,\l,\L
+
+ \def\oldCedilla#1{\setbox\hy@accbox\hbox{#1}%
+ \ifdim\ht\hy@accbox=1ex\accent24 #1%
+ \else{\ooalign{\unhbox\hy@accbox\crcr\hidewidth\char24\hidewidth}}%
+ \fi}
+
+ \def\c#1{{\oldCedilla#1}\@Allowhyphens{#1}}
+
+ \def\L{\char32 L}
+ \def\l{\char32 l}
+
+ \def\AA{\leavevmode\setbox\hy@accbox\hbox{h}%
+ \dimen@\ht\hy@accbox\advance\dimen@-1ex%
+ \rlap{\raise.67\dimen@\hbox{\char'27}}\@allowhyphens A}
+
+ \def\aa{\hyaccent{"17}{a}}
+
+ \def\oldUnderBar#1{\oalign{#1\crcr\hidewidth
+ \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}
+
+ \def\b#1{\oldUnderBar#1\@Allowhyphens{#1}}% underbar
+
+ \def\d#1{\oalign{#1\crcr
+ \hidewidth.\hidewidth}\@Allowhyphens{#1}}%underdot
+
+ \def\t#1{{\edef\next{\the\font}\the\textfont1\accent
+ "7F\next#1}\@Allowhyphens{#1}}
+ %% tie; \textfont1 is cmmi
+
+ \def\oldOgonek#1{\setbox\hy@accbox=\hbox{`}\ooalign{\hidewidth
+ \lower\ht\hy@accbox\copy\hy@accbox%%\hidewidth
+ \crcr#1\crcr}}
+ \def\ogonek#1{{\oldOgonek#1}\@Allowhyphens{#1}}% ogonek
+
+
+ %%% Sporadic characters in cm
+ %%% Plain assigns codes 0; Ferguson and Taupin as follows
+ %%% see article of Taupin (to appear)
+ %%% For better or worse, this permits hyphenation of
+ %%% words containing these characters.
+ %%% More importantly it is a policy that
+ %%% is language-independant.
+ %%% But catcodes are left 12 and not 11, to prevent use
+ %%% in macro names when directly typed.
+
+ \def\SetULCodes#1#2{%
+ \uccode#1=#1\lccode#1=#2
+ \uccode#2=#1\lccode#2=#2
+ }
+
+ \def\KillULCodes#1#2{%
+ \uccode#1=0\lccode#1=0
+ \uccode#2=0\lccode#2=0
+ }
+
+ \def\MLcodes{%
+ \SetULCodes{"19}{"19} %% \ss (degenerate case)
+ \SetULCodes{"1D}{"1A} %% \AE,\ae
+ \SetULCodes{"1E}{"1B} %% \OE,\oe
+ \SetULCodes{"1F}{"1C} %% \O, \o
+ \lccode"10="10 %% \i
+ }
+
+ \def\noMLcodes{%
+ \KillULCodes{"19}{"19} %% \ss (degenerate case)
+ \KillULCodes{"1D}{"1A} %% \AE,\ae
+ \KillULCodes{"1E}{"1B} %% \OE,\oe
+ \KillULCodes{"1F}{"1C} %% \O, \o
+ \lccode"10=0 %% \i
+ }
+
+ %%% For LaTeX 2.xx necessary change for \parbox macro
+ \ifx\documentstyle\undefined
+ \else %% if LaTeX IS loaded, save our new definitions of
+ %% \' \` and \= for \parbox macro (LaTeX 2.xx)
+ \let\@acci=\'
+ \let\@accii=\`
+ \let\@acciii=\=
+ \fi
+
+ %% JD for Jacques Desarmenien
+ \def\JDaccents{\let\@Allowhyphens\@@Allowhyphens
+ \let\@allowhyphens\@@allowhyphens}
+
+ %% GF for German French
+ \def\GFaccents{\let\@Allowhyphens\@@@Allowhyphens
+ \let\@allowhyphens\@@allowhyphens}
+
+ %% DK for Don Knuth
+ \def\DKaccents{\def\@Allowhyphens##1{\relax}%
+ \let\@allowhyphens\relax}
+
+ %% Back to normal catcodes
+ \catcode`\~=13
+ \catcode`\@=\JDCatAt
+
+ \MLcodes\JDaccents %% defaults
+
+ \endinput
diff --git a/macros/generic/hyacc-cm/hymaster.tex b/macros/generic/hyacc-cm/hymaster.tex
new file mode 100644
index 0000000000..e421a7f314
--- /dev/null
+++ b/macros/generic/hyacc-cm/hymaster.tex
@@ -0,0 +1,92 @@
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%% HyMaster.tex A simplest recipe for compilation of
+ %%% Plain TeX for more than one European language.
+ %%% Set up for French and US English, but readily adaptable
+ %%% to other combinations.
+ %%% NOT TO BE COMPILED AS IS; SEE INSTRUCTIONS AFTER \endinput
+ %%%
+
+ \def\NewLanguage{\alloc@9\language\chardef\@cclvi}
+ % like \newlanguage but more accessible
+ \NewLanguage\l@US
+ \language=\l@US
+ \input ushyphen % US English hyphenation table
+
+ \NewLanguage\l@FR
+ \language=\l@FR
+ \input frhyphen.crk %% maybe fr7hyph.tex (7bit patterns enough)
+ %% Use automobile nationality codes for others:
+ %% FR, US, GB, DE, SP, IT, NL, DA, PO,
+ %% CS, HU, IS, SW, NO, FI, ...
+
+ \def\FR{\language=\l@FR \lccode`\'=`\'}
+ %% apostrophe is a letter in french jus-qu'a, l'ha-bi-tude
+ %% see \patterns of Desarmenien
+
+ \def\US{\language=\l@US \lccode`\'=0}
+
+ \FR % French used by default
+
+\endinput
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ COMPILATION INSTRUCTIONS
+
+ This enhanced Plain format can then be used as a basis for
+other formats such as AmSTeX, MacroTeX, and LamsTeX, or your
+current local format.
+
+ For LaTeX one proceeds analogously but starting from a
+suitable LPlain.tex (and auxiliary files) rather than from
+Plain.tex. The format ultimately produced is an enhanced LaTeX
+format.
+
+ It is important to use version 3.xx of TeX, and a version
+3.xx of plain.tex. The critical date is autumn 1989, and
+earlier material will be inadequate. In earlier versions of TeX,
+only one language can have hyphenation at a given moment ---
+usless one uses the "dirty trick" of John Hobby which permitted
+Desarmenian to distribute a French-English version of Plain
+format.
+
+ Here are instructions for a generic TeX. Establish a
+directory containing the following files.
+
+ (i) fhyphen.crk a copy of the French hyphenation pattern
+file using the ISO Latin 1 (or Cork) standard for encoding
+accented characters. One is included, with its history.
+
+ (ii) ushyphen.tex, a copy of the US hyphenation pattern file
+--- which in standard TeX distribution bears the name
+hyphen.tex.
+
+ (iii) hyphen.tex, a copy of this macro file HyMaster.tex.
+
+ (iv) plain.tex exactly as provided by D. Knuth.
+
+Note that some systems (Mac, VMS, ...) identify upper and lower
+case letters, while others (unix, ...) distinguish them.
+
+
+ Compile plain.tex using VIRTEX or INITEX, i.e., the
+primitive form of TeX made for format building.
+
+ (a) For Textures this operation consists in typesetting
+with VIRTEX a file containing only \input plain.tex \dump.
+
+ (b) For OzTeX, launch INITEX and respond to a prompt ** by
+typing
+
+**Plain.tex \dump<carriage return>
+
+It does not matter if minor fonts such as manfont are missing;
+just hit carriage return.
+
+ In either case you will in due course be invited to name
+the resulting format, (say as NEW.fmt). In the case of OzTeX
+the name must be registered in your configuration file before
+you are allowed to use it.
+
+
+
diff --git a/macros/generic/hyacc-cm/hytstfr.tex b/macros/generic/hyacc-cm/hytstfr.tex
new file mode 100644
index 0000000000..2dbf6786ce
--- /dev/null
+++ b/macros/generic/hyacc-cm/hytstfr.tex
@@ -0,0 +1,169 @@
+
+ %% HyTestFr.tex
+ %% A simple test file for HyAccJD.tex
+ %% Daniel Flipo, Lille <flipo@frcitl81.bitnet>
+ %% Laurent Siebenmannn, Orsay <siebenmann@LALCLS.IN2P3.FR>
+ %% April, 1992
+
+ \input HyAcc-CM.tex
+
+ \def\Msg{\immediate\write16}
+ \catcode`\@=11
+
+ %% No double loading
+ \let\this\relax
+ \ifx\undefined\GFaccents
+ \Msg{}\Msg{Sorry HyAcc-CM not loaded. Exit.}
+ \let\this \endinput
+ \fi
+ \this
+
+ %% LateX red tape
+ \ifx\undefined\documentstyle
+ \toks0{\par \vfill \supereject \end}
+ \else
+ \documentstyle[art10]{article}
+ \begin{document} %% for LateX only.
+ \toks0{\csname end\endcsname{document}}
+ \fi
+ \outer\edef\bye{\the\toks0}
+
+ \parindent=0cm%%
+
+ \def\hytest{ma\c connerie d\'econtenanc\'ee }%% alter this!!
+ \def\Hytest{\hytest\hytest\hytest\hytest\hytest}
+
+ \hsize=280pt
+ \tolerance=10000 %% vary this!
+ \frenchspacing
+ \overfullrule=10pt
+
+ \JDaccents\MLcodes
+ \Msg{}\Msg{ *** Hyphenation points offered by default }
+ \showhyphens{\hytest}
+ *** Hyphenation by default:
+ \par \Hytest\bigskip
+
+ \GFaccents\MLcodes
+ \Msg{}\Msg{ *** Hyphenation points offered by }
+ \Msg{ *** corrected German approach. }
+ \showhyphens{\hytest}
+ *** Hyphenation by corrected German approach:
+ \par \Hytest\bigskip
+
+
+ \DKaccents\noMLcodes
+ \Msg{}\Msg{ *** Hyphenation points offered virginal Plain }
+ \showhyphens{\hytest}
+ *** Hyphenation by virginal Plain:
+ \par \Hytest\bigskip
+
+
+
+ Minuscules :
+
+ \`a \`e \`\i{} \`o \`u
+
+ \'a \'e \'\i{} \'o \'u
+
+ \^a \^e \^\i{} \^o \^u
+
+ \"a \"e \"\i{} \"o \"u \"y
+
+ \c c \~a \~n \~o \o{} \ae{} \oe{} \ss{} \aa{}
+ \medskip
+ Minuscules :
+
+ \`a\`e\`\i{}\`o\`u
+
+ \'a\'e\'\i{}\'o\'u
+
+ \^a\^e\^\i{}\^o\^u
+
+ \"a\"e\"\i{}\"o\"u\"y
+
+ \c c\~a\~n\~o\o{}\ae{}\oe{}\ss{}\aa{}
+
+ \bigskip
+ MAJUSCULES :
+
+
+ \`A \`E \`I{} \`O \`U
+
+ \'A \'E \'I{} \'O \'U
+
+ \^A \^E \^I{} \^O \^U
+
+ \"A \"E \"I{} \"O \"U \"Y
+
+ \c C \~A \~N \~O \O{} \AE{} \OE{} SS{} \AA{}
+
+ \medskip
+ \`A\`E\`I{}\`O\`U
+
+ \'A\'E\'I{}\'O\'U
+
+ \^A\^E\^I{}\^O\^U
+
+ \"A\"E\"I{}\"O\"U\"Y
+
+ \c C\~A\~N\~O\O{}\AE{}\OE{}SS{}\AA{}
+
+
+
+ \bigskip
+
+ \hsize=150pt
+ \GFaccents
+ \JDaccents
+
+ Line breaks after accent:
+
+ d\'ej\`a \'et\'e \'em\'ech\'e
+ d\'ej\`a \'et\'e \'em\'ech\'e
+ d\'ej\`a \'et\'e \'em\'ech\'e
+ d\'ej\`a \'et\'e \'em\'ech\'e
+ d\'ej\`a \'et\'e \'em\'ech\'e
+ d\'ej\`a \'et\'e \'em\'ech\'e
+ d\'ej\`a \'et\'e \'em\'ech\'e
+ d\'ej\`a \'et\'e \'em\'ech\'e
+ d\'ej\`a \'et\'e \'em\'ech\'e
+ d\'ej\`a \'et\'e \'em\'ech\'e
+
+ \bigskip
+
+ Some remaining problems:
+
+ \uppercase{ci-g\^\i{}t
+ fran\c cais na\"\i{}f d\'es\oe{}uvr\'e b\^ete
+ et adult\`ere}
+
+ \bye
+
+ %% Further test material
+
+ \def\hytesti{ci-g\^\i{}t fran\c cais na\"\i{}f
+ d\'es\oe{}uvr\'e b\^ete et adult\`ere}
+
+\def\hytestii{signal man\oe{}uvres \oe{}uvrer
+d\'es\oe{}uvrement l\ae{}ticia laticia laennec
+l\ae{}nnec d\'eculpabiliser r\'eactualisation
+\'education ex\'ecution inexp\'erience ma\c
+connerie fa\c con
+abandonn\'es distingu\'es abandonn\'e distingu\'e
+\'ethymologiquement syst\'ematiquement }
+
+ \def\hytestiii{d\'econtenanc\'ee, h\'eb\'et\'ee,
+d\'efaite de toute s\'er\'enit\'e devant cet
+ab\'ec\'edaire d\'ecapit\'e, \'et\^et\'e,
+\'evid\'e, \'emascul\'e, d\'esagr\'eg\'e,
+d\'ebilit\'e, d\'eg\'en\'er\'e, parce que priv\'e
+de lettres accentu\'ees et correctement
+orthographi\'ees, Th\'er\`ese-\'El\'eonore a
+d\'ecr\'et\'e avec sinc\'erit\'e et opini\^atret\'e
+l'immortalit\'e des \c c\`a\c
+c\^ac\'ec\`ec\^ec\"ec\^\i\ ainsi que des \c
+c\^o\c c\"o\c c\`u\c c\^u\c c\"u.}
+
+
+