diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/hyphen/hypht1.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/hyphen/hypht1.tex | 304 |
1 files changed, 304 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/hyphen/hypht1.tex b/Master/texmf-dist/tex/generic/hyphen/hypht1.tex new file mode 100644 index 00000000000..4b07f5b5013 --- /dev/null +++ b/Master/texmf-dist/tex/generic/hyphen/hypht1.tex @@ -0,0 +1,304 @@ +% This is `hypht1.tex' as of January 31, 2000. +% +% Copyright (C) 1995-2000 Bernd Raichle/DANTE e.V. +% +% ----------------------------------------------------------------- +% IMPORTANT NOTICE: +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% ----------------------------------------------------------------- +% +% This file contains additional hyphenation patterns including +% the character hyphen `-' to be used in conjunction with +% +% * all fonts with font encoding T1 and +% * all national hyphenation patterns. +% +% It enables the hyphenation of words containing explicit hyphens +% when using fonts with \hyphenchar\font <> `\- (e.g. EC fonts). +% +% It is an experimental version for testing and includes all +% lowercase characters (including national characters) in T1 +% encoded fonts. +% In 1990 at the TUG meeting at Cork, Ireland, the european TeX +% user groups agreed on a 256 character encoding supporting many +% european languages with latin writing. LaTeX2e supports this +% character encoding as font encoding "T1". +% +% +% The additional patterns add about 2600 patterns and 6 trie ops. +% Be warned---to load the patterns in the IniTeX pass when creating +% a new format a very large hyphenation trie is needed! +% Example: TeX reports for "hyphen.tex" +% Hyphenation trie of length 6075 has 181 ops out of ... +% with the additional patterns it will report +% Hyphenation trie of length 8618 has 187 ops out of ... +% +% +% Note: +% The \hyphenation command gives special interpretation to the +% character `-'. Therefore it is not possible to include a +% word with an explicit hyphen as hyphenation exception without +% the following trick (from David Kastrup): +% +% \begingroup +% % Make `=' to be seen as an explicit hyphen inside \hyphenation: +% \lccode`\==`\- +% % Example: Declare hyphenation points of `government-founded': +% \hyphenation{gov-ern-ment=-foun-ded} +% \endgroup +% +% +% Error reports for "hypht1.tex" in case of UNCHANGED versions to +% +% Bernd Raichle +% Stettener Str. 73 +% D-73732 Esslingen, FRG +% Email: raichle@Informatik.Uni-Stuttgart.DE +% +% or +% DANTE e.V., Koordinator `german.sty' +% Postfach 10 18 40 +% D-69008 Heidelberg, FRG +% Email: german@Dante.DE +% +% +% Installation: +% ============= +% +% 1. Make sure that the hyphenation trie of your TeX version has +% enough room to load more hyphenation patterns (cf. "pattern +% memory", "trie size" in the documentation of your +% implementation). +% +% 2. load "hypht1.tex" in addition to _every_ hyphenation +% patterns file (i.e. for every value of \language) you are +% using; make sure that \language has not been changed. +% +% Example for LaTeX2e (without Babel's ``language.dat''): +% To load US English and German hyphenation patterns, and load +% "hypht1.tex" in addition to both sets of patterns, create a +% file "hyphen.cfg" with the following contents: +% +% \chardef\l@USenglish=0 \language=\l@USenglish +% \input hyphen +% \input hypht1 +% +% \newlanguage\l@german \language=\l@german +% \input dehypht +% \input hypht1 +% +% \language=\l@USenglish +% \lefthyphenmin=2 \righthyphenmin=3 +% \endinput +% +% Example for LaTeX2e (using Babel's ``language.dat''): +% To load a second file including additional hyphenation patterns +% and hyphenation exceptions you specify the name of the file +% in ``language.dat'' in addition to the regular hyphenation +% pattern file name. For example +% USenglish hyphen.tex hypht1.tex +% german dehypht.tex hypht1.tex +% +% +% 3. Use IniTeX to create a new format file. +% +% +% Changes: +% 1997-04-13 v0.2 First release found on CTAN. +% 2000-01-31 v0.3 added missing glyphs '340-'377 +% (thanks to Vladimir Volovich) +% +% ----------------------------------------------------------------- +% +\begingroup\expandafter\expandafter\expandafter +\endgroup\expandafter\ifx\csname ProvidesFile\endcsname\relax + \wlog{File: hypht1.tex 2000/01/31 v0.3 % + Additional Hyphenation Patterns for T1-encoded fonts} +\else + \ProvidesFile{hypht1.tex}% + [2000/01/31 v0.3 Additional Hyphenation Patterns % + for T1-encoded fonts] +\fi +% +% +% It is possible to use T1-encoded font with TeX 2.x and +% include a subset '000-'177 of these additional hyphenation +% patterns. Nonetheless TeX 2.x is unable to process more than +% one \patterns. If you want to use these patterns, you have to +% include some changes below and in the used set of patterns. +% (You can contact the author for more information.) +% +\ifnum`\A=`\^^41 % TeX 2 or TeX 3? +\else + \message{Sorry, you need TeX 3.x to use these patterns.} + \expandafter\endinput +\fi +% +% +% Make hyphen `-' a word constituent: +% +\lccode`\-=`\- +% +% +% \patterns has a global effect, therefore we can open a group, +% make local changes, call \patterns{...}, close the group, and +% all changes are gone. +% +\begingroup +% +% Some feedback for users with slow computers: +% +\message{...please be patient...} +% +% +\toksdef\L=0 \L={}% list of two letter patterns +\toksdef\S=2 \S={}% list of "simple" patterns +% +\countdef\C=2 % use \C as temporary register for _c_har code +\countdef\i=0 % temporary register: loop index i +% +\catcode`\Y=11 \lccode`\Y=0 % we need `Y' for special purposes +\catcode`\X=11 \lccode`\X=0 % dto for `X' +% +% +% 1) trivial cases: +% +\S={% + 8-7 % disallow hyphenation before, allow after hyphen + .-8 % disallow hyphenation for cases like "bergauf und -ab" + --8 % disallow hyphenation "in" an en- or em-dash (-8-), + % disallow hyphenation before and after an en- or em-dash + % (--8 + 8-7 ==> 8-8-8) because EC fonts v1.0 are missing + % appropriate ligatures for --(-) + hyphenchar! +} +% \changes{v0.2}{1997/02/01}{Replaced `2-1', `.-2' by `8-7', `.-8', +% otherwise it is possible that the `2' is overwritten by a +% greater odd value of another pattern.} +% \changes{v0.2}{1997/04/13}{Added `8-8-8' resp. `--8' for +% EC fonts v1.0.} +% +% +% 2a) for all lowercase letters: +% change catcode to letter (or other) to make sure that these +% characters are not active, ignored, etc. and +% change lccode to a non-zero value to allow its use inside +% \patterns +% +% 2b) Add the patterns +% .X-8 % disallow "X-|ray", "n-|fach", etc. +% 8X8Y- % => "\righthyphenmin"=3 and "\lefthyphenmin"=3 +% -X8Y % before and after the hyphen +% for all X,Y in the set of lowercase letters. +% +% +\def\a#1{% add pattern to pattern list \L + \C=#1\relax \catcode\C=11\lccode\C=\C + \lccode`X=\C + \lowercase{% + \S\expandafter{\the\S .X-8 }% + \L\expandafter{\the\L 8X8Y- -X8Y8 }% + }} +% +% \changes{v0.2}{1997/02/01}{Replaced `X-2' by `X-8, +% otherwise it is possible that the `2' is overwritten by a +% greater odd value of another pattern.} +% +\def\y{% + % + % Add patterns for "lowercase letter d with bar" + % + \a{'236}% lowercase letter d with bar + % + % ... and for all lowercase characters: + % + % for i=`z downto `a do + % change catcode & lccode of char with code i + % add patterns for this char + % endfor + % + \i=`\z \advance\i 1 % + % + \def\x{% + \ifnum\i>`\a % + \advance\i -1 % + \a\i % add patterns for char `i' + \expandafter\x + \fi}% + \x + % + % for i = char "ij" ('274) downto char "a breve" ('240) do + % change catcode & lccode of char with code i + % add patterns for this char + % endfor + % + \i='275 % = '274 + 1 '274: lowercase letter ij + % + \def\x{% + \ifnum\i>'240 % + \advance\i -1 % + \a\i % add patterns for char `i' + \expandafter\x + \fi}% + \x + % + % \changes{v0.3}{2000/01/31}{Added code for char '340-'377.} + % + % for i = char "sharp s" ('377) downto char "a grave" ('340) do + % change catcode & lccode of char with code i + % add patterns for this char + % endfor + % + \i='377 \advance\i 1 % + % + \def\x{% + \ifnum\i>'340 % + \advance\i -1 % + \a\i % add patterns for char `i' + \expandafter\x + \fi}% + \x + % +}% -- end of \y -- +% +% Now do the real work: +% +\y +% +% +% The list of "simple" patterns is ready to use: +% +\patterns{ \the\S }% +\S={}% free memory used for token list +% +% +% Now \L contains all needed patterns for all characters X +% and one character Y. To finish our task we have to loop over Y +% for all lowercase characters. +% +\def\h#1\relax{% lowercase #1 and add patterns + \lowercase{% + \patterns{#1}% + }} +% +\def\a#1{% add patterns in \L with Y replaced by #1 + \lccode`Y=#1\relax + \expandafter\h\the\L\relax +} +% +% Now do the real work (with the redefined macro \a): +% +\y +% +\message{done.} +% +% Restore all \catcode and \lccode setting, definitions for +% csname, register changes, etc. +% +\endgroup +\endinput +%% +%% End of file `hypht1.tex'. |