summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/enctex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 00:56:57 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 00:56:57 +0000
commitf07bb53970ee2ecc53f81a206a3d3a67ef665e4a (patch)
tree6f57a1d62971db79e5ff023bdfd83b22cb971dc9 /Master/texmf-dist/doc/generic/enctex
parent007f67a693e4d031fd3d792df8e4d5f43e2cb2e7 (diff)
doc 6
git-svn-id: svn://tug.org/texlive/trunk@85 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/enctex')
-rw-r--r--Master/texmf-dist/doc/generic/enctex/COPYING340
-rw-r--r--Master/texmf-dist/doc/generic/enctex/COPYING.UCD30
-rw-r--r--Master/texmf-dist/doc/generic/enctex/INSTALL131
-rw-r--r--Master/texmf-dist/doc/generic/enctex/INSTALL.eng121
-rw-r--r--Master/texmf-dist/doc/generic/enctex/README101
-rw-r--r--Master/texmf-dist/doc/generic/enctex/changes.txt27
-rw-r--r--Master/texmf-dist/doc/generic/enctex/encdoc-e.pdfbin0 -> 134361 bytes
-rw-r--r--Master/texmf-dist/doc/generic/enctex/encdoc-e.tex947
-rw-r--r--Master/texmf-dist/doc/generic/enctex/encdoc.pdfbin0 -> 152083 bytes
-rw-r--r--Master/texmf-dist/doc/generic/enctex/encdoc.tex1168
-rw-r--r--Master/texmf-dist/doc/generic/enctex/math-example.tex23
-rw-r--r--Master/texmf-dist/doc/generic/enctex/unimap.diff1402
-rwxr-xr-xMaster/texmf-dist/doc/generic/enctex/unimap.py144
-rw-r--r--Master/texmf-dist/doc/generic/enctex/vlna.tex54
14 files changed, 4488 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/enctex/COPYING b/Master/texmf-dist/doc/generic/enctex/COPYING
new file mode 100644
index 00000000000..60549be514a
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/Master/texmf-dist/doc/generic/enctex/COPYING.UCD b/Master/texmf-dist/doc/generic/enctex/COPYING.UCD
new file mode 100644
index 00000000000..a5f75d395ce
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/COPYING.UCD
@@ -0,0 +1,30 @@
+The unimap.diff file contains parts of Unicode Character Database data,
+covered by following license:
+
+
+UCD Terms of Use
+
+Disclaimer
+
+The Unicode Character Database is provided as is by Unicode, Inc. No claims are
+made as to fitness for any particular purpose. No warranties of any kind are
+expressed or implied. The recipient agrees to determine applicability of
+information provided. If this file has been purchased on magnetic or optical
+media from Unicode, Inc., the sole remedy for any claim will be exchange of
+defective media within 90 days of receipt.
+
+This disclaimer is applicable for all other data files accompanying the Unicode
+Character Database, some of which have been compiled by the Unicode Consortium,
+and some of which have been supplied by other sources.
+
+Limitations on Rights to Redistribute This Data
+
+Recipient is granted the right to make copies in any form for internal
+distribution and to freely use the information supplied in the creation of
+products supporting the UnicodeTM Standard. The files in the Unicode Character
+Database can be redistributed to third parties or other organizations (whether
+for profit or not) as long as this notice and the disclaimer notice are
+retained. Information can be extracted from these files and used in
+documentation or programs, as long as there is an accompanying notice
+indicating the source.
+
diff --git a/Master/texmf-dist/doc/generic/enctex/INSTALL b/Master/texmf-dist/doc/generic/enctex/INSTALL
new file mode 100644
index 00000000000..aa3d949725a
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/INSTALL
@@ -0,0 +1,131 @@
+
+ EncTeX -- rozšíření TeXu o možnost překódování -- popis instalace
+ =================================================================
+ 1. 9. 1997 Petr Olšák
+ 3. 1. 2003
+
+Nejprve popíšu postup při instalaci encTeXu na web2c verze 7.3, kde již
+původně byl originální program TeX kompilován, nebo byl aspoň spuštěn
+configure (podle pokynů pro instalaci web2c TeXu) a jsou připraveny
+knihovny TeXu (*.tfm, *.tex apod.) v /usr/local/share/texmf.
+
+V balíku jsou dodáván patch pro verzi web2c 7.3.7
+
+1. přejdeme do adresáře, kde je tex.ch a tex.web:
+
+ $ cd source/TeX/texk/web2c
+
+2. Rozbalíme enctex.tar.gz:
+
+ $ zcat /zdroj/enctex.tar.gz | tar xvf -
+
+3. Aplikujeme změnu souboru tex.ch:
+
+ $ patch -p0 <./enctex/enctex.patch-to-7.3.7
+
+ nebo
+
+ $ patch -p0 <./enctex/enctex.patch-to-7.5
+
+ v závislosti na verzi web2c, kterou máme.
+ Soubor enctex.patch-to-7.5 je možné použít i na web2c 7.4.5,
+ což byla aktuální stabilní verze teTeXu.
+
+ Pokud máte verzi web2c 7.5, pak můžete navíc
+ po aplikaci tohoto patche použít ještě patch
+ enc-option.patch-to-7.5, který přidává přepínač -enc do
+ příkazového řádku (bez něho není encTeX inicializován) a
+ řeší spolupráci s TCX tabulkami. Tato dvojice patchů byla zaslána
+ Olafu Weberovi k zařazení do standardní distribuce web2c.
+
+ Doporučuji přejít z verze encTeXu Feb. 2003 na verzi Jun. 2004,
+ která opravuje některé chyby:
+
+ $ patch -p0 <./enctex/enctex.patch-jun2004
+
+ Pokud tento krok ohlásí chybu pro Hunk #1, je potřeba v souboru
+ tex.ch nahradit řetězec "Feb. 2003" textem "Jun. 2004" manuálně.
+ Ostatní části záplaty (hunks) by měly projít bez problémů.
+
+4. Překompilujeme TeX:
+
+ $ make tex
+
+Tento povel v sobě zahrnuje jednak
+tangle tex.web tex.ch
+což vytvoří Pascalský kód TeXu tex.p. Dále se provede
+./web2c/convert tex.p
+takže vznikají jednotlivé moduly tex?.c v jazyce C. Potom se tyto moduly
+kompilují kompilátorem jazyka C a nakonec linkují do spustitelného programu
+tex. Výsledkem je tedy nový program tex a dále nový inicializační soubor
+tex.pool.
+
+5. Instalujeme binární program tex a soubor tex.pool do systému
+(cesty se ve Vašem systému mohou mírně lišit):
+
+ $ strip tex
+ $ su
+ # cp tex /usr/local/bin
+ # cp tex.pool /usr/local/share/texmf/web2c
+
+6. Instalujeme vstupní tabulky *.tex z balíku encTeX. Doporučuji je zařadit
+do adresáře enctex:
+
+ # mkdir /usr/local/share/texmf/tex/generic/enctex
+ # cp enctex/*.tex /usr/local/share/texmf/tex/generic/enctex
+ # texhash
+
+7. Inicializujeme znovu formáty. Pro verzi encTeXu z oficiální
+web2c-7.5.3 je nutné použít při generování formátů (nikoli při použití
+formátu) přepínač -enc. Význam tohoto přepínače je vysvětlen
+v dokumentaci encdoc.tex|dvi|pdf.
+Příklady proto uvádím s tímto přepínačem.
+
+ # cd /usr/local/share/texmf/web2c
+ # tex -ini -enc plain
+ *\dump
+ # tex -ini -enc csplain.ini
+ # tex -ini -enc -jobname cslatex cslatex.ini
+
+Pokud chcete hned využít nových vlastností TeXu, zkuste instalovat
+některý z formátů plain-x-y, například:
+
+ # tex -ini -enc plain-1250-cs
+
+Viz soubory enctex/plain-*-*.tex a enctex/kam-latex.tex.
+
+8. Pozměněný tex.ch čte tangle i při kompilaci programů pdftex a
+etex. Tyto programy budou tedy po kompilaci také obsahovat encTeX.
+Při požití enctex.patch-to-7.3 se kromě tex.ch pozměnil v drobné
+maličkosti i soubor pdftexdir/tex.pch, což je nutné pro zdárnou
+kompilaci. Stačí tedy vytvořit pdftex obvyklým způsobem:
+
+ $ make pdftex
+ $ strip pdftex
+ $ su
+ # cp pdftex /usr/local/bin
+ # cp pdftex.pool /usr/local/share/texmf/web2c
+ # cd /usr/local/share/texmf/web2c
+ # pdftex -ini -enc -jobname pdfplain plain
+ *\dump
+ # pdftex -ini -enc -jobname pdfcsplain csplain.ini
+ # pdftex -ini -enc -jobname pdfcslatex cslatex.ini
+
+9. Program Omega není encTeXem pozměněn, protože při své kompilaci
+nenačítá tex.ch. Taky by to nemělo žádnou logiku, protože omega má
+svůj vlastní konfigurovatelný input procesor.
+
+--------------
+
+Protože encTeX pozměňuje pouze velmi málo věcí ve změnovém souboru
+tex.ch, je možné jej při troše ruční práce instalovat i na jiných
+implementacích TeXu, kde jsou k dispozici zdrojové texty TeXu tex.web
+a tex.ch. Stačí se podívat do souboru enctex.ch, kde je patrné, jaké
+změny se mají provést. Veškerý kód encTeXu se opírá o standardní
+části programu tex.web s výjimkou ukládání vektorů xord a xchr do
+formátu. Zde jsem s výhodou použil již hotové pomocné funkce
+dump_things a undump_things napsané pro web2c přímo v jazyce C. Pokud
+by to někdo potřeboval v jiné implementaci, musel by zřejmě použít
+analogii k dump_four_ASCII z tex.web.
+
+
diff --git a/Master/texmf-dist/doc/generic/enctex/INSTALL.eng b/Master/texmf-dist/doc/generic/enctex/INSTALL.eng
new file mode 100644
index 00000000000..5bf9db32dac
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/INSTALL.eng
@@ -0,0 +1,121 @@
+
+ EncTeX -- the extension of TeX based on tex.ch --- INSTALLATION
+ ===============================================================
+ 1. Sep. 1997 Petr Ol\v s\'ak
+ 3. Jan. 2003
+
+For more information about encTeX -- read the README file.
+
+You can install the encTeX extension with no problems on web2c
+ver 7.3.
+
+We describe the installation, if the original TeX was complied already or
+if (at least) the ./configure script was run on web2c source tree and
+the TeX libraries are installed in /usr/local/share/texmf.
+
+1. Go to a directory with the tex.ch and tex.web files:
+
+ $ cd source/TeX/texk/web2c
+
+2. Unpack enctex.tar.gz:
+
+ $ zcat /somewhere/enctex.tar.gz | tar xvf -
+
+ The ./enctex directory is created with files of the package.
+
+3. Apply the patch to tex.ch file:
+
+ $ patch -p0 < ./enctex/enctex.patch-to-7.3.7
+
+ or
+
+ $ patch -p0 < ./enctex/enctex.patch-to-7.5
+
+ If you are using the web2c 7.4.5 or web2c 7.5.x then apply the
+ enctex.patch-to-7.5. If you are using web2c 7.5.x then you
+ can apply the second patch enc-option.patch-to-7.5. This second patch
+ implements the -enc commandline option (the encTeX is not
+ initialized without this option) and solves the cooperation with
+ TCX tables. The enctex.patch-to-7.5 and enc-option.patch-to-7.5
+ patches were sent to Olaf Weber in order to include the encTeX to
+ the standard web2c TeX distribution.
+
+ The next patch from encTeX Feb. 2003 to Jun. 2004 is recommended:
+
+ $ patch -p0 < ./enctex/enctex.patch-jun2004
+
+ If an error occurs in Hunk #1 then you have to replace text
+ "Feb. 2003" to new text "Jun. 2004" in file tex.ch manually.
+
+
+4. Re-compile TeX:
+
+ $ make tex
+
+ The result is the new tex binary and tex.pool file.
+
+5. Install the tex binary and tex.pool into the system (your paths may
+be different from this example):
+
+ $ strip tex
+ $ su
+ # cp tex /usr/local/bin
+ # cp tex.pool /usr/local/share/texmf/web2c
+
+6. Install the input tables of encTeX
+
+ # mkdir /usr/local/share/texmf/tex/generic/enctex
+ # cp enctex/*.tex /usr/local/share/texmf/tex/enctex
+ # texhash
+
+7. Re-install the formats. The official version web2c-7.5.3 requires
+the -enc option when format is generated (not required when format is
+used). See the encdoc-e.tex|dvi|pdf for more information about
+this option.
+
+ # cd /usr/local/share/texmf/web2c
+ # tex -ini -enc plain
+ *\dump
+ # tex -ini -enc csplain.ini
+ # mv csplain.ini.fmt csplain.fmt
+ # tex -ini -enc cslatex.ini
+ # mv cslatex.ini.fmt cslatex.fmt
+
+If you want to try the new feature of the encTeX, you can inicialize some of
+format plain-*-*.tex (see the enctex directory). For example:
+
+ # tex -i plain-1250-cs
+
+8. The patched tex.ch is read by compilation process for tex, etex and
+pdftex. You can recompile all these programs and the encTeX extension
+will infect them succesfully. The enctex.patch-to-7.3 includes a
+little patch to pdftexdir/tex.pch file in order to succesfull
+compilation of pdftex. So, it is sufficient to do:
+
+ $ make pdftex
+ $ strip pdftex
+ $ su
+ # cp pdftex /usr/local/bin
+ # cp pdftex.pool /usr/local/share/texmf/web2c
+ # cd /usr/local/share/texmf/web2c
+ # pdftex -ini -enc -jobname pdfplain plain
+ *\dump
+ # pdftex -ini -enc -jobname pdfcsplain csplain.ini
+ # pdftex -ini -enc -jobname pdfcslatex cslatex.ini
+
+9. The omega program is never infected by encTeX because it does not
+read the tex.ch file during compilation. Omega has its own input
+preprocessor.
+
+--------------
+
+The encTeX is installable on others than web2c implementation of TeX too.
+All changes are made in tex.ch file. You can see to enctex.ch file (with
+all changes of encTeX sumarized) and do the changes into your tex.ch
+manually. There is only one problem here: I used the functions
+dump_things/undump_things for dumping/undumping the xord, xchr and xprn
+vectors to/from fmt file. These functions are the part of web2c libraries
+only. If these functions are not available on your implementation, you must
+rewrite the dumping using macros similar to dump_four_ASCII from
+tex.web.
+
diff --git a/Master/texmf-dist/doc/generic/enctex/README b/Master/texmf-dist/doc/generic/enctex/README
new file mode 100644
index 00000000000..1c8fde8b6a8
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/README
@@ -0,0 +1,101 @@
+
+ EncTeX - moznost prekodovani vstupu v TeXu
+ ============================================================
+ Sep. 1997, Dec. 2002 -- Jun. 2004 Petr Olsak
+
+See end of this file for English version of this text.
+
+Tento balicek je volne programove vybaveni, viz COPYING a encdoc.tex.
+Balicek se sklada z techto souboru:
+
+README ................ tento soubor
+COPYING ............... licence GPL
+INSTALL ............... navod na instalaci v ceskem jazyce
+INSTALL.eng ........... navod na isntalaci v anglickem jazyce
+enctex.patch-to-7.3.7 . zaplata zdojovych kodu pro web2c 7.3.7 (TeXlive7)
+enctex.patch-to-7.5 ... zaplata zdojovych kodu pro web2c 7.4.5 a 7.5.x
+enc-option.patch-to-7.5 zaplata pridavajici -enc option a resici
+ spolupraci s TCX tabulkami, jen pro 7.5.x
+enctex.patch-jun2004 .. zaplata z encTeXu Feb. 2003 na encTeX Jun. 2004.
+enctex.ch ............. navod na provedeni zaplaty manualne
+encdoc.tex, .pdf ...... dokumentace v ceskem jazyce
+encdoc-e.tex, .pdf .... dokumentace v anglickem jazuce
+encmacro.tex .......... pomocne makro pro tabulky *.tex
+*-csf.tex, *-t1.tex ... konverzni tabulky z kodovani systemu do
+ kodovani CSfontu resp. T1 kodovani
+plain-*-*.tex ......... inicializacni soubory pro modifikace plainu
+vlna.tex .............. ukazka pouziti encTeXu pro vyhledani
+ neslabickych predlozek
+polyset.tex ........... makro umoznujici zadavat slozitejsi
+ vyhledavaci pravidla pro encTeX
+ostatni *.tex ......... dalsi pomocna makra
+
+Balicek je k dispozici na
+
+ ftp://math.feld.cvut.cz/pub/olsak/enctex/.
+
+EncTeX byl testovan s velikou peci. Pokud byste presto v nem
+nasli nejakou chybu, prosim, poslete o tom zpravu na
+olsak@math.feld.cvut.cz.
+
+Dekuji Davidu Necasovi (Yeti) za doplneni tabulek a dalsi podpory
+pro UTF-8 kodovani. Jedna se o soubory:
+
+plain-utf8-*.tex .............. ini soubory pro generovani formatu
+utf8-csf.tex, utf8-t1.tex ..... kodovaci tabulky pro UTF-8
+utf8cseq.tex, utf8math.tex .... soubory jsou potreba v kodovacich tabulkach
+utf8raw.tex ................... generovany soubor, potrebny v utf8math.tex
+unimap.py, unimap.diff ........ skript a diff pro generovani utf8raw.tex
+math-example.tex .............. ukazka matematicke sazby v UTF-8
+
+---------------------------------------------------------
+
+ EncTeX - The Extension of TeX For Input Re-encoding
+ ============================================================
+ Sep. 1997, Dec. 2002 -- Feb. 2003 Petr Olsak
+
+This package is free software, see COPYING and encdoc-e.tex for more
+details. The package includes the following files:
+
+README ................ this file
+COPYING ............... GPL
+INSTALL.eng ........... the installation instruction in English language
+INSTALL ............... the installation instruction in Czech language
+enctex.patch-to-7.3.7 . the patch to source files in web2c 7.3.7 (TeXlive7)
+enctex.patch-to-7.5 ... the patch to source files in web2c 7.4.5 and 7.5.x
+enc-option.patch-to-7.5 this patch adds -enc option and solves the
+ cooperation with TCX tables, only for web2c 7.5.x
+enctex.patch-jun2004 .. the patch from encTeX Feb. 2003 to encTeX Jun. 2004.
+enctex.ch ............. the instruction to do the patch manually
+encdoc-e.tex, .pdf .... the English documentation
+encdoc.tex, .pdf ...... the Czech documentation
+encmacro.tex .......... the auxiliary macro for *.tex tables
+*-csf.tex, *-t1.tex ... the conversion tables from * input encoding
+ to encoding of CSfonts or T1 encoding
+vlna.tex .............. the example of another usage of encTeX: there
+ cannot be line break after non syllabus prepsositions
+polyset.tex ........... macro for more powerfull declaration of
+ encTeX's search rules
+plain-*-*.tex ......... the ini files for various plain modifications
+others *.tex .......... other macros for encTeX
+
+The package is available on:
+
+ ftp://math.feld.cvut.cz/pub/olsak/enctex/.
+
+The encTeX was carefuly tested. If you still find a bug in it, please,
+send the bug report to the address olsak@math.feld.cvut.cz.
+
+Many thanks to David Necas (Yeti) who made the tables and other
+support for UTF-8 encoding in the following files:
+
+plain-utf8-*.tex .............. the ini files for making formats
+utf8-csf.tex, utf8-t1.tex ..... the UTF-8 tables
+utf8cseq.tex, utf8math.tex .... files included from UTF-8 tables
+utf8raw.tex ................... generated file included from utf8math.tex
+unimap.py, unimap.diff ........ python program and diff for making utf8raw.tex
+math-example.tex .............. the example of math typesetting in UTF-8
+
+-------------------------------------------------------------
+
+
diff --git a/Master/texmf-dist/doc/generic/enctex/changes.txt b/Master/texmf-dist/doc/generic/enctex/changes.txt
new file mode 100644
index 00000000000..455e9b5ede8
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/changes.txt
@@ -0,0 +1,27 @@
+2003/01/19 Version Jan. 2003 released
+
+2003/01/22 the enctex.patch-to-7.4 improved to the dirty trick in
+ pdftex.ch code added in new versions of pdftex.
+2003/01/23 the enctex.patch-to-7.4 keeps the pdftex.ch unchanged now
+2003/01/24 \ifx\cmd\relax can be used in \write parameters
+
+2003/02/19 encTeX Feb. 2003 released:
+ - new primitives \mubytelog, \noconvert
+ - the <byte_sequences> ABC and ABCDE are not in conflict now
+ - the utf8unkn.tex file released
+ - documentation upgraded
+2003/02/25 enc-option.patch-to-7.5: corrected the dump_int and unpump_int
+ of boolean value enc_option
+2003/03/03 - little changes in encdoc + encdoc-e.
+ - The web page http://www.olsak.net/enctex.html introduced
+ - The version Feb. 2003 is kept.
+2003/03/11 enc-option.patch-to-7.5: the link to www.olsak.net/enctex.html
+ added in --help text and man pages
+2003/09/18 polyset.tex added to encTeX distribution
+2004/05/06 little doc corrections: -i -> -ini, -fmt -> -jobname etc.
+ The version is still named Feb. 2003.
+2004/06/28 corrections in unimap.diff, utf8raw.tex and unimap.py
+ The version is still named Feb. 2003.
+
+2004/06/30 encTeX Jun 2004 released.
+ Three bugs fixed -- see enctex.patch-jun2004.
diff --git a/Master/texmf-dist/doc/generic/enctex/encdoc-e.pdf b/Master/texmf-dist/doc/generic/enctex/encdoc-e.pdf
new file mode 100644
index 00000000000..059b94e6074
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/encdoc-e.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/enctex/encdoc-e.tex b/Master/texmf-dist/doc/generic/enctex/encdoc-e.tex
new file mode 100644
index 00000000000..32a06241727
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/encdoc-e.tex
@@ -0,0 +1,947 @@
+% EncTeX documentation
+%%%%%%%%%%%%%%%%%%%%%%
+% Petr Olsak
+
+% see encdoce.tex for Czech version of this documentation
+
+
+{\nopagenumbers} % use the plain format (the command: "tex encdoc-e")
+
+\def\Red{}
+\def\Black{}
+\def\Blue{}
+\def\Green{}
+\def\beglink#1{}
+\def\endlink{}
+\def\aimlink#1{}
+\def\urllink#1{{\tt#1}}
+\def\urllinkk#1#2{{\tt#1}}
+
+\ifx\pdfoutput\undefined\else %%%% pdfTeX is used %%%%%%%%%%
+\ifnum\pdfoutput>0
+
+\ifx\pdfannotlink\undefined % Verze pdfTeXu >= 14
+ \let\pdfannotlink=\pdfstartlink
+\fi
+
+\def\beglink#1{%
+ \Green \pdfstartlink height9pt depth3pt
+ attr{/Border[0 0 0]} goto name{#1}\relax}
+\def\endlink{\pdfendlink\Black}
+
+\def\aimlink#1{%
+ \expandafter\ifx \csname aim:#1\endcsname \relax
+ \expandafter\gdef \csname aim:#1\endcsname {}%
+ \vbox to0pt{\vss\hbox{\pdfdest name{#1} fith}\kern15pt}%
+ \fi
+}
+\def\urllinkk#1#2{\pdfannotlink height 10pt depth 3pt
+ user{/Border[0 0 0]/Subtype/Link/A << /Type/Action/S/URI/URI(#2)>>}\relax
+ \Green{\tt #1}\Black\pdfendlink}
+\def\urllink#1{\urllinkk{#1}{#1}}
+
+\def\pdfsetcmykcolor#1{\special{PDF:#1 k}}
+\def\Red{\leavevmode\pdfsetcmykcolor{0.1 0.9 0.9 0}}
+\def\Black{\leavevmode\pdfsetcmykcolor{0 0 0 1}}
+\def\Green{\leavevmode\pdfsetcmykcolor{0.9 0.1 0.9 .3}}
+\def\Blue{\leavevmode\pdfsetcmykcolor{0.9 0.9 0.1 0}}
+
+\pdfcompresslevel=9
+\pdfinfo{/Author (Petr Olsak)
+ /CreationDate (Feb. 2003)
+ /ModDate (Jun. 2004)
+ /Creator (TeX)
+ /Producer (pdfTeX)
+ /Title (encTeX)
+ /Subject (Documentation)
+ /Keywords (TeX, fonts)
+}
+
+\fi\fi %%%%%%%%%%%%%%%%%%%%%%%%%%%% End of pdfTeX macros %%%%%
+
+
+\font\titulfont=\fontname\tenbf\space scaled\magstep4
+\font\bigbf=\fontname\tenbf\space scaled\magstep1
+
+\parindent=12pt
+
+\newcount\secnum \newcount\subsecnum
+
+\def\kap #1\par{\ifnum\secnum>0 \goodbreak\fi\removelastskip
+ \vskip2\baselineskip
+ \subsecnum=0 \advance\secnum by1
+ \noindent{\bigbf\llap{\the\secnum.\quad}#1}\par\nobreak\medskip}
+\def\sec #1\par{\removelastskip\bigskip
+ \advance\subsecnum by1
+ \noindent{\bf \llap{\aimlink{\the\secnum.\the\subsecnum}%
+ \the\secnum.\the\subsecnum.\quad}#1}\par\nobreak\medskip}
+\def\title #1\par{\vglue2\baselineskip
+ \centerline{\titulfont #1}\vskip2\baselineskip}
+\def\date #1\par{\bigskip#1\par}
+\def\author #1\par{\bigskip#1\par}
+
+\catcode`<=13
+\def<{\hbox\bgroup\catcode`_=\active\relax\skoba}
+\def\skoba #1>{$\langle$\it#1\/$\rangle$\egroup}
+\def\,{\thinspace}
+{\catcode`_=\active \gdef_{\_}}
+
+{\obeyspaces \gdef\activespace{\obeyspaces\let =\ }}
+\def\setverb{\def\do##1{\catcode`##1=12}\dospecials}
+\def\begtt{\medskip\bgroup \setverb \activespace
+ \catcode`\"=12 \catcode`_=13
+ \def\par##1{\endgraf\ifx##1\par\leavevmode\fi ##1}
+ \obeylines \startverb}
+{\catcode`\|=0 \catcode`\\=12
+|gdef|startverb#1\endtt{|tt#1|egroup|medskip|testpar}}
+\long\def\testpar#1{\ifx\par#1\else\noindent\fi#1}
+
+\catcode`"=13
+\def"{\leavevmode\hbox\bgroup\setverb\activespace\tt\readverb}
+\def\readverb #1"{#1\egroup}
+
+\def\begitems{\medskip\bgroup \catcode`*=13 }
+{\catcode`*=13 \gdef*{\item{$\bullet$}}}
+\def\enditems{\medskip\egroup}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+{\nopagenumbers
+
+\vglue 4cm
+
+\centerline {\titulfont Enc\TeX}
+\vskip2cm
+\centerline {\titulfont The Extension of \TeX{}}
+\medskip
+\centerline {\titulfont For Input Re-encoding}
+
+\vskip3cm
+
+\centerline{\bigbf Petr Ol\v s\'ak}
+
+\vskip2cm
+
+\centerline{\urllinkk{www.olsak.net/enctex.html}{http://www.olsak.net/enctex.html}}
+
+\vfil
+
+\centerline {\bigbf This text documents the version Feb. 2003 and Jun. 2004}
+
+\vskip 4cm
+\break
+
+\null \vfil
+
+This package is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This package is available on
+\urllink{ftp://math.feld.cvut.cz/pub/olsak/enctex/}.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+\bigskip
+\copyright\quad 1997, 2002, 2003, 2004\enspace RNDr. Petr Ol\v s\'ak
+
+\bigskip
+\TeX{} is trademark of the American Mathematical Society.
+
+\bigskip
+The author of the \TeX{} is professor Donald Knuth. The \TeX{}
+is a free software with the specific license. See the documentation
+of~\TeX.
+
+\bigskip
+The original version of the enc\TeX{} documentation (in Czech language) is in
+"encdoc.tex" file.
+
+P\accent23uvodn\'\i{} \v cesk\'a dokumentace je v souboru "encdoc.tex".
+
+\break
+}
+
+\kap The basic information
+ %%%%%%%%%%%%%%%%%%%%%
+
+
+The enc\TeX{} package is a little extension of \TeX{}. You can install
+it from source files of \TeX{} by changing the "tex.ch" file in your
+distribution. The patch to "tex.ch" file for "web2c" distribution is
+supported.
+
+The enc\TeX{} is backward compatible with the original \TeX{}. It adds
+ten new primitives by which you can set or read the conversion
+tables used by input processor of \TeX{} or used during output to the
+terminal, log and "\write" files. These tables are stored to the
+format files thus, they are reinitialized to the same state as in time
+of "\dump" command when the format file is read.
+
+This extension is fully tested and it passes the TRIP test with only
+two differences:
+
+\begitems
+* The banner is different
+* The number of ``multiletter control sequences'' is
+ greater by ten.
+\enditems
+
+
+\sec The installation
+% ----------------
+
+For install instructions of enc\TeX{} -- read the "INSTALL.eng" file.
+
+\sec Versions
+% --------
+
+I released the first version of enc\TeX{} in 1997. This version
+was able to do the byte to byte conversion only by xord and xchr
+vector and to assign the characters as ``printable'' (the "\xordcode",
+"\xchrcode" and "\xprncode" primitives).
+
+The TCX tables were renoved in 1998. These tables do the same work as
+enc\TeX{} 1997 thus I closed my support of enc\TeX{}. The problem
+with the missing support of UTF-8 encoding on input processor caused
+the reinterpretation of my old decision: I implemented the UTF-8
+support to the enc\TeX{} in December 2002 and I propagate enc\TeX{} again.
+
+The new version
+``Feb.~2003'' adds seven new primitives: "\mubyte",
+"\endmubyte", "\mubytein", "\mubyteout", "\mubytelog", "\specialout"
+and "\noconvert".
+They give a possibility to set the conversion from UTF-8 encoded files.
+
+The version ``Jun.~2004'' fixes a little bugs only.
+No new features are added.
+See "enctex.patch-jun2004" file for more information
+about these bugs.
+
+Of course, the new version is backward compatible with the old one
+from 1997. I don't plan any new big changes. If a little change will
+be done then {\it the backward compatibility with the previous version
+of enc\TeX{} is guaranteed by me}.
+
+\sec Enc\TeX{} in web2c distribution, TCX tables
+% -------------------------------------------
+
+If your web2c distribution implements enc\TeX{} then you can
+initialize it by the "-enc" option in command line.
+You have to use this option during ini\TeX{} because enc\TeX{} stores
+its primitives and its data to the format file. When the format is
+used, the enc\TeX{} is initialized from format file automatically and
+you need not use the "-enc" option again. If you are using a format
+without enc\TeX{} initialized in it and you write "-enc" option then
+the warning is printed and this option is ignored.
+
+The TCX tables ("-translate-file" option) are working with the same
+xord and xchr vector as enc\TeX{} in web2c distribution. This implies
+the following little conflicts: If enc\TeX{} is used together with TCX
+table then TCX table may re-write the initial values of "\xordcode",
+"\xchrcode" and "\xprncode". These initial values are documented in
+section~2.2. If these values are stored in format by enc\TeX{} and TCX
+table is used together with such format then the values from format
+can be re-written by TCX table too. On the other hand, you can use the
+"\xordcode", "\xchrcode" and "\xprncode" primitives for reading or
+saving of these values after TCX table initialization without
+problems.
+
+\sec The \TeX{} license
+% --------------------
+
+The enc\TeX{} adds the new primitives into \TeX{} so, we cannot call
+the resulting program by name \TeX. On the other hand D.~Knuth assumed
+that \TeX{} internals are filtered always from system dependences.
+This was a reason why he implemented xord/xchr vectors in \TeX.
+D.~Knuth assumed that the parameters of filter from system
+dependences is set at source code level. Enc\TeX{} only moves this
+setting from source code level to the runtime level. This is nothing
+new: the \TeX{} memory parameters are possible to set at runtime in
+modern \TeX{} distributions too. You can set the conversion tables
+depend on your system. Then you can say "\let\xordcode=\undefined"
+etc.~(the same for other enc\TeX{} primitives) and you can do "\dump".
+The format has the conversion tables stored by the system
+specifications and the user cannot do any more changes. The using of
+this format acts the same as the using of the original \TeX{}.
+
+I think that the second line on the terminal and log file is
+sufficient information about the fact that the program is
+a modified version of \TeX. I think that if the UTF-8 encoding will be
+used more common then there is no another way than to modify the input
+processor of \TeX{} otherwise the 8bit \TeX{} will dead in short time.
+
+It is important to say that enc\TeX{} has the same default behavior as
+the original \TeX{} if the new primitives are never used.
+
+IMHO, the new web2c \TeX{} is not exactly the \TeX{} too because you can
+change its behavior by writing "%&" at the first line of the document.
+This feature is not documented in {\it Computers \& Typesetting\/}
+series.
+
+
+\kap The byte per byte conversion
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\sec The xord and xchr vectors
+% -------------------------
+
+All text inputs into \TeX{} are mapped by xord vector in input
+preprocessor (the eyes in \TeX{}book terminology). If the character
+has the code $x$ in your system, the same character has the code
+$y$ = xord[x] in \TeX.
+
+All text outputs from \TeX{} to terminal, log file and files managed
+by "\write" primitive are filtered by xchr vector and by
+``printability'' feature of the character. If the character with code
+$y$ is not ``printable'', then it outputs by "^^code" notation
+(documented in \TeX{}book, page 45). If the character with code
+$y$ is ``printable'' then the output code of this character on
+terminal and text files is $z$ = xchr[$y$].
+
+\sec The new primitives with the access to the xord and xchr vectors
+% --------------------------------------------------------------
+
+The enc\TeX{} extension introduces three new primitives with the same
+syntax as "\lccode":
+
+\begitems
+* "\xordcode" $i$ ... is xord[$i$]
+* "\xchrcode" $i$ ... is xchr[$i$]
+* the character with the code $i$ is ``printable''
+ (not "^notation" on terminal and the log is used)
+ iff \hfil\break
+ \hbox{("\xprncode" $i > 0$ )} or \hbox{( $i\in \{32,...,126\}$ )}.
+\enditems
+
+All setting to "\xordcode", "\xchrcode" and "\xprncode" are possible
+in 0...255 range and are {\it global} every time. It means
+that the setting inside group are global and it is irrelevant
+if you write "\global" prefix or you do not.
+
+The initial values at ini\TeX{} state of the mentioned vectors are:
+
+\begitems
+* "\xordcode" $i = i $ for $ i \in \{128...255\}$,
+* "\xchrcode" $i = i $ for $ i \in \{128...255\}$,
+* "\xprncode" $i = 0 $ for $ i \in \{0...31, 127...255\}$,
+* "\xprncode" $i = 1 $ for $ i \in \{32...126\}$.
+\enditems
+
+The "\xordcode" $i$ and "\xchrcode" $i$ for $i \in \{0...127\}$ are
+system dependent, but on systems with ASCII encoding holds:
+"\xordcode"~$i = i$, "\xchrcode"~$i = i$.
+
+
+\kap The multi-byte conversion
+ %%%%%%%%%%%%%%%%%%%%%%%%
+
+Since version Dec 2002, the enc\TeX{} is able to convert more bytes to
+one byte or control sequence on input processor level. This ``one byte''
+is converted back to the original ``more bytes'' when "\write" is
+processed or \TeX{} outputs to the terminal or log file.
+The main reason of this extension of \TeX{} is to serve to work with the
+UTF-8 encoded input files: we need to assign the "\catcode"s,
+"\uccode"s etc.~to the letters in our alphabet but some letters are
+encoded in two bytes in UTF-8. The enc\TeX{} is able to map other codes
+from UTF-8 to control sequences thus, the number of UTF-8 codes
+from input file examined by \TeX{} is unlimited.
+
+There are five new primitives to manage the conversion:
+"\mubytein", "\mubyteout", "\mubytelog", "\mubyte", "\endmubyte".
+The "\mubytein", "\mubyteout" and "\mubytelog" are integer registers with
+zero value by default: it means that no conversion is processed even
+if the conversion table (created by "\mubyte", "\endmubyte") is non
+empty. If "\mubytein" is positive then the conversion on input processor
+level is performed by the conversion table. If "\mubyteout"
+is positive then the conversion for output to the "\write" files
+is activated by the same conversion table. If "\mubytelog" is positive
+then the output conversion is activated for log file and terminal
+output.
+
+The conversion table is empty by default and you can add the
+new line into this table by the couple of "\mubyte", "\endmubyte"
+primitives:
+
+\begtt
+\mubyte <first_token><one_optional_space><optional_prefix><byte_sequence>\endmubyte
+\endtt
+
+Each <byte_sequence> will be converted to the <first_token> at input
+processor level. There are two possibilities for <first_token>: it may
+be a character or a control sequence. If the <first_token> is a
+character then the catcode of it is ignored and the <first_token> is
+interpreted as a <byte>. This <byte> is converted back to the
+<byte_sequence> in "\write" files, log file and terminal.
+
+If the <first_token> is a control sequence then the <byte_sequence>
+will be converted to this control sequence of the ``one token''
+form at input processor level. It means that the
+token processor never changes this control sequence.
+The token processor stays in
+middle line state after this control sequence is scanned.
+If {\catcode`\<=12 "\mubyteout<2"} then the output to the "\write"
+files is not converted back to the <byte_sequence> and
+the control sequence is expanded as usual.
+If "\mubyteout>=2" then the control sequence declared by "\mubyte" is
+converted back to the <byte_sequence> in "\write" parameters.
+This works only if the control sequence is not expanded.
+It means that the control sequence have to be non expandable or
+it have to be marked by "\noexpand". If "\mubyteout>=3" then
+enc\TeX{} suppresses the expansion of control
+sequences declared by "\mubyte" automatically. See section~3.7 for
+more details.
+
+The control sequences are never converted back to <byte_sequence>
+in log file and on the terminal output.
+
+The syntax and the meaning of <optional_prefix> will be explained in
+section~3.4.
+
+\sec The conversion table manipulation
+% ---------------------------------
+
+The data are stored into conversion table as a global assignment. On
+the other hand the assignment to "\mubytein", "\mubyteout" and
+"\mubytelog" registers are local as usually.
+
+The "\mubyte", "\endmubyte" primitives work very similar as a
+well known "\csname", "\endcsname" pair. The difference is that
+the <first_token> is not expanded and that this token can be followed
+by <one_optional_space> (after expansion). The <byte_sequence> is
+scanned with the full expansion. If the other non expandable control
+sequence than "\endmubyte" occurs during this process then the error
+message is printed:
+
+\begtt
+! Missing \endmubyte inserted.
+\begtt
+
+The "\mubyte" is not performed on the expand processor level: it is a
+assign primitive. If you write
+
+\begtt
+\edef\a{\mubyte X ABC\endmubyte}
+\endtt
+%
+then the macro "\a" includes the "\mubyte X ABC\endmubyte" tokens.
+
+Examples:
+
+\begtt
+\mubyte ^^c1 ^^c3^^81\endmubyte % \'A
+\mubyte ^^e1 ^^c3^^a1\endmubyte % \'a
+% etc. -- the UTF8 implementation
+
+\mubyte \endash ^^c4^^f6\endmubyte % the mapping to the control sequence
+\mubyte \integral INT\endmubyte % the illustrative example, see below
+
+\mubytein=1 \mubyteout=1 % conversions are activated here
+
+\def\endash {--} % this is good definition for \write files too
+\def\integral {\ifmmode \int\else $\int$\fi}
+\endtt
+
+We have written more spaces (or tabs) in <one optional space> in
+this example because these characters have the catcode of the space
+and the token processor converts them to right <one optional space>.
+
+The word ``"INTEGRAL"'' is converted to the token "\integral" followed
+by the letters ``"EGRAL"'' if the example code is used.
+The text ``"INT something"'' is converted to the token "\integral"
+followed by space and the word ``"something"''. You can write the
+following constructions: "\defINT{something}", "\let INT=\foo", etc.
+After "\show INT" we get:
+
+\begtt
+> \integral=macro:
+->\ifmmode \int \else $\int $\fi .
+l.18 \show INT
+\endtt
+%
+and "\string INT" expands to the text: "\integral".
+
+Assume the "INT" declaration from the previous example and assume that
+you write "\INT". What happens? Strictly speaking, the empty control
+sequence ("\csname\endcsname") followed by "\integral" control
+sequence would be the output from the token processor. But there is an
+exception in enc\TeX{} because to avoid the confusion with the empty control
+sequences. The "\INT" produces only the control sequence "\integral",
+the backslash is ignored in this situation. The token processor stays
+in middle state after "\INT" is scanned, the letter can follow
+immediately.
+
+\sec The features of the conversion process
+% --------------------------------------
+
+The input is converted immediately after "\mubytein" is set to the
+positive value; it means the conversion may start at the same line
+where the "\mubytein" setting occurs.
+
+The <byte_sequence> is converted only if the whole <byte_sequence> is
+included in the one line. The "\endlinechar" character can be the last
+part of the <byte_sequence>.
+
+The sequence "^^c3^^81" is not converted to the letter \'A even if the
+code from the example was used. The reason is that the "^^" conversion
+is done in token processor after the "\mubyte" conversion.
+
+The "\xordcode" conversion is performed before "\mubyte" conversion
+in input side and the "\xchrcode" conversion is done after "\mubyte"
+conversion during output to the files or to the terminal. The
+following diagram shows the sequence of the conversions:
+
+\begtt
+input text -> \xordcode -> \endlinechar appended ->
+ \mubyte -> token processor -> expand processor ...
+\write argument -> expand processor -> \mubyte -> \xchrcode -> output
+\endtt
+
+The <byte_sequence> is not converted to the "^^" form during
+output to the file even if the "\xprncode" of the bytes from
+<byte_sequence> is zero. The <byte_sequence> is not converted again
+even if there exist a character in it which is normally
+converted by another rule in conversion table.
+
+Let exist two or more <byte_sequences> in the conversion table which are
+equal or which have the same begin part and one sequence is a
+subsequence of the second. Then the conversion in input processor is
+done by maximal possible <byte_sequence>. This feature was implemented
+in version Feb.~2003. Example:
+
+\begtt
+\mubyte X A\endmubyte
+\mubyte Y ABC\endmubyte
+\mubyte \foo ABCD\endmubyte
+\endtt
+
+The letter A is normally converted to X in this example, but if the
+BC letters immediately follow then ABC is converted to Y with the
+exception ABCD which is converted to "\foo".
+
+The order of "\mubyte" settings in this example has no significance.
+
+If the same <byte_sequences> are used by "\mubyte" records then the
+last one has a precedence and the previous records are cleared.
+
+
+\sec The conversion to log file and to the terminal
+% ----------------------------------------------
+
+The output to terminal and to log file is not converted if
+"\mubytelog" is zero. If the "\xprncode" of the character is zero then
+the character is printed in "^^A" or "^^bc" form. If the "\mubytelog"
+is positive then the characters stored in conversion table are
+converted to the <byte_sequence> and the bytes from these
+<byte_sequence> are never converted to "^^" form.
+On the other hand, control sequences are keept unchanged
+in log and in terminal even if the "\mubytelog" is positive.
+
+The conversion is switched on or off by "\mubytelog" value for both:
+terminal and log file. You cannot separate these outputs. It means that
+(for example) the conversion to log and no conversion to terminal
+is not possible.
+
+There exists a special part of terminal and log output: if the complete
+line from input is reprinted (for example when the context of an error is
+shown). We call this situation as ``line-reprinting'' for the purpose
+of the following text.
+
+If the "\mubytein" is zero then line-reprinting works as usual in
+standard \TeX{}. If "\mubytein" is positive and "\mubytelog" is zero
+then line-reprinting includes the output from the input processor of
+enc\TeX{}. It means that control sequences generated by input
+processor can be shown here even if they don't actually present in the
+input line. If both "\mubytein" and "\mubytlog" are positive then
+line-reprinting works without any multi-byte conversion, only xord is
+used immediately followed by xchr. No "^^A" form is used in this
+situation. Note that the error messages can be somewhat peculiar when
+"\mubytein" and "\mubytlog" are positive:
+
+\begtt
+\mubyte \cmd ABC\endmubyte \let\cmd=\undefined
+\mubytein=1 \mubytelog=1
+This is test of ABC and another text.
+\endtt
+%
+We get the following message:
+
+\begtt
+! Undefined control sequence.
+l.3 This is test of ABC
+ and another text.
+?
+\endtt
+%
+The "\show ABC" can say you more information:
+
+\begtt
+> \cmd=undefined.
+l.3 \show ABC
+\endtt
+
+
+\sec Clearing records from the conversion table
+% ------------------------------------------
+
+There exists only the chance to clear all records which begin with
+the same first byte of <byte_sequence>. This is done by the command
+"\mubyte <char> <char>\endmubyte". For example
+
+\begtt
+\mubyte A A\endmubyte
+\endtt
+%
+clears all <byte_sequences> from conversion table which begin with the
+character A. The following code clears all conversion table:
+
+\catcode`<=12
+\begtt
+{\catcode`\^^@=12
+\gdef\clearmubytes{\bgroup \count255=1
+ \loop \uccode`X=\count255
+ \uppercase{\mubyte XX\endmubyte}%
+ \advance\count255 by1
+ \ifnum\count255<256 \repeat
+ \mubyte ^^@^^@\endmubyte
+ \egroup}
+}
+\clearmubytes
+\endtt
+\catcode`<=13
+
+
+
+\sec Input and output sides of the conversion table
+% ----------------------------------------------
+
+The conversion table consists from two independent parts: input side
+used by input processor and output side used during "\write" or
+printing to the log and terminal. You can save the record only to one
+of this parts by using the nonempty <optional_prefix>.
+If the <optional_prefix> is empty then the same record is stored
+twice: into input and output sides. If <optional_prefix> is a token of
+catcode~8 (usually the "_" character) then the record is stored only
+into input side . If <optional_prefix> is a pair of tokens catcode~8
+(usually "__") then the record is stored only into output side.
+
+If the optional prefix has a form of "__" then the following
+<byte_sequence> can be empty. Enc\TeX{} removes the record
+corresponding to the <first_token> from output side in such situation.
+
+The macro code for clearing the conversion table from previous section
+clears all records from input side but only the records concerned to
+the <first_token> in ``one byte form'' from output side. You can
+remove the record concerned to control sequence from output side
+only by "\mubyte \foo __\endmubyte".
+
+\sec Inserted control sequences
+% --------------------------
+
+If the <first_token> is the control sequence and the <optional_prefix>
+is one token of catcode~6 (usually the "#" character)
+followed by <number>
+then the <number> bytes are kept by input
+processor (it means they are no converted again)
+and the declared control sequence is inserted before
+<byte_sequence>. The example:
+
+\begtt
+\def\abc{ABC}
+\mubyte X BC\endmubyte \mubytein=1
+\mubyte \foo #3 \abc\endmubyte ABC is converted to \foo ABC
+\mubyte \foo #1 \abc\endmubyte ABC is converted to \foo AX
+\endtt
+
+The <number> has the same syntax as <number> from \TeX{}book.
+It means that ``one optional space'' can work as a separator of
+digit(s). See the previous example.
+
+If <number> is zero then the control sequence is inserted and the
+whole <byte_sequence> is unchanged. This has the same effect as if the
+<number> equals to the length of the <byte_sequence>.
+
+The <number> is accepted only in the range 0 to 50. The negative
+<numbers> are silently interpreted as zero and the numbers greater
+than 50 mean that the rest of the converted line will be unchanged
+by input processor.
+
+More practical example follows. Note, that the <number> is greater
+than the length of the <byte_sequence> here.
+
+\begtt
+\mubyte \warntwobytes #2^^c3\endmubyte
+\mubyte \warntwobytes #2^^c4\endmubyte
+\mubyte \warntwobytes #2^^c5\endmubyte
+% atd...
+\def\warntwobytes #1#2{\message{WARNING: the UTF8 code:
+ \noconvert#1\noconvert#2 is not defined i my macros.}}
+\endtt
+
+The new primitive "\noconvert" is used in this example
+(see chapter~5). The similar code is used in the file
+"utf8unkn.tex".
+
+
+\sec The virtual mark of line begin
+% ------------------------------
+
+If "\mubytein>0" and if the first byte in <byte_sequence> is equal to
+"\endlinechar" (it means <byte_sequence> has a format
+<endlinechar><rest>)
+then input processor checks the matching of the
+<rest> with the begin of every line. If it matches then the given
+conversion is done. The example:
+
+\begtt
+\bgroup \uccode`X=\endlinechar \uppercase{\gdef\echar{X}}\egroup
+\mubyte \fooB \echar ABC\endmubyte % ABC matches at begin of line
+\mubyte \fooE ABC\echar \endmubyte % ABC matches at end of line
+\mubyte \fooW \spce\space ABC\space \endmubyte
+ % ABC matches as a word with spaces before and after
+\mubyte \foo #\echar XYZ\endmubyte %
+ % if XYZ is at begin of line the \foo is inserted before them
+\endtt
+
+\sec The suppression of the expansion in write parameters
+% ----------------------------------------------------
+
+If you need to convert the control sequences back to its
+<byte_sequences> then the expansion of such control sequences is not
+welcome. You can suppress the expansion by "\let\macro=\relax" before
+"\write" starts the expansion of its parameter. But "\write" works
+asynchronously in most situations and you can manipulate with hundreds
+or thousands control sequences declared as UTF-8 codes. The enc\TeX{}
+serves a simple tool to solve this problem: If "\mubyteout>=3" then
+enc\TeX{} gives the "\relax" meaning to each control sequence declared
+in output side of the conversion table before the "\write" starts its
+expansion and it returns back these control sequences to their original
+meaning immediately after "\write" finish its work.
+Example:
+
+\begtt
+\mubyte \foo ABC\endmubyte \def\foo{macro body}
+\mubyteout=2
+\immediate\write16{testwrite: \foo} % prints "testwrite: macro body"
+\immediate\write16{testwrite: \noexpand\foo} % prints "testwrite: ABC"
+\mubyteout=3
+\immediate\write16{testwrite: \foo} % prints "testwrite: ABC"
+\message{testmessage: \foo} % prints "testmessage: macro body"
+\message{testmessage: \noexpand\foo} % prints "testmessage: \foo"
+\edef\a{testedef: \foo} % expands to macro body
+\foo % expands to macro body
+\immediate\write16{\meaning\foo} % prints "\relax"
+\message{\meaning\foo} % prints "macro:->macro body"
+\endtt
+
+Note the difference between "\message" and "\immediate\write16".
+The control sequences in "\message" parameter are always expanded and
+never converted to the <byte_sequence>.
+
+You can set the ``noexpand'' flag (for "\write" parameters only)
+to any <control_sequence> and you need not declare the <byte_sequence>
+for it. Write "\mubyte <control_sequence> \relax \endmubyte" for this
+purposes. This has the same effect as
+"\mubyte" <control_sequence>" __\string" <control_sequence>"\space\endmubyte",
+but this second solution is more memory consuming because \TeX{} has
+to store the <byte_sequence> as a string to the pool.
+
+You can write your own macros which expand to one code in normal
+situation and to different code in write parameters. The declaration
+of "\writeparameter" control sequence is recommended:
+
+\begtt
+\mubyte \writeparameter \relax \endmubyte \def\writeparameter{}
+\def\mymacro{\ifx\writeparameter\relax THIS CODE IS USED IN WRITE.
+ \else THIS CODE IS USED IN NORMAL EXPANSION.\fi}
+\endtt
+
+
+
+\sec The asynchronous write command and the mubyteout value
+% ------------------------------------------------------
+
+If you don't use "\immediate" then the "\write" command first gets its
+parameter but it expands and prints this parameter at another
+time. The "\write" command stores the actual value of the "\mubyteout"
+register when it gets its parameter. This value is used late when
+parameter is expanded and written to the file.
+
+This feature gives the possibility to write to more files, first (for
+table of contents, for example) is written with conversion to UTF-8
+and another files are written without this conversion, because (for
+example) this file is an input for a program which cannot read the
+UTF-8 encoding. You can try:
+
+\begtt
+\newwrite\tocfile \newwrite\indexfile
+\immediate\openout\tocfile=\jobname.toc
+\immediate\openout\indexfile=\jobname.idx
+\mubyteout=3
+\write\tocfile{this parameter will be converted to UTF-8}
+{\mubyteout=0 \write\indexfile{this parameter stay unchanged}}
+\write\tocfile{this parameter will be converted to UTF-8}
+\end % now, all three writes are actually done
+\endtt
+
+\sec Summary of the mubyteout values
+% -------------------------------
+
+Apart from the values 0, 1, 2 and 3, you can set the "\mubyteout"
+register to the value $-1$ or $-2$. The summary table of meanings of
+these values follows:
+
+\vbox{
+\begtt
+\mubyteout <byte>-><byte_sequence> <cs_name>-><byte_sequence> noexpanding
+----------------------------------------------------------------------------
+ 0 off off off
+ 1 on off off
+ 2 on on off
+ 3 on on on
+ -1 on off on
+ -2 off off on
+\endtt
+\par}
+
+If the <byte>"->"<byte_sequence> conversion is on then all texts
+written to the "\write" files, log file and to the terminal are converted.
+On the other hand, the <cs_name>"->"<byte_sequence> conversion and the
+noexpanding are related only to the "\write" arguments (and the
+"\special" arguments, see the following chapter).
+
+
+
+\kap The arguments of the special primitive
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The plain texts in non-english languages can occur in
+"\special" arguments. The PDF-outlines are a good
+example of this situation. May be,
+you need to save these arguments in UTF-8 encoding.
+The enc\TeX{} gives the possibility to do it.
+
+The argument of "\special" is processed by the value of the integer
+primitive register "\specialout". This register is introduced by
+enc\TeX{} and its default value is zero.
+
+\begitems
+* "\specialout=0" -- no conversion, the same as in the original \TeX.
+* "\specialout=1" -- only the xchr conversion.
+* "\specialout=2" -- only the "\mubyteout" conversion.
+* "\specialout=3" -- the "\mubyteout" conversion followed by
+ the xchr conversion.
+\enditems
+
+The "\special" primitive expands its argument immediately. If
+"\specialout" is 2 or 3 then the expansion is done by "\mubyteout"
+value in the same manner as during the "\write" expansion.
+Moreover, "\special" saves the current values of "\specialout" and
+"\mubyteout" registers to its memory and use them at the time of the
+output to the "dvi" file.
+
+
+\kap The noconvert primitive
+ %%%%%%%%%%%%%%%%%%%%%%%
+
+The "\noconvert" primitive is introduced by enc\TeX. This primitive
+suppress the possible conversion of the following character or the
+control sequence. More exactly: the "\noconvert" is non expandable
+primitive and does nothing in typesetting output
+(the same as "\relax"). If this primitive is used in "\message" or
+"\errmessage" argument then the control sequence of this primitive is
+never printed and the following character is not converted to
+<byte_sequence> even if the "\mubytelog" is positive and the character
+is recorded in output side of conversion table.
+
+The primitive "\noconvert" does the same in "\write" and "\special"
+parameters. Moreover, if a control sequence follows then this
+control sequence is normally printed even if the "\mubyteout" is positive
+and this control sequence is recorded in output side of conversion
+table.
+
+The "\noconvert\noconvert" yields to one "\noconvert" in the output.
+
+The "\noconvert" primitive is normally printed to the log and to the
+terminal in the another situation than "\message" and "\errmessage"
+parameters. For example when "\tracing..." is used.
+
+
+\kap Summary of the enc\TeX{}'s primitives
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begitems
+* "\mubyte" --- new record to the conversion table, see chapter~3.
+* "\endmubyte" --- the "\mubyte" separator.
+* "\mubytein" --- integer register. 0: multi-byte input conversion
+ suppressed, 1 and more: multi-byte input conversion
+ activated.
+* "\mubyteout" --- integer register, the level of the output conversion
+ in "\write" and "\special" parameters, see~3.10.
+* "\mubytelog" --- integer register, 0: multi-byte output conversion
+ to log and terminal suppressed, 1 and more:
+ multi-byte output conversion activated.
+* "\specialout" --- integer register, the mode of the "\special"
+ parameter conversion, see chapter~4.
+* "\noconvert" --- similar as "\noexpand", but for conversion process.
+ See~chapter~5.
+* "\xordcode" --- access to xord vector, see 2.1.
+* "\xchrcode" --- access to xchr vector, see 2.1.
+* "\xprncode" --- access to ``printability'' vector, see 2.2.
+\enditems
+
+The summary of <optional_prefixes> in "\mubyte" primitive follows. The
+character ``"#"'' means the token of category~6 and ``"_"'' means the token of
+category~7 here.
+
+\begitems
+* no prefix --- records to the input and output side of the conversion
+ table.
+* "_" --- records only to the input side of the conversion table.
+* "__" --- records only to the output side of the conversion table.
+* "#<number>" --- records to the input side of the conversion table,
+ the control sequence will be inserted and <number>
+ bytes will be kept without conversion again.
+* "\relax" --- the control sequence will be not expand in "\write"
+ parameters.
+\enditems
+
+More prefixes may be implemented in next versions of enc\TeX. The
+prefix has its first character different from catcode 10, 11 or 12.
+This rule will be kept in next versions thus it is sufficient to use
+the first character of <byte_sequence> with this category if no prefix
+is needed.
+
+
+
+\kap The macro files
+ %%%%%%%%%%%%%%%
+
+The enc\TeX{} package includes some encoding tables inputted by
+"\input" during format generation. These tables support encodings
+widely used in Czech texts. The more information about these macro
+files are in comments of these files and in the Czech version of the
+documentation.
+
+
+
+\end
+
+
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/doc/generic/enctex/encdoc.pdf b/Master/texmf-dist/doc/generic/enctex/encdoc.pdf
new file mode 100644
index 00000000000..361b6cb685e
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/encdoc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/enctex/encdoc.tex b/Master/texmf-dist/doc/generic/enctex/encdoc.tex
new file mode 100644
index 00000000000..f9007af6efa
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/encdoc.tex
@@ -0,0 +1,1168 @@
+% EncTeX documentation
+%%%%%%%%%%%%%%%%%%%%%%
+% Petr Olsak
+
+% see encdoce-e.tex for English version of this documentation
+
+\chyph % zpracujte formatem csplain
+
+\def\Red{}
+\def\Black{}
+\def\Blue{}
+\def\Green{}
+\def\beglink#1{}
+\def\endlink{}
+\def\aimlink#1{}
+\def\urllink#1{{\tt#1}}
+\def\urllinkk#1#2{{\tt#1}}
+
+\ifx\pdfoutput\undefined\else %%%% pdfTeX is used %%%%%%%%%%
+\ifnum\pdfoutput>0
+
+\ifx\pdfannotlink\undefined % Verze pdfTeXu >= 14
+ \let\pdfannotlink=\pdfstartlink
+\fi
+
+
+\def\beglink#1{% % Začátek textu odkazu, #1 je klíč odkazu
+ \Green \pdfstartlink height9pt depth3pt
+ attr{/Border[0 0 0]} goto name{#1}\relax}
+\def\endlink{\pdfendlink\Black}
+
+\def\aimlink#1{% % Místo cíle odkazu, #1 je klíč odkazu
+ \expandafter\ifx \csname aim:#1\endcsname \relax
+ \expandafter\gdef \csname aim:#1\endcsname {}%
+ \vbox to0pt{\vss\hbox{\pdfdest name{#1} fith}\kern15pt}%
+ \fi
+}
+\def\urllinkk#1#2{\pdfannotlink height 10pt depth 3pt
+ user{/Border[0 0 0]/Subtype/Link/A << /Type/Action/S/URI/URI(#2)>>}\relax
+ \Green{\tt #1}\Black\pdfendlink}
+\def\urllink#1{\urllinkk{#1}{#1}}
+
+
+\def\pdfsetcmykcolor#1{\special{PDF:#1 k}}
+\def\Red{\leavevmode\pdfsetcmykcolor{0.1 0.9 0.9 0}}
+\def\Black{\leavevmode\pdfsetcmykcolor{0 0 0 1}}
+\def\Green{\leavevmode\pdfsetcmykcolor{0.9 0.1 0.9 .3}}
+\def\Blue{\leavevmode\pdfsetcmykcolor{0.9 0.9 0.1 0}}
+
+\pdfcompresslevel=9
+\pdfinfo{/Author (Petr Olsak)
+ /CreationDate (Feb. 2003)
+ /ModDate (Jun. 2004)
+ /Creator (TeX)
+ /Producer (pdfTeX)
+ /Title (encTeX)
+ /Subject (Documentation)
+ /Keywords (TeX, fonts)
+}
+
+\fi\fi %%%%%%%%%%%%%%%%%%%%%%%%%%%% End of pdfTeX macros %%%%%
+
+
+\font\titulfont=\fontname\tenbf\space scaled\magstep4
+\font\bigbf=\fontname\tenbf\space scaled\magstep1
+
+\parindent=12pt
+
+\newcount\secnum \newcount\subsecnum
+
+\def\kap #1\par{\ifnum\secnum>0 \goodbreak\fi\removelastskip
+ \vskip2\baselineskip
+ \subsecnum=0 \advance\secnum by1
+ \noindent{\bigbf\llap{\the\secnum.\quad}#1}\par\nobreak\medskip}
+\def\sec #1\par{\removelastskip\bigskip
+ \advance\subsecnum by1
+ \noindent{\bf \llap{\aimlink{\the\secnum.\the\subsecnum}%
+ \the\secnum.\the\subsecnum.\quad}#1}\par\nobreak\medskip}
+\def\title #1\par{\vglue2\baselineskip
+ \centerline{\titulfont #1}\vskip2\baselineskip}
+\def\date #1\par{\bigskip#1\par}
+\def\author #1\par{\bigskip#1\par}
+
+\catcode`<=13
+\def<{\hbox\bgroup\catcode`_=\active\relax\skoba}
+\def\skoba #1>{$\langle$\it#1\/$\rangle$\egroup}
+\def\,{\thinspace}
+{\catcode`_=\active \gdef_{\_}}
+
+{\obeyspaces \gdef\activespace{\obeyspaces\let =\ }}
+\def\setverb{\def\do##1{\catcode`##1=12}\dospecials}
+\def\begtt{\medskip\bgroup \setverb \activespace
+ \catcode`\"=12 \catcode`_=13
+ \def\par##1{\endgraf\ifx##1\par\leavevmode\fi ##1}
+ \obeylines \startverb}
+{\catcode`\|=0 \catcode`\\=12
+|gdef|startverb#1\endtt{|tt#1|egroup|medskip|testpar}}
+\long\def\testpar#1{\ifx\par#1\else\noindent\fi#1}
+
+\catcode`"=13
+\def"{\leavevmode\hbox\bgroup\setverb\activespace\tt\readverb}
+\def\readverb #1"{#1\egroup}
+
+\def\begitems{\medskip\bgroup \catcode`*=13 }
+{\catcode`*=13 \gdef*{\item{$\bullet$}}}
+\def\enditems{\medskip\egroup}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+{\nopagenumbers
+
+\vglue 4cm
+
+\centerline {\titulfont Enc\TeX}
+\vskip2cm
+\centerline {\titulfont možnost překódování vstupu v~\TeX{}u}
+
+\vskip3cm
+
+\centerline {\bigbf Petr Olšák}
+
+\vskip2cm
+
+\centerline{\urllinkk{www.olsak.net/enctex.html}{http://www.olsak.net/enctex.html}}
+
+\vfil
+
+\centerline {\bigbf Toto je dokumentace k~verzi Feb. 2003 a Jun. 2004}
+
+\vskip 4cm
+\break
+
+\null \vfil
+
+Enc\TeX{} je volné programové vybavení; můžete jej dále šířit
+a modifikovat podle podmínek \uv{GNU General Public License}, kterou
+publikovala "Free Software Foundation"; použijte verzi 2 této licence
+nebo (podle Vaší volby) libovolnou pozdější verzi.
+
+Balíček najdete na Internetu na
+\urllink{ftp://math.feld.cvut.cz/pub/olsak/enctex/}.
+
+
+Tento balíček je rozšiřován v~naději, že bude užitečný, avšak BEZJAKÉKOLI ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo
+VHODNOSTI PRO URČITÝ ÚČEL. Další podrobnosti hledejte v~Obecné veřejné
+licenci GNU.
+
+Kopii \uv{GNU General Public License} jste měl obdržet spolu s~tímto
+programem; pokud se tak nestalo, napište o~ni Free Software Foundation,
+Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Český překlad této
+licence najdete na "http://www.gnu.cz/gplcz.html".
+
+\bigskip
+\copyright\quad 1997, 2002, 2003, 2004\enspace RNDr. Petr Olšák
+
+\bigskip
+
+\TeX{} je ochranná známka American Mathematical Society.
+
+\bigskip
+Autor \TeX{}u je profesor Donald Knuth. \TeX{} je volné programové
+vybavení se specifickou licencí, viz dokumentaci k~tomuto programu.
+
+\break
+}
+
+\kap Základní informace
+ %%%%%%%%%%%%%%%%%%
+
+Balík enc\TeX{} je jednoduché rozšíření \TeX{}u pro takové implementace, ve
+kterých se \TeX{} instaluje ze zdrojového kódu "tex.web". Tuto
+podmínku například splňuje implementace web2c, určená pro UNIXy
+a jiné operační systémy s~kvalitním překladačem jazyka C.
+
+Rozšíření enc\TeX{} je zpětně kompatibilní s~originálním
+\TeX{}em. Přidává deset nových primitivů, kterými lze číst nebo
+naplňovat vnitřní kódovací tabulky, podle nichž je znak transformován
+na úrovni vstupního procesoru \TeX{}u nebo při výstupu na terminál, do
+"log" souboru a "\write" souborů. Tyto tabulky se ukládají do
+formátových souborů, takže po načtení formátu se inicializují ve
+stejném stavu, v~jakém byly v~okamžiku příkazu "\dump".
+
+Změna \TeX{}u je důkladně testovaná a prošla též testem TRIP
+s~těmito dvěma odlišnostmi:
+
+\begitems
+* Odlišný banner
+* Počet \uv{multiletter control sequences} je o~deset větší.
+\enditems
+
+\sec Instalace
+% ---------
+
+Viz soubor "INSTALL".
+
+\sec Verze
+% -----
+
+V~roce 1997 byla zveřejněna první verze enc\TeX{}u, která umožňovala
+konverze pouze v~režimu \uv{byte na byte} a nastavovala tisknutelnost
+znaků (primitivy "\xordcode", "\xchrcode", "\xprncode").
+
+V~roce 1998 obnovil někdo z~Polska používání TCX tabulek ve web2c
+\TeX{}u. Protože enc\TeX{} z~roku 1997 dělal víceméně totéž a
+používání obou nadstaveb současně by mohlo být pro mnoho uživatelů
+matoucí, přestal jsem enc\TeX{} prosazovat. Ovšem v~roce 2002
+jsem se rozhodl přidat do enc\TeX{}u podporu UTF-8 kódování, protože
+tato podpora není a asi nebude v~TCX tabulkách implementována.
+V~prosinci 2002 jsem se tedy rozhodl znovu začít propagovat enc\TeX{},
+který navíc zvládne UTF-8 kódování.
+
+Verze enc\TeX{}u "Feb.2003" přidává dalších
+7~primitivů "\mubyte", "\endmubyte", "\mubytein", "\mubyteout",
+"\mubytelog", "\specialout" a "\noconvert". To umožní definovat vstup
+pro UTF-8 kódované soubory. Tato verze je samozřejmě zpětně
+kompatibilní s~původní verzí enc\TeX{}u z~roku 1997. Neplánuji do
+budoucna žádné rozsáhlejší změny. Pokud přeci jenom k~nějakým změnám
+dojde, pak vždy budou zpětně kompatibilní se stávajícím řešením
+
+Verze "Jun.2004" opravuje jen některé drobné chyby a nepřídává žádné
+nové funkce (podrobněji viz soubor "enctex.patch-jun2004").
+
+
+\sec Enc\TeX{} ve web2c distribuci
+% -----------------------------
+
+Enc\TeX{} se v~\TeX{}u, pdf\TeX{}u, e-\TeX{}u a pdfe\TeX{}u
+v~distribuci web2c inicializuje pomocí přepínače "-enc" na příkazové
+řádce. Tento přepínač je nutno použít při inicializaci formátu.
+V~takovém případě enc\TeX{} uloží své primitivy a svá data do formátu. Při
+použití formátu už není nutné přepínač "-enc" psát znova. Enc\TeX{} se
+v~tomto případě inicializuje z~formátu a napíše o~tom zprávu na terminál
+a do log souboru. Pokud nepoužijete přepínač "-enc" v~době generování
+formátu, ale použijete jej až při použití formátu, pak
+\TeX{} vypíše varování o~neexistenci enc\TeX{}u ve formátu a přepínač
+"-enc" je ignorován.
+
+Ve web2c distribuci pracují se stejnými kódovacími vektory xord a xchr
+(pro překódování byte na byte) jednak enc\TeX{} a jednak tzv. TCX tabulky
+(při použití přepínače "-translate-file"). Určitému konfliktu se tedy při
+současném používání obou rozšíření nevyhneme.
+Je-li v~enc\TeX{}u použita TCX tabulka, pak při startu \TeX{}u
+přepíše hodnoty "\xordcode", "\xchrcode" a "\xprncode" podle sebe.
+Znamená to, že při použití ini\TeX{}u pak nemusejí platit implicitní
+hodnoty těchto kódů dokumentované v~sekci 2.2 a při použití formátu
+s~enc\TeX{}em jsou hodnoty těchto kódů, které si do formátu uložil
+enc\TeX{}, přepsány podle TCX tabulky. O~této skutečnosti enc\TeX{}
+náležitě informuje na terminálu a v~logu. Při běhu programu pak můžete
+enc\TeX{}ovými primitivy tyto kódy dále číst a měnit. Použití TCX
+tabulky tedy nevylučuje možnosti enc\TeX{}u.
+
+\sec Problém s~licencí \TeX{}u
+% -------------------------
+
+Enc\TeX{} rozšiřuje \TeX{} o~nové primitivy, takže bychom neměli tomuto
+programu říkat \TeX{}. Na druhé straně ale Knuth samotný předpokládá,
+že vnitřnosti \TeX{}u budou odstíněny od prostředí operačního
+systému. Proto implementoval xord a xchr vektory. V~enc\TeX{}u můžeme
+nastavit podle zvyklostí operačního systému vstupní a výstupní
+překódovací tabulky a pak nastavit všem novým primitivům význam
+"\undefined". Dále se bude \TeX{} modifikovaný enc\TeX{}em chovat stejně,
+jako originální \TeX{}. Navíc můžeme překódovací tabulky nastavit při
+generování formátu a v~produkční verzi \TeX{}u zakázat přístup
+k~primitivům. Produkční verze \TeX{}u se pak chová zcela stejně jako
+originální \TeX{}. Knuth předpokládá, že odstínění od prostředí
+operačního systému se provede vždy při kompilaci zdrojového kódu
+\TeX{}u, zatímco enc\TeX{} umožňuje tuto otázku řešit později,
+například v~době generování formátu. Umožnění úpravy některých
+(například paměťových) parametrů až za běhu \TeX{}u také není nic
+nového a známe to skoro u~všech distribucí \TeX{}u.
+
+Domnívám se, že druhý řádek na terminálu a v~logu dostatečně informuje
+o~tom, že se jedná o~modifikovanou verzi \TeX{}u. Také se domnívám, že
+pokud se velmi rozšíří kódování UTF-8, pak není zbytí a takové
+konverze jsou v~8 bitové verzi \TeX{}u nezbytné.
+
+Je důležité rovněž připomenout, že implicitní chování enc\TeX{}u je
+takové, že pokud se nepoužijí rozšířené primitivy enc\TeX{}u, pak se
+chová naprosto stejně jako originální \TeX{}.
+
+Podle mého názoru novější implementace web2c \TeX{}u taky není v~přísném
+slova smyslu \TeX{}. Umožňuje totiž změnu chování programu, pokud na
+prvním řádku dokumentu za znaky "%&" je cosi specifického napsáno. To
+je podle mého názoru větší přestupek oproti licenci \TeX{}u, než
+enc\TeX{}ovými primitivy nastavit ve formátu prostředí systému a pak tyto
+primitivy v~produkční verzi \TeX{}u zakázat.
+
+
+\kap Překódování byte na byte pomocí vektorů xord, xchr
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\sec Vektory xord a xchr
+% -------------------
+
+Vektory xord a xchr mají velikost 255 bytů a obsahují informaci
+o~překódování znaku vstupujícího do \TeX{}u nebo vystupujícího na
+terminál a do textových souborů. Jedná se o~pole vestavěná do
+programu, přes která jsou filtrovány veškeré textové vstupní a
+výstupní informace. Má-li znak na vstupu kód $x$ a chceme, aby měl
+uvnitř \TeX{}u kód $y$, pak musí být nastaven vektor xord tak, aby
+xord[$x$]=$y$. Při zpětném výstupu znaku na terminál, do logu a do
+souborů zpracovávaných pomocí "\write" platí tato pravidla: Není-li znak
+s~kódem $y$ označen jako \uv{tisknutelný}, pak vystupuje pomocí přepisu
+"^^"kód~$y$. Je-li tisknutelný, pak vystupuje s~kódem $z$=xchr[$y$].
+
+Standardně bývají v~systémech s~kódem ASCII nastaveny hodnoty těchto
+vektorů tak, že
+\medskip
+xord[$i$]=xchr[$i$]=$i$ pro všechna $i$ v~rozsahu 0~až~255.
+\medskip
+Na systémech, které nepoužívají ASCII, se může mapovat 94
+tisknutelných ASCII znaků jinam. Mimoto je deklarovaná vlastnost
+\uv{tisknutelnosti} znaku v~ASCII takto: Znak je tisknutelný, pokud má
+kód~$y$ v~rozsahu 32 až 126. Ostatní znaky se považují za netisknutelné a
+\TeX{} je standardně přepisuje pomocí dvojité stříšky.
+
+Po instalaci balíčku enc\TeX{} je možno přímo nastavovat a číst obsahy
+vektorů xord a xchr prostřednictvím primitivů "\xordcode"
+a "\xchrcode" a dále nastavovat vlastnost \uv{tisknutelnosti} znaku
+pomocí primitivu "\xprncode". Syntaxe všech tří nových primitivů
+je naprosto stejná, jakou známe například u~primitivů "\lccode" a
+"\uccode". Například:
+
+\begtt
+\xordcode"AB="CD \xchrcode\xordcode"AB="AB \the\xchrcode200
+\endtt
+%
+nastavuje xord[0xAB]=0xCD; xchr[xord[0xAB]]=0xAB a dále vytiskne
+hodnotu xchr[200].
+
+Na rozdíl od podobných primitivů "\catcode", "\lccode", "\sfcode" a
+dalších však nově zavedené primitivy mají jednu podstatnou výjimku.
+Reprezentují interní registry \TeX{}u, které vždy mají globální
+platnost. Proto je nastavení "\xordcode" a "\xchrcode" uvnitř
+skupiny za všech okolností globální, ačkoli to explicitně nepíšeme.
+Ústupem z~požadavku na možnost lokálního deklarování
+hodnot jsem dosáhl podstatně větší efektivity výsledného kódu programu.
+
+
+\sec Tisknutelnost znaků nastavená pomocí {\tt\char`\\xprncode}
+% ----------------------------------------------------------
+
+Primitiv "\xprncode" umožňuje nastavovat vlastnost \uv{tisknutelnosti}
+znaku takto: Znak s~kódem $y$ je tisknutelný právě tehdy, když je
+$y$ v~rozsahu 32 až 126 nebo je "\xprncode" $y > 0$. Napíšeme-li například
+"\xprncode255=1", bude tisknutelný znak s~kódem 255. Na druhé straně,
+nastavení "\xprncode`a" třeba na nulu nemá na chování programu žádný
+vliv, protože kód znaku "a" je v~rozsahu 32 až 126. Tímto
+opatřením program vykazuje určitý pud sebezáchovy, protože zlý uživatel
+by mu mohl nastavit všechny znaky jako netisknutelné a program by ztratil
+schopnost se vyjadřovat. Hodnoty "\xprncode" lze nastavit jako u~ostatních
+nových primitivů v~rozsahu nula až 255, ovšem otázka tisknutelnosti je
+totožná s~otázkou na kladnou hodnotu bez ohledu na to, jak velká tato
+hodnota je.
+
+Výchozí hodnoty pro kódování v~době ini\TeX{}u jsou následující:
+
+\vbox{
+\begitems
+* "\xordcode" $i$ = $i$ pro všechna $i$ v~rozsahu 0...255,
+* "\xchrcode" $i$ = $i$ pro všechna $i$ v~rozsahu 0...255,
+* "\xprncode" $i$ = 0 pro $i$ v~rozsahu 0...31, 127...255,
+* "\xprncode" $i$ = 1 pro $i$ v~rozsahu 32...126.
+\enditems
+}
+
+První dva řádky jsou pravdivé jen na operačních systémech, které přijaly
+kódování anglické abecedy podle ASCII. Pokud tomu tak není, pak jsou
+výchozí hodnoty vektorů xord a xchr pozměněny tak, aby mapovaly tisknutelné
+znaky podle systému do ASCII uvnitř \TeX{}u. Taková změna se týká jen 95
+základních tisknutelných znaků, které jsou v~ASCII na pozicích
+32~až~126.
+
+
+\kap Konverze více bytů na jeden byte nebo kontrolní sekvenci
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Od verze Dec 2002 enc\TeX{} umí také konvertovat na úrovni vstupního
+procesoru více bytů na jeden byte nebo kontrolní sekvenci.
+Při výstupu do logu a "\write" souborů je pak tento objekt
+zpětně převeden na původních více bytů. Tato vlastnost nechce nahradit
+chybějící interpret regulárních výrazů ve vstupním procesoru \TeX{}u.
+Byla implementována pouze z~důvodu umožnit pracovat s~UTF-8 kódovanými
+soubory v~běžném 8 bitovém \TeX{}u tak, že znaky z~UTF-8
+z~nejčastěji používané abecedy mohou být mapovány na jeden znak,
+který může mít svůj "\catcode", "\uccode" atd. Jiné znaky
+z~UTF-8 mohou být mapovány na libovolné kontrolní sekvence.
+
+Pro nastavení takové konverze jsou do \TeX{}u přidáno nový pět
+primitivů: "\mubytein", "\mubyteout", "\mubytelog", "\mubyte" a "\endmubyte".
+Primitivy "\mubytein", "\mubyteout" a "\mubytelog" jsou celočíselné
+registry implicitně s~nulovou hodnotou, tj. konverze vstupu a výstupu
+podle konverzní tabulky se neprovádějí. Je-li "\mubytein" nastaveno na
+kladnou hodnotu, \TeX{} okamžitě zahájí konverze vstupního řádku podle
+konverzní tabulky. Je-li "\mubyteout" nastaveno na kladnou hodnotu,
+\TeX{} začne konvertovat do výstupních "\write" souborů podle
+stejné konverzní tabulky. Při kladném "\mubytelog" bude \TeX{} zpětně
+konvertovat také výstup do logu a na terminál.
+Implicitně je konverzní tabulka prázdná a
+jednotlivé řádky se do ní přidávají pomocí dvojice primitivů
+"\mubyte", "\endmubyte" s~touto syntaxí:
+
+\begtt
+\mubyte <first_token><one_optional_space><optional_prefix><byte_sequence>\endmubyte
+\endtt
+
+Každá <byte_sequence> bude převedena ve vstupním procesoru na
+<first_token>. Je-li <first_token> znakem (tj. není to kontrolní
+sekvence), pak se ignoruje jeho kategorie, protože konverze je
+prováděna v~input procesoru podle schématu: <byte_sequence> na jeden
+<byte>. Při výstupu do logu a "\write" souborů se pak každý takový
+<byte> znovu převede na <byte_sequence>.
+
+Pokud je <first_token>
+kontrolní sekvence, pak se na úrovni vstupního procesoru promění
+každá <byte_sequence> na tuto kontrolní sekvenci implementovanou ve formě
+neměnitelného tokenu. Token procesor tuto sekvenci tedy znovu
+neinterpretuje a zůstává za ní ve stavu neignorování mezer. Při
+{\catcode`\<=12 "\mubyteout<2"} není při výstupu do "\write"
+souborů tato kontrolní sekvence zpětně převáděna na původní <byte_sequenci>,
+ale podléhá jen běžné expanzi, jako ostatní kontrolní sekvence.
+Při "\mubyteout>=2" se i tyto kontrolní sekvence převádějí do
+"\write" souborů na původní <byte_sequence>. Aby se ale mohly převést,
+nesmějí před tím expandovat, tj.~musejí
+mít v~době expanze význam neexpandovatelné kontrolní sekvence
+nebo musejí být označeny pomocí "\noexpand".
+Při "\mubyteout>=3" enc\TeX{} potlačí expanzi kontrolních sekvencí
+deklarovaných v~"\mubyte" automaticky (podrobněji viz sekci~3.8).
+Výstup do logu a na terminál, který není produktem příkazu "\write",
+ponechává i při kladném "\mubytelog" kontrolní sekvence nezměněny.
+
+Význam <optional_prefix> je vysvětlen v~sekci~3.5.
+
+\sec Zanášení údajů do konverzní tabulky
+% -----------------------------------
+
+Záznamy do konverzní tabulky jsou pomocí primitivů "\mubyte", "\endmubyte"
+zanášeny globálně, zatímco hodnoty v~registerch "\mubytein",
+"\mubyteout" a "\mubytelog" mají obvykou lokální platnost.
+
+Dvojice primitivů "\mubyte", "\endmubyte" pracuje analogicky, jako
+dvojice "\csname", "\endcsname". Rozdíl je pouze v~tom, že první token
+<first_byte> se neexpanduje a že za ním může (po expanzi) následovat
+<one_optional_space>. Při skenování <optional_prefix> a
+<byte_sequence> již probíhá úplná expanze a při ní se nesmí objevit na
+vstupu do hlavního procesoru token typu kontrolní sekvence, jinak
+nastane chyba, kterou už známe z~používání "\csname", "\endcsname":
+
+\begtt
+! Missing \endmubyte inserted.
+\endtt
+
+Primitiv "\mubyte" na rozdíl od "\csname" neprovádí činnost na úrovni
+expand procesoru, ale jedná se o~přiřazovací primitiv zpracovaný na
+úrovni hlavního procesoru. Takže po
+
+\begtt
+\edef\a{\mubyte X ABC\endmubyte}
+\endtt
+%
+bude makro "\a" obsahovat tokeny: "\mubyte X ABC\endmubyte".
+
+Příklady:
+
+\begtt
+\mubyte ^^c1 ^^c3^^81\endmubyte % Á
+\mubyte ^^e1 ^^c3^^a1\endmubyte % á
+% atd. -- implementace UTF8
+
+\mubyte \endash ^^c4^^f6\endmubyte % příklad na kontrolní sekvenci
+\mubyte \integral INT\endmubyte % příklad pro ilustraci, viz dále.
+
+\mubytein=1 \mubyteout=1 \mubytelog=1 % od této chvíle je překódování aktivní
+
+\def\endash {--}
+\def\integral {\ifmmode \int\else $\int$\fi}
+\endtt
+
+V~tomto příkladě je v~místě <one optional space> více mezer a
+tabulátorů. Protože tabulátory mají kategorii mezery, jsou všechny
+tyto znaky přeměněny token procesorem na jedinou mezeru požadovanou
+v~syntaktickém pravidle pro "\mubyte", "\endmubyte".
+
+Po použití definic z~příkladu se například slovo INTEGRAL promění v~token
+"\integral" okamžitě následovaný písmeny \uv{EGRAL}. V~textu INT EGRAL
+bude za tokenem "\integral" mezera a teprve pak písmena
+\uv{EGRAL}. Také jsou možné konstrukce typu "\defINT{něco}" apod.
+Když napíšeme "\show INT", dostaneme odpověď:
+
+\begtt
+> \integral=macro:
+->\ifmmode \int \else $\int $\fi .
+l.18 \show INT
+\endtt
+%
+a "\string INT" se expanduje na text: "\integral".
+
+Po deklaraci INT podle předchozího příkladu se může
+stát, že někdo napíše: "\INT". Správně by to mělo vést na prázdnou
+kontrolní sekvenci ("\csname\endcsname") následovanou kontrolní
+sekvencí "\integral". Protože se ale s~prázdnými kontrolními
+sekvencemi v~\TeX{}u moc často nepracuje a pro uživatele by to mohlo
+být matoucí, rozhodl jsem se tuto situaci ošetřit tak, že "\INT" je
+převedeno pouze na token "\integral". Pozor na skutečnost,
+že za sekvencí "\INT" není \TeX{} ve stavu ignorování mezer
+a navíc může za ní okamžitě následovat písmeno.
+
+\sec Vlastnosti konverze
+% -------------------
+
+Multibytové sekvence jsou převedeny ze vstupu pouze tehdy, pokud jsou
+celé obsaženy v~jediném řádku. Přesah do dalšího řádku není
+možný. Připojený "\endlinechar" na konci řádku se může stát předmětem
+konverze podle konverzní tabulky.
+
+Sekvence "^^c3^^81" se nepromění ani po použití definic z~příkladu na
+byte \uv{Á}, protože převod dvojitých zobáků na jednotlivé byty
+probíhá v~token procesoru, tj. později, než převody více bytů na
+jeden podle "\mubyte".
+
+Převod více bytů na jeden byte nebo kontrolní sekvenci
+probíhá později než konverze podle "\xordcode" a při výstupu do "\write" a
+log souborů pak převod podle "\mubyte" probíhá dříve než konverze podle
+"\xchrcode". <byte_sequence> tedy musí obsahovat sekvenci bytů tak, jak
+jsou tyto byty konvertovány ze vstupního souboru pomocí "\xordcode".
+
+Postupné procesy na vstupu a výstupu si můžeme naznačit takto:
+
+\begtt
+vstupní text -> \xordcode -> připojení \endlinechar ->
+ \mubyte -> token procesor -> expanze ...
+argument \write -> expanze -> \mubyte -> \xchrcode -> výstup
+\endtt
+
+Při výstupu do "\write" souborů a logů zpětně konvertované
+<byte_sequence> už nepodléhají další konverzi na formát typu
+"^^c3^^81" ani opakované konverzi podle "\mubyte". Tyto
+<byte_sequence> se pouze převedou podle hodnot "\xchrcode".
+
+Pokud se v~konverzní tabulce vyskytují <byte_sequence> se společným
+začátkem, ale různě dlouhé, pak input procesor enc\TeX{}u (od verze
+Feb.~2003) převádí vždy podle nejdelší možné <byte_sequence>, která se
+na vstupu objeví. Příklad:
+
+\begtt
+\mubyte X A\endmubyte
+\mubyte Y ABC\endmubyte
+\mubyte \foo ABCD\endmubyte
+\endtt
+
+V~tomto příkladě se každé A~konvertuje na X, ale pokud následuje BC,
+pak se skupina ABC konvertuje na Y ovšem s~tou výjimkou, že se skupina
+ABCD konvertuje na "\foo". Na pořadí vkládání údajů do konverzní tabulky
+primitivem "\mubyte" v~tomto případě nezáleží.
+
+Pokud se v~konverzní tabulce objeví dvě stejné <byte_sequence>, pak má
+přednost ta, která byla zanesena do tabulky později.
+
+
+\sec Konverze výstupu do logu a na terminál
+% --------------------------------------
+
+Výstup do logu a na terminál je při nulovém "\mubytelog" ponechán bez
+konverze. Pokud je v~takovém případě "\xprncode" znaku nulový, pak se
+znak vytiskne ve formě "^^A" nebo "^^bc". Při kladném "\mubytelog" se
+znaky zanesené do konverzní tabulky konvertují zpět na
+<byte_sequence>. Do logu a na terminál se ale na <byte_sequence>
+nikdy nekonvertují kontrolní sekvence.
+
+Zpětná konverze do logu a na terminál je nastavována společně
+primitivem "\mubytelog" a nelze ji oddělit tak, že by například pro
+terminál byla zpětná konverze potlačena a pro log soubory nikoli.
+
+Výpisy do logu a na terminál občas obsahují kompletní přepis právě
+čteného řádku, který je například při hlášení chyby rozrtžen na dva
+řádky, aby \TeX{} naznačil místo, kde došlo k~problému. Pro další
+výklad budeme těmto částem logu říkad \uv{přepisy řádků}.
+
+Je-li registr "\mubytein" nulový, pak přepisy řádků
+fungují jako ve standardním \TeX{}u. Je-li "\mubytein" kladný a
+"\mubytelog" nulový, pak je v~přepisech řádků zobrazen obsah řádku až
+po konverzi input procesorem enc\TeX{}u, tj. v~těchto přepisech se
+mohou například vyskytovat kontrolní sekvence, které tam uživatel
+vůbec nenapsal. Jsou-li "\mubytein" i "\mubytelog"
+kladné, pak jsou přepisy řádků realizovány bez multibytové konverze
+tam ani zpět. Probíhá jen konverze podle xchr a xord vektorů.
+Je třeba si uvědomit, že v~tomto případě mohou být chybové výpisy
+poněkud matoucí. Například po
+
+\begtt
+\mubyte \sekvence ABC\endmubyte \let\sekvence=\undefined
+\mubytein=1 \mubytelog=1
+Tady je test ABC a řádek pokačuje.
+\endtt
+%
+dostáváme na výstupu:
+
+\begtt
+! Undefined control sequence.
+l.3 Tady je test ABC
+ a řádek pokačuje.
+?
+\endtt
+%
+Teprve "\show ABC" odhalí:
+
+\begtt
+> \sekvence=undefined.
+l.3 \show ABC
+\endtt
+
+
+\sec Mazání údajů v~konverzí tabulce
+% -------------------------------
+
+Údaje v~konverzní tabulce lze mazat jen hromadně: příkaz vymaže
+všechny údaje začínající na společný první znak v~<byte_sequenci>.
+Provede se to pomocí příkazu "\mubyte <znak> <znak>\endmubyte".
+Například:
+
+\begtt
+\mubyte A A\endmubyte
+\endtt
+%
+odstraní z~konverzní tabulky všechny <byte_sequence> začínající
+písmenem A.
+
+Následující kód promaže celou tabulku:
+
+\catcode`<=12
+\begtt
+{\catcode`\^^@=12
+\gdef\clearmubytes{\bgroup \count255=1
+ \loop \uccode`X=\count255
+ \uppercase{\mubyte XX\endmubyte}%
+ \advance\count255 by1
+ \ifnum\count255<256 \repeat
+ \mubyte ^^@^^@\endmubyte
+ \egroup}
+}
+\clearmubytes
+\endtt
+\catcode`<=13
+
+
+\sec Vstupní a výstupní část konverzní tabulky
+% -----------------------------------------
+
+Konverzní tabulka konstruovaná pomocí "\mubyte", "\endmubyte" má dvě
+nezávislé části: vstupní, se kterou pracuje input procesor a výstupní,
+která se používá při zpětných konverzích. Údaje je možné zanést
+nezávisle do každé části při použití neprázdného <optional_prefix>
+(viz syntaktické pravidlo "\mubyte" na začátku této kapitoly).
+Je-li <optional_prefix>
+prázdný, pak se požadavek na konverzi zanese dvojmo do vstupní i
+výstupní části. Je-li ale <optional_prefix> znak kategorie~8 (obvykle
+znak "_"), pak se údaj zanese jen do vstupní části tabulky. Obsahuje-li
+<optional_prefix> dvojici znaků kategorie~8 (obvykle tedy "__"), pak
+se údaj zanese jen do výstupní části tabulky.
+
+Při <optional_prefix> "__" (výstupní část tabulky) je dovoleno mít
+prázdnou <byte_sequenci>. V~takovém případě se původní
+údaje z~výstupní části tabulky, které odpovídají <first_token>,
+vymažou. Pokud tam žádné takové údaje nebyly, nestane se nic.
+
+Vraťme se ke kódu na vymazání tabulky z~předchozí sekce. Tento kód
+vymaže vše ze vstupní části tabulky a z~výstupní jen ty údaje, které
+jsou vázány na <first_token> ve tvaru <byte>. Údaje z~výstupní části
+vázané na kontrolní sekvence nejsou tímto způsobem promazány.
+Promazání jednoho údaje uděláme pomocí:
+"\mubyte \foo __\endmubyte".
+
+
+\sec Vkládání dalších kontrolních sekvencí
+% -------------------------------------
+
+Je-li <first_token> ve tvaru kontrolní sekvence a navíc
+<optional_prefix> je token kategorie~6
+(obvykle znak "#") následovaný <číslem>,
+pak input procesor ponechá beze změny <číslo> znaků,
+ale vloží před ně deklarovanou kontrolní sekvenci.
+Údaj se zanese jen do vstupní části konverzní tabulky.
+Příklad:
+
+\begtt
+\def\abc{ABC}
+\mubyte X BC\endmubyte \mubytein=1
+\mubyte \foo #3 \abc\endmubyte Nyní ABC přechází na \foo ABC
+\mubyte \foo #1 \abc\endmubyte Nyní ABC přechází na \foo AX
+\endtt
+
+Parametr <číslo> má stejnou syntaxi, jako gramatická kategorie <number>
+z~\TeX{}booku. Například při přímém zápisu dekadických číslic
+může následovat jedna nepovinná mezera, jako v~předchozí ukázce.
+
+Je-li <číslo> rovno nule, pak bude
+ponechána beze změny celá <byte_sequence>, která následuje.
+Výsledek je tedy stejný, jako kdyby <číslo> mělo hodnotu délky
+<byte_sequence>.
+
+Hodnota <čísla> je akceptována jen v~rozsahu 0 až 50. Záporná čísla
+jsou interpretována stejně jako nula a čísla větší než 50 způsobí, že
+input procesor vypne po vložení kontrolní sekvence další konverzi až
+do konce řádku.
+
+Praktický příklad použití:
+
+\begtt
+\mubyte \warntwobytes #2^^c3\endmubyte
+\mubyte \warntwobytes #2^^c4\endmubyte
+\mubyte \warntwobytes #2^^c5\endmubyte
+% atd...
+\def\warntwobytes #1#2{\message{WARNING: the UTF8 code:
+ \noconvert#1\noconvert#2 is not defined i my macros.}}
+\endtt
+
+V~tomto příkladě byl použit nový primitiv enc\TeX{}u "\noconvert",
+jehož vlastnosti jsou uvedeny později v~kapitole~5. Připomínám také,
+že od verze Feb.~2003 nezpůsobují jednoznakové <byte_sequence> kolizi
+s~víceznakovými <byte_sequencemi> se stejným začátkem, takže tento
+příklad neruší konverzi \uv{známých} UTF-8 kódů.
+
+
+
+\sec Rozpoznání začátku řádku
+% ------------------------
+
+Existují-li v~konverzní tabulce <byte_sequence>
+s~prvním znakem shodným s~aktuálním "\endlinechar",
+tj.~<byte_sequence> jsou ve tvaru <endlinechar><zbytek>,
+pak input procesor navíc ověřuje, zda je <zbytek> shodný se
+začátkem každého řádku. Pokud ano, provede požadovanou konverzi.
+Příklad použití:
+
+\begtt
+\bgroup \uccode`X=\endlinechar \uppercase{\gdef\echar{X}}\egroup
+\mubyte \fooB \echar ABC\endmubyte % vyhovuje ABC na začátku řádku
+\mubyte \fooE ABC\echar \endmubyte % vyhovuje ABC na konci řádku
+\mubyte \fooW \spce\space ABC\space \endmubyte
+ % vyhovuje ABC jako slovo s mezerami vpředu i vzadu
+\mubyte \foo #\echar ABC\endmubyte %
+ % je-li ABC na začátku řádku, vloží před něj \foo
+\endtt
+
+
+\sec Potlačení expanze v~parametrech write
+% -------------------------------------
+
+Chceme-li převádět kontrolní sekvence zpětně na <byte_sequence> při
+zápisu do "\write" souborů, musíme potlačit případnou expanzi těchto
+kontrolních sekvencí například pomocí "\let\macro=\relax". Protože ale
+"\write" často pracuje asynchronně a kontrolních sekvencí mapujících
+UTF-8 můžeme mít stovky nebo tisíce, umožňuje enc\TeX{} nastavit
+v~době expanze parametrů "\write" příslušným kontrolním sekvencím
+význam "\relax" automaticky. Dělá to při "\mubyteout>=3" a význam
+"\relax" přiřadí právě těm kontrolním sekvencím, které mají
+ve výstupní části konverzní tabulky neprázdnou <byte_sequenci>.
+Jakékoli jiné expanze mimo parametr "\write" probíhají
+normálním způsobem. Příklad:
+
+\begtt
+\mubyte \foo ABC\endmubyte \def\foo{macro body}
+\mubyteout=2
+\immediate\write16{testwrite: \foo} % zapíše "testwrite: macro body"
+\immediate\write16{testwrite: \noexpand\foo} % zapíše "testwrite: ABC"
+\mubyteout=3
+\immediate\write16{testwrite: \foo} % zapíše "testwrite: ABC"
+\message{testmessage: \foo} % zapíše "testmessage: macro body"
+\message{testmessage: \noexpand\foo} % zapíše "testmessage: \foo"
+\edef\a{testedef: \foo} % expanduje na macro body
+\foo % expanduje na macro body
+\immediate\write16{\meaning\foo} % zapíše "\relax"
+\message{\meaning\foo} % zapíše "macro:->macro body"
+\endtt
+
+Pomocí zápisu "\mubyte <control_sequence> \relax \endmubyte" je možno
+přidělit kontrolní sekvenci příznak, aby se neexpandovala
+v~parametrech "\write" při "\mubyteout>=3", ale na druhé straně nebude
+konvertována do žádné <byte_sequence>, ale vypíše se jako obvykle.
+Uvedený zápis má tedy stejný význam jako
+"\mubyte" <control_sequence>" __\string" <control_sequence>"\space\endmubyte",
+ale navíc šetří pamětí \TeX{}u, neboť \TeX{} není nucen ukládat
+string <byte_sequence> do poolu.
+
+Popsanou vlastnost enc\TeX{}u můžete využít k~vytváření vlastních
+maker, která jinak expandují v~parametrech "\write" a jinak
+\uv{normálně}. Příklad:
+
+\begtt
+\mubyte \writeparameter \relax \endmubyte \def\writeparameter{}
+\def\mymacro{\ifx\writeparameter\relax Tady expanduji ve write.
+ \else Tady expanduji normálně.\fi}
+\endtt
+
+
+\sec Asynchronní zpracování příkazu write
+% ------------------------------------
+
+Je známo, že pokud nepoužijeme "\immediate", pak se argument příkazu
+"\write" expanduje až později: ne v~okamžiku výskytu příkazu.
+Příkaz "\write" si proto uloží do své paměti aktuální
+hodnotu registru "\mubyteout" v~době prvního zpracování a pak
+při expanzi a zápisu do souboru tuto hodnotu použije.
+
+Díky této vlastnosti můžeme třeba pro soubor s~obsahem zapisovat
+s~hodnotou "\mubyteout=3" a současně při zápisu do jiného souboru
+ponecháme hodnotu "\mubyteout=0". To může být žádoucí
+například proto, že soubor je určen ke zpracování programem, který
+nemá implementovánu schopnost práce s~UTF-8 kódováním. Vyzkoušejte:
+
+\begtt
+\newwrite\tocfile \newwrite\indexfile
+\immediate\openout\tocfile=\jobname.toc
+\immediate\openout\indexfile=\jobname.idx
+\mubyteout=3
+\write\tocfile{parametr se bude později konvertovat do UTF-8}
+{\mubyteout=0 \write\indexfile{parametr zůstane nezměněný bez konverze}}
+\write\tocfile{zde se znovu provede konverze}
+\end % a teprve v tento okamžik se všechny tři zápisy provedou
+\endtt
+
+
+\sec Hodnoty registru mubyteout
+% --------------------------
+
+Kromě již zmíněných hodnot 0, 1, 2 a 3 registru "\mubyteout" může být
+někdy užitečné nastavit tento registr na hodnoty $-1$, $-2$ a $-3$.
+Význam těchto hodnot je vysvětlen v~následující tabulce:
+
+\vbox{
+\begtt
+\mubyteout <byte>-><byte_sequence> <cs_name>-><byte_sequence> potlačení expanze
+----------------------------------------------------------------------------
+ 0 ne ne ne
+ 1 ano ne ne
+ 2 ano ano ne
+ 3 ano ano ano
+ -1 ano ne ano
+ -2 ne ne ano
+\endtt
+\relax}
+
+Je-li zapnutá konverze <byte>"->"<byte_sequence>, pak se tato konverze
+provádí i do logu a na terminál, zatímco konverze
+<cs_name>"->"<byte_sequence> a potlačení
+expanze se týkají jen argumentů "\write" a "\special".
+
+
+\kap Argumenty primitivu special
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+V~argumentech "\special" se často objevují texty
+v~přirozeném jazyce (například texty pro záložky do PDF dokumentu).
+Při stále častějším používání UTF-8 je žádoucí, aby tyto texty byly
+kódovány v~tomto kódování. Enc\TeX{} tuto možnost nabízí.
+
+Argument primitivu "\special" je zpracován podle hodnoty celočíselného
+registru "\specialout", který má implicitní hodnotu~0.
+
+\begitems
+* "\speialout=0" -- žádná konverze argumentu se neprovede.
+* "\speialout=1" -- provede se konverze jen podle vektoru xchr.
+* "\speialout=2" -- provede se konverze jen podle hodnoty "\mubyteout".
+* "\speialout=3" -- provede se konverze podle hodnoty "\mubyteout"
+ následovaná konverzí podle xchr.
+\enditems
+
+Primitiv "\special" expanduje svůj argument okamžitě. Při
+"\specialout" 2 nebo 3 se expanze provede podle hodnoty "\mubyteout"
+stejně jako u~primitivu "\write". Pak si příkaz "\special" uloží do
+paměti aktuální hodnoty "\specialout" a "\mubyteout" a tyto hodnoty
+použije ještě jednou při skutečném výstupu argumentu do "dvi" souboru.
+
+
+\kap Primitiv noconvert
+ %%%%%%%%%%%%%%%%%%
+
+Enc\TeX{} zavádí primitiv "\noconvert", který
+potlačí případnou konverzi následujícího znaku nebo kontrolní sekvence.
+Přesněji: primitiv "\noconvert" je neexpandující a v~sazbě neudělá nic
+(podobně jako "\relax"). Pokud se ale
+tento primitiv vyskytne v~argumentu "\message" nebo "\errmessage",
+pak jeho kontrolní sekvence není vůbec vytištěna. Navíc pak následující
+znak není konvertován na <byte_sequenci>, ačkoli třeba je "\mubytelog"
+kladný a znak je uveden ve výstupní části konverzní tabulky.
+
+Primitiv "\noconvert" se chová stejně i v~parametrech "\write" a
+"\special". V~tomto případě navíc může primitiv "\noconvert" potlačit
+konverzi následující kontrolní sekvence, ačkoli je třeba "\mubyteout"
+věší než~2.
+
+Konstrukce "\noconvert\noconvert" vytiskne jedno "\noconvert".
+
+Pokud se má primitiv "\noconvert" vypsat v~jiných situacích (například
+při výpisu kontextu při hlášení o~chybě nebo při různých
+"\tracing..."), pak jeho kontrolní sekvence nemizí a navíc
+neovlivní tisk následujícího znaku.
+
+
+\kap Seznam primitivů enc\TeX{}u
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Pro lepší orientaci uvádím přehled nových primitivů enc\TeX{}u:
+
+\begitems
+* "\mubyte" --- zanáší údaje do konverzní tabulky, viz~kap.~3.
+* "\endmubyte" --- separátor pro "\mubyte".
+* "\mubytein" --- registr integer. 0: vícebytová vstupní konverze
+ potlačena, 1 a více: vícebytová vstupní konverze je
+ aktivována.
+* "\mubyteout" --- registr integer, ovlivní konverzi do výstupních
+ souborů "\write" a parametrů "\special", viz~3.10.
+* "\mubytelog" --- registr integer, 0: vícebytová výstupní konverze do
+ logu a na terminál potlačena, 1 a více: vícebytová
+ výstupní konverze je aktivována.
+* "\specialout" --- registr integer, ovlivní zpracování parametrů
+ "\special", viz~kap.~4.
+* "\noconvert" --- podobně jako "\noexpand", ale pro konverze. Viz~kap.~5.
+* "\xordcode" --- přístup k~vektoru xord, viz 2.1.
+* "\xchrcode" --- přístup k~vektoru xchr, viz 2.1.
+* "\xprncode" --- přístup k~vektoru pro tisknutelnost znaků, viz 2.2.
+\enditems
+
+Přehled prefixů při použití
+"\mubyte"<first_token><optional_space><prefix><byte_sequence>"\endmubyte".
+Znak~"#" zde označuje libovolný token kategorie~6 a znak~"_" označuje
+libovolný token kategorie~7.
+
+\begitems
+* žádný prefix --- záznam do vstupní i výstupní tabulky.
+* "_" --- záznam jen do vstupní části tabulky
+* "__" --- záznam jen do výstupní části tabulky
+* "#<číslo>" --- vložení kontrolní sekvence, následujících <číslo> znaků
+ ponechá input procesor beze změny.
+* "\relax" --- kontrolní sekvence nebude expandovat v~parametrech "\write"
+\enditems
+
+Další prefixy se mohou objevit v~budoucích verzích enc\TeX{}u. Vždy
+budou mít kategorie odlišné od 11 a 12, takže pro začátek
+<byte_sequence> je vhodné v~makrech použít token kategorie 11 nebo 12,
+aby se předešlo případnému konfliktu s~budoucí vezí enc\TeX{}u.
+
+
+\kap Dokumentace k~přiloženým souborům maker
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Tato část dokumentace nebyla ve verzi Dec. 2002 revidovaná a je
+ponechána ve stavu z~roku 1997 s~výjimkou následujícího odstavce.
+
+\sec Kódování UTF-8
+% --------------
+
+Pro vstupní kódování UTF-8 jsou připraveny soubory "utf8-csf.tex" a
+"utf8-t1.tex". V~tomto případě je překódování implementováno pomocí
+"\mubyte" a vektory xord, xchr jsou nastaveny tak, že na jejich úrovni
+je zachováno identické zobrazení.
+
+\sec Formáty typu {\tt plain-x-y}
+% ----------------------------
+
+V~balíčku jsou připraveny inicializační soubory pro vygenerování formátu
+podobnému standardnímu formátu plain. Například příkazem
+
+\begtt
+$ tex -ini -enc plain-1250-cs
+\endtt
+
+vygenerujeme formát analogický plainu, který čte vstupní soubory
+v~kódování CP1250 a pracuje s~CS-fonty.
+
+V~balíku jsou k~dispozici tyto inicializační soubory pro plain:
+
+\begtt
+plain-il2-cs ... vstup podle ISO8859-2, textové fonty v TeXu: CS-font
+plain-kam-cs ... vstup podle Kamenických, textové fonty v TeXu: CS-font
+plain-1250-cs ... vstup podle CP1250, textové fonty v TeXu: CS-font
+plain-852-cs ... vstup podle CP852, textové fonty v TeXu: CS-font
+plain-il2-dc ... vstup podle ISO8859-2, textové fonty v TeXu: DC
+plain-kam-dc ... vstup podle Kamenických, textové fonty v TeXu: DC
+plain-1250-dc ... vstup podle CP1250, textové fonty v TeXu: DC
+plain-852-dc ... vstup podle CP852, textové fonty v TeXu: DC
+\endtt
+
+\sec Poznámka k~dlouhým názvům souborů
+% ---------------------------------
+
+Všechny soubory "*.tex" v~balíčku splňují DOSové omezení na délku názvu
+8+3. Výjimkou z~tohoto pravidla jsou pouze soubory plain-x-y popsané
+výše a analogické inicializační soubory pro La\TeX{}. Pokud používáte
+systém, který je omezen na 8+3, doporučuji pro každé kódování zvolit
+jedno písmeno (například c=cs, d=dc, i=il2, w=1250, p=852, k=kam,
+o=koi8, m=mac) a nahradit názvy souborů v~distribuci těmito názvy:
+
+\begtt
+plain-il2-cs.tex plain-ic.tex
+plain-kam-cs.tex plain-kc.tex
+plain-1250-cs.tex plain-wc.tex
+plain-852-cs.tex plain-pc.tex
+plain-il2-dc.tex plain-id.tex
+plain-kam-dc.tex plain-kd.tex
+plain-1250-dc.tex plain-wd.tex
+plain-852-dc.tex plain-pd.tex
+kam-latex.tex latex-ki.tex
+852-latex.tex latex-pi.tex
+\endtt
+
+Obsah "\message" v~souborech {\tt plain-x-y} neměňte. Například formát
+"plain-wc" se po spuštění představí svým plným jménem
+
+\catcode`\<=12
+\begtt
+The format: plain-1250-cs <Sep. 1997>.
+\endtt
+\catcode`\<=13
+
+\sec Kódovací tabulky
+% ----------------
+
+Protože změna vektorů xord a xchr může totálně rozhodit chování
+\TeX{}u zcela k~nepoznání, doporučuji používat určité soubory, které
+nastaví požadované kódování, a dále s~primitivy "\xordcode",
+"\xchrcode" a "\xprncode" za běhu \TeX{}u moc nelaškovat. V~balíčku
+enc\TeX{} jsou k~dispozici soubory, které změnu vektorů pro běžná
+kódování definují. Tyto soubory mají obvyklou příponu tex. Říkáme jim
+kódovací tabulky. Rozlišujeme dva typy kódovacích tabulek.
+
+
+\sec První typ kódovacích tabulek
+% ----------------------------
+
+První typ tabulek deklaruje vnitřní kódování \TeX{}u ve vztahu ke kódování,
+které je běžně používané v~hostitelském operačním systému. Máme-li
+například v~systému kódování ISO-8859-2 a vnitřní kódování \TeX{}u volíme
+podle Corku (kódování je označováno jako T1), pak tabulka musí předefinovat
+xord vektor tak, aby mapoval znaky z~ISO-8859-2 do T1 a vektor xchr musí
+převádět zpátky z~T1 do kódování systému.
+
+Tento typ tabulek je použit v~inicializačních souborech "plain-*.tex" a
+obsahuje v~názvu souboru vstupní i cílové vnitřní kódování \TeX{}u. Podívejte
+se, jak vypadá například tabulka "il2-t1.tex", která definuje vnitřní
+kódování \TeX{}u podle Corku a vstupní kódování ISO8859-2.
+
+Každá tabulka prvního typu čte soubor "encmacro.tex" s~definicemi maker
+"\setcharcode", "\expandto", "\texaccent", "\texmacro" a "\redefaccent".
+
+\begitems
+* "\setcharcode #1 #2 #3 #4 #5 #6 #7" deklaruje \TeX{}ové kódy pro jeden znak.
+ Nastaví xord["#1"]="#2", xchr["#2"]="#1", "\xprncode#2"="#7" a
+ postupně nastaví "\lccode", "\uccode", "\sfcode" a "\catcode" znaku
+ s~kódem "#2" na hodnoty "#3", "#4", "#5" a "#6".
+ Je-li "#1" otazník, pak se xord a xchr nenastaví.
+
+* "\expandto {<definice>}" definuje aktivní podobu znaku "#2" z~posledního
+ "\setcharcode" tak, že tento token expanduje na <definici>. Podrobněji:
+ je-li v~"\setcharcode" uvedeno "#6=13", pak bude každý výskyt znaku "#2"
+ expandovat na <definici>. Není-li v~"\setcharcode" řečeno "#6=13", pak
+ k~expanzi znaku "#2" na <definici> dojde teprve tehdy, když bude
+ (třeba později) nastaveno "\catcode" znaku "#2" na "13".
+
+* "\texaccent" uv{zápis akcentu} připravuje expanzi \uv{zápisu akcentu}
+ na znak s~kódem "#2" z~naposledy použitého "\setcharcode". Například
+ zápis "\v C" bude po načtení souboru il2-t1.tex expandovat na znak
+ s~kódem {\tt\char`\"83}. Pokud zápis pro akcent není v~tabulce uveden,
+ zůstává v~původním významu, tj. třeba "\v g" expanduje na primitiv
+ "\accent", který usadí háček nad písmeno g.
+ K~aktivaci všech \uv{zápisů akcentu} dojde až po použití makra
+ "\redefaccent" (viz níže).
+
+* "\texmacro #1" deklaruje makro "#1" tak, že bude expandovat na znak s~kódem
+ "#2" z~naposledy použitého "\setcharcode". K~předefinování makra "#1"
+ dojde (na rozdíl od "\texaccent") okamžitě. Například makro "\S" bude
+ po načtení souboru "il2-t1.tex" expandovat na znak s~kódem "9F", protože
+ na této pozici je podle Corku znak paragraf.
+
+* "\redefaccent #1" aktivuje expanzi zápisů podle "\texaccent" pro jeden
+ konkrétní akcent "#1".
+\enditems
+
+Kromě toho je na začátku tabulky čten soubor definic závislých na kódování
+textového fontu \TeX{}u. V~naší ukázce jde například o~soubor "t1macro.tex".
+Definují se tam sekvence "\promile", "\clqq" a další.
+
+Může se stát, že nechceme uvedená makra použít, ale hodnoty z~tabulky
+načíst chceme. Pak můžeme přistoupit k~následujícímu triku: Definujeme si
+makra "\setcharcode" až "\redefaccent" sami a dále provedeme načtení tabulky
+takto:
+
+\begtt
+\let\originput=\input \def\input #1 \originput il2-t1
+\let\input=\originput
+\endtt
+
+V~balíčku jsou připraveny tyto tabulky prvního druhu:
+
+\begtt
+Název souboru vstupní kódování vnitřní kódování TeXu
+-------------------------------------------------------------
+il2-csf.tex ISO8859-2 CS-font
+kam-csf.tex Kamenických CS-font
+1250-csf.tex CP1250, MS-Windows CS-font
+852-csf.tex CP852, PC Latin2 CS-font
+il2-t1.tex ISO8859-2 T1 alias Cork
+kam-t1.tex Kamenických T1 alias Cork
+1250-t1.tex CP1250, MS-Windows T1 alias Cork
+852-t1.tex CP852, PC Latin2 T1 alias Cork
+\endtt
+
+Za zmínku stojí první uvedená tabulka "il2-csf.tex", protože ta
+jediná ponechává vektory xord a xchr beze změny. Tuto tabulku
+je tedy možné použít i v~\TeX{}u, který neobsahuje rozšíření
+enc\TeX{}. Všechny ostatní tabulky enc\TeX{} explicitně vyžadují.
+
+
+\sec Druhý typ kódovacích tabulek
+% ----------------------------
+
+Druhý typ tabulek provádí překódování pouze na vstupní straně \TeX{}u. Poznáme
+je podle toho, že nemají na konci názvu značku pro vnitřní kódování \TeX{}u
+(tj. "t1" nebo "csf"), ale značku používanou pro kódování operačního systému
+(např. "il2", "kam"). Třeba tabulka "kam-il2.tex" provádí na vstupní straně
+konverzi z~kódování kamenických do kódování ISO8859-2. Tento typ tabulek
+pozměňuje pouze vektor xchr, ale výstupní vektor xord ponechává beze změny.
+Takovou tabulku použijeme, pokud \TeX{}em načítáme soubor, který je v~jiném
+kódování, než běžně používáme na našem operačním systému. Přitom výstup do
+log, aux apod. ponecháme v~kódování podle našeho systému. Tyto změny
+kódování je možné provádět i v~průběhu zpracování jediného dokumentu.
+
+Druhý typ tabulek navazuje na vstupní kódování deklarované dříve
+tabulkou prvního typu. Nastavení vnitřního kódování \TeX{}u není vůbec
+druhým typem tabulek měněno. Uvedeme příklad. Při generování formátu
+jsme použili tabulku prvního typu "il2-t1.tex", takže vnitřní
+kódování máme podle Corku. Nyní můžeme při zpracování dokumentu na
+přechodnou dobu vybrat některou z~tabulek "*-il2.tex", třeba:
+
+\begtt
+\input kam-il2
+\input dokument
+\restoreinputencoding
+nyní mohu pracovat v původním kódování...
+\end
+\endtt
+
+V~době, kdy probíhá načítání souboru dokument.tex se provádí
+překódování z~Kamenických do T1, uvnitř \TeX{}u se vše zpracovává
+v~T1 a výstup na terminál a do logu máme v~ISO8859-2. V~tomto
+kódování je také zapsán další text pod "\restoreinputencoding".
+Tabulka totiž deklaruje toto makro, aby byl možný návrat k~původnímu
+nastavení vektoru xord.
+
+Při použití tabulek druhého typu musíme dát velký pozor, abychom něco
+neudělali špatně. V~našem příkladě jsou všechny výstupy do souborů
+typu aux v~ISO-8859-2, takže je při opakovaném spuštění \TeX{}u nesmíme
+načítat v~okamžiku, kdy máme nastaven vstupní kód podle Kamenických. To je
+také důvod, proč nedoporučuji generovat formát příkazem "\dump" v~situaci,
+kdy máme načtenou tabulku druhého typu.
+
+\end
+
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/doc/generic/enctex/math-example.tex b/Master/texmf-dist/doc/generic/enctex/math-example.tex
new file mode 100644
index 00000000000..24cdc0af05e
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/math-example.tex
@@ -0,0 +1,23 @@
+% this file is encoded by UTF-8.
+% If your text editor supports this encoding you can see raw math
+% characters here.
+
+% You can try:
+% $ initex plain-utf8-ec
+% $ tex -fmt plain-utf8-ec math-example
+
+\mathchardef\d="0064
+$$ x∧(y∨z) ≥ (x∧y)∨(x∧z) $$
+$$ f(ξ,η) = ∑_{i=1}^m ∑_{j=1}^n f(x_iα_{ij}y_j,α_{ij}) = f(β_i,γ_j) $$
+$$ (φ,ψ) = ∫φ(x)\,ψ(x)\,\d x $$
+$$ 240° + 240° → 120° $$
+$$ A△B = (A∖B)∪(B∖A) $$
+$$ τ(E∪F) = τ\!\left(⋃_{n=1}^∞ τ(E_n)\right) = ∑_{n=1}^∞ τ(E_n) $$
+$$ ∀f_n∈F\colon ∫f_n\,\dμ↘0 $$
+$$ A≈B ⇔ B≈A $$
+$$ Ξ = X^i{∂\over∂x^i} + Y^A{∂\over∂y^A} + Z^A_i{∂\over∂y^A_i} $$
+$$ \hatΛ_c \hatΛ_{c'} ≠ 0 $$
+$$ W_{j→k}(τ_0,τ) = {2π\overℏ}|H^{\rm I}_{kj}|^2\,δ_{Δτ}(ω_{kj})\,Δτ $$
+$$ Β(β)/Γ(γ) ≪ Ζ(ζ)/Υ(υ) $$
+$$ 1\;℉ = 5/9\;℃\;,\quad 1\;Å = 10^{-4}\;µ{\rm m} $$
+\bye
diff --git a/Master/texmf-dist/doc/generic/enctex/unimap.diff b/Master/texmf-dist/doc/generic/enctex/unimap.diff
new file mode 100644
index 00000000000..2c8e2efa36f
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/unimap.diff
@@ -0,0 +1,1402 @@
+--- NamesList.txt 2004-06-11 17:12:47.000000000 +0200
++++ unimap.txt 2004-06-11 13:57:46.000000000 +0200
+@@ -469,6 +469,7 @@
+ 00AC NOT SIGN
+ = angled dash (in typography)
+ x (reversed not sign - 2310)
++ \ \neg
+ 00AD SOFT HYPHEN
+ = SHY
+ = discretionary hyphen
+@@ -488,8 +489,10 @@
+ x (combining ring above - 030A)
+ x (superscript zero - 2070)
+ x (ring operator - 2218)
++ \ \degree
+ 00B1 PLUS-MINUS SIGN
+ x (minus-or-plus sign - 2213)
++ \ \pm
+ 00B2 SUPERSCRIPT TWO
+ = squared
+ * other superscript digit characters: 2070-2079
+@@ -508,6 +511,7 @@
+ # 0020 0301
+ 00B5 MICRO SIGN
+ # 03BC greek small letter mu
++ \ \mu
+ 00B6 PILCROW SIGN
+ = PARAGRAPH SIGN
+ * section sign in some European usage
+@@ -608,6 +612,7 @@
+ @ Mathematical operator
+ 00D7 MULTIPLICATION SIGN
+ = z notation Cartesian product
++ \ \times
+ @ Letters
+ 00D8 LATIN CAPITAL LETTER O WITH STROKE
+ = LATIN CAPITAL LETTER O SLASH
+@@ -688,6 +693,7 @@
+ : 006F 0308
+ @ Mathematical operator
+ 00F7 DIVISION SIGN
++ \ \div
+ @ Letters
+ 00F8 LATIN SMALL LETTER O WITH STROKE
+ = LATIN SMALL LETTER O SLASH
+@@ -853,6 +859,7 @@
+ * Turkish, Azerbaijani
+ * uppercase is 0049
+ x (latin small letter i - 0069)
++ \ \imath
+ 0132 LATIN CAPITAL LIGATURE IJ
+ # 0049 004A
+ 0133 LATIN SMALL LIGATURE IJ
+@@ -2431,37 +2438,61 @@
+ 0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+ : 03CA 0301
+ 0391 GREEK CAPITAL LETTER ALPHA
++ \ \Alpha
+ 0392 GREEK CAPITAL LETTER BETA
++ \ \Beta
+ 0393 GREEK CAPITAL LETTER GAMMA
+ = gamma function
++ \ \Gamma
+ 0394 GREEK CAPITAL LETTER DELTA
+ x (increment - 2206)
++ \ \Delta
+ 0395 GREEK CAPITAL LETTER EPSILON
++ \ \Epsilon
+ 0396 GREEK CAPITAL LETTER ZETA
++ \ \Zeta
+ 0397 GREEK CAPITAL LETTER ETA
++ \ \Eta
+ 0398 GREEK CAPITAL LETTER THETA
++ \ \Theta
+ 0399 GREEK CAPITAL LETTER IOTA
+ = iota adscript
++ \ \Iota
+ 039A GREEK CAPITAL LETTER KAPPA
++ \ \Kappa
+ 039B GREEK CAPITAL LETTER LAMDA
++ \ \Lambda
+ 039C GREEK CAPITAL LETTER MU
++ \ \Mu
+ 039D GREEK CAPITAL LETTER NU
++ \ \Nu
+ 039E GREEK CAPITAL LETTER XI
++ \ \Xi
+ 039F GREEK CAPITAL LETTER OMICRON
++ \ \Omicron
+ 03A0 GREEK CAPITAL LETTER PI
+ x (n-ary product - 220F)
++ \ \Pi
+ 03A1 GREEK CAPITAL LETTER RHO
++ \ \Rho
+ 03A3 GREEK CAPITAL LETTER SIGMA
+ x (latin capital letter esh - 01A9)
+ x (n-ary summation - 2211)
++ \ \Sigma
+ 03A4 GREEK CAPITAL LETTER TAU
++ \ \Tau
+ 03A5 GREEK CAPITAL LETTER UPSILON
++ \ \Upsilon
+ 03A6 GREEK CAPITAL LETTER PHI
++ \ \Phi
+ 03A7 GREEK CAPITAL LETTER CHI
++ \ \Psi
+ 03A8 GREEK CAPITAL LETTER PSI
++ \ \Psi
+ 03A9 GREEK CAPITAL LETTER OMEGA
+ x (ohm sign - 2126)
+ x (inverted ohm sign - 2127)
++ \ \Omega
+ 03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+ : 0399 0308
+ 03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+@@ -2479,51 +2510,76 @@
+ 03B1 GREEK SMALL LETTER ALPHA
+ x (latin small letter alpha - 0251)
+ x (proportional to - 221D)
++ \ \alpha
+ 03B2 GREEK SMALL LETTER BETA
+ x (latin small letter sharp s - 00DF)
+ x (latin small letter b with stroke - 0180)
++ \ \beta
+ 03B3 GREEK SMALL LETTER GAMMA
+ x (latin small letter gamma - 0263)
++ \ \gamma
+ 03B4 GREEK SMALL LETTER DELTA
++ \ \delta
+ 03B5 GREEK SMALL LETTER EPSILON
+ x (latin small letter open e - 025B)
++ \ \varepsilon
+ 03B6 GREEK SMALL LETTER ZETA
++ \ \zeta
+ 03B7 GREEK SMALL LETTER ETA
++ \ \eta
+ 03B8 GREEK SMALL LETTER THETA
+ x (latin small letter barred o - 0275)
+ x (cyrillic small letter fita - 0473)
++ \ \theta
+ 03B9 GREEK SMALL LETTER IOTA
+ x (latin small letter iota - 0269)
+ x (turned greek small letter iota - 2129)
++ \ \iota
+ 03BA GREEK SMALL LETTER KAPPA
++ \ \kappa
+ 03BB GREEK SMALL LETTER LAMDA
+ = lambda
++ \ \lambda
+ 03BC GREEK SMALL LETTER MU
+ x (micro sign - 00B5)
++ \ \mu
+ 03BD GREEK SMALL LETTER NU
++ \ \nu
+ 03BE GREEK SMALL LETTER XI
++ \ \xi
+ 03BF GREEK SMALL LETTER OMICRON
++ \ \omicron
+ 03C0 GREEK SMALL LETTER PI
+ * math constant 3.141592...
++ \ \pi
+ 03C1 GREEK SMALL LETTER RHO
++ \ \rho
+ 03C2 GREEK SMALL LETTER FINAL SIGMA
+ = stigma (the Modern Greek name for this letterform)
+ * not to be confused with the actual stigma letter
+ x (greek small letter stigma - 03DB)
++ \ \varsigma
+ 03C3 GREEK SMALL LETTER SIGMA
+ * used symbolically with a numeric value 200
++ \ \sigma
+ 03C4 GREEK SMALL LETTER TAU
++ \ \tau
+ 03C5 GREEK SMALL LETTER UPSILON
+ x (latin small letter upsilon - 028A)
+ x (latin small letter v with hook - 028B)
++ \ \upsilon
+ 03C6 GREEK SMALL LETTER PHI
+ x (latin small letter phi - 0278)
+ x (greek phi symbol - 03D5)
+ * the ordinary Greek letter, showing considerable glyph variation
+ * in mathematical contexts, the loopy glyph is preferred, to contrast with 03D5
++ \ \varphi
+ 03C7 GREEK SMALL LETTER CHI
++ \ \chi
+ 03C8 GREEK SMALL LETTER PSI
++ \ \psi
+ 03C9 GREEK SMALL LETTER OMEGA
++ \ \omega
+ 03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA
+ : 03B9 0308
+ 03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+@@ -2542,6 +2598,7 @@
+ = GREEK SMALL LETTER SCRIPT THETA
+ * used as a technical symbol
+ # 03B8 greek small letter theta
++ \ \vartheta
+ 03D2 GREEK UPSILON WITH HOOK SYMBOL
+ = GREEK CAPITAL LETTER UPSILON HOOK
+ # 03A5 greek capital letter upsilon
+@@ -2555,11 +2612,13 @@
+ * used as a technical symbol, with a stroked glyph
+ * maps to "phi1" symbol entities
+ # 03C6 greek small letter phi
++ \ \phi
+ 03D6 GREEK PI SYMBOL
+ = GREEK SMALL LETTER OMEGA PI
+ * used as a technical symbol
+ * a variant of pi, looking like omega
+ # 03C0 greek small letter pi
++ \ \varpi
+ 03D7 GREEK KAI SYMBOL
+ * used as an ampersand
+ @ Archaic letters
+@@ -2601,10 +2660,12 @@
+ = GREEK SMALL LETTER SCRIPT KAPPA
+ * used as technical symbol
+ # 03BA greek small letter kappa
++ \ \varkappa
+ 03F1 GREEK RHO SYMBOL
+ = GREEK SMALL LETTER TAILED RHO
+ * used as technical symbol
+ # 03C1 greek small letter rho
++ \ \varrho
+ 03F2 GREEK LUNATE SIGMA SYMBOL
+ = GREEK SMALL LETTER LUNATE SIGMA
+ # 03C2 greek small letter final sigma
+@@ -2618,9 +2679,11 @@
+ = straight epsilon
+ x (small element of - 220A)
+ # 03B5 greek small letter epsilon
++ \ \epsilon
+ 03F6 GREEK REVERSED LUNATE EPSILON SYMBOL
+ = reversed straight epsilon
+ x (small contains as member - 220D)
++ \ \backepsilon
+ @ Additional archaic letters for Bactrian
+ 03F7 GREEK CAPITAL LETTER SHO
+ 03F8 GREEK SMALL LETTER SHO
+@@ -9309,6 +9372,7 @@
+ = three dot leader
+ x (vertical ellipsis - 22EE)
+ # 002E 002E 002E
++ \ \ldots
+ 2027 HYPHENATION POINT
+ @ Formatting characters
+ 2028 LINE SEPARATOR
+@@ -9662,6 +9726,7 @@
+ 2103 DEGREE CELSIUS
+ = degrees Centigrade
+ # 00B0 0043
++ \ \degreeC
+ 2104 CENTRE LINE SYMBOL
+ = clone
+ 2105 CARE OF
+@@ -9674,6 +9739,7 @@
+ 2108 SCRUPLE
+ 2109 DEGREE FAHRENHEIT
+ # 00B0 0046
++ \ \degreeF
+ 210A SCRIPT SMALL G
+ = real number symbol
+ # <font> 0067 latin small letter g
+@@ -9690,11 +9756,13 @@
+ 210F PLANCK CONSTANT OVER TWO PI
+ x (cyrillic small letter tshe - 045B)
+ # <font> 0127 latin small letter h with stroke
++ \ \hbar
+ 2110 SCRIPT CAPITAL I
+ # <font> 0049 latin capital letter i
+ 2111 BLACK-LETTER CAPITAL I
+ = imaginary part
+ # <font> 0049 latin capital letter i
++ \ \Im
+ 2112 SCRIPT CAPITAL L
+ = Laplace symbol
+ # <font> 004C latin capital letter l
+@@ -9705,6 +9773,7 @@
+ * the SI recommended symbol for liter is 006C
+ x (mathematical script small l - 1D4C1)
+ # <font> 006C latin small letter l
++ \ \ell
+ 2114 L B BAR SYMBOL
+ = pounds
+ 2115 DOUBLE-STRUCK CAPITAL N
+@@ -9719,6 +9788,7 @@
+ 2118 SCRIPT CAPITAL P
+ = Weierstrass elliptic function
+ * actually this has the form of a lowercase calligraphic p, despite its name
++ \ \wp
+ 2119 DOUBLE-STRUCK CAPITAL P
+ # <font> 0050 latin capital letter p
+ 211A DOUBLE-STRUCK CAPITAL Q
+@@ -9730,6 +9800,7 @@
+ 211C BLACK-LETTER CAPITAL R
+ = real part
+ # <font> 0052 latin capital letter r
++ \ \Re
+ 211D DOUBLE-STRUCK CAPITAL R
+ = the set of real numbers
+ # <font> 0052 latin capital letter r
+@@ -9753,12 +9824,14 @@
+ * SI unit of resistance, named after G. S. Ohm, German physicist
+ * preferred representation is 03A9
+ : 03A9 greek capital letter omega
++ \ \Omega
+ 2127 INVERTED OHM SIGN
+ = MHO
+ * archaic unit of conductance (= the SI unit siemens)
+ * typographically a turned greek capital letter omega
+ x (latin capital letter upsilon - 01B1)
+ x (greek capital letter omega - 03A9)
++ \ \mho
+ 2128 BLACK-LETTER CAPITAL Z
+ # <font> 005A latin capital letter z
+ 2129 TURNED GREEK SMALL LETTER IOTA
+@@ -9766,10 +9839,12 @@
+ x (greek small letter iota - 03B9)
+ 212A KELVIN SIGN
+ : 004B latin capital letter k
++ \ \Kelvin
+ 212B ANGSTROM SIGN
+ * non SI length unit (=0.1 nm) named after A. J. Ĺngström, Swedish physicist
+ * preferred representation is 00C5
+ : 00C5 latin capital letter a with ring above
++ \ \Angstrom
+ 212C SCRIPT CAPITAL B
+ = Bernoulli function
+ # <font> 0042 latin capital letter b
+@@ -9789,6 +9864,7 @@
+ # <font> 0046 latin capital letter f
+ 2132 TURNED CAPITAL F
+ x (latin capital letter f - 0046)
++ \ \Finv
+ 2133 SCRIPT CAPITAL M
+ = M-matrix (physics)
+ = German Mark (not the current Deutsche Mark)
+@@ -9801,15 +9877,19 @@
+ 2135 ALEF SYMBOL
+ = first transfinite cardinal (countable)
+ # 05D0 hebrew letter alef
++ \ \aleph
+ 2136 BET SYMBOL
+ = second transfinite cardinal (the continuum)
+ # 05D1 hebrew letter bet
++ \ \beth
+ 2137 GIMEL SYMBOL
+ = third transfinite cardinal (functions of a real variable)
+ # 05D2 hebrew letter gimel
++ \ \gimel
+ 2138 DALET SYMBOL
+ = fourth transfinite cardinal
+ # 05D3 hebrew letter dalet
++ \ \daleth
+ @ Additional letterlike symbols
+ 2139 INFORMATION SOURCE
+ * intended for use with 20DD
+@@ -9891,68 +9971,100 @@
+ @ Roman numerals
+ 2160 ROMAN NUMERAL ONE
+ # 0049 latin capital letter i
++ \ \romannumI
+ 2161 ROMAN NUMERAL TWO
+ # 0049 0049
++ \ \romannumII
+ 2162 ROMAN NUMERAL THREE
+ # 0049 0049 0049
++ \ \romannumIII
+ 2163 ROMAN NUMERAL FOUR
+ # 0049 0056
++ \ \romannumIV
+ 2164 ROMAN NUMERAL FIVE
+ # 0056 latin capital letter v
++ \ \romannumV
+ 2165 ROMAN NUMERAL SIX
+ # 0056 0049
++ \ \romannumVI
+ 2166 ROMAN NUMERAL SEVEN
+ # 0056 0049 0049
++ \ \romannumVII
+ 2167 ROMAN NUMERAL EIGHT
+ # 0056 0049 0049 0049
++ \ \romannumVIII
+ 2168 ROMAN NUMERAL NINE
+ # 0049 0058
++ \ \romannumIX
+ 2169 ROMAN NUMERAL TEN
+ # 0058 latin capital letter x
++ \ \romannumX
+ 216A ROMAN NUMERAL ELEVEN
+ # 0058 0049
++ \ \romannumXI
+ 216B ROMAN NUMERAL TWELVE
+ # 0058 0049 0049
++ \ \romannumXII
+ 216C ROMAN NUMERAL FIFTY
+ # 004C latin capital letter l
++ \ \romannumL
+ 216D ROMAN NUMERAL ONE HUNDRED
+ # 0043 latin capital letter c
++ \ \romannumC
+ 216E ROMAN NUMERAL FIVE HUNDRED
+ # 0044 latin capital letter d
++ \ \romannumD
+ 216F ROMAN NUMERAL ONE THOUSAND
+ # 004D latin capital letter m
++ \ \romannumM
+ 2170 SMALL ROMAN NUMERAL ONE
+ # 0069 latin small letter i
++ \ \romannumi
+ 2171 SMALL ROMAN NUMERAL TWO
+ # 0069 0069
++ \ \romannumii
+ 2172 SMALL ROMAN NUMERAL THREE
+ # 0069 0069 0069
++ \ \romannumiii
+ 2173 SMALL ROMAN NUMERAL FOUR
+ # 0069 0076
++ \ \romannumiv
+ 2174 SMALL ROMAN NUMERAL FIVE
+ # 0076 latin small letter v
++ \ \romannumv
+ 2175 SMALL ROMAN NUMERAL SIX
+ # 0076 0069
++ \ \romannumvi
+ 2176 SMALL ROMAN NUMERAL SEVEN
+ # 0076 0069 0069
++ \ \romannumvii
+ 2177 SMALL ROMAN NUMERAL EIGHT
+ # 0076 0069 0069 0069
++ \ \romannumviii
+ 2178 SMALL ROMAN NUMERAL NINE
+ # 0069 0078
++ \ \romannumix
+ 2179 SMALL ROMAN NUMERAL TEN
+ # 0078 latin small letter x
++ \ \romannumx
+ 217A SMALL ROMAN NUMERAL ELEVEN
+ # 0078 0069
++ \ \romannumxi
+ 217B SMALL ROMAN NUMERAL TWELVE
+ # 0078 0069 0069
++ \ \romannumxii
+ 217C SMALL ROMAN NUMERAL FIFTY
+ # 006C latin small letter l
++ \ \romannuml
+ 217D SMALL ROMAN NUMERAL ONE HUNDRED
+ # 0063 latin small letter c
++ \ \romannumc
+ 217E SMALL ROMAN NUMERAL FIVE HUNDRED
+ # 0064 latin small letter d
++ \ \romannumd
+ 217F SMALL ROMAN NUMERAL ONE THOUSAND
+ # 006D latin small letter m
++ \ \romannumm
+ 2180 ROMAN NUMERAL ONE THOUSAND C D
+ 2181 ROMAN NUMERAL FIVE THOUSAND
+ 2182 ROMAN NUMERAL TEN THOUSAND
+@@ -9963,55 +10075,80 @@
+ @ Arrows
+ 2190 LEFTWARDS ARROW
+ x (combining leftwards arrow overlay - 20EA)
++ \ \leftarrow
+ 2191 UPWARDS ARROW
+ * IPA: egressive airflow
++ \ \uparrow
+ 2192 RIGHTWARDS ARROW
+ = z notation total function
++ \ \rightarrow
+ 2193 DOWNWARDS ARROW
+ * IPA: ingressive airflow
++ \ \downarrow
+ 2194 LEFT RIGHT ARROW
+ = z notation relation
++ \ \leftrightarrow
+ 2195 UP DOWN ARROW
++ \ \updownarrow
+ 2196 NORTH WEST ARROW
++ \ \nwarrow
+ 2197 NORTH EAST ARROW
++ \ \nearrow
+ 2198 SOUTH EAST ARROW
++ \ \searrow
+ 2199 SOUTH WEST ARROW
++ \ \swarrow
+ 219A LEFTWARDS ARROW WITH STROKE
+ * negation of 2190
+ : 2190 0338
++ \ \nleftarrow
+ 219B RIGHTWARDS ARROW WITH STROKE
+ * negation of 2192
+ : 2192 0338
++ \ \nrightarrow
+ 219C LEFTWARDS WAVE ARROW
+ 219D RIGHTWARDS WAVE ARROW
++ \ \leadsto
+ 219E LEFTWARDS TWO HEADED ARROW
++ \ \twoheadleftarrow
+ 219F UPWARDS TWO HEADED ARROW
+ 21A0 RIGHTWARDS TWO HEADED ARROW
+ = z notation total surjection
++ \ \twoheadrightarrow
+ 21A1 DOWNWARDS TWO HEADED ARROW
+ = form feed
+ 21A2 LEFTWARDS ARROW WITH TAIL
++ \ \leftarrowtail
+ 21A3 RIGHTWARDS ARROW WITH TAIL
++ \ \rightarrowtail
+ = z notation total injection
+ 21A4 LEFTWARDS ARROW FROM BAR
+ 21A5 UPWARDS ARROW FROM BAR
+ 21A6 RIGHTWARDS ARROW FROM BAR
+ = z notation maplet
++ \ \mapsto
+ 21A7 DOWNWARDS ARROW FROM BAR
+ = depth symbol
+ 21A8 UP DOWN ARROW WITH BASE
+ 21A9 LEFTWARDS ARROW WITH HOOK
++ \ \hookleftarrow
+ 21AA RIGHTWARDS ARROW WITH HOOK
++ \ \hookrightarrow
+ 21AB LEFTWARDS ARROW WITH LOOP
++ \ \looparrowright
+ 21AC RIGHTWARDS ARROW WITH LOOP
++ \ \looparrowleft
+ 21AD LEFT RIGHT WAVE ARROW
+ 21AE LEFT RIGHT ARROW WITH STROKE
+ * negation of 2194
+ : 2194 0338
++ \ \nleftrightarrow
+ 21AF DOWNWARDS ZIGZAG ARROW
+ = electrolysis
+ 21B0 UPWARDS ARROW WITH TIP LEFTWARDS
++ \ \Lsh
+ 21B1 UPWARDS ARROW WITH TIP RIGHTWARDS
++ \ \Rsh
+ 21B2 DOWNWARDS ARROW WITH TIP LEFTWARDS
+ 21B3 DOWNWARDS ARROW WITH TIP RIGHTWARDS
+ 21B4 RIGHTWARDS ARROW WITH CORNER DOWNWARDS
+@@ -10020,60 +10157,94 @@
+ * may indicate a carriage return or new line
+ x (return symbol - 23CE)
+ 21B6 ANTICLOCKWISE TOP SEMICIRCLE ARROW
++ \ \curvearrowleft
+ 21B7 CLOCKWISE TOP SEMICIRCLE ARROW
++ \ \curvearrowright
+ 21B8 NORTH WEST ARROW TO LONG BAR
+ = home
+ 21B9 LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
+ = tab with shift tab
+ 21BA ANTICLOCKWISE OPEN CIRCLE ARROW
++ \ \circlearrowleft
+ 21BB CLOCKWISE OPEN CIRCLE ARROW
++ \ \circlearrowright
+ 21BC LEFTWARDS HARPOON WITH BARB UPWARDS
++ \ \leftharpoonup
+ 21BD LEFTWARDS HARPOON WITH BARB DOWNWARDS
++ \ \leftharpoondown
+ 21BE UPWARDS HARPOON WITH BARB RIGHTWARDS
++ \ \upharpoonright
+ 21BF UPWARDS HARPOON WITH BARB LEFTWARDS
++ \ \upharpoonleft
+ 21C0 RIGHTWARDS HARPOON WITH BARB UPWARDS
++ \ \rightharpoonup
+ 21C1 RIGHTWARDS HARPOON WITH BARB DOWNWARDS
++ \ \rightharpoondown
+ 21C2 DOWNWARDS HARPOON WITH BARB RIGHTWARDS
++ \ \downharpoonright
+ 21C3 DOWNWARDS HARPOON WITH BARB LEFTWARDS
++ \ \downharpoonleft
+ 21C4 RIGHTWARDS ARROW OVER LEFTWARDS ARROW
++ \ \rightleftarrows
+ 21C5 UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
+ 21C6 LEFTWARDS ARROW OVER RIGHTWARDS ARROW
++ \ \leftrightarrows
+ 21C7 LEFTWARDS PAIRED ARROWS
++ \ \leftleftarrows
+ 21C8 UPWARDS PAIRED ARROWS
++ \ \upuparrows
+ 21C9 RIGHTWARDS PAIRED ARROWS
++ \ \rightrightarrows
+ 21CA DOWNWARDS PAIRED ARROWS
++ \ \downdownarrows
+ 21CB LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
++ \ \leftrightharpoons
+ 21CC RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
++ \ \rightleftharpoons
+ 21CD LEFTWARDS DOUBLE ARROW WITH STROKE
+ * negation of 21D0
+ : 21D0 0338
++ \ \nLeftarrow
+ 21CE LEFT RIGHT DOUBLE ARROW WITH STROKE
+ * negation of 21D4
+ : 21D4 0338
++ \ \nLeftrightarrow
+ 21CF RIGHTWARDS DOUBLE ARROW WITH STROKE
+ * negation of 21D2
+ : 21D2 0338
++ \ \nRightarrow
+ 21D0 LEFTWARDS DOUBLE ARROW
++ \ \Leftarrow
+ 21D1 UPWARDS DOUBLE ARROW
++ \ \Uparrow
+ 21D2 RIGHTWARDS DOUBLE ARROW
++ \ \Rightarrow
+ 21D3 DOWNWARDS DOUBLE ARROW
++ \ \Downarrow
+ 21D4 LEFT RIGHT DOUBLE ARROW
++ \ \Leftrightarrow
+ 21D5 UP DOWN DOUBLE ARROW
++ \ \Updownarrow
+ 21D6 NORTH WEST DOUBLE ARROW
+ 21D7 NORTH EAST DOUBLE ARROW
+ 21D8 SOUTH EAST DOUBLE ARROW
+ 21D9 SOUTH WEST DOUBLE ARROW
+ 21DA LEFTWARDS TRIPLE ARROW
++ \ \Lleftarrow
+ 21DB RIGHTWARDS TRIPLE ARROW
++ \ \Rrightarrow
+ 21DC LEFTWARDS SQUIGGLE ARROW
+ 21DD RIGHTWARDS SQUIGGLE ARROW
++ \ \rightsquigarrow
+ 21DE UPWARDS ARROW WITH DOUBLE STROKE
+ = page up
+ 21DF DOWNWARDS ARROW WITH DOUBLE STROKE
+ = page down
+ 21E0 LEFTWARDS DASHED ARROW
++ \ \dashleftarrow
+ 21E1 UPWARDS DASHED ARROW
+ 21E2 RIGHTWARDS DASHED ARROW
++ \ \dashrightarrow
+ 21E3 DOWNWARDS DASHED ARROW
+ 21E4 LEFTWARDS ARROW TO BAR
+ = leftward tab
+@@ -10123,27 +10294,36 @@
+ @@ 2200 Mathematical Operators 22FF
+ @ Mathematical operators
+ 2200 FOR ALL
++ \ \forall
+ 2201 COMPLEMENT
+ x (latin letter stretched c - 0297)
++ \ \complement
+ 2202 PARTIAL DIFFERENTIAL
++ \ \partial
+ 2203 THERE EXISTS
++ \ \exists
+ 2204 THERE DOES NOT EXIST
+ : 2203 0338
++ \ \nexists
+ 2205 EMPTY SET
+ = null set
+ x (latin capital letter o with stroke - 00D8)
+ x (diameter sign - 2300)
++ \ \emptyset
+ 2206 INCREMENT
+ = Laplace operator
+ = forward difference
+ x (greek capital letter delta - 0394)
+ x (white up-pointing triangle - 25B3)
++ \ \Delta
+ 2207 NABLA
+ = Laplace operator (written with superscript 2)
+ = backward difference
+ = del
+ x (white down-pointing triangle - 25BD)
++ \ \nabla
+ 2208 ELEMENT OF
++ \ \in
+ 2209 NOT AN ELEMENT OF
+ : 2208 0338
+ 220A SMALL ELEMENT OF
+@@ -10151,6 +10331,7 @@
+ x (greek lunate epsilon symbol - 03F5)
+ 220B CONTAINS AS MEMBER
+ = such that
++ \ \ni
+ 220C DOES NOT CONTAIN AS MEMBER
+ : 220B 0338
+ 220D SMALL CONTAINS AS MEMBER
+@@ -10159,77 +10340,104 @@
+ = Q.E.D.
+ x (triangular bullet - 2023)
+ x (black vertical rectangle - 25AE)
++ \ \blacksquare
+ 220F N-ARY PRODUCT
+ = product sign
+ x (greek capital letter pi - 03A0)
++ \ \prod
+ 2210 N-ARY COPRODUCT
+ = coproduct sign
++ \ \coprod
+ 2211 N-ARY SUMMATION
+ = summation sign
+ x (greek capital letter sigma - 03A3)
++ \ \sum
+ 2212 MINUS SIGN
+ x (hyphen-minus - 002D)
++ \ \utfminus
+ 2213 MINUS-OR-PLUS SIGN
+ x (plus-minus sign - 00B1)
++ \ \mp
+ 2214 DOT PLUS
++ \ \dotplus
+ 2215 DIVISION SLASH
+ * generic division operator
+ x (solidus - 002F)
+ x (fraction slash - 2044)
++ \ \utfslash
+ 2216 SET MINUS
+ x (reverse solidus - 005C)
++ \ \setminus
+ 2217 ASTERISK OPERATOR
+ x (asterisk - 002A)
++ \ \ast
+ 2218 RING OPERATOR
+ = composite function
+ = APL jot
+ x (degree sign - 00B0)
+ x (white bullet - 25E6)
++ \ \circ
+ 2219 BULLET OPERATOR
+ x (middle dot - 00B7)
+ x (bullet - 2022)
+ x (one dot leader - 2024)
++ \ \bullet
+ 221A SQUARE ROOT
+ = radical sign
+ x (check mark - 2713)
++ \ \surd
+ 221B CUBE ROOT
+ 221C FOURTH ROOT
+ 221D PROPORTIONAL TO
+ x (greek small letter alpha - 03B1)
++ \ \propto
+ 221E INFINITY
++ \ \infty
+ 221F RIGHT ANGLE
+ 2220 ANGLE
++ \ \angle
+ 2221 MEASURED ANGLE
++ \ \measuredangle
+ 2222 SPHERICAL ANGLE
+ = angle arc
++ \ \sphericalangle
+ 2223 DIVIDES
+ = such that
+ = APL stile
+ x (vertical line - 007C)
+ x (latin letter dental click - 01C0)
++ \ \mid
+ 2224 DOES NOT DIVIDE
+ : 2223 0338
++ \ \nmid
+ 2225 PARALLEL TO
+ x (latin letter lateral click - 01C1)
+ x (double vertical line - 2016)
++ \ \parallel
+ 2226 NOT PARALLEL TO
+ : 2225 0338
++ \ \nparallel
+ 2227 LOGICAL AND
+ = wedge, conjunction
+ x (n-ary logical and - 22C0)
+ x (up arrowhead - 2303)
++ \ \land
+ 2228 LOGICAL OR
+ = vee, disjunction
+ x (n-ary logical or - 22C1)
+ x (down arrowhead - 2304)
++ \ \lor
+ 2229 INTERSECTION
+ = cap, hat
+ x (n-ary intersection - 22C2)
++ \ \cap
+ 222A UNION
+ = cup
+ x (n-ary union - 22C3)
++ \ \cup
+ 222B INTEGRAL
+ x (latin small letter esh - 0283)
++ \ \intop
+ 222C DOUBLE INTEGRAL
+ # 222B 222B
+ 222D TRIPLE INTEGRAL
+@@ -10237,6 +10445,7 @@
+ # 222B 222B 222B
+ 222E CONTOUR INTEGRAL
+ x (integral around a point operator - 2A15)
++ \ \ointop
+ 222F SURFACE INTEGRAL
+ # 222E 222E
+ 2230 VOLUME INTEGRAL
+@@ -10246,9 +10455,12 @@
+ 2233 ANTICLOCKWISE CONTOUR INTEGRAL
+ * clockwise or anticlockwise arrows do not reverse during layout mirroring
+ 2234 THEREFORE
++ \ \therefore
+ 2235 BECAUSE
++ \ \because
+ 2236 RATIO
+ x (colon - 003A)
++ \ \ratio
+ 2237 PROPORTION
+ 2238 DOT MINUS
+ = symmetric difference
+@@ -10266,26 +10478,33 @@
+ x (tilde - 007E)
+ x (not sign - 00AC)
+ x (small tilde - 02DC)
++ \ \sim
+ 223D REVERSED TILDE (lazy S)
+ = lazy S
+ * reversed tilde and lazy S are glyph variants
++ \ \backsim
+ 223E INVERTED LAZY S
+ = most positive
+ 223F SINE WAVE
+ = alternating current
+ 2240 WREATH PRODUCT
++ \ \wr
+ 2241 NOT TILDE
+ : 223C 0338
++ \ \nsim
+ 2242 MINUS TILDE
+ 2243 ASYMPTOTICALLY EQUAL TO
++ \ \simeq
+ 2244 NOT ASYMPTOTICALLY EQUAL TO
+ : 2243 0338
+ 2245 APPROXIMATELY EQUAL TO
++ \ \cong
+ 2246 APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
+ 2247 NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+ : 2245 0338
+ 2248 ALMOST EQUAL TO
+ = asymptotic to
++ \ \approx
+ 2249 NOT ALMOST EQUAL TO
+ : 2248 0338
+ 224A ALMOST EQUAL OR EQUAL TO
+@@ -10293,18 +10512,27 @@
+ 224C ALL EQUAL TO
+ * reversed tilde and lazy S are glyph variants
+ 224D EQUIVALENT TO
++ \ \asymp
+ 224E GEOMETRICALLY EQUIVALENT TO
++ \ \Bumpeq
+ 224F DIFFERENCE BETWEEN
++ \ \bumpeq
+ 2250 APPROACHES THE LIMIT
++ \ \doteq
+ 2251 GEOMETRICALLY EQUAL TO
++ \ \doteqdot
+ 2252 APPROXIMATELY EQUAL TO OR THE IMAGE OF
+ = nearly equals
++ \ \failingdoteq
+ 2253 IMAGE OF OR APPROXIMATELY EQUAL TO
++ \ \risingdoteq
+ 2254 COLON EQUALS
+ 2255 EQUALS COLON
+ 2256 RING IN EQUAL TO
++ \ \eqcirc
+ 2257 RING EQUAL TO
+ = approximately equal to
++ \ \circeq
+ 2258 CORRESPONDS TO
+ 2259 ESTIMATES
+ = corresponds to
+@@ -10313,6 +10541,7 @@
+ 225C DELTA EQUAL TO
+ = equiangular
+ = equal to by definition
++ \ \triangleq
+ 225D EQUAL TO BY DEFINITION
+ 225E MEASURED BY
+ 225F QUESTIONED EQUAL TO
+@@ -10320,40 +10549,59 @@
+ x (equals sign - 003D)
+ x (latin letter alveolar click - 01C2)
+ : 003D 0338
++ \ \neq
+ 2261 IDENTICAL TO
++ \ \equiv
+ 2262 NOT IDENTICAL TO
+ : 2261 0338
+ 2263 STRICTLY EQUIVALENT TO
+ 2264 LESS-THAN OR EQUAL TO
++ \ \leq
+ 2265 GREATER-THAN OR EQUAL TO
++ \ \geq
+ 2266 LESS-THAN OVER EQUAL TO
++ \ \leqq
+ 2267 GREATER-THAN OVER EQUAL TO
++ \ \geqq
+ 2268 LESS-THAN BUT NOT EQUAL TO
++ \ \lneqq
+ 2269 GREATER-THAN BUT NOT EQUAL TO
++ \ \gneqq
+ 226A MUCH LESS-THAN
+ x (left-pointing double angle quotation mark - 00AB)
++ \ \ll
+ 226B MUCH GREATER-THAN
+ x (right-pointing double angle quotation mark - 00BB)
++ \ \gg
+ 226C BETWEEN
+ = plaintiff, quantic
++ \ \between
+ 226D NOT EQUIVALENT TO
+ : 224D 0338
+ 226E NOT LESS-THAN
+ : 003C 0338
++ \ \nless
+ 226F NOT GREATER-THAN
+ : 003E 0338
++ \ \ngtr
+ 2270 NEITHER LESS-THAN NOR EQUAL TO
+ : 2264 0338
++ \ \nleq
+ 2271 NEITHER GREATER-THAN NOR EQUAL TO
+ : 2265 0338
++ \ \ngeq
+ 2272 LESS-THAN OR EQUIVALENT TO
++ \ \lesssim
+ 2273 GREATER-THAN OR EQUIVALENT TO
++ \ \gtrsim
+ 2274 NEITHER LESS-THAN NOR EQUIVALENT TO
+ : 2272 0338
+ 2275 NEITHER GREATER-THAN NOR EQUIVALENT TO
+ : 2273 0338
+ 2276 LESS-THAN OR GREATER-THAN
++ \ \lessgtr
+ 2277 GREATER-THAN OR LESS-THAN
++ \ \gtrless
+ 2278 NEITHER LESS-THAN NOR GREATER-THAN
+ : 2276 0338
+ 2279 NEITHER GREATER-THAN NOR LESS-THAN
+@@ -10361,33 +10609,49 @@
+ 227A PRECEDES
+ = lower rank than
+ x (precedes under relation - 22B0)
++ \ \prec
+ 227B SUCCEEDS
+ = higher rank than
+ x (succeeds under relation - 22B1)
++ \ \succ
+ 227C PRECEDES OR EQUAL TO
++ \ \preceq
+ 227D SUCCEEDS OR EQUAL TO
++ \ \succeq
+ 227E PRECEDES OR EQUIVALENT TO
++ \ \precsim
+ 227F SUCCEEDS OR EQUIVALENT TO
++ \ \succsim
+ 2280 DOES NOT PRECEDE
+ : 227A 0338
++ \ \nprec
+ 2281 DOES NOT SUCCEED
+ : 227B 0338
++ \ \nsucc
+ 2282 SUBSET OF
+ = included in set
++ \ \subset
+ 2283 SUPERSET OF
+ = includes in set
++ \ \supset
+ 2284 NOT A SUBSET OF
+ : 2282 0338
+ 2285 NOT A SUPERSET OF
+ : 2283 0338
+ 2286 SUBSET OF OR EQUAL TO
++ \ \subseteq
+ 2287 SUPERSET OF OR EQUAL TO
++ \ \supseteq
+ 2288 NEITHER A SUBSET OF NOR EQUAL TO
+ : 2286 0338
++ \ \nsubseteq
+ 2289 NEITHER A SUPERSET OF NOR EQUAL TO
+ : 2287 0338
++ \ \nsupseteq
+ 228A SUBSET OF WITH NOT EQUAL TO
++ \ \subsetneq
+ 228B SUPERSET OF WITH NOT EQUAL TO
++ \ \supsetneq
+ 228C MULTISET
+ 228D MULTISET MULTIPLICATION
+ x (n-ary union operator with dot - 2A03)
+@@ -10395,76 +10659,106 @@
+ 228E MULTISET UNION
+ = z notation bag addition
+ x (n-ary union operator with plus - 2A04)
++ \ \uplus
+ 228F SQUARE IMAGE OF
++ \ \sqsubset
+ 2290 SQUARE ORIGINAL OF
++ \ \sqsupset
+ 2291 SQUARE IMAGE OF OR EQUAL TO
++ \ \sqsubseteq
+ 2292 SQUARE ORIGINAL OF OR EQUAL TO
++ \ \sqsupseteq
+ 2293 SQUARE CAP
+ x (n-ary square intersection operator - 2A05)
++ \ \sqcap
+ 2294 SQUARE CUP
++ \ \sqcup
+ 2295 CIRCLED PLUS
+ = direct sum
+ = vector pointing into page
+ x (earth - 2641)
+ x (n-ary circled plus operator - 2A01)
++ \ \oplus
+ 2296 CIRCLED MINUS
+ = symmetric difference
+ x (circle with horizontal bar - 29B5)
++ \ \ominus
+ 2297 CIRCLED TIMES
+ = tensor product
+ = vector pointing into page
+ x (n-ary circled times operator - 2A02)
++ \ \otimes
+ 2298 CIRCLED DIVISION SLASH
++ \ \oslash
+ 2299 CIRCLED DOT OPERATOR
+ = direct product
+ = vector pointing out of page
+ x (latin letter bilabial click - 0298)
+ x (sun - 2609)
+ x (n-ary circled dot operator - 2A00)
++ \ \odot
+ 229A CIRCLED RING OPERATOR
+ x (apl functional symbol circle jot - 233E)
+ x (bullseye - 25CE)
++ \ \circledcirc
+ 229B CIRCLED ASTERISK OPERATOR
+ x (apl functional symbol circle star - 235F)
++ \ \circledast
+ 229C CIRCLED EQUALS
+ 229D CIRCLED DASH
++ \ \circleddash
+ 229E SQUARED PLUS
++ \ \boxplus
+ 229F SQUARED MINUS
++ \ \boxminus
+ 22A0 SQUARED TIMES
+ x (ballot box with x - 2612)
++ \ \boxtimes
+ 22A1 SQUARED DOT OPERATOR
++ \ \boxdot
+ 22A2 RIGHT TACK
+ = turnstile
+ = proves, implies, yields
+ = reducible
++ \ \vdash
+ 22A3 LEFT TACK
+ = reverse turnstile
+ = non-theorem, does not yield
++ \ \dashv
+ 22A4 DOWN TACK
+ = top
++ \ \top
+ 22A5 UP TACK
+ = orthogonal to
+ = perpendicular
+ = base, bottom
++ \ \bot
+ 22A6 ASSERTION
+ = reduces to
+ 22A7 MODELS
++ \ \models
+ 22A8 TRUE
+ = statement is true, valid
+ = is a tautology
+ = satisfies
+ = results in
+ 22A9 FORCES
++ \ \Vdash
+ 22AA TRIPLE VERTICAL BAR RIGHT TURNSTILE
++ \ \Vvdash
+ 22AB DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+ 22AC DOES NOT PROVE
+ : 22A2 0338
++ \ \nvdash
+ 22AD NOT TRUE
+ : 22A8 0338
++ \ \nvDash
+ 22AE DOES NOT FORCE
+ : 22A9 0338
++ \ \nVdash
+ 22AF NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+ : 22AB 0338
++ \ \nVDash
+ 22B0 PRECEDES UNDER RELATION
+ x (precedes - 227A)
+ 22B1 SUCCEEDS UNDER RELATION
+@@ -10478,65 +10772,98 @@
+ 22B6 ORIGINAL OF
+ 22B7 IMAGE OF
+ 22B8 MULTIMAP
++ \ \multimap
+ 22B9 HERMITIAN CONJUGATE MATRIX
+ 22BA INTERCALATE
++ \ \intercal
+ 22BB XOR
++ \ \veebar
+ 22BC NAND
+ x (projective - 2305)
++ \ \barwedge
+ 22BD NOR
+ 22BE RIGHT ANGLE WITH ARC
+ 22BF RIGHT TRIANGLE
+ 22C0 N-ARY LOGICAL AND
+ x (logical and - 2227)
++ \ \bigwedge
+ 22C1 N-ARY LOGICAL OR
+ x (logical or - 2228)
++ \ \bigvee
+ 22C2 N-ARY INTERSECTION
+ = z notation generalised intersection
+ x (intersection - 2229)
++ \ \bigcap
+ 22C3 N-ARY UNION
+ = z notation generalised union
+ x (union - 222A)
++ \ \bigcup
+ 22C4 DIAMOND OPERATOR
+ x (white diamond - 25C7)
++ \ \diamond
+ 22C5 DOT OPERATOR
+ x (middle dot - 00B7)
++ \ \cdot
+ 22C6 STAR OPERATOR
+ * APL
+ x (arabic five pointed star - 066D)
+ x (black star - 2605)
++ \ \star
+ 22C7 DIVISION TIMES
++ \ \divideontimes
+ 22C8 BOWTIE
+ x (ocr bow tie - 2445)
++ \ \bowtie
+ 22C9 LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
++ \ \ltimes
+ 22CA RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
++ \ \rtimes
+ 22CB LEFT SEMIDIRECT PRODUCT
++ \ \leftthreetimes
+ 22CC RIGHT SEMIDIRECT PRODUCT
+ x (caret insertion point - 2041)
++ \ \rightthreetimes
+ 22CD REVERSED TILDE EQUALS
++ \ \backsimeq
+ 22CE CURLY LOGICAL OR
++ \ \curlyvee
+ 22CF CURLY LOGICAL AND
++ \ \curlywedge
+ 22D0 DOUBLE SUBSET
++ \ \Subset
+ 22D1 DOUBLE SUPERSET
++ \ \Supset
+ 22D2 DOUBLE INTERSECTION
++ \ \Cap
+ 22D3 DOUBLE UNION
++ \ \Cup
+ 22D4 PITCHFORK
+ = proper intersection
++ \ \pitchfork
+ 22D5 EQUAL AND PARALLEL TO
+ x (viewdata square - 2317)
+ 22D6 LESS-THAN WITH DOT
++ \ \lessdot
+ 22D7 GREATER-THAN WITH DOT
++ \ \grtdot
+ 22D8 VERY MUCH LESS-THAN
++ \ \ggg
+ 22D9 VERY MUCH GREATER-THAN
++ \ \lll
+ 22DA LESS-THAN EQUAL TO OR GREATER-THAN
++ \ \lesseqqgtr
+ 22DB GREATER-THAN EQUAL TO OR LESS-THAN
++ \ \grteqqless
+ 22DC EQUAL TO OR LESS-THAN
+ 22DD EQUAL TO OR GREATER-THAN
+ 22DE EQUAL TO OR PRECEDES
+ 22DF EQUAL TO OR SUCCEEDS
+ 22E0 DOES NOT PRECEDE OR EQUAL
+ : 227C 0338
++ \ \npreceq
+ 22E1 DOES NOT SUCCEED OR EQUAL
+ : 227D 0338
++ \ \nsucceq
+ 22E2 NOT SQUARE IMAGE OF OR EQUAL TO
+ : 2291 0338
+ 22E3 NOT SQUARE ORIGINAL OF OR EQUAL TO
+@@ -10544,7 +10871,9 @@
+ 22E4 SQUARE IMAGE OF OR NOT EQUAL TO
+ 22E5 SQUARE ORIGINAL OF OR NOT EQUAL TO
+ 22E6 LESS-THAN BUT NOT EQUIVALENT TO
++ \ \lnsim
+ 22E7 GREATER-THAN BUT NOT EQUIVALENT TO
++ \ \gnsim
+ 22E8 PRECEDES BUT NOT EQUIVALENT TO
+ 22E9 SUCCEEDS BUT NOT EQUIVALENT TO
+ 22EA NOT NORMAL SUBGROUP OF
+@@ -10558,9 +10887,12 @@
+ 22EE VERTICAL ELLIPSIS
+ * these four ellipses are used for matrix row/column elision
+ x (horizontal ellipsis - 2026)
++ \ \vdots
+ 22EF MIDLINE HORIZONTAL ELLIPSIS
++ \ \cdots
+ 22F0 UP RIGHT DIAGONAL ELLIPSIS
+ 22F1 DOWN RIGHT DIAGONAL ELLIPSIS
++ \ \ddots
+ 22F2 ELEMENT OF WITH LONG HORIZONTAL STROKE
+ 22F3 ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+ 22F4 SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+@@ -10579,6 +10911,7 @@
+ @ Miscellaneous technical
+ 2300 DIAMETER SIGN
+ x (empty set - 2205)
++ \ \varemptyset
+ 2301 ELECTRIC ARROW
+ * from ISO 2047
+ * symbol for End of Transmission
+@@ -10602,12 +10935,16 @@
+ 2308 LEFT CEILING
+ = APL upstile
+ x (left corner bracket - 300C)
++ \ \lceil
+ 2309 RIGHT CEILING
+ x (combining annuity symbol - 20E7)
++ \ \rceil
+ 230A LEFT FLOOR
+ = APL downstile
++ \ \lfloor
+ 230B RIGHT FLOOR
+ x (right corner bracket - 300D)
++ \ \rfloor
+ @ Crops
+ 230C BOTTOM RIGHT CROP
+ * set of four "crop" corners, arranged facing outward
+@@ -10639,9 +10976,13 @@
+ @ Quine corners
+ 231C TOP LEFT CORNER
+ * set of four "quine" corners, for quincuncial arrangement
++ \ \ulcorner
+ 231D TOP RIGHT CORNER
++ \ \urcorner
+ 231E BOTTOM LEFT CORNER
++ \ \llcorner
+ 231F BOTTOM RIGHT CORNER
++ \ \lrcorner
+ @ Integral pieces
+ 2320 TOP HALF INTEGRAL
+ x (integral extension - 23AE)
+@@ -10649,8 +10990,10 @@
+ @ Frown and smile
+ 2322 FROWN
+ x (character tie - 2040)
++ \ \frown
+ 2323 SMILE
+ x (undertie - 203F)
++ \ \smile
+ @ Keyboard symbols
+ 2324 UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
+ = ENTER KEY
+@@ -11527,6 +11870,7 @@
+ = trine
+ x (combining enclosing upward pointing triangle - 20E4)
+ x (increment - 2206)
++ \ \bigtriangleup
+ 25B4 BLACK UP-POINTING SMALL TRIANGLE
+ 25B5 WHITE UP-POINTING SMALL TRIANGLE
+ 25B6 BLACK RIGHT-POINTING TRIANGLE
+@@ -11535,6 +11879,7 @@
+ 25B8 BLACK RIGHT-POINTING SMALL TRIANGLE
+ x (triangular bullet - 2023)
+ 25B9 WHITE RIGHT-POINTING SMALL TRIANGLE
++ \ \triangleright
+ 25BA BLACK RIGHT-POINTING POINTER
+ 25BB WHITE RIGHT-POINTING POINTER
+ = forward arrow indicator
+@@ -11543,6 +11888,7 @@
+ 25BD WHITE DOWN-POINTING TRIANGLE
+ = Hamilton operator
+ x (nabla - 2207)
++ \ \bigtriangledown
+ 25BE BLACK DOWN-POINTING SMALL TRIANGLE
+ 25BF WHITE DOWN-POINTING SMALL TRIANGLE
+ 25C0 BLACK LEFT-POINTING TRIANGLE
+@@ -11550,6 +11896,7 @@
+ = z notation domain restriction
+ 25C2 BLACK LEFT-POINTING SMALL TRIANGLE
+ 25C3 WHITE LEFT-POINTING SMALL TRIANGLE
++ \ \triangleleft
+ 25C4 BLACK LEFT-POINTING POINTER
+ 25C5 WHITE LEFT-POINTING POINTER
+ = backward arrow indicator
+@@ -11565,6 +11912,7 @@
+ = tainome (Japanese, a kind of bullet)
+ 25CA LOZENGE
+ x (white diamond suit - 2662)
++ \ \lozenge
+ 25CB WHITE CIRCLE
+ x (combining enclosing circle - 20DD)
+ x (large circle - 25EF)
+@@ -11797,12 +12145,16 @@
+ 265F BLACK CHESS PAWN
+ @ Playing card symbols
+ 2660 BLACK SPADE SUIT
++ \ \spadesuit
+ 2661 WHITE HEART SUIT
++ \ \heartsuit
+ 2662 WHITE DIAMOND SUIT
+ x (white diamond - 25C7)
+ x (lozenge - 25CA)
++ \ \diamondsuit
+ 2663 BLACK CLUB SUIT
+ = shamrock
++ \ \clubsuit
+ 2664 WHITE SPADE SUIT
+ 2665 BLACK HEART SUIT
+ = valentine
+@@ -11818,8 +12170,11 @@
+ 266B BEAMED EIGHTH NOTES
+ 266C BEAMED SIXTEENTH NOTES
+ 266D MUSIC FLAT SIGN
++ \ \flat
+ 266E MUSIC NATURAL SIGN
++ \ \natural
+ 266F MUSIC SHARP SIGN
++ \ \sharp
+ = z notation infix bag count
+ x (number sign - 0023)
+ @ Syriac cross symbols
+@@ -12183,11 +12538,13 @@
+ = z notation left sequence bracket
+ x (left-pointing angle bracket - 2329)
+ x (left angle bracket - 3008)
++ \ \langle
+ 27E9 MATHEMATICAL RIGHT ANGLE BRACKET
+ = ket
+ = z notation right sequence bracket
+ x (right-pointing angle bracket - 232A)
+ x (right angle bracket - 3009)
++ \ \rangle
+ 27EA MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+ = z notation left chevron bracket
+ x (left double angle bracket - 300A)
+@@ -12211,16 +12568,22 @@
+ @+ The long arrows are used for mapping whereas the short forms would be used in limits. They are also needed for MathML to complete mapping to the ASMA sets.
+ 27F5 LONG LEFTWARDS ARROW
+ x (leftwards arrow - 2190)
++ \ \longleftarrow
+ 27F6 LONG RIGHTWARDS ARROW
+ x (rightwards arrow - 2192)
++ \ \longrightarrow
+ 27F7 LONG LEFT RIGHT ARROW
+ x (left right arrow - 2194)
++ \ \longleftrightarrow
+ 27F8 LONG LEFTWARDS DOUBLE ARROW
+ x (leftwards double arrow - 21D0)
++ \ \Longleftarrow
+ 27F9 LONG RIGHTWARDS DOUBLE ARROW
+ x (rightwards double arrow - 21D2)
++ \ \Longrightarrow
+ 27FA LONG LEFT RIGHT DOUBLE ARROW
+ x (left right double arrow - 21D4)
++ \ \Longleftrightarrow
+ 27FB LONG LEFTWARDS ARROW FROM BAR
+ = maps from
+ x (leftwards arrow from bar - 21A4)
+@@ -12821,6 +13184,7 @@
+ 29EA BLACK DIAMOND WITH DOWN ARROW
+ 29EB BLACK LOZENGE
+ x (lozenge - 25CA)
++ \ \blacklozenge
+ 29EC WHITE CIRCLE WITH DOWN ARROW
+ 29ED BLACK CIRCLE WITH DOWN ARROW
+ @ Error bar symbols
+@@ -12864,17 +13228,23 @@
+ 2A00 N-ARY CIRCLED DOT OPERATOR
+ x (circled dot operator - 2299)
+ x (fisheye - 25C9)
++ \ \bigodot
+ 2A01 N-ARY CIRCLED PLUS OPERATOR
+ x (circled plus - 2295)
++ \ \bigoplus
+ 2A02 N-ARY CIRCLED TIMES OPERATOR
+ x (circled times - 2297)
++ \ \bigotimes
+ 2A03 N-ARY UNION OPERATOR WITH DOT
+ 2A04 N-ARY UNION OPERATOR WITH PLUS
++ \ \biguplus
+ x (multiset union - 228E)
+ 2A05 N-ARY SQUARE INTERSECTION OPERATOR
+ x (square cap - 2293)
++ \ \bigsqcap
+ 2A06 N-ARY SQUARE UNION OPERATOR
+ x (square cup - 2294)
++ \ \bigsqcup
+ 2A07 TWO LOGICAL AND OPERATOR
+ = merge
+ x (two intersecting logical and - 2A55)
diff --git a/Master/texmf-dist/doc/generic/enctex/unimap.py b/Master/texmf-dist/doc/generic/enctex/unimap.py
new file mode 100755
index 00000000000..7618ae84051
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/unimap.py
@@ -0,0 +1,144 @@
+#!/usr/bin/python
+###################################################################
+# unimap.py
+# Generates utf8raw.tex file containing math character definitions
+# from modified Unicode character database unimap.txt.
+#
+# Copyright (C) 2003 David Necas (Yeti)
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+###################################################################
+# Usage: ./unimap.py
+# It takes no arguments, input and output file names are `unimap.txt' and
+# `utf8raw.tex' and are hardcoded below (should be fixed once someone finds
+# a reason for running it on different files).
+#
+# The source file unimap.txt is basically Unicode character name list
+# http://www.unicode.org/Public/UNIDATA/NamesList.txt
+# with additional lines defining TeX expansions of particular characters.
+# These lines have format similar to other character info lines, with
+# backslash (\) as the line type mark:
+# <Tab>\<space>\TeXcontrolsequence
+# \TeXcontrolsequence is the control sequence the character should be
+# mapped to.
+#
+# The NamesList.txt file is huge and the number of supported characters is
+# still relatively small. Thus only diff NamesList.txt -> unimap.txt is
+# normally distributed (unimap.diff). Once you have NamesList.txt, you can
+# create unimap.txt with following command:
+# patch -o unimap.txt NamesList.txt unimap.diff
+
+import re
+from time import asctime, gmtime
+
+database = 'unimap.txt' # Input file
+output = 'utf8raw.tex' # Output file
+
+# Compatibility with Pyhton-2.1
+if not __builtins__.__dict__.has_key('True'):
+ True = 1; False = 0
+if not __builtins__.__dict__.has_key('file'):
+ file = open
+if not __builtins__.__dict__.has_key('dict'):
+ def dict(l):
+ d = {}
+ for x in l: d[x[0]] = x[1]
+ return d
+
+charline_re = re.compile(r'^[0-9A-F]{4,}\t')
+comsect_re = re.compile(r'^@+\t')
+line_template = '\\mubyte %s %s\\endmubyte %% U+%04X %s\n'
+
+class LineType:
+ """NamesList.txt line types. Something between an enum and a hash."""
+ Empty = 0
+ Comment = '++'
+ Section = '@@'
+ Character = 'AA'
+ IsNot = 'x'
+ Alias = '='
+ Note = '*'
+ Combining = ':'
+ Render = '#'
+ TeX = '\\'
+
+LineType.map = dict([(val, name) for name, val in LineType.__dict__.items()
+ if name[0].isupper()])
+
+def linetype(line):
+ """Determine line type of a NamesList.txt file and extract the text."""
+ if not line:
+ return LineType.Empty, None
+ if line.startswith('@'):
+ if line[1:].startswith('@') or line[1:].startswith('+'):
+ return LineType.Comment, comsect_re.sub('', line).strip()
+ return LineType.Section, comsect_re.sub('', line).strip()
+ m = charline_re.match(line)
+ if m:
+ return LineType.Character, (int(line[:m.end()], 16),
+ line[m.end():].strip().lower())
+ if not line.startswith('\t'):
+ raise ValueError, 'Queer line doesn\'t start with @ or Tab'
+ line = line.strip()
+ if not line:
+ return LineType.Empty, None
+ if not LineType.map.has_key(line[0]):
+ raise ValueError, 'Queer character info line (marker %s)' % line[0]
+ return line[0], line[1:].strip()
+
+def utf8chars(u):
+ """Format an Unicode character in a \\mubyte-friendly style.
+
+ character ordinal value should be < 0x10000."""
+ if u < 0x80:
+ return '^^%02x' % u
+ if u < 0x800:
+ return '^^%02x^^%02x' % (0xc0 | (u >> 6),
+ 0x80 | (0x3f & u))
+ return '^^%02x^^%02x^^%02x' % (0xe0 | (u >> 12),
+ 0x80 | (0x3f & (u >> 6)),
+ 0x80 | (0x3f & u))
+
+fh = file(database, 'r')
+# skip some initial noise
+while True:
+ line = fh.readline()
+ try:
+ typ, val = linetype(line)
+ except ValueError:
+ continue
+ if typ == LineType.Section:
+ break
+
+fw = file(output, 'w')
+fw.write('%% Generated from %s %s\n' % (database, asctime(gmtime())))
+while typ:
+ if typ == LineType.Section:
+ sect = val
+ elif typ == LineType.Character:
+ char = val
+ elif typ == LineType.TeX:
+ if not val.startswith('\\'):
+ raise ValueError, '%s is not a control seq (U%X)' % (val, char[0])
+ if sect:
+ fw.write('\n%% %s\n' % sect)
+ sect = None
+ fw.write(line_template % (val, utf8chars(char[0]), char[0], char[1]))
+ typ, val = linetype(fh.readline())
+fh.close()
+fw.write('\n\\endinput\n')
+fw.close()
+
diff --git a/Master/texmf-dist/doc/generic/enctex/vlna.tex b/Master/texmf-dist/doc/generic/enctex/vlna.tex
new file mode 100644
index 00000000000..fcc3e8216be
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/enctex/vlna.tex
@@ -0,0 +1,54 @@
+% Vlna implementovana jako makra v encTeXu
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Leden 2003 Petr Olsak
+
+% Toto je ukazka moznosti encTeXu. Na urovni maker muzeme
+% naprogramovat program vlna.
+
+% Pomocna makra:
+
+\def\setmu #1#2{\mubyte #1##1 #2\endmubyte} % use encTeX Feb 2003
+\bgroup \uccode`X=\endlinechar \uppercase{\gdef\endchar{X}}
+ \uccode`X=`\{ \uppercase{\gdef\leftbrace{X}}
+\egroup
+
+\def\sylabi #1{%
+ \setmu \spacesylab {\space#1} % <mezera>v lese -> <mezera>v~lese
+ \setmu \normalsylab {(#1} % (v lese -> (v~lese
+ \setmu \normalsylab {\endchar#1} % <zacatek radku>v lese -> v~lese
+ \setmu \normalsylab {[#1} % [v lese -> [v~lese
+ \setmu \specsylab {\leftbrace#1} % {v lese -> {v~lese
+}
+% dve moznosti za predlozkou: mezera nebo konec radku:
+
+\def\sylab #1{\sylabi {#1\space}\sylabi {#1\endchar}}
+
+% seznam predlozek:
+
+\sylab v \sylab k \sylab o \sylab s \sylab u \sylab z
+\sylab V \sylab K \sylab O \sylab S \sylab U \sylab Z
+\sylab A \sylab I \sylab i \sylab a
+
+% makra neudelaji nic v matematickem modu a verbatim prostredi:
+
+\def\exx{\expandafter\expandafter\expandafter}
+\def\spacesylab {\ifmmode\else\ifnum\catcode`\ =10 \exx\spacesylabP \fi\fi}
+\def\normalsylab {\ifmmode\else\ifnum\catcode`\ =10 \exx\normalsylabP \fi\fi}
+\def\specsylab {\ifmmode\else\ifnum\catcode`\ =10 \exx\specsylabP \fi\fi}
+
+\def\spacesylabP {\afterassignment\spacesylabR \let\next= }
+\def\spacesylabR {\ifhmode\unskip\fi \next \normalsylabP}
+\def\normalsylabP #1 {#1~}
+\def\specsylabP #1{{\normalsylabP #1}}
+
+\def\uv{\futurelet\next\uvR}
+\def\uvR{\ifx \next\specsylab \expandafter \uvS \else \expandafter \uvP \fi}
+\long\def\uvP #1{\clqq#1\crqq}
+\long\def\uvS \specsylab #1{\normalsylab \clqq#1\crqq}
+
+\mubytein=2 % potrebujeme i konstrukce "a v lese -> a~v~lese"
+
+\endinput
+
+
+