Plan 9 from Bell Labs’s /usr/web/sources/contrib/steve/root/sys/lib/texmf/tex/generic/hyphen/ithyph.tex

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


%%%%%%%%%%%%%%%%%%%%%%%%%%%  file ithyph.tex  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Prepared by Claudio Beccari   e-mail  [email protected]
%
%                                       Dipartimento di Elettronica
%                                       Politecnico di Torino
%                                       Corso Duca degli Abruzzi, 24
%                                       10129 TORINO	
%
% \versionnumber{4.2}   \versiondate{24 may 1996}
%
% These hyphenation patterns for the Italian language are supposed to comply 
% with the Reccomendation UNI 6461 on hyphenation issued by the Italian 
% Standards Institution (Ente Nazionale di Unificazione UNI).  No guarantee
% or declaration of fitness to any particular purpose is given and any
% liability is disclaimed.
% 
% See comments and loading instructions at the end of the file
% 
\lccode`\'=`\'          % Apostrophe has its own lccode so that it is treated
                        % as a letter
                        %
\patterns{
.anti1  .anti3m2n
.di2s3cine
.e2x
.fran2k3
.circu2m1
.wa2g3n
.ca4p3s
.opto1
.para1
.pre1
.p2s
%.ri1a2    .ri1e2   .re1i2  .ri1o2  .ri1u2
.su2b3lu   .su2b3r
.wel2t1
3p2sic
3p2neu1
a1ia a1ie  a1io  a1iu a1uo a1ya 2at.
e1iu e2w
io1i 
o1ia o1ie  o1io  o1iu
u1u 
%
'2
1b   2bb   2bc   2bd  2bf  2bm  2bn  2bp  2bs  2bt  2bv  
     b2l   b2r   2b.  2b'. 2b''
1c   2cb   2cc   2cd  2cf  2ck  2cm  2cn  2cq  2cs  2ct  2cz  
     2chh  c2h   2chb ch2r 2chn c2l  c2r  2c.  2c'. 2c'' .c2
1d   2db   2dd   2dg  2dl  2dm  2dn  2dp  d2r  2ds  2dt  2dv  2dw  
     2d.   2d'.  2d'' .d2
1f   2fb   2fg   2ff  2fn  f2l  f2r  2fs  2ft  2f.  2f'. 2f'' 
1g   2gb   2gd   2gf  2gg  g2h  g2l  2gm  g2n  2gp  g2r  2gs  2gt  
     2gv   2gw   2gz  2gh2t     2g.  2g'. 2g'' 
1h   2hb   2hd   h2l  2hm  2hn  2hr  2hv  2h.  2h'.  2h'' 
1j   2j.   2j'.  2j''
1k   2kg   2kf   k2h  2kk  k2l  k2r  2kt  2k.  2k'. 2k''  
1l   2lb   2lc   2ld  2l3f2     2lg  l2h  2lk  2ll  2lm  2ln  2lp
     2lq   2lr   2ls  2lt  2lv  2lw  2lz  2l.  2l'. 2l''  
1m   2mb   2mc   2mf  2ml  2mm  2mn  2mp  2mq  2mr  2ms  2mt  2mv  2mw  
     2m.   2m'.  2m''  
1n   2nc   2nd   2nf  2ng  2nk  2nl  2nm  2nn  2np  2nq  2nr  2ns  n2s3r
     2nt   2nv   2nz   2n'  n2g3n     2nheit.   2n.  2n'. 2n'' 
1p   2pd   p2h   p2l  2pn  2pp  p2r  2ps  2pt  2pz  2p.  2p'. 2p''  
1q   2qq   2q.   2q'. 2q''  
1r   2rb   2rc   2rd  2rf  r2h  2rg  2rk  2rl  2rm  2rn  2rp 
     2rq   2rr   2rs  2rt  rt2s3 2rv 2rx  2rw  2rz  2r.  2r'. 2r''  
1s2  2shm  2s3s  2s3p2n    2stb 2stc 2std 2stf 2stg 2stm 2stn 2stp 2sts 2stt 2stv 2sz  
     4s.   4s'.  4s'' 
1t   2tb   2tc   2td  2tf  2tg  t2h  t2l  2tm  2tn  2tp  t2r  2ts  3t2sch 
     2tt   2tv   2tw  t2z  2tzk 2tzs 2t.  2t'. 2t''  
1v   2vc   2vl   v2r  2vv  2v.  2v'. 2v''  
1w   w2h   wa2r  2w1y 2w.  2w'. 2w''  
1x   2xw   2x.   2x'. 2x'' 
y1ou y1i  
1z   2zb   2zd   2zl  2zn  2zp  2zt  2zs  2zv  2zz  2z.  2z'. 2z''  .z2
}                          % Pattern end

\endinput

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Information %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

I have been working on patterns for the Italian language since 1987; in 1992
I published

C. Beccari, "Computer aided hyphenation for Italian and Modern
      Latin", TUG vol. 13, n. 1, pp. 23-33 (1992)

which contained a set of patterns that allowed hyphenation for both Italian
and Latin; a sligtly modified version of the patterns published in the
above paper is contained in LAHYPH.TEX available on the CTAN archives.

From the above patterns I extracted the minimum set necessary for
hyphenating Italian that was made available on the CTAN archives with the
name ITHYPH.tex the latest version being version 3.5 with version date 
16 august 1994.

That pattern set required 37 ops; being interested in a local version
of TeX/LaTeX capable of dealing with half a dozen languages, I wanted to
reduce memory occupation and therefore the number of ops.

This new version (4.0) of ITHYPH.TEX is much simpler than version 3.5
and requires just 29 ops while it retains all the power of version 3.5,
but contains many more new patterns that allow to hyphenate unusual
words that generally have a root borrowed from a foreign language.
Updated versions 4.1 and 4.2 contain minor additions and the number of ops
is increased to 30.

This new pattern set has been tested with the same set of difficult Italian
words that was used to test version 3.5 and it yields the same results (a 
part a minor change that was deliberately introduced so as to reduce the 
typographical hyphenation (opposed to grammatical hyphenation) of some 
vocalic groups.)

It has been tested with a larger set of words that previously were 
incorrectly hyphenated with version 3.5, although no error had been reported, 
because such words are of very specialized nature and are seldom used.

As the previous version, this new set of patterns does not contain
any accented character so that the hyphenation algorithm behaves properly
in both cases, that is with cm or dc fonts (provided that with the
latter suitable  macros are activated in order to map sequences such
as \`a into the proper character ("E0) of the extended set, and that its
\lccode is defined).  Of course if you use dc fonts (or the virtual fonts
for which suitable 256 glyph mappings have been set up, for example the
mapped PostScrip fonts) you get the full power of the hyphenation
algorithm, while if you use cm fonts you miss some possible break points;
this is not a big inconvenience in Italian because:

1) The Regulation UNI 6015 on accents specifies that compulsory accents 
   appear only on the ending vowel of oxitone words; this means that it is 
   almost indifferent to have or to miss the dc fonts and their special 
   facilities because the only difference consists in how TeX evaluates the 
   end of the word; in practice if you have these special facilities you get
   "qua-li-t\`a", while if you miss them, you get "qua-lit\`a" (assuming
   that \righthyphenmin > 1).

2) Optional accents are so rare in Italian, that if you absolutely want 
   to use them in those rare instances, and you miss the dc or virtual font
   facilities, you should also provide explicit discretionary hyphens 
   as in "s\'e\-gui\-to".

There is no explicit hyphenation exception list because these patterns
proved to hyphenate correctly a very large set of words suitably chosen in
order to test them in the most heavy circumstances; these patterns were used
in the preparation of a number of books and no errors were discovered.

Should you find any word that gets hyphenated in a wrong way, please, AFTER
CHECKING ON A RELIABLE MODERN DICTIONARY, report to the author, preferably
by e-mail.

                      ATTENTION !!!

Patterns (for any language, not only for Italian) must be loaded while
running iniTeX or whatever the name of the TeX initializer of your system!

Before loading these Italian patterns you must issue the commands

\chardef\l@english=0
\newlanguage\l@italian

as it is recommended in BABEL (see the BABEL package and its documentation), 
then you can load the patterns.

The simplest way to do the job with LaTeX2e is to create the file hyphen.cfg
where you include the following

%%
\InputIfFileExists{hyphen.tex}%
   {\message{Loading hyphenation patterns for US English.}%
    \language=\l@english
    }%
   {\errhelp{The configuration for hyphenation is incorrectly
             installed.^^J%
             If you don't understand this error message you need
             to seek^^Jexpert advice.}%
    \errmessage{OOPS! I can't find any hyphenation patterns for
                US English.^^J \space Think of getting some or the
                latex2e setup will never succeed}\@@end}
%%
\InputIfFileExists{ithyph.tex}%
   {\message{Loading hyphenation patterns for Italian.}%
    \language=\l@italian
    \lccode`\'=`\'
    }%
   {\errhelp{The configuration for hyphenation is incorrectly
             installed.^^J%
             If you don't understand this error message you need
             to seek^^Jexpert advice.}%
    \errmessage{OOPS! I can't find any hyphenation patterns for
                Italian.^^J \space Think of getting some or the
                latex2e setup will never succeed}\@@end}

then you run the initializer and possibly move the format file in the
directory/folder where it is supposed to reside.

When you run your .tex files you can invoke the Italian hyphenation rules with
the BABEL instruction \selectlanguage{italian} or you might invoke them in a
simpler way (that is without changing the caption names and the special
Italian typesetting tricks) by defining:

\def\italiano{\language=\l@italian \lccode`'=`' \righthyphenmin=2}

You can then issue the command \italiano (possibly within group delimiters
if you are typesetting a bilingual document) whenever you set Italian text;
check also with the command \foreignlanguage{<language>}{<text>} defined in
BABEL (version 3.5).

Happy multilingual typesetting !

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].