diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/generic/hyacc-cm |
Initial commit
Diffstat (limited to 'macros/generic/hyacc-cm')
-rw-r--r-- | macros/generic/hyacc-cm/f7hyphen.tex | 522 | ||||
-rw-r--r-- | macros/generic/hyacc-cm/frhyphen.crk | 868 | ||||
-rw-r--r-- | macros/generic/hyacc-cm/h-plain.dmp | 60 | ||||
-rw-r--r-- | macros/generic/hyacc-cm/hyacc-cm.doc | 411 | ||||
-rw-r--r-- | macros/generic/hyacc-cm/hyacc-cm.tex | 250 | ||||
-rw-r--r-- | macros/generic/hyacc-cm/hymaster.tex | 92 | ||||
-rw-r--r-- | macros/generic/hyacc-cm/hytstfr.tex | 169 |
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.} + + + |