summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/ruhyphen
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:49:28 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:49:28 +0000
commitd780c57e68c80655669a3b01af46b9978f5698ef (patch)
tree7eb9b6d2291e813296b41ae01eb7872442b78e9d /Master/texmf-dist/source/generic/ruhyphen
parent465c3a91c12b03e3e44ed760e4356fa340f830b8 (diff)
trunk/Master/texmf-dist/source/generic
git-svn-id: svn://tug.org/texlive/trunk@115 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/generic/ruhyphen')
-rw-r--r--Master/texmf-dist/source/generic/ruhyphen/BUGS75
-rw-r--r--Master/texmf-dist/source/generic/ruhyphen/Makefile10
-rw-r--r--Master/texmf-dist/source/generic/ruhyphen/README368
-rw-r--r--Master/texmf-dist/source/generic/ruhyphen/README.ruhyphal118
-rw-r--r--Master/texmf-dist/source/generic/ruhyphen/hyphen.rules129
-rwxr-xr-xMaster/texmf-dist/source/generic/ruhyphen/mkcyryo22
-rwxr-xr-xMaster/texmf-dist/source/generic/ruhyphen/reduce-patt8
-rwxr-xr-xMaster/texmf-dist/source/generic/ruhyphen/sorthyph9
-rwxr-xr-xMaster/texmf-dist/source/generic/ruhyphen/sortkoi816
-rwxr-xr-xMaster/texmf-dist/source/generic/ruhyphen/trans9
10 files changed, 764 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/ruhyphen/BUGS b/Master/texmf-dist/source/generic/ruhyphen/BUGS
new file mode 100644
index 00000000000..84456e41f64
--- /dev/null
+++ b/Master/texmf-dist/source/generic/ruhyphen/BUGS
@@ -0,0 +1,75 @@
+-*-coding: koi8-r;-*-
+
+1) the following command shows useless (because of \lefthyphenmin=2)
+or incorrect patterns which set hyphenation after the first letter:
+
+grep '^\..[0-9]' ruhyph*.tex
+
+ruhyphas.tex:
+.󭄤󣵲
+.5棕4
+.4宰乓
+.4宰乓帜
+
+2) the following command shows useless (because of \righthyphenmin=2)
+or incorrect patterns which set hyphenation before the last letter:
+
+grep '[0-9].\.$' ruhyph*.tex
+
+ruhyphas.tex:
+.仗5.
+.淖󓠒.
+
+3) the patterns for the whole words shown by the command
+
+grep '^\..*\.$' ruhyph*.tex
+
+are also questionable (probably it is better to store them in
+\hyphenation list). Such patterns occur in ruhyphas.tex and
+ruhyphzn.tex.
+
+4) the following command will show patterns which contain letter
+combinations absent in the full dictionary:
+
+./reduce-patt < ruhyphXX.tex | diff - ruhyphXX.tex | perl -n -e 'print if (s/^> //)'
+
+where XX should be replaced accordingly, and it is assumed that the
+script `reduce-patt' refers to the full lowercased wordlist (e.g.
+generated from the rus-ispell dictionary by Alexander Lebedev).
+
+There may be 3 reasons for such `wrong' patterns:
+
+ a) there are no existing words which could be influenced by these
+ patterns. In this case, such patterns should be removed.
+
+ b) the pattern corresponds to the word with letter `cyre', but
+ the orthographically-correct word uses the letter `cyryo'.
+ In this case, the pattern should be leaved, because it
+ corresponds to the (relatively common) case when `cyryo' is
+ replaced by `cyre'.
+
+ c) the patterns are correct (correspond to existing words), but
+ the dictionary does not contain such words. In this case, the
+ dictionary should be supplemented.
+
+5) to ensure that there will be absolutely no -xx breaks for English
+words when the combined Russian-English hyphenation is used, a changed
+English patterns should be used, with removed `strange' patterns
+matching the regexp "[0-9][a-z][a-z]\." (see the file enrhm2.tex).
+
+6) [not a bug] should the main hyphenation files be sorted using
+`sorthyph' script?
+
+7) Known cases of bad hyphenation (to be fixed by authors of
+corresponding patterns). All found hyphenation positions are shown.
+Bad positions are marked with `='. Please send additional examples of
+bad hyphenation for various patterns in this collection to email
+addresses given at the end of README. See also some other examples
+in the release notes of Alexander Lebedev's patterns in the file
+README.ruhyphal.
+
+ruhyphas.tex:
+
+ 由--蚁=蚁-钨
+ 团=至=韵-钨
+ 邢-宰乓=牧-涝
diff --git a/Master/texmf-dist/source/generic/ruhyphen/Makefile b/Master/texmf-dist/source/generic/ruhyphen/Makefile
new file mode 100644
index 00000000000..ab1ec67813a
--- /dev/null
+++ b/Master/texmf-dist/source/generic/ruhyphen/Makefile
@@ -0,0 +1,10 @@
+PATTERNS = al as ct dv mg vl zn
+CYRYO = $(patsubst %,cyryo%.tex,$(PATTERNS))
+
+cyryo: $(CYRYO)
+
+distclean:
+ rm -f $(CYRYO)
+
+cyryo%.tex: ruhyph%.tex
+ ./mkcyryo $< > $@
diff --git a/Master/texmf-dist/source/generic/ruhyphen/README b/Master/texmf-dist/source/generic/ruhyphen/README
new file mode 100644
index 00000000000..a490b42259d
--- /dev/null
+++ b/Master/texmf-dist/source/generic/ruhyphen/README
@@ -0,0 +1,368 @@
+-*-coding: koi8-r;-*-
+
+ ruhyphen package
+ (Collection of Russian hyphenation patterns)
+
+ Version 1.7 (March 23, 2003)
+
+
+This package contains hyphenation patterns for Russian language,
+which can be used for various Cyrillic font encodings. It contains
+all Russian hyphenation patterns we know of (currently, these are
+seven different patterns, --- see below), so you can choose your
+favorite pattern. :-)
+
+Copyright notice and distribution conditions are given in the
+beginning of the file `ruhyphen.tex'. It applies to all *.tex files
+in this package (listed below). Note that seven pattern files
+(ruhyph*.tex, except ruhyphen.tex) are copyrighted by their
+authors.
+
+Thus, all patterns are freely distributable.
+
+To install, copy all *.tex files to your texmf tree. For example,
+create a directory $TEXMF/tex/generic/ruhyphen/ and put all *.tex
+files there.
+
+Before creating a format file, edit the file ruhyphen.tex and select
+the pattern and font encoding to use (see below for the list of
+patterns and supported font encodings).
+
+Usually, hyphenation setup is based on file `hyphen.cfg' which loads
+hyphenation patterns in proper encodings for languages which you will
+use. It is highly recommended to install BABEL package which provides
+a unified mechanism for hyphenation configurations, and comes with
+it's own `hyphen.cfg'. This is recommended not only to LaTeX users,
+but also if you will use a `cyrplain' bundle of the T2 package to
+`russify' plain TeX-based formats.
+
+You have two options: either use patterns for Russian language in
+separate TeX \language (so to get proper hyphenation you must switch
+languages explicitly in your documents using commands like \Russian,
+\English, \French, etc), or use one `combined' Russian-English
+language. If you will use only Russian and English languages in your
+documents, the latter option is more convenient (in this case, there
+will be no need to switch between Russian and English languages to get
+proper hyphenation). This option is recommended especially for
+Plain-TeX based macro packages: Plain TeX, AMS-TeX, Texinfo, BLUe TeX,
+etc; it can be convenient for LaTeX as well, if you mostly typeset
+bilingual Russian-English documents.
+
+In case of using BABEL's mechanism of hyphenation setup, edit the file
+language.dat (it is part of BABEL, and could usually be found in the
+`tex/generic/config' directory of the TDS-compliant TEXMF tree). In
+the case of using separate languages, use `ruhyphen.tex' as the
+Russian hyphenation file, i.e. put the following lines:
+
+english hyphen
+russian ruhyphen
+
+For combined Russian-English patterns, use `ruenhyph.tex' as the
+hyphenation file, i.e. put the following lines:
+
+ruseng ruenhyph
+=russian
+=english
+
+In both cases, lines for other languages could be commented or leaved
+depending on your needs.
+
+Note that it is better in general to have original English patterns
+preloaded for the default language, so you may use also the following:
+
+english hyphen
+ruseng ruenhyph
+=russian
+
+In this case, documents in English will be hyphenated exactly as they
+should, and English fragments inside a Russian text will be hyphenated
+as close as possible to this. This variant requires, however, more TeX
+memory for patterns, and you should not forget to switch \language to
+Russian when needed (using babel with `russian' as the last option
+will do this automatically).
+
+If you refuse to install BABEL, you can create your own `hyphen.cfg'
+file containing e.g. the following lines:
+
+----------------------------------------------------------------------
+%\def\English{\language0 }
+%\def\Russian{\language1 }
+%\English
+\input hyphen
+%\Russian
+\input ruhyphen
+\lefthyphenmin=2 \righthyphenmin=2 % disallow x- or -x breaks; -xx OK
+%\English
+%\lefthyphenmin=2 \righthyphenmin=3 % disallow x- or -xx breaks
+----------------------------------------------------------------------
+
+or simply
+
+----------------------------------------------------------------------
+\input ruenhyph
+----------------------------------------------------------------------
+
+Basically, if you need to typeset multilingual documents, --- you
+should use LaTeX and T2* Cyrillic encodings. :-)
+
+Note that, when running the file ruhyphen.tex (or ruenhyph.tex)
+through TeX, the only global effect is execution of \patterns (and
+\hyphenation for exceptions) for the current language, and also
+setting the \lefthyphenmin and \righthyphenmin to 2. In particular,
+no global changes of \lccode, \uccode, \catcode, etc. values are
+made. So, to activate hyphenation, you have to set (at least) the
+\lccode values for lowercase and uppercase Russian letters globally in
+your TeX file to match the font encoding (and maybe also make other
+settings, like \uccode and \sfcode). This is usually done in separate
+packages (where those font encodings are defined).
+
+Files in this package are organized in a very flexible and compact
+way, sharing the same hyphenation pattern files for different font
+encodings. Thus, having (currently available) seven different patterns
+and five different font encodings, we have 7*5=35 different possible
+combinations of pattern and encoding (which is specified in the file
+ruhyphen.tex), or, adding also combined `Russian-English' patterns
+(loaded via ruenhyph.tex), we have 70 different combinations
+supported! It is very easy to add the support for any new pattern or
+font encoding, --- just add an additional file ruhyph<pattern>.tex for
+new patterns (and generate the corresponding file cyryo<pattern>.tex
+using `mkcyryo' script), or a file koi2<encoding>.tex for new
+encoding, and add corresponding lines to `ruhyphen.tex'.
+
+Descriptions of files:
+
+1) main hyphenation files
+
+These are Russian hyphenation patterns created by different people.
+Some patterns were generated with `patgen', some were created
+manually. The quality of all patterns is comparable. Nevertheless, for
+the highest quality of hyphenation we recommend using ruhyphal.tex
+(which is switched on by default). The patterns are stored in koi8-r
+Cyrillic encoding (in a form both compact and convenient for reading
+and editing by humans), but we provide a means for re-encoding of
+patterns (using some TeX hackery) to any desired font encoding (see
+below), so there is no need to modify these main files. All patterns
+were (re)named according to the standard scheme ruhyph*.tex, where `*'
+denotes the origin of patterns. The following files are included into
+this collection (in alphabetical order):
+
+ruhyphal.tex
+ 10-Mar-03 created by Alexander I. Lebedev <swan@scon155.phys.msu.su>
+ (previously were an extended and corrected variant of Dimitri Vulis'
+ patterns, but now are independenly generated with patgen, using
+ the rus-ispell dictionary).
+ ftp://scon155.phys.msu.su/pub/russian/hyphen/ruhyphal.tar.gz
+ruhyphas.tex
+ v1.0b4a 23-Jul-98 of `ashyphen' created by Andrey Slepuhin
+ <pooh@msu.ru>, ftp://forest.nmd.msu.ru/pub/tex/hyphenation/
+ruhyphct.tex
+ 31-Dec-89 is a version found in a CyrTUG TeX distribution
+ruhyphdv.tex
+ The original patterns created by Dimitri Vulis <dlv@bwalk.dm.com>,
+ re-encoded to koi8-r.
+ruhyphmg.tex
+ 30-May-98 patterns created by Mikhail Grinchuk <grinchuk@lsil.com>.
+ Created manually, with the aim to get more or less good results
+ with smallest feasible memory usage. Current version hyphenates
+ with relatively big number of errors, but patterns are really small.
+ruhyphvl.tex
+ 22-Jul-00 Dimitri Vulis' patterns extended by M. Vorontsova and
+ S. Lvovski <serge@mccme.ru>, and later modified by A.Cherepanov,
+ V.Kryukov and A.Shen,
+ ftp://mccme.ru/users/shen/texkoi/
+ruhyphzn.tex
+ v2.01 beta 23-Mar-03 of `znhyphen' created by Sergei V. Znamenskii
+ <znamensk@rustex.botik.ru>,
+ ftp://ftp.botik.ru/rented/znamensk/tex_dists/03_97/rusifika.zip
+
+
+2) additional patterns for the letter `cyryo'
+
+Generated from the base files using `mkcyryo' script, these files
+provide patterns for the `cyryo' letter to make its behavior with
+respect to hyphenation identical to `cyre'. This can be done by
+making \lccode of `cyryo' equal to the code of `cyre' -- this is not the
+best solution because it will lead to incorrect work of \lowercase,
+and, moreover, in LaTeX it is forbidden to change \lccode values.
+These files should be used with the corresponding main hyphenation
+files.
+
+There are some words with two `cyryo' letters (the following examples
+were provided by Alexander I. Lebedev):
+
+砸H祝呐椅偈 砸H祝矣晕偈 砸H谧Z南尬偈 砸H讼蹋游偈 砸H艺绿W肆
+砸H艺绿W偈 砸H郏矣晕偈 夼再遥茸S盘匚偈 夼再遥融祝谀限钨 夼再遥人咸S钨
+
+because of this, it is insufficient to add patterns with only one
+`cyryo' letter, so we generate also patterns with two `cyryo' (however,
+in practice all of them are `reduced' by the `reduce-patt' script :).
+
+cyryoal.tex
+ generated from ruhyphal.tex
+cyryoas.tex
+ generated from ruhyphas.tex
+cyryoct.tex
+ generated from ruhyphct.tex
+cyryodv.tex
+ generated from ruhyphdv.tex
+cyryomg.tex
+ generated from ruhyphmg.tex
+cyryovl.tex
+ generated from ruhyphvl.tex
+cyryozn.tex
+ generated from ruhyphzn.tex
+
+Makefile
+ rules for generation of `cyryo*.tex' files. Run `make distclean'
+ to remove all `cyryo*.tex' files; run `make' to regenerate them.
+mkcyryo
+ shell script used for generation of `cyryo*.tex' files
+reduce-patt
+ a perl script which could be used to verify which patterns do not
+ correspond to `real' words present in a wordlist. It is used by
+ `mkcyryo' script to remove unnecessary patterns. This was suggested
+ by Alexander Lebedev, and requires his excellent rus-ispell dictionary
+ available at ftp://scon155.phys.msu.su/pub/russian/ispell/rus-ispell.tar.gz
+ (we used version 0.99f4 in preparation of this package).
+
+ The following command will generate a lowercased wordlist with
+ letter `cyryo', needed for `mkcyryo' and `reduce-patt' scripts:
+
+ cat russian.dict | ispell -d russian -e | tr ' -' '\012-' | \
+ grep | ./sortkoi8 | uniq > /tmp/.wl-lc-cyryo
+
+ Remove `grep ' from a pipe to get a full lowercased wordlist
+ /tmp/.wl-lc-full useful for `reduce-patt' in general.
+
+
+3) TeX files for re-encoding of patterns from koi8-r to various TeX
+ font encodings.
+
+These files use commands like \lccode `\<letter>=<number> (instead of
+\lccode <number>=<number>), where <letter> is an 8-bit letter code (in
+koi8-r encoding, in which patterns are stored) and <number> is the
+slot number in the destination font encoding. This makes the patterns
+"stable" against reencoding to any Cyrillic encoding, and also usable
+with non-standard "on the fly" reencoding mechanisms like TCX or TCP
+(switched on at TeX format creation phase) used in some TeX
+implementations (provided that these transformations are 1-to-1 in
+*all* the range 128--255, -- otherwise the results may be incorrect).
+This was suggested by Alexander Cherepanov <cherepan@mccme.ru> (we'd
+like to thank him also for other useful suggestions on the ruhyphen
+package). However, we do not recommend using non-standard mechanisms
+like TCX or TCP in general (in favor of the portable and more powerful
+approach with active characters provided by inputenc LaTeX package and
+also used in cyrplain package).
+
+As suggested by Alexander Fryntov, these files also include support
+for five additional Cyrillic letters present in koi8-ru encoding, so
+that they could be used e.g. for the Ukrainian hyphenation patterns.
+
+koi2t2a.tex
+ koi8-r to T2A encoding (for Russian letters, also T2B, T2C, T2D, X2).
+ This is the main font encoding to be used for typesetting Cyrillic
+ with TeX.
+koi2ucy.tex
+ koi8-r to UCY (Omega Unicode Cyrillic) encoding.
+koi2lcy.tex
+ koi8-r to LCY (similar to cp866) encoding used e.g. in `old' LH
+ fonts.
+koi2ot2.tex
+ koi8-r to OT2 7-bit Cyrillic TeX encoding used e.g. in
+ AMS Washington Cyrillic fonts (wncy*) and LH fonts (wn*).
+ To get better hyphenation and kerning, you may use virtual fonts
+ without WN-ligatures, like WLCY or WL fonts.
+koi2koi.tex
+ koi8-r to koi8-r setup (needed anyway to setup \lccode values).
+ Note, that `koi' is bad name for TeX font encoding.
+
+catkoi.tex
+ Set the \catcode values of the lowercase Russian letters in the
+ koi8-r encoding to 12. The purpose of this file is to avoid strange
+ effects in case of unusual catcodes (e.g. active) for the letters
+ used in hyphenation files.
+
+
+4) files to be used by users
+
+ruhyphen.tex
+ main `head' file which inputs the specified patterns and re-encodes
+ them to the specified font encoding. Users can edit this file,
+ selecting the patterns and font encodings.
+ruenhyph.tex
+ alternative `head' file which inputs combined Russian-English
+ patterns. Do not mix patterns for 7-bit Cyrillic font encodings
+ (OT2) with English patterns! This can be used only for 8-bit
+ Cyrillic font encodings (and, of course, for UCY).
+
+
+5) other files
+
+README
+ this file
+enrhm2.tex
+ Avoid -xx breaks for English when \righthyphenmin=2. Used by
+ ruenhyph.tex.
+hypht2.tex
+ This file contains additional hyphenation patterns including the
+ character hyphen `-'. It enables the hyphenation of words containing
+ explicit hyphens when using fonts with \hyphenchar\font <> `\-
+ (e.g. T2* encoded fonts). Derived from `hypht1.tex' by Bernd Raichle;
+ see comments there. :-) To switch on hyphenation of words containing
+ explicit hyphens, one should (apart from preloading this file into
+ format) set \lccode`\-=`\-, and also \defaulthyphenchar=127 before
+ loading fonts (i.e. before \usepackage[T2A]{fontenc}), or set
+ \hyphenchar\font=127 for already preloaded font. Note that loading
+ these additional patterns requires significant additional amount
+ of TeX hyphenation trie size.
+
+sortkoi8
+ shell script; simple wrapper for `sort' to sort Russian texts
+ in koi8-r encoding alphabetically.
+sorthyph
+ Perl script for sorting hyphenation files (Latin or Cyrillic in
+ koi8-r encoding).
+trans
+ shell script for re-encoding between cp1251, koi8-r, cp866,
+ iso-8859-5, and Mac Cyrillic charsets (not used here).
+
+
+The following properties of patterns are customizable in the file
+ruhyphen.tex:
+
+* which font encoding to use. Note that this setting has nothing to do
+ with the input encodings of your (La)TeX documents!
+
+* which of seven available pattern files to use.
+
+* [1st optional line] whether to load patterns for the letter `cyryo'.
+
+* [2nd optional line] whether to load patterns which enable
+ hyphenation of words containing explicit hyphens (only in case of
+ using T2* font encodings). See the above description of hypht2.tex
+ for additional information.
+
+* [3rd optional line] whether to load two patterns .ne8 and 8ne. which
+ disallow breaking off the `ne' from a word (where `n' and `e' are
+ corresponding Russian letters; `ne' in Russian means `not' and breaking
+ it can confuse the reader). This was suggested by Alexander Lebedev.
+
+* [4th optional line] whether to load patterns which disallow breaking
+ a consonant followed by hard sign from a word. Such words are absent
+ in `modern' Russian language, but were used when `old orthography'
+ was in use. This was suggested by Alexander V. Lukyanov.
+
+And last but not least,
+
+* whether to load the file ruhyphen.tex or ruenhyph.tex (for combined
+ Russian-English hyphenation).
+
+
+Happy TeXing!
+
+
+Mail your comments, questions, and Russian hyphenation patterns which
+are absent in this collection to:
+
+ Werner Lemberg <wl@gnu.org>
+ Vladimir Volovich <vvv@vsu.ru>
diff --git a/Master/texmf-dist/source/generic/ruhyphen/README.ruhyphal b/Master/texmf-dist/source/generic/ruhyphen/README.ruhyphal
new file mode 100644
index 00000000000..0b736af3a41
--- /dev/null
+++ b/Master/texmf-dist/source/generic/ruhyphen/README.ruhyphal
@@ -0,0 +1,118 @@
+
+ 胂屯盼粤疑 踪姓铀 蜗踪 粤绿擅 信遗蜗酉 ruhyphal.tex
+
+夼 泡 夏瘟 粤绿擅 信遗蜗酉 奶 艺佑讼窍 掩偎?
+
+ 瘟釉涎菖 滓磐 奶 伊孪再 TeX 耘擞粤蜕 瘟 艺佑讼 掩偎 邢陶奚躺
+伊有蚁釉伊闻紊 叟釉 粤绿擅 桥闻伊蒙 信遗蜗酉, 捎邢特谡垒扇 幼吓
+嫌蜗着 撂窍疑酝 嬉廖肆 煅吻.  粤绿擅 酉乱廖 辛伺 ruhyphen
+魈聊赏梢贤 飨滔咨夼 髋椅乓贤 炫吐乓窍 瘟釉涎菖 滓磐 炎萄涝友
+蘖釉乩 釉廖牧以蜗窍 呐遗琢 肆粤滔窍 texmf.  -- 粤绿擅, 酉谀廖钨
+渫稍疑磐 髡躺酉 (ruhyphdv.tex 下馅瘟夼紊讶 辛伺粤 ruhyphen, 牧膛
+酉艘凛盼蜗 邢 赏盼 酉釉磷稍盘 -- dv), 扇 邢犹拍绽萘 拖纳粕肆蒙
+.飨蚁蚊献鲜 .熵紫子松 (ruhyphvl.tex, vl), 扇 孪膛 诱菖釉着挝裂
+信遗伊孪运, 幽盘廖瘟 奶 CyrTUG (ruhyphct.tex, ct), 粤酥 淖 闻诹咨由唾
+伊谝谅显松, 幽盘廖钨 笈仪排 镣盼铀赏 (ruhyphzn.tex, zn) 嵛囊排
+筇判杖晌偻 (ruhyphas.tex, as). 笙子磐 闻牧孜 辛伺 沦塘 姿汤夼瘟 泡
+夏瘟 粤绿擅 信遗蜗酉 (ruhyphmg.tex, mg), 酉釉磷膛挝裂 砩攘商贤 缫晌拚讼.
+
+ 酉至膛紊, 子 茉 粤绿擅 牧膛松 显 酉着役盼釉琢. 笠磷闻紊, 幸献拍盼钨
+瘟 遗撂匚偃 耘擞粤 (夏晌 韵 峙 TeX'献铀墒 耘擞 葡彝猎梢献撂友
+肆帜鲜 哨 账邻廖钨 粤绿擅 诹耘 廖撂哨梢献撂友 瘟 幸拍团 邢炎膛紊
+羡陕纤 "闻绿燎馅渍尬嫌耘" 幸 信遗蜗优), 邢肆诹躺, 拊 子 (!) 粤绿擅
+牧涝 羡陕松 信遗蜗恿, 幸赊磐 瘟商辙凵 遗谡特粤再, 瘟 信易偈 宗翘涯,
+邢陶蘖躺迂 幸 捎邢特谙琢紊 粤绿擅 髡躺恿 (dv) 排 幸仙谧夏钨 (vl, ct).
+
+涮 孪膛 孜赏猎盘匚锨 廖撂哨 伊谔赊墒 粤绿擅 沦躺 哨辙盼 屏侍 伊谔赊墒
+ 信遗蜗恿 奶 犹献, 忧盼乓梢献廖钨 哨 拖徘 弦葡且疗赊庞讼窍 犹献烈
+(ftp://scon155.phys.msu.su/pub/russian/ispell/rus-ispell.tar.gz), 讼韵屹
+邢肆诹躺, 拊 伊谔赊裳 蜗友 由釉磐猎赊庞松 攘伊嗽乓.
+
+袅, 粤绿擅 vl 炎萄旁友 幸嫌再 伊盂梢盼膳 粤绿擅 dv, 讼韵蚁 诹幸泡盼
+子 信遗蜗淤, 幸 讼韵屹 邢犹拍紊 犹锨 嫌粤旁友 屡 翘劣蜗 (瘟幸赏乓,
+屡-奈), 粤酥 已 信遗蜗酉, 邢谧咸牙萆 邢陶奚载 信遗闻优挝鲜 釉蚁伺
+闻幸商赊钨 犹献. 饔 嫌粤特钨 闻韵尬嫌陨 粤绿擅 dv 粤绿擅 vl 幸嫌韵
+讼猩艺旁.
+
+ 粤绿擅寥 ct 捎幸磷膛蜗 臀现庞宰 闻韵尬嫌耘 粤绿擅 dv (南铝滋盼,
+瘟幸赏乓, 臀现庞宰 显诱杂宰献磷凵 信遗蜗酉, 铀弦遗嗽梢献廖 已 羡陕纤
+信遗蜗酉 瘟 且廖擅 幸捎粤姿-讼遗呜), 蜗 子 伊孜 羡陕松 嫌粤躺迂,
+瘟幸赏乓: 琢-苏-胀--蚁-琢-紊, 踪--肆-终, 囊抛-闻-滓攀-铀墒,
+捎-讼-遗-重-耘, 闻-辛-钨, 夏--疑, 刑撩--烈-团, 邢-找-闻--耘, 酉-游,
+右-谏-陀 (谖了 信遗蜗恿 账邻僮晾 瘟 团釉 紫谕现钨 信遗蜗酉; 幸磷商
+信遗蜗酉 油显疑 酉幸献现牧垒磐 屏侍 hyphen.rules). 鹨 茉贤 闻 子
+捎幸磷膛紊 拖治 幸哨瘟载 漳赁钨蜕 (幸闲聊僚 蘖釉 信遗蜗酉, 晌锨牧
+紫谖伤晾 羡陕松).
+
+袅绿擅 as, zn 酉呐抑猎 诹团晕 孪特叟 羡陕纤, 讼韵屹 幸 葡彝猎梢献廖缮
+耘擞粤 右拍釉琢蜕 TeX 幸涎滋牙杂 肆 闻漳赁钨 信遗蜗 诱破伤优 商
+肆 闻幸磷商匚吓 显呐膛紊 幸捎粤姿 显 讼椅. 袅, 粤绿擅寥 as
+邢炎萄旁友 伊诼膳紊 抡俗 釉 诱破伤恿 (磷-韵-釉-紫, 了折乓--紫,
+廖-紊-蜗-陨), 已 囊涨扇 羡陕纤 (廖陨-疑-谏-钨, 茁-躺-谏,
+孜庞-陶-峙-钨, 淖-冗-岩沼-钨, 团-至-韵-钨, 夏-认-紫-遗-蜗,
+釉蚁市-滔-萘-肆, 耘-认-呐-膛, 夼-认-滔-琢-松, 砸湃--蚁-门卧-钨,
+婆特-倪-徘-依, 普-孪-躺-再, 奚-韵-汤-抛, 叟矣-匝-蜗). 钆铀咸厮
+陶捋排 仔呸猎膛紊 嫌粤旁友 显 粤绿擅 zn, 认匝 紊 幸捎赵釉渍旁 韵 峙
+瘟南拍躺紫 伊诼膳紊 抡俗 釉 诱破伤恿 (烈-陨-陨-蜗-载,
+哨-牧-耘特-釉-紫, 釉蚁-窍-陨, 叟-载) 羡陕松 (屡-釉烈-瘟,
+孪-窍-蚁-陨-钨, 诹-紫-呐-滔, 松-蜗-舆-磐限-钨, 团-耘嫌-紫-讼,
+拖-蜗-颂, 信-遗-誓盼-钨, 曝-弦-馁, 圬-旁).
+
+袅绿擅 mg 显躺蘖旁 扇 土藤 伊谕乓 (闻孪特巯 奚犹 幸磷商 信遗蜗恿),
+夏瘟讼 幸 茉贤 讼躺夼釉紫 羡陕纤 紊 纤邻僮僚杂 瘟臀锨 孪特叟.
+
+馀谡犹献蜗, 羡陕松 幸 信遗蜗优 闻哨屡治, 耘 孪膛 拊 釉蚁巧 幸磷商
+信遗蜗酉 显诱杂宰绽, 恿蜕 幸磷商 酉呐抑猎 捎颂擂盼裳 (瘟幸赏乓,
+信易偈 信遗蜗 犹献 哨-夼-紊 显屹琢旁 翘劣握 显 讼椅, 拊 诹幸泡盼
+葡彝撂匚偻 幸磷商镣, 蜗 耘 闻 团闻 愚稍僚杂 幸磷商匚偻). 胍贤 韵窍,
+信遗蜗淤 南讨钨 伊佑粤滋言赜 粤, 拊下 伊谙易廖蜗 犹献 嫌粤琢滔迂
+膛撬 遮瘟琢磐偻. 盍幸赏乓, 犹献 信遗-掀弦吞盼钨, 瘟-琢治攀凵,
+桥-且疗裳 遮瘟涝友 窍伊谀 膛寝, 夼 葡彝撂匚 着椅倥 油儆膛 信遗蜗酉
+犹献 信遗-葡彝膛挝偈, 瘟-勺林闻售墒, 桥-锨伊粕. 鹣 茉鲜 幸赊晌 闻讼韵屹
+信遗蜗淤 陶捋 诹幸旁稍.
+
+袅 邢炎商劣 赡叛 酉谀猎 (邢 艘潦闻 团遗 奶 幼吓 伊孪再) 粤绿擅,
+酉呐抑凛膳 紫谕现蜗 团呜叟 奚犹 羡陕纤. 盍 信易贤 茉列 沦滔 遗叟蜗
+拖纳粕蒙蚁琢载 粤绿擅 髡躺恿, 讼韵屹 炎萄涝友 public domain, 伊谝袍盼
+奶 拖纳粕肆蒙 , 肆 臀 邢肆诹滔迂, 酉呐抑猎 右磷紊耘特蜗 闻臀锨 羡陕纤.
+飨谕现蜗, 拖纳粕肆蒙 粤绿擅 镣盼铀锨 沦塘 沦 孪膛 芷婆嗽勺蜗, 蜗 衔
+诹幸泡盼 躺门乌膳. 钕琢 粤绿擅 沦塘 瘟谧廖 ( 酉显着杂宰缮 酉 尤磐鲜
+瘟赏盼献廖裳, 幸拍滔峙挝鲜 辛伺耘 ruhyphen) ruhyphal.tex.
+
+盍 信易贤 茉列 粤绿擅 沦躺 姿汤夼钨 幸磷商, 捎颂擂晾萆 桥闻伊蒙
+邢犹拍闻窍 犹锨 屡 翘劣蜗 (陨辛 拖-蜗-颂); 瘟誓盼 南铝滋盼 廖撂锨赊钨
+幸磷商 奶 捎颂擂盼裳 邢炎膛紊 信易锨 犹锨 屡 翘劣蜗 (粤松 肆 圬-旁);
+捎颂擂盼 孪特凵斡宰 犹辙僚 邢炎膛紊 优遗纳闻 犹献 犹锨献, 酉釉涎萆
+哨 夏紊 酉翘劣钨; 信遗猩恿钨 幸磷商 信遗蜗酉 犹献, 酉呐抑凛扇 抡俗 , .
+鹣 右磷闻紊 捎认奈偻 粤绿擅镣 dv 沦滔 哨团闻蜗 (捎颂擂盼 商 信遗呐塘蜗)
+幸赏乓蜗 25% 幸磷商. 赓 捎幸磷膛 已 羡陕纤, 紫谖伤晾萆 瘟 且廖擅
+幸捎粤姿-讼遗呜, 幸了陨夼铀 子 羡陕松 幸 桥闻伊蒙 纤衔蘖紊.
+胍贤 韵窍, 哨 苡耘陨夼铀扇 酉下伊峙紊 南铝滋盼 幸磷商, 邢 讼韵蚁驼 闻
+拖钦 信遗蜗由载友 犹锨, 酉釉涎萆 哨 淖杖 翘劣钨 屡 酉翘劣蜗 (陨辛
+琳-纳韵疑). 竽盘廖钨 捎幸磷膛紊 讼游仗捎 瘟猩恿紊 孪膛 51 再友
+犹献.
+
+筇拍绽萘 (自弦裂) 着矣裳 粤绿擅 ruhyphal.tex 酉谀廖 邢拖葚 幸锨伊屯
+patgen 瘟 嫌蜗着 南釉猎限蜗 暂猎盘匚 踪着遗挝锨 有捎肆 犹献 信遗蜗恿蜕,
+邢陶夼挝偃 瘟 信易贤 茉列. 鹣 右磷闻紊 信易偻 茉列贤, 瘟 自弦贤
+茉列 有捎伺 沦滔 铀弦遗嗽梢献廖 瘟猩恿紊 纤咸 24 再友 犹献.
+鹣犹拍窝 (瘟釉涎萘) 着矣裳 粤绿擅 ruhyphal.tex 粤酥 酉谀廖 邢拖葚
+幸锨伊屯 patgen 瘟 嫌蜗着 伊盂梢盼蜗窍 有捎肆 犹献 (990 再友 犹献掀弦)
+ 臀现庞宰贤 南邢涛盼墒 仗辙叟紊 信遗蜗恿.
+
+锬蜗滓磐盼蜗 粤绿擅镣 ruhyphal.tex 辛伺 姿汤夼瘟 南邢涛稍盘匚裂
+粤绿擅 cyryoal.tex, 酉呐抑凛裂 子 诱菖釉着挝倥 幸磷商 葡彝梢献廖裳
+信遗蜗酉 犹献寥, 酉呐抑凛扇 抡俗 .  粤绿擅 桥闻疑艺涝友 邢拖葚
+幸锨伊屯 mkcyryo, 哨 讼韵屹 诹耘 邢拖葚 拖徘 弦葡且疗赊庞讼窍
+犹献烈 (聊遗 讼韵蚁窍 沦 账邻廖 踪叟) 漳撂牙杂 子 闻捎邢特谡磐倥 幸磷商.
+
+鹣犹 夼再遗 膛 伊孪再 瘟 粤绿擅镣, 肆 臀 肆峙杂, 扇 肆夼釉紫 釉撂
+陶捋, 夼 肆夼釉紫 嫌粤特钨 粤绿擅 信遗蜗恿. 锬瘟讼 纤衔蘖耘特蜗
+诱帜盼膳 邢 茉贤 紫幸嫌 拖钦 幽盘猎 韵特讼 邢特谙琢耘躺. 罅蜕 粤绿擅
+ 讼纳蚁姿 koi8-r 拖治 瘟试 邢 聊遗诱:
+
+ ftp://scon155.phys.msu.su/pub/russian/hyphen/ruhyphal.tar.gz
+
+笞仙 讼屯盼粤疑 邢峙塘紊 踪 拖峙耘 瘟幸磷萄载 酉釉磷稍盘 粤绿擅,
+崽潘恿文艺 炫屡呐渍 <swan@scon155.phys.msu.su>.
+
diff --git a/Master/texmf-dist/source/generic/ruhyphen/hyphen.rules b/Master/texmf-dist/source/generic/ruhyphen/hyphen.rules
new file mode 100644
index 00000000000..996e146b5d8
--- /dev/null
+++ b/Master/texmf-dist/source/generic/ruhyphen/hyphen.rules
@@ -0,0 +1,129 @@
+鹨磷商 信遗蜗恿 艺佑讼 掩偎 (诹赏釉紫琢蜗 哨 宋汕 ..赓躺斡讼窍
+ ..钌讼特铀锨 "笮伊紫尬伤 邢 弦葡且疗缮 姓嗡哉撩缮 奶 伊孪晕伤献
+信蘖陨" (硐铀琢, 橛苏佑宰, 1952).
+
+1. 筇献 信遗蜗由杂 邢 犹锨镣: 釉-躺, 髁-由-躺-恿.
+
+2. 钆特谘 嫌粤滋言 瘟 幸拍倌蛰攀 釉蚁伺 商 信遗蜗由载 瘟 犹拍绽菡
+釉蚁苏 夏握 抡俗 犹献.
+
+3. 庹俗 , , 闻特谘 显呐萄载 显 幸拍叟釉渍垒攀 抡俗; 拖治 信遗闻釉
+粤: 邢倪-炮, 邢特-诹, 紫-瘟, 伊-衔.
+
+4. 鹨 信遗蜗优 犹献 瘟 团釉 酉拍晌盼裳 淖杖 商 孪特叟 酉翘劣钨 茉
+酉翘劣钨 拖治 显闻釉 幸拍叟釉渍垒磐 犹锨 邢犹拍绽菖驼:
+优-釉伊, 优-砸, 优釉-伊.
+
+5. 鹨 呐膛紊 瘟 犹锨 幸 信遗蜗优 闻 犹拍张 酉翘劣握 讼椅,
+釉涎菡 瘟 釉偎 诱破伤酉, 显蜗由载 诱破伤诱. 钆幸磷商匚: 滔-邹墒,
+拖铀-子松, 蚁-奈鲜; 犹拍张: 滔-奚, 拖铀献-铀墒, 蚁-蜗.
+
+鹨 釉呸盼缮 酉翘劣钨, 显蜗友萆扔 伊谖偻 诱破伤恿, 陶捋 伊谀盘言
+邢 诱破伤恿. 盍幸赏乓: 团萘-釉紫, 闻 团萘-斡宰; 商 釉蚁稍盘-釉紫,
+ 闻 釉蚁稍-特釉紫 闻 釉蚁稍盘赜-宰.
+
+6. 钆 犹拍张 酉翘劣握 幸捎粤姿 显蜗由载 犹拍绽菖驼 诹 闻 犹锨
+商 酉翘劣握 讼椅 (屡 翘劣蜗) 嫌粤滋言 幸 幸捎粤姿. 钆幸磷商匚:
+邢-穆胖猎, 屡-有遗釉廖蜗, 踪-陨伊载, 幸潘-伊游偈, 幸庞-膛南琢载;
+犹拍张: 邢-屡至载, 屡-幸庞粤挝, 踪-釉梢猎, 幸-艘劣钨, 幸-犹拍献猎.
+
+橛颂擂盼膳: 犹献, 悄 幸捎粤姿 邢耘已塘 罩 幼吓 恿拖釉涎耘特蜗 谖赁盼膳
+ 犹商劣 讼椅磐: 伊-谡, 邢-恼鬯.
+
+7. 逵躺 讼遗呜 犹献 瘟奚瘟旁友 翘劣蜗, 韵 闻 犹拍张 嫌粤滋言 瘟
+夏蜗 釉蚁伺 幸捎粤姿 信易鲜 翘劣蜗 讼椅, 嫌粤特握 蘖釉 犹献
+信遗蜗由载. 筇拍张 商 显呐躺载 幸捎粤姿 显 讼椅 商 嫌粤咨载 幸 闻
+淖 犹锨 讼椅. 钆幸磷商匚: 屡诹-琢疑饰偈, 下-釉遗紊, 幸烧-蚁奚载,
+邢南-由蜗咨; 犹拍张: 屡-磷烈墒钨, 下-嫌砸盼膳, 幸-找限稍, 邢-嫌晌献伤
+商 幸烧蚁-奚载, 邢南由-蜗咨.
+
+胂闻尬, 瘟南 显躺蘖载 瘟蘖特握 翘劣握 讼椅 显 琢疑廖韵 幸捎粤姿.
+盍幸赏乓, 幸磷商匚 信遗闻釉 粤: 瘟南-易猎赜, 下-俏猎, 幸拍-釉磷稍.
+
+8. 鹨 信遗蜗优 犹现钨 酉艘凛盼钨 犹献 犹拍张 伊诼勺猎 瘟 酉釉磷萄垒膳
+扇 蘖釉: 辛以-弦, 有琶-釉磷肆, 蜗 闻 粤: 辛-韵仪, 有琶-粤姿. 钆
+犹拍张 粤酥 下庞油儆躺琢载 犹现钨 犹献 信遗蜗酉. 硐治 信遗闻釉:
+恼-撂劳晌墒, 闻 恼伊-汤蜕紊.
+
+9. 鹨 信遗蜗优 瘟 团釉 釉偎 淖杖 夏晌了献偃 酉翘劣钨 信遗 翘劣蜗
+夏瘟 哨 紊 信遗蜗由杂, 囊涨裂 嫌粤旁友 瘟 幸拍倌蛰攀 釉蚁伺:
+幸贤氽膛-蜗釉, 颂劣-淤. 钕: 颂劣-钨, 幸锨伊屯-钨.
+
+鹨捎粤姿 信遗 讼椅淹, 瘟奚瘟垒赏捎 , 粤酥 淖鲜钨
+酉翘劣钨 瘟蘖膛 讼椅 幸 信遗蜗优 闻 伊谀盘牙杂: 蜗紫-鬃拍盼膳,
+邢-佑弦稍, 邢南-种盼钨.
+
+10. 犹献寥, 赏爬萆 邢犹 幸捎粤姿 , 茉 抡俗 嫌粤旁友 幸 幸捎粤姿:
+蚁谫-且氽, 邢馁-铀猎.
+
+
+鹣认稚 (拚载 南邢涛盼钨) 幸磷商 拖治 瘟试 宋汕 耘 峙 磷韵蚁
+"蛘佑松 掩偎: 笮伊紫尬伤 邢 弦葡且疗缮 姓嗡哉撩缮" (5- 哨牧紊, .,
+橼. 礴, 1998).
+
+ ---------------------------------------------------------------
+
+飨 拊 窍紫疑 孪膛 幼胖墒 捎韵尬伤 (..湔奈伤献, ..嵋抡谙琢,
+..飨蚁致擅肆. 蛘佑松 掩偎. ., 髻盂.鬯咸, 1977):
+
+锫俎蜗 犹献 信遗蜗友杂 邢 犹锨镣 (南-蚁-橇, 幸拍-伊-幼旁-钨,
+幸-南-稚-耘特-蜗釉).
+
+淞挝吓 幸磷商 赏排 犹拍绽萆 锨伊紊夼紊:
+
+1. 瘟蘖特钨 讼闻尬倥 翘劣钨 抡俗, 下馅瘟蘖垒膳 显呐特钨 犹锨, 闻
+嫌粤滋牙杂 瘟 釉蚁伺 闻 信遗蜗友杂 瘟 釉蚁苏 (镣-疑-肆-铀墒,
+研衔-铀墒, 邢--谏, 砸-南-汤-律);
+
+2. 讼闻尬倥 酉翘劣钨 抡俗 幸捎粤紫 闻下认纳拖 嫌粤滋言 瘟 釉蚁伺
+(邢-乱-由载, 紫-伊-谏载, 瘟-乱献-钨);
+
+3. 闻特谘 信遗蜗由载 瘟 犹拍绽菡 釉蚁苏 蘖釉 犹献, 瘟奚瘟垒绽友
+抡俗鲜 (邢-馁-韵-稚载);
+
+ [团蘖紊: 闻砸漳蜗 咨呐载, 拊 信易偈 信遗蜗 幸赏乓
+ 瘟艺哿旁 幸磷商 2. 显 信遗蜗 邢-咨纳拖驼 犹拍张 捎颂擂稍.]
+
+4. 闻特谘 幸捎吓纳窝载 幸捎粤姿 瘟 翘劣握 信易绽 酉翘劣握 抡俗
+讼椅 (邢-囊-巧, 诹-幼旁-滔, 紫-易猎-友);
+
+5. 闻特谘 伊诼勺猎 幸 信遗蜗优 诱破伤 -铀- (酉-着-铀墒, 埔廖-谜-铀墒,
+艺-铀墒); 幸仙谧夏钨 显 闻窍 诱破伤淤 -庞-, -夼铀- 囊. 幸 信遗蜗优
+伊诼勺晾杂 (滓-峙-松, 招-南-紊-夼-松);
+
+6. 闻特谘 嫌粤滋言 瘟 釉蚁伺 商 信遗蜗由载 瘟 犹拍绽菡 釉蚁苏 淖
+夏晌了献倥 酉翘劣钨 (讼-膛-蒙, 讼-驼-紊谕, 嫌盼-紊).
+
+ -----------------------------------------------------------------
+
+ 紫 拊 瘟猩恿蜗 宋汕 .饬哲伊 "嶷抡肆 瘟孪逸伤" (橼. 汶 篁痧 篌篁,
+., 1925) [镉下盼蜗釉 姓嗡哉撩缮 酉纫廖盼賋:
+
+1. 锬蜗犹现钨 犹献 闻特谘 紊讼悄 伊谀盘言 扇 犹拍张 商 踪颂擂猎
+ 哉 峙 釉蚁苏, 商 门躺讼 信遗蜗由载 瘟 犹拍绽菡, 瘟幸., 讼, 南帜,
+釉判. 胍贤 韵窍 闻特谘 信遗蜗由载 纤衔蘖紊 犹献 商 峙 显呐萄载 瘟蘖滔
+犹献, 酉釉涎萆 哨 夏紊 韵特讼 酉翘劣钨 抡俗, 肆 瘟幸赏乓, 犹献
+"子邢臀", 拖治 伊谀盘稍 瘟 子邢-臀, 闻 子-邢臀.
+
+2. 盍认难萘延 团帜 淖胀 翘劣钨蜕 夏瘟 酉翘劣瘟 幸 信遗蜗优 显蜗由杂
+ 犹拍绽菖驼 犹锨, 肆 瘟幸., 邢-膛, 谖-脱, 幼-孪-牧.
+
+3. 逵躺 脱撬墒 谖了 "" 釉仙 团帜 淖胀 酉翘劣钨蜕, 韵 徘 闻特谘
+显呐萄载, 犹拍张 子徘牧 嫌粤滋言 瘟 信易鲜 釉蚁伺, 瘟幸.: 土膛呜-松,
+土特-奚. 钕 庞躺 "" 伊谀盘雅 翘劣钨 , , , , 显 酉翘劣蜗, 韵
+韵悄 犹献 闻特谘 伊诼稍 嫌粤滋盼膳 "" 瘟 信易鲜 釉蚁伺, 徘
+犹拍张 信遗闻釉 瘟 犹拍绽菡, 瘟幸. 飨蚁-仑抛, 笙滔-棕抛.
+
+4. 钆特谘 伊谀盘言: 绿, 滋, 吞, 刑, 铺, 帜, 邢茉贤 犹拍张 信遗蜗由载:
+瘟呐-帜, 滔-滋, 汤-绿.
+
+5. 笳破伤淤 铀墒 釉紫 紊讼悄 闻 伊谀盘牙杂, 邢茉贤 犹拍张 信遗蜗由载:
+壬蜕夼-铀墒, 闲陨夼-铀墒, 韵抑-釉紫, 幸邻奈-釉紫.
+
+6. 鹨 信遗蜗优 犹现钨 犹献 闻下认纳拖 邢臀稍, 拊 闻特谘 显紊土载 讼椅
+夏握 商 闻铀咸厮 抡俗 幸捎吓纳窝载 扇 幸捎粤姿, 犹拍张 呐躺载
+韵尬 瘟 讼遗呜 幸捎粤姿 闻驼; 邢茉贤 瘟南 信遗蜗由载 信易-谧廖钨,
+紊-认纳载.
+
+7. 筇现钨 犹献 瘟南 呐躺载 瘟 扇 酉釉磷钨 蘖釉: 遗-姓绿伤, 陨邢-且疗裳,
+宋汕-信蘖粤紊, 信遗-刑旁奚, 辛蚁-认.
diff --git a/Master/texmf-dist/source/generic/ruhyphen/mkcyryo b/Master/texmf-dist/source/generic/ruhyphen/mkcyryo
new file mode 100755
index 00000000000..286c8657549
--- /dev/null
+++ b/Master/texmf-dist/source/generic/ruhyphen/mkcyryo
@@ -0,0 +1,22 @@
+#!/bin/sh
+# make patterns for the cyryo by repeating patterns for cyre
+
+TMP=.cyryo-tmp
+
+awk '/^\\patterns{/ {p=1;next} /^}/ {p=0;next} p {print}' $1 > $TMP
+cat $TMP | grep '' | grep -v '臶^臸*' > ${TMP}1
+cat $TMP | grep '臶^臸*' | grep -v '臶^臸*臶^臸*' > ${TMP}2
+cat $TMP | grep '臶^臸*臶^臸*' > ${TMP}3
+test ! -s ${TMP}3 || { echo "*** triple cyre detected in $1:" 1>&2; cat ${TMP}3 1>&2; }
+
+{
+echo "% accompanying patterns for cyryo generated from $1"
+echo "\patterns{"
+cat ${TMP}1 | sed 's,,,'
+cat ${TMP}2 | sed 'y,,,'
+cat ${TMP}2 | sed 's,,,'
+cat ${TMP}2 | sed 's,,,2'
+echo "}"
+} | ./reduce-patt | ./sorthyph
+
+rm -f $TMP ${TMP}[123]
diff --git a/Master/texmf-dist/source/generic/ruhyphen/reduce-patt b/Master/texmf-dist/source/generic/ruhyphen/reduce-patt
new file mode 100755
index 00000000000..3d146e09c26
--- /dev/null
+++ b/Master/texmf-dist/source/generic/ruhyphen/reduce-patt
@@ -0,0 +1,8 @@
+#!/usr/bin/perl -n
+
+if (/^\\patterns{/) { $p=1; print; next; }
+if (/^}/) { $p=0; print; next; }
+if (!$p) { print; next; }
+
+$p=$_; chomp; y/0-9//d; s/^\./^/; s/\.$/\$/;
+print $p if (!system "grep", "-q", "$_", "/tmp/.wl-lc-cyryo");
diff --git a/Master/texmf-dist/source/generic/ruhyphen/sorthyph b/Master/texmf-dist/source/generic/ruhyphen/sorthyph
new file mode 100755
index 00000000000..13680ee5931
--- /dev/null
+++ b/Master/texmf-dist/source/generic/ruhyphen/sorthyph
@@ -0,0 +1,9 @@
+#!/usr/bin/perl
+# sort a hyphenation file
+$| = 1;
+while (<>) { print; last if /^\\patterns{/ }
+open (SORT, "| sh sortkoi8 | awk '{print \$2}'");
+while (<>) { last if /^}/; chomp; $temp=$_; s/[0-9.]//g; print SORT "$_\t$temp\n" }
+close (SORT);
+print;
+while (<>) { print }
diff --git a/Master/texmf-dist/source/generic/ruhyphen/sortkoi8 b/Master/texmf-dist/source/generic/ruhyphen/sortkoi8
new file mode 100755
index 00000000000..ac990400ba3
--- /dev/null
+++ b/Master/texmf-dist/source/generic/ruhyphen/sortkoi8
@@ -0,0 +1,16 @@
+#!/bin/sh
+# sort a file in Cyrillic koi8-r encoding alphabetically
+#
+# -f Fold lower case characters into the equivalent upper case
+# characters when sorting so that, for example, `B' is greater
+# than `a' (without `-f', uppercase characters precede lowercase).
+
+if [ "$1" = "-f" ]; then
+ FOLD="-f"
+ ALPH='崃饴髯缜淠迮常鲋樯晔胨焯硗钗锵鹦蛞笥粼跽嫫枞忝啭嬴攸茑礼'
+else
+ ALPH='徕麋溴出觌祉铒痱篝蹑桡窳伦悄牛众墒颂臀闲矣哉迫棉圯哔剀姥'
+fi
+TEMP='究懒旅呐魄壬仕掏蜗醒矣哉肿刭谯茌捱噌忏溴骁栝觌祉铒瘃蝮趱鲼'
+
+tr $ALPH $TEMP | sort $FOLD | tr $TEMP $ALPH
diff --git a/Master/texmf-dist/source/generic/ruhyphen/trans b/Master/texmf-dist/source/generic/ruhyphen/trans
new file mode 100755
index 00000000000..1a65ffaec36
--- /dev/null
+++ b/Master/texmf-dist/source/generic/ruhyphen/trans
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+koi='徕麋溴鳅殛腱眍镳蝮趱骅泾窳伦悄胖谏仕掏蜗幸釉掌让捋葸儇芾殉'
+iso='氨渤吹斗腹夯冀究懒旅呐魄壬仕掏蜗醒矣哉肿刭谯茌捱噌忏溴骁栝觌祉铒●'
+win='懒旅呐魄壬仕掏蜗醒矣哉肿刭谯茌捱噌忏溴骁栝觌祉铒瘃蝮趱鲼ǜ'
+alt='亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆徕沅彐玷殛腱眍镳'
+mac='亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪熰徕沅彐玷殛腱眍镳耱篝貊鼬咻'
+
+eval tr \$$1 \$$2