diff options
author | Karl Berry <karl@freefriends.org> | 2010-12-21 23:57:50 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-12-21 23:57:50 +0000 |
commit | acc3b35eec6064cf6c468aeed3a19f83813dde8d (patch) | |
tree | e814a6649caa14203f67e6ddf96f7d2212ce7bda /Master | |
parent | bbaaccee05e7f1de7db31d4d2b56b8fff1f28d85 (diff) |
new xelatex package ucharclasses 1.0 (21dec10)
git-svn-id: svn://tug.org/texlive/trunk@20821 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/xelatex/ucharclasses/README | 64 | ||||
-rw-r--r-- | Master/texmf-dist/doc/xelatex/ucharclasses/ucharclasses.pdf | bin | 0 -> 183412 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/xelatex/ucharclasses/ucharclasses.tex | 492 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xelatex/ucharclasses/ucharclasses.sty | 1587 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 3 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-xetex.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/ucharclasses.tlpsrc | 0 |
7 files changed, 2146 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/xelatex/ucharclasses/README b/Master/texmf-dist/doc/xelatex/ucharclasses/README new file mode 100644 index 00000000000..b36c18a6416 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/ucharclasses/README @@ -0,0 +1,64 @@ + + ucharclasses package for XeLaTex + -------------------------------- + Michiel Kamermans, December 2010 + +The brief +--------- + + Sometimes you don't want to have to bother with font + switching just because you're using languages that are + distinct enough to use different unicode blocks, but + aren't covered by the polyglossia package. Where normal + word processing packages such as Microsoft Word or + OpenOffice Writer handle this for you, LATEX (because it + needs you to tell it what to do) has no default behaviour + for this, and so we arrive at a need for a package that + does this for us. You probably already discovered that + regular LATEX has no understanding of unicode, and ended + up going for Xe(La)TeX as your TeX compiler of choice, + which means you now have two excellent resources available: + fontspec, and ucharclasses. + + The first of these lets you pick fonts based on what your + system calls them, without needing to do anything special + such as turning them into metafonts. This is convenient, + user friendly, and the way of the future (at least, it + should be). + + The second lets you define what should happen when your + text changes from a character in one unicode block, to a + character in another. This is also convenient, and paired + with fontspec it offers automatic font switching in the + same way that normal Office applications perform, with + one big difference: you stay in control. If at some point + you need the switch rule to do something different, + you will be out of luck using an Office application. + In Xe(La)TeX, you stay on top of things and still get to + say exactly what happens, and when. + +So what is it? +-------------- + + This package sets up XeTeX character classes based on + which unicode block a character is found in. It then + allows transition rules to be defined when entering or + leaving particular unicode blocks, the code of which + gets inserted automatically when a transition from a + character from one unicode block to a character from + another unicode block is encountered by XeTeX + + Current compatibility should be Unicode 6.0, although + I may have missed one or more blocks that were added + between 5 and 6. + +license? +-------- + + This package was written by Mike "Pomax" Kamermans, from + nihongoresources and is © 2010, Michiel Kamermans. You + may freely use this package, but you are discouraged from + modifying this package and then redistributing it. Instead, + please contact me (ideally on the XeTeX mailing list) and + we can discuss the changes you wish to make. If they + benefit everyone, they will be worked in as a new version.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/xelatex/ucharclasses/ucharclasses.pdf b/Master/texmf-dist/doc/xelatex/ucharclasses/ucharclasses.pdf Binary files differnew file mode 100644 index 00000000000..6600a27ecae --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/ucharclasses/ucharclasses.pdf diff --git a/Master/texmf-dist/doc/xelatex/ucharclasses/ucharclasses.tex b/Master/texmf-dist/doc/xelatex/ucharclasses/ucharclasses.tex new file mode 100644 index 00000000000..24db0262496 --- /dev/null +++ b/Master/texmf-dist/doc/xelatex/ucharclasses/ucharclasses.tex @@ -0,0 +1,492 @@ +\documentclass[a4paper]{article} + +\usepackage{tocloft} +\usepackage[pdfborder={0 0 0}]{hyperref} +\usepackage{multicol} +\usepackage[top=1in,left=1in,bottom=1in,right=1in]{geometry} + +\renewcommand{\labelitemi}{・} + +% some custom environments, to force on-same-page-ness + +\newenvironment{itemlist}{% + \begin{itemize} + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\partopsep}{0pt} + \setlength{\parskip}{0pt} + \setlength{\labelsep}{5pt}}% +{ + \end{itemize}} + +\newenvironment{numberlist}{% + \begin{enumerate} + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\partopsep}{0pt} + \setlength{\parskip}{0pt} + \setlength{\labelsep}{5pt}}% +{ + \end{enumerate}} + +% and the font switching magic +\usepackage{ucharclasses} +\usepackage{fontspec} +\usepackage{bidi} + +% default transition uses the widest coverage font I know of +\setDefaultTransitions{\fontspec{Code2000}}{} + +% overrides on the default rules for specific informal groups +\setTransitionsForLatin{\fontspec{Palatino Linotype}}{} +\setTransitionsForCJK{\fontspec{SimSun}}{} +\setTransitionsForJapanese{\fontspec{Ume Mincho}}{} +\setTransitionsForArabic{\fontspec{Tahoma}\setRTL}{\setLTR} + +% overrides on the default rules for specific unicode blocks +\setTransitionTo{CJKUnifiedIdeographsExtensionB}{\fontspec{SimSun-ExtB}} +\setTransitionTo{Hebrew}{\fontspec{Times New Roman}} +\setTransitionTo{Thai}{\fontspec{IrisUPC}} +\setTransitionTo{Sinhala}{\fontspec{Iskoola Pota}} +\setTransitionTo{Malayalam}{\fontspec{Arial Unicode MS}} +\setTransitionTo{DominoTiles}{\fontspec{Code2001}} +\setTransitionTo{MahjongTiles}{\fontspec{Symbola}} + +\begin{document} + + \title{ucharclasses} + \author{Mike "Pomax" Kamermans} + \date{\today} + \maketitle + + \tableofcontents + + \pagebreak + + \section{introduction} + + Sometimes you don't want to have to bother with font switching just because you're using languages that are distinct enough to use different unicode blocks, but aren't covered by the polyglossia package. Where normal word processing packages such as Microsoft Word or OpenOffice Writer handle this for you, \LaTeX\ (because it needs you to tell it what to do) has no default behaviour for this, and so we arrive at a need for a package that does this for us. You probably already discovered that regular \LaTeX\ has no understanding of unicode, and ended up going for Xe(La)TeX as your TeX compiler of choice, which means you now have two excellent resources available: fontspec, and ucharclasses. + + The first of these lets you pick fonts based on what your system calls them, without needing to do anything special such as turning them into metafonts. This is convenient, user friendly, and the way of the future (at least, it should be). The second lets you define what should happen when your text changes from a character in one unicode block, to a character in another. This is also convenient, and paired with fontspec it offers automatic fontswitching in the same way that normal Office applications perform, with one big difference: you stay in control. If at some point you need the switch rule to do something different, you will be out of luck using an Office application. In Xe(La)TeX, you stay on top of things and still get to say exactly what happens, and when. + + For instance, this document has no explicit font codes in the text itself, anywhere. Instead there are a few unicode block transition rules defined, which all say "when entering block ..., use fontspec to change the font to ...". As such, the following gibberish texts all just work: + + \begin{itemlist} + \item English: hfowehfoierfhioe (using Palatino Linotype) + \item Arabic: كطبعزذحقظر١٢٣٤٥ (using Tahoma and RTL/LTR rules) + \item Japanese: 飽コネ路は向声ふ語言 (using Ume Mincho) + \item Chinese: 么䛨䀃埳㡱𠁽𠔾𠣓 (Ume Mincho when overlapping Japanese, SimSun for the rest) + \item Hebrew: ץךהפסבכ֨֓ף֘ל֥דע֤֕ (using Times New Roman) + \item Thai: ฦษฤยคซหถฆบซตท (using IrisUPC) + \item Canadian first nations: ᔵᓇᒍᖚᗵᘼᙔᕒᓪ (using Code2000) + \item Sinhala: බඥඊගණජඑඎඞශ෴ (using Iskoola Pota) + \item Malayalam: ഢഘഴഒംഋഈമധറ (using Arial Unicode MS) + \item and even domino tiles, 🁀🀼🁐🁋🁚🁝 (using Code2001), and mahjong tiles: 🀑🀒🀕🀗🀅 (using Symbola) + \end{itemlist} + + However, be aware that this automatic switching only works across unicode blocks. If you are working with typographically overlapping languages, such as combining English and Vietnamese in one document, things get a lot more complex if you want one font for English text and another for Vietnamese text. Both of these languagese use Latin blocks, so it is inherently impossible to tell which "language" a letter belongs to. + + \section{Use} + + In order to generate this document, the following preamble was used: + + \disableTransitionRules + \begin{verbatim} + \usepackage{ucharclasses} + \usepackage{fontspec} + \usepackage{bidi} + + \setDefaultTransitions{\fontspec{Code2000}}{} + \setTransitionsForLatin{\fontspec{Palatino Linotype}}{} + \setTransitionsForArabic{\fontspec{Tahoma}\setRTL}{\setLTR} + \setTransitionsForCJK{\fontspec{SimSun}{} + \setTransitionsForJapanese{\fontspec{Ume Mincho}}{} + + \setTransitionTo{CJKUnifiedIdeographsExtensionB}{\fontspec{SimSun-ExtB}} + \setTransitionTo{Hebrew}{\fontspec{Times New Roman}} + \setTransitionTo{Thai}{\fontspec{IrisUPC}} + \setTransitionTo{Sinhala}{\fontspec{Iskoola Pota}} + \setTransitionTo{Malayalam}{\fontspec{Arial Unicode MS}} + \setTransitionTo{DominoTiles}{\fontspec{Code2001}} + \setTransitionTo{MahjongTiles}{\fontspec{Symbola}} + \end{verbatim} + \enableTransitionRules + + By default, ucharclasses is agnostic with regards to what you want to at the start or end of unicode blocks, so while using it for fontswitching is the most obvious application, you could also use it for far more creative purposes. An example of this is the Arabic block, which doesn't just need a different font, but also needs the text direction reversed, as it is read right-to-left, rather than left-to-right. + + \subsection{overriding ucharclass transitions} + + If you need to "override" ucharclass transition rules (for instance, you want a custom font for a bit of cross-unicode-block text), you will want to temporarily disable and reenabled XeTeX's interchartoks state. You can do this in three ways: + + \begin{numberlist} + \item call [\textbackslash XeTeXinterchartokstate = 0] before, and [\textbackslash XeTeXinterchartokstate = 1] after you're done, + \item call the macros \textbackslash disableTransitionRules before, and \textbackslash enableTransitionRules after you're done, or + \item call \textbackslash uccoff before, and \textbackslash uccon after you're done. + \end{numberlist} + + This last option is mainly there because it's nice and short, and is more convenient in a scoped environment \{\textbackslash uccoff such as this\textbackslash uccon\} where you only want to override the transition behaviour within a paragraph. If you need it disabled for a few blocks of text instead, the full name commands are probably a better choice, because it makes your .tex more readable. As the base XeTeX command uses the un\LaTeX y "... = ..." construction, it's best to avoid it outside of the preamble (and when using ucharclasses, should not be in the preamble at all). + + \section{Load options} + + Without any load options the ucharclasses package will simply set up transition rules for every Unicode block it knows of (currently that's Unicode 6.0). However, you can override this behaviour by explicitly indicating only those unicode blocks that you need for your document. For instance, the following will set up only block awareness for the Greek Unicode blocks: + + \begin{verbatim} + \usepackage[GreekAndCoptic,GreekExtended]{ucharclasses} + \end{verbatim} + + In addition to allowing specific Unicode blocks, informal groups can also be used, so that the following will turn on awareness of all the CJK Unicode blocks: + + \begin{verbatim} + \usepackage[CJK]{ucharclasses} + \end{verbatim} + + Currently available informal blocks are: + + \begin{itemlist} + \item Arabic + \item Chinese + \item CJK + \item Cyrillic + \item Diacritics + \item Greek + \item Korean + \item Japanese + \item Latin + \item Mathematics + \item Phonetics + \item Punctuation + \item Symbols + \item Yi + \item Other + \end{itemlist} + + \section{Commands} + + \subsection{\textbackslash setTransitionTo[2]} + + This command has two arguments: + + \begin{numberlist} + \item The name of the unicode class to which the transition should apply (see 'Unicode blocks' list) + \item The code you want used when entering this unicode block + \end{numberlist} + + \subsection{\textbackslash setTransitionFrom[2]} + + This command has two arguments: + + \begin{numberlist} + \item The name of the unicode class to which the transition should apply (see 'Unicode blocks' list) + \item The code you want used when exiting this unicode block + \end{numberlist} + + \subsection{\textbackslash setTransitions[3]} + + This command has three arguments: + + \begin{numberlist} + \item The name of the unicode class to which the transition should apply (see 'Unicode blocks' list) + \item The code you want used when entering this unicode block + \item The code you want used when exiting this unicode block + \end{numberlist} + + \subsection{\textbackslash setTransitionsForXXXX[2]} + + There are a number of these commands, pertaining to particular "informal groups": collections of unicode blocks which can be considered part of a single meta-block. Currently available informal groups (the names of which replace the XXXX in the section-stated command) are: + + \begin{itemlist} + \item Arabic + \item Chinese + \item CJK + \item Cyrillic + \item Diacritics + \item Greek + \item Korean + \item Japanese + \item Latin + \item Mathematics + \item Phonetics + \item Punctuation + \item Symbols + \item Yi + \item Other + \end{itemlist} + + Furthermore, these commands have two arguments: + + \begin{numberlist} + \item The code you want used when entering blocks from the command's informal group + \item The code you want used when exiting blocks from the command's informal group + \end{numberlist} + + \subsection{\textbackslash setDefaultTransitions[2]} + + This is a blanket command that lets you set up the same to and from transition rules for all blocks in one go. It has (fairly obviously) two arguments: + + \begin{numberlist} + \item The code you want used when entering any unicode block + \item The code you want used when exiting any unicode block + \end{numberlist} + + \section{Code} + + The code relies on individual tex files that define the unicode blocks, each starting with: + + \disableTransitionRules + \begin{verbatim} + \newcommand{\UnicodeBlockNameClass}{somenumber} + \end{verbatim} + \enableTransitionRules + + The classes are automatically numbered, per run, by using the \textbackslash newXeTeXintercharclass command. The code then simply iterates over the class numbers from lower bound to upper bound; lower bound is recorded by calling \textbackslash newXeTeXintercharclass once, before loading all the unicode blocks. Every block that is loaded then increments the class counter by calling \textbackslash newXeTeXintercharclass for its class, and after the loading is done \textbackslash newXeTeXintercharclass is called once more to get the iteration upper bound. This technically wastes two class numbers, but this is fairly irrelevant given the number of classes we use for all the different unicode blocks. + + The block loading code is defined as follows: + + \disableTransitionRules + \begin{verbatim} + \newcounter{glyphcounter} + \newcommand{\@defineUnicodeClass}[3]{ + \newXeTeXintercharclass#1 + \forloop{glyphcounter}{#2}{\value{glyphcounter}<#3}{ + \XeTeXcharclass\value{glyphcounter}=#1} + \XeTeXcharclass#3=#1} + + \newXeTeXintercharclass\@classstart + \@defineUnicodeClass{\AegeanNumbersClass}{65792}{65855} + ... + \@defineUnicodeClass{\YijingHexagramSymbolsClass}{19904}{19967} + \newXeTeXintercharclass\@classend + \end{verbatim} + \enableTransitionRules + + And the transition commands are defined as follows: + + \disableTransitionRules + \begin{verbatim} + \newcommand{\setTransitionsFor}[3]{ + \forloop{iclass}{he\@classstart}{\value{iclass} < \@nameuse{#1Class}}{ + \@transition{he\value{iclass}}{\@nameuse{#1Class}}{{#2}} + \@transition{\@nameuse{#1Class}}{he\value{iclass}}{{#3}}} + \addtocounter{iclass}{2} + \forloop{iclass}{\value{iclass}}{\value{iclass} < he\@classend}{ + \@transition{he\value{iclass}}{\@nameuse{#1Class}}{{#2}} + \@transition{\@nameuse{#1Class}}{he\value{iclass}}{{#3}}} + % and a binding for the transitions to and from boundary characters + \@transition{255}{\@nameuse{#1Class}}{{#2}} + \@transition{\@nameuse{#1Class}}{255}{{#3}}} + + \newcommand{\setTransitionTo}[2] { + \forloop{iclass}{\the\@classstart}{\value{iclass} < \@nameuse{#1Class}}{ + \@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}} + \addtocounter{iclass}{2} + \forloop{iclass}{\value{iclass}}{\value{iclass} < \the\@classend}{ + \@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}} + % and a binding for the transition from boundary characters + \@transition{255}{\@nameuse{#1Class}}{{#2}}} + + \newcommand{\setTransitionFrom}[2]{ + \forloop{iclass}{\the\@classstart}{\value{iclass} < \@nameuse{#1Class}}{ + \@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#2}}} + \addtocounter{iclass}{2} + \forloop{iclass}{\value{iclass}}{\value{iclass} < \the\@classend}{ + \@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#2}}} + % and a binding for the transition to boundary characters + \@transition{\@nameuse{#1Class}}{255}{{#2}}} + \end{verbatim} + \enableTransitionRules + + The broad level \textbackslash setTransitionsFor(InformalGroupName)[2] commands are essentially wrapper commands, calling \textbackslash setTransitionsFor for each blocks that is in the informal group. For Arabic, for instance, the code is: + + \disableTransitionRules + \begin{verbatim} + \newcommand{\setTransitionsForArabic}[2]{ + \setTransitionsFor{Arabic}{#1}{#2} + \setTransitionsFor{ArabicPresentationFormsA}{#1}{#2} + \setTransitionsFor{ArabicPresentationFormsB}{#1}{#2} + \setTransitionsFor{ArabicSupplement}{#1}{#2} + } + \end{verbatim} + \enableTransitionRules + + \pagebreak + \section{Unicode blocks} + + The following Unicode blocks are currently available: + + \begin{multicols}{2} + \begin{itemlist} + \item Aegean\-Numbers + \item Alphabetic\-Presentation\-Forms + \item Ancient\-Greek\-Musical\-Notation + \item Ancient\-Greek\-Numbers + \item Ancient\-Symbols + \item Arabic + \item Arabic\-Presentation\-Forms\-A + \item Arabic\-Presentation\-Forms\-B + \item Arabic\-Supplement + \item Armenian + \item Arrows + \item Balinese + \item Basic\-Latin + \item Bengali + \item Block\-Elements + \item Bopomofo + \item Bopomofo\-Extended + \item Box\-Drawing + \item Braille\-Patterns + \item Buginese + \item Buhid + \item Byzantine\-Musical\-Symbols + \item Carian + \item Cham + \item Cherokee + \item CJKCompatibility + \item CJKCompatibility\-Forms + \item CJKCompatibility\-Ideographs + \item CJKCompatibility\-Ideographs\-Supplement + \item CJKRadicals\-Supplement + \item CJKStrokes + \item CJKSymbolsand\-Punctuation + \item CJKUnified\-Ideographs + \item CJKUnified\-Ideographs\-Extension\-A + \item CJKUnified\-Ideographs\-Extension\-B + \item Combining\-Diacritical\-Marks + \item Combining\-Diacritical\-Marksfor\-Symbols + \item Combining\-Diacritical\-Marks\-Supplement + \item Combining\-Half\-Marks + \item Control\-Pictures + \item Coptic + \item Counting\-Rod\-Numerals + \item Cuneiform + \item Cuneiform\-Numbersand\-Punctuation + \item Currency\-Symbols + \item Cypriot\-Syllabary + \item Cyrillic + \item Cyrillic\-Extended\-A + \item Cyrillic\-Extended\-B + \item Cyrillic\-Supplement + \item Deseret + \item Devanagari + \item Dingbats + \item Domino\-Tiles + \item Enclosed\-Alphanumerics + \item Enclosed\-CJKLettersand\-Months + \item Ethiopic + \item Ethiopic\-Extended + \item Ethiopic\-Supplement + \item General\-Punctuation + \item Geometric\-Shapes + \item Georgian + \item Georgian\-Supplement + \item Glagolitic + \item Gothic + \item Greekand\-Coptic + \item Greek\-Extended + \item Gujarati + \item Gurmukhi + \item Halfwidthand\-Fullwidth\-Forms + \item Hangul\-Compatibility\-Jamo + \item Hangul\-Jamo + \item Hangul\-Syllables + \item Hanunoo + \item Hebrew + \item Hiragana + \item Ideographic\-Description\-Characters + \item IPAExtensions + \item Kanbun + \item Kangxi\-Radicals + \item Kannada + \item Katakana + \item Katakana\-Phonetic\-Extensions + \item Kayah\-Li + \item Kharoshthi + \item Khmer + \item Khmer\-Symbols + \item Lao + \item Latin\-Extended\-A + \item Latin\-Extended\-Additional + \item Latin\-Extended\-B + \item Latin\-Extended\-C + \item Latin\-Extended\-D + \item Latin\-Supplement + \item Lepcha + \item Letterlike\-Symbols + \item Limbu + \item Linear\-BIdeograms + \item Linear\-BSyllabary + \item loadblocks.tex + \item Lycian + \item Lydian + \item Mahjong\-Tiles + \item Malayalam + \item Mathematical\-Alphanumeric\-Symbols + \item Mathematical\-Operators + \item Miscellaneous\-Mathematical\-Symbols\-A + \item Miscellaneous\-Mathematical\-Symbols\-B + \item Miscellaneous\-Symbolsand\-Arrows + \item Miscellaneous\-Symbols + \item Miscellaneous\-Technical + \item Modifier\-Tone\-Letters + \item Mongolian + \item moo.txt + \item Musical\-Symbols + \item Myanmar + \item New\-Tai\-Lue + \item NKo + \item Number\-Forms + \item Ogham + \item Old\-Chiki + \item Old\-Italic + \item Old\-Persian + \item Optical\-Character\-Recognition + \item Oriya + \item Osmanya + \item Phags\-Pa + \item Phaistos\-Disc + \item Phoenician + \item Phonetic\-Extensions + \item Phonetic\-Extensions\-Supplement + \item Private\-Use\-Area + \item Rejang + \item Runic + \item Saurashtra + \item Shavian + \item Sinhala + \item Small\-Form\-Variants + \item Spacing\-Modifier\-Letters + \item Specials + \item Superscriptsand\-Subscripts + \item Supplemental\-Arrows\-A + \item Supplemental\-Arrows\-B + \item Supplemental\-Mathematical\-Operators + \item Supplemental\-Punctuation + \item Supplementary\-Private\-Use\-Area\-A + \item Supplementary\-Private\-Use\-Area\-B + \item Syloti\-Nagri + \item Syriac + \item Tagalog + \item Tagbanwa + \item Tags + \item Tai\-Le + \item Tai\-Xuan\-Jing\-Symbols + \item Tamil + \item Telugu + \item Thaana + \item Thai + \item Tibetan + \item Tifinagh + \item Ugaritic + \item Unified\-Canadian\-Aboriginal\-Syllabics + \item Vai + \item Variation\-Selectors + \item Variation\-Selectors\-Supplement + \item Vertical\-Forms + \item Yijing\-Hexagram\-Symbols + \item Yi\-Radicals + \item Yi\-Syllables + \end{itemlist} + \end{multicols} + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/xelatex/ucharclasses/ucharclasses.sty b/Master/texmf-dist/tex/xelatex/ucharclasses/ucharclasses.sty new file mode 100644 index 00000000000..62059349ad0 --- /dev/null +++ b/Master/texmf-dist/tex/xelatex/ucharclasses/ucharclasses.sty @@ -0,0 +1,1587 @@ +% ---------------------------------------------------------------------------- +% This "ucharclasses" package sets up XeTeX character classes based on which +% unicode block a character is found in. It then allows transition rules to be defined +% when entering or leaving particular unicode blocks, the code of which gets inserted +% automatically when a transition from a character from one unicode block to a +% character from another unicode block is encountered by XeTeX +% +% Current compatibility should be Unicode 6.0, although I may have missed one or +% more blocks that were added between 5 and 6. +% +% This package was written by Mike "Pomax" Kamermans, from nihongoresources +% and is © 2010, Michiel Kamermans. You may freely use this package, but you are +% discouraged from modifying this package and then redistributing it. Instead, please +% contact me (ideally on the XeTeX mailing list) and we can discuss the changes +% you wish to make. If they benefit everyone, they will be worked in as a new version. +% +% ---------------------------------------------------------------------------- + +\ProvidesPackage{ucharclasses}[2010/12/19 v1.0 Unicode block character classes for XeLaTeX] + +% ---------------------------------------------------------------------------- +% The package options allow you to selectively enable certain unicode blocks +% ---------------------------------------------------------------------------- + +% load indicator "flags" - master flag + +\newcommand{\loadAllClasses}{1} +\newcommand{\overrideClassLoading}{\renewcommand{\loadAllClasses}{0}} + +% load indicator "flags" - block flags + +% Unicode 5.1 blocks: + +\newcommand{\enableAegeanNumbers}{0} +\newcommand{\enableAlphabeticPresentationForms}{0} +\newcommand{\enableAncientGreekMusicalNotation}{0} +\newcommand{\enableAncientGreekNumbers}{0} +\newcommand{\enableAncientSymbols}{0} +\newcommand{\enableArabic}{0} +\newcommand{\enableArabicPresentationFormsA}{0} +\newcommand{\enableArabicPresentationFormsB}{0} +\newcommand{\enableArabicSupplement}{0} +\newcommand{\enableArmenian}{0} +\newcommand{\enableArrows}{0} +\newcommand{\enableBalinese}{0} +\newcommand{\enableBasicLatin}{0} +\newcommand{\enableBengali}{0} +\newcommand{\enableBlockElements}{0} +\newcommand{\enableBopomofo}{0} +\newcommand{\enableBopomofoExtended}{0} +\newcommand{\enableBoxDrawing}{0} +\newcommand{\enableBraillePatterns}{0} +\newcommand{\enableBuginese}{0} +\newcommand{\enableBuhid}{0} +\newcommand{\enableByzantineMusicalSymbols}{0} +\newcommand{\enableCarian}{0} +\newcommand{\enableCham}{0} +\newcommand{\enableCherokee}{0} +\newcommand{\enableCJKCompatibility}{0} +\newcommand{\enableCJKCompatibilityForms}{0} +\newcommand{\enableCJKCompatibilityIdeographs}{0} +\newcommand{\enableCJKCompatibilityIdeographsSupplement}{0} +\newcommand{\enableCJKRadicalsSupplement}{0} +\newcommand{\enableCJKStrokes}{0} +\newcommand{\enableCJKSymbolsAndPunctuation}{0} +\newcommand{\enableCJKUnifiedIdeographs}{0} +\newcommand{\enableCJKUnifiedIdeographsExtensionA}{0} +\newcommand{\enableCJKUnifiedIdeographsExtensionB}{0} +\newcommand{\enableCJKUnifiedIdeographsExtensionC}{0} +\newcommand{\enableCombiningDiacriticalMarks}{0} +\newcommand{\enableCombiningDiacriticalMarksforSymbols}{0} +\newcommand{\enableCombiningDiacriticalMarksSupplement}{0} +\newcommand{\enableCombiningHalfMarks}{0} +\newcommand{\enableControlPictures}{0} +\newcommand{\enableCoptic}{0} +\newcommand{\enableCountingRodNumerals}{0} +\newcommand{\enableCuneiform}{0} +\newcommand{\enableCuneiformNumbersAndPunctuation}{0} +\newcommand{\enableCurrencySymbols}{0} +\newcommand{\enableCypriotSyllabary}{0} +\newcommand{\enableCyrillic}{0} +\newcommand{\enableCyrillicExtendedA}{0} +\newcommand{\enableCyrillicExtendedB}{0} +\newcommand{\enableCyrillicSupplement}{0} +\newcommand{\enableDeseret}{0} +\newcommand{\enableDevanagari}{0} +\newcommand{\enableDingbats}{0} +\newcommand{\enableDominoTiles}{0} +\newcommand{\enableEnclosedAlphanumerics}{0} +\newcommand{\enableEnclosedCJKLettersAndMonths}{0} +\newcommand{\enableEthiopic}{0} +\newcommand{\enableEthiopicExtended}{0} +\newcommand{\enableEthiopicSupplement}{0} +\newcommand{\enableGeneralPunctuation}{0} +\newcommand{\enableGeometricShapes}{0} +\newcommand{\enableGeorgian}{0} +\newcommand{\enableGeorgianSupplement}{0} +\newcommand{\enableGlagolitic}{0} +\newcommand{\enableGothic}{0} +\newcommand{\enableGreekAndCoptic}{0} +\newcommand{\enableGreekExtended}{0} +\newcommand{\enableGujarati}{0} +\newcommand{\enableGurmukhi}{0} +\newcommand{\enableHalfwidthAndFullwidthForms}{0} +\newcommand{\enableHangulCompatibilityJamo}{0} +\newcommand{\enableHangulJamo}{0} +\newcommand{\enableHangulSyllables}{0} +\newcommand{\enableHanunoo}{0} +\newcommand{\enableHebrew}{0} +\newcommand{\enableHiragana}{0} +\newcommand{\enableIdeographicDescriptionCharacters}{0} +\newcommand{\enableIPAExtensions}{0} +\newcommand{\enableKanbun}{0} +\newcommand{\enableKangxiRadicals}{0} +\newcommand{\enableKannada}{0} +\newcommand{\enableKatakana}{0} +\newcommand{\enableKatakanaPhoneticExtensions}{0} +\newcommand{\enableKayahLi}{0} +\newcommand{\enableKharoshthi}{0} +\newcommand{\enableKhmer}{0} +\newcommand{\enableKhmerSymbols}{0} +\newcommand{\enableLao}{0} +\newcommand{\enableLatinExtendedAdditional}{0} +\newcommand{\enableLatinExtendedA}{0} +\newcommand{\enableLatinExtendedB}{0} +\newcommand{\enableLatinExtendedC}{0} +\newcommand{\enableLatinExtendedD}{0} +\newcommand{\enableLatinSupplement}{0} +\newcommand{\enableLepcha}{0} +\newcommand{\enableLetterlikeSymbols}{0} +\newcommand{\enableLimbu}{0} +\newcommand{\enableLinearBIdeograms}{0} +\newcommand{\enableLinearBSyllabary}{0} +\newcommand{\enableLycian}{0} +\newcommand{\enableLydian}{0} +\newcommand{\enableMahjongTiles}{0} +\newcommand{\enableMalayalam}{0} +\newcommand{\enableMathematicalAlphanumericSymbols}{0} +\newcommand{\enableMathematicalOperators}{0} +\newcommand{\enableMiscellaneousMathematicalSymbolsA}{0} +\newcommand{\enableMiscellaneousMathematicalSymbolsB}{0} +\newcommand{\enableMiscellaneousSymbols}{0} +\newcommand{\enableMiscellaneousSymbolsAndArrows}{0} +\newcommand{\enableMiscellaneousTechnical}{0} +\newcommand{\enableModifierToneLetters}{0} +\newcommand{\enableMongolian}{0} +\newcommand{\enableMusicalSymbols}{0} +\newcommand{\enableMyanmar}{0} +\newcommand{\enableNewTaiLue}{0} +\newcommand{\enableNKo}{0} +\newcommand{\enableNumberForms}{0} +\newcommand{\enableOgham}{0} +\newcommand{\enableOldChiki}{0} +\newcommand{\enableOldItalic}{0} +\newcommand{\enableOldPersian}{0} +\newcommand{\enableOpticalCharacterRecognition}{0} +\newcommand{\enableOriya}{0} +\newcommand{\enableOsmanya}{0} +\newcommand{\enablePhagsPa}{0} +\newcommand{\enablePhaistosDisc}{0} +\newcommand{\enablePhoenician}{0} +\newcommand{\enablePhoneticExtensions}{0} +\newcommand{\enablePhoneticExtensionsSupplement}{0} +\newcommand{\enablePrivateUseArea}{0} +\newcommand{\enableRejang}{0} +\newcommand{\enableRunic}{0} +\newcommand{\enableSaurashtra}{0} +\newcommand{\enableShavian}{0} +\newcommand{\enableSinhala}{0} +\newcommand{\enableSmallFormVariants}{0} +\newcommand{\enableSpacingModifierLetters}{0} +\newcommand{\enableSpecials}{0} +\newcommand{\enableSuperscriptsAndSubscripts}{0} +\newcommand{\enableSupplementalArrowsA}{0} +\newcommand{\enableSupplementalArrowsB}{0} +\newcommand{\enableSupplementalMathematicalOperators}{0} +\newcommand{\enableSupplementalPunctuation}{0} +\newcommand{\enableSupplementaryPrivateUseAreaA}{0} +\newcommand{\enableSupplementaryPrivateUseAreaB}{0} +\newcommand{\enableSylotiNagri}{0} +\newcommand{\enableSyriac}{0} +\newcommand{\enableTagalog}{0} +\newcommand{\enableTagbanwa}{0} +\newcommand{\enableTags}{0} +\newcommand{\enableTaiLe}{0} +\newcommand{\enableTaiXuanJingSymbols}{0} +\newcommand{\enableTamil}{0} +\newcommand{\enableTelugu}{0} +\newcommand{\enableThaana}{0} +\newcommand{\enableThai}{0} +\newcommand{\enableTibetan}{0} +\newcommand{\enableTifinagh}{0} +\newcommand{\enableUgaritic}{0} +\newcommand{\enableUnifiedCanadianAboriginalSyllabics}{0} +\newcommand{\enableVai}{0} +\newcommand{\enableVariationSelectors}{0} +\newcommand{\enableVariationSelectorsSupplement}{0} +\newcommand{\enableVerticalForms}{0} +\newcommand{\enableYiRadicals}{0} +\newcommand{\enableYiSyllables}{0} +\newcommand{\enableYijingHexagramSymbols}{0} + +% New blocks in Unicode 6.0: + +\newcommand{\enableMandaic}{0} +\newcommand{\enableBatak}{0} +\newcommand{\enableEthiopicExtendedA}{0} +\newcommand{\enableBrahmi}{0} +\newcommand{\enableBamumSupplement}{0} +\newcommand{\enableKanaSupplement}{0} +\newcommand{\enablePlayingCards}{0} +\newcommand{\enableMiscellaneousSymbolsAndPictographs}{0} +\newcommand{\enableEmoticons}{0} +\newcommand{\enableTransportAndMapSymbols}{0} +\newcommand{\enableAlchemicalSymbols}{0} +\newcommand{\enableCJKUnifiedIdeographsExtensionD}{0} + +% ---------------------------------------------------------------------------- +% Option handling lets the user turn off "load all" and selectively enable only those blocks +% they are interested in +% ---------------------------------------------------------------------------- + +\DeclareOption{AegeanNumbers}{\overrideClassLoading\renewcommand{\enableAegeanNumbers}{1}} +\DeclareOption{AlphabeticPresentationForms}{\overrideClassLoading\renewcommand{\enableAlphabeticPresentationForms}{1}} +\DeclareOption{AncientGreekMusicalNotation}{\overrideClassLoading\renewcommand{\enableAncientGreekMusicalNotation}{1}} +\DeclareOption{AncientGreekNumbers}{\overrideClassLoading\renewcommand{\enableAncientGreekNumbers}{1}} +\DeclareOption{AncientSymbols}{\overrideClassLoading\renewcommand{\enableAncientSymbols}{1}} +\DeclareOption{Arabic}{\overrideClassLoading\renewcommand{\enableArabic}{1}} +\DeclareOption{ArabicPresentationFormsA}{\overrideClassLoading\renewcommand{\enableArabicPresentationFormsA}{1}} +\DeclareOption{ArabicPresentationFormsB}{\overrideClassLoading\renewcommand{\enableArabicPresentationFormsB}{1}} +\DeclareOption{ArabicSupplement}{\overrideClassLoading\renewcommand{\enableArabicSupplement}{1}} +\DeclareOption{Armenian}{\overrideClassLoading\renewcommand{\enableArmenian}{1}} +\DeclareOption{Arrows}{\overrideClassLoading\renewcommand{\enableArrows}{1}} +\DeclareOption{Balinese}{\overrideClassLoading\renewcommand{\enableBalinese}{1}} +\DeclareOption{BasicLatin}{\overrideClassLoading\renewcommand{\enableBasicLatin}{1}} +\DeclareOption{Bengali}{\overrideClassLoading\renewcommand{\enableBengali}{1}} +\DeclareOption{BlockElements}{\overrideClassLoading\renewcommand{\enableBlockElements}{1}} +\DeclareOption{Bopomofo}{\overrideClassLoading\renewcommand{\enableBopomofo}{1}} +\DeclareOption{BopomofoExtended}{\overrideClassLoading\renewcommand{\enableBopomofoExtended}{1}} +\DeclareOption{BoxDrawing}{\overrideClassLoading\renewcommand{\enableBoxDrawing}{1}} +\DeclareOption{BraillePatterns}{\overrideClassLoading\renewcommand{\enableBraillePatterns}{1}} +\DeclareOption{Buginese}{\overrideClassLoading\renewcommand{\enableBuginese}{1}} +\DeclareOption{Buhid}{\overrideClassLoading\renewcommand{\enableBuhid}{1}} +\DeclareOption{ByzantineMusicalSymbols}{\overrideClassLoading\renewcommand{\enableByzantineMusicalSymbols}{1}} +\DeclareOption{Carian}{\overrideClassLoading\renewcommand{\enableCarian}{1}} +\DeclareOption{Cham}{\overrideClassLoading\renewcommand{\enableCham}{1}} +\DeclareOption{Cherokee}{\overrideClassLoading\renewcommand{\enableCherokee}{1}} +\DeclareOption{CJKCompatibility}{\overrideClassLoading\renewcommand{\enableCJKCompatibility}{1}} +\DeclareOption{CJKCompatibilityForms}{\overrideClassLoading\renewcommand{\enableCJKCompatibilityForms}{1}} +\DeclareOption{CJKCompatibilityIdeographs}{\overrideClassLoading\renewcommand{\enableCJKCompatibilityIdeographs}{1}} +\DeclareOption{CJKCompatibilityIdeographsSupplement}{\overrideClassLoading\renewcommand{\enableCJKCompatibilityIdeographsSupplement}{1}} +\DeclareOption{CJKRadicalsSupplement}{\overrideClassLoading\renewcommand{\enableCJKRadicalsSupplement}{1}} +\DeclareOption{CJKStrokes}{\overrideClassLoading\renewcommand{\enableCJKStrokes}{1}} +\DeclareOption{CJKSymbolsAndPunctuation}{\overrideClassLoading\renewcommand{\enableCJKSymbolsAndPunctuation}{1}} +\DeclareOption{CJKUnifiedIdeographs}{\overrideClassLoading\renewcommand{\enableCJKUnifiedIdeographs}{1}} +\DeclareOption{CJKUnifiedIdeographsExtensionA}{\overrideClassLoading\renewcommand{\enableCJKUnifiedIdeographsExtensionA}{1}} +\DeclareOption{CJKUnifiedIdeographsExtensionB}{\overrideClassLoading\renewcommand{\enableCJKUnifiedIdeographsExtensionB}{1}} +\DeclareOption{CJKUnifiedIdeographsExtensionC}{\overrideClassLoading\renewcommand{\enableCJKUnifiedIdeographsExtensionC}{1}} +\DeclareOption{CombiningDiacriticalMarks}{\overrideClassLoading\renewcommand{\enableCombiningDiacriticalMarks}{1}} +\DeclareOption{CombiningDiacriticalMarksforSymbols}{\overrideClassLoading\renewcommand{\enableCombiningDiacriticalMarksforSymbols}{1}} +\DeclareOption{CombiningDiacriticalMarksSupplement}{\overrideClassLoading\renewcommand{\enableCombiningDiacriticalMarksSupplement}{1}} +\DeclareOption{CombiningHalfMarks}{\overrideClassLoading\renewcommand{\enableCombiningHalfMarks}{1}} +\DeclareOption{ControlPictures}{\overrideClassLoading\renewcommand{\enableControlPictures}{1}} +\DeclareOption{Coptic}{\overrideClassLoading\renewcommand{\enableCoptic}{1}} +\DeclareOption{CountingRodNumerals}{\overrideClassLoading\renewcommand{\enableCountingRodNumerals}{1}} +\DeclareOption{Cuneiform}{\overrideClassLoading\renewcommand{\enableCuneiform}{1}} +\DeclareOption{CuneiformNumbersAndPunctuation}{\overrideClassLoading\renewcommand{\enableCuneiformNumbersAndPunctuation}{1}} +\DeclareOption{CurrencySymbols}{\overrideClassLoading\renewcommand{\enableCurrencySymbols}{1}} +\DeclareOption{CypriotSyllabary}{\overrideClassLoading\renewcommand{\enableCypriotSyllabary}{1}} +\DeclareOption{Cyrillic}{\overrideClassLoading\renewcommand{\enableCyrillic}{1}} +\DeclareOption{CyrillicExtendedA}{\overrideClassLoading\renewcommand{\enableCyrillicExtendedA}{1}} +\DeclareOption{CyrillicExtendedB}{\overrideClassLoading\renewcommand{\enableCyrillicExtendedB}{1}} +\DeclareOption{CyrillicSupplement}{\overrideClassLoading\renewcommand{\enableCyrillicSupplement}{1}} +\DeclareOption{Deseret}{\overrideClassLoading\renewcommand{\enableDeseret}{1}} +\DeclareOption{Devanagari}{\overrideClassLoading\renewcommand{\enableDevanagari}{1}} +\DeclareOption{Dingbats}{\overrideClassLoading\renewcommand{\enableDingbats}{1}} +\DeclareOption{DominoTiles}{\overrideClassLoading\renewcommand{\enableDominoTiles}{1}} +\DeclareOption{EnclosedAlphanumerics}{\overrideClassLoading\renewcommand{\enableEnclosedAlphanumerics}{1}} +\DeclareOption{EnclosedCJKLettersAndMonths}{\overrideClassLoading\renewcommand{\enableEnclosedCJKLettersAndMonths}{1}} +\DeclareOption{Ethiopic}{\overrideClassLoading\renewcommand{\enableEthiopic}{1}} +\DeclareOption{EthiopicExtended}{\overrideClassLoading\renewcommand{\enableEthiopicExtended}{1}} +\DeclareOption{EthiopicSupplement}{\overrideClassLoading\renewcommand{\enableEthiopicSupplement}{1}} +\DeclareOption{GeneralPunctuation}{\overrideClassLoading\renewcommand{\enableGeneralPunctuation}{1}} +\DeclareOption{GeometricShapes}{\overrideClassLoading\renewcommand{\enableGeometricShapes}{1}} +\DeclareOption{Georgian}{\overrideClassLoading\renewcommand{\enableGeorgian}{1}} +\DeclareOption{GeorgianSupplement}{\overrideClassLoading\renewcommand{\enableGeorgianSupplement}{1}} +\DeclareOption{Glagolitic}{\overrideClassLoading\renewcommand{\enableGlagolitic}{1}} +\DeclareOption{Gothic}{\overrideClassLoading\renewcommand{\enableGothic}{1}} +\DeclareOption{GreekAndCoptic}{\overrideClassLoading\renewcommand{\enableGreekAndCoptic}{1}} +\DeclareOption{GreekExtended}{\overrideClassLoading\renewcommand{\enableGreekExtended}{1}} +\DeclareOption{Gujarati}{\overrideClassLoading\renewcommand{\enableGujarati}{1}} +\DeclareOption{Gurmukhi}{\overrideClassLoading\renewcommand{\enableGurmukhi}{1}} +\DeclareOption{HalfwidthAndFullwidthForms}{\overrideClassLoading\renewcommand{\enableHalfwidthAndFullwidthForms}{1}} +\DeclareOption{HangulCompatibilityJamo}{\overrideClassLoading\renewcommand{\enableHangulCompatibilityJamo}{1}} +\DeclareOption{HangulJamo}{\overrideClassLoading\renewcommand{\enableHangulJamo}{1}} +\DeclareOption{HangulSyllables}{\overrideClassLoading\renewcommand{\enableHangulSyllables}{1}} +\DeclareOption{Hanunoo}{\overrideClassLoading\renewcommand{\enableHanunoo}{1}} +\DeclareOption{Hebrew}{\overrideClassLoading\renewcommand{\enableHebrew}{1}} +\DeclareOption{Hiragana}{\overrideClassLoading\renewcommand{\enableHiragana}{1}} +\DeclareOption{IdeographicDescriptionCharacters}{\overrideClassLoading\renewcommand{\enableIdeographicDescriptionCharacters}{1}} +\DeclareOption{IPAExtensions}{\overrideClassLoading\renewcommand{\enableIPAExtensions}{1}} +\DeclareOption{Kanbun}{\overrideClassLoading\renewcommand{\enableKanbun}{1}} +\DeclareOption{KangxiRadicals}{\overrideClassLoading\renewcommand{\enableKangxiRadicals}{1}} +\DeclareOption{Kannada}{\overrideClassLoading\renewcommand{\enableKannada}{1}} +\DeclareOption{Katakana}{\overrideClassLoading\renewcommand{\enableKatakana}{1}} +\DeclareOption{KatakanaPhoneticExtensions}{\overrideClassLoading\renewcommand{\enableKatakanaPhoneticExtensions}{1}} +\DeclareOption{KayahLi}{\overrideClassLoading\renewcommand{\enableKayahLi}{1}} +\DeclareOption{Kharoshthi}{\overrideClassLoading\renewcommand{\enableKharoshthi}{1}} +\DeclareOption{Khmer}{\overrideClassLoading\renewcommand{\enableKhmer}{1}} +\DeclareOption{KhmerSymbols}{\overrideClassLoading\renewcommand{\enableKhmerSymbols}{1}} +\DeclareOption{Lao}{\overrideClassLoading\renewcommand{\enableLao}{1}} +\DeclareOption{LatinExtendedAdditional}{\overrideClassLoading\renewcommand{\enableLatinExtendedAdditional}{1}} +\DeclareOption{LatinExtendedA}{\overrideClassLoading\renewcommand{\enableLatinExtendedA}{1}} +\DeclareOption{LatinExtendedB}{\overrideClassLoading\renewcommand{\enableLatinExtendedB}{1}} +\DeclareOption{LatinExtendedC}{\overrideClassLoading\renewcommand{\enableLatinExtendedC}{1}} +\DeclareOption{LatinExtendedD}{\overrideClassLoading\renewcommand{\enableLatinExtendedD}{1}} +\DeclareOption{LatinSupplement}{\overrideClassLoading\renewcommand{\enableLatinSupplement}{1}} +\DeclareOption{Lepcha}{\overrideClassLoading\renewcommand{\enableLepcha}{1}} +\DeclareOption{LetterlikeSymbols}{\overrideClassLoading\renewcommand{\enableLetterlikeSymbols}{1}} +\DeclareOption{Limbu}{\overrideClassLoading\renewcommand{\enableLimbu}{1}} +\DeclareOption{LinearBIdeograms}{\overrideClassLoading\renewcommand{\enableLinearBIdeograms}{1}} +\DeclareOption{LinearBSyllabary}{\overrideClassLoading\renewcommand{\enableLinearBSyllabary}{1}} +\DeclareOption{Lycian}{\overrideClassLoading\renewcommand{\enableLycian}{1}} +\DeclareOption{Lydian}{\overrideClassLoading\renewcommand{\enableLydian}{1}} +\DeclareOption{MahjongTiles}{\overrideClassLoading\renewcommand{\enableMahjongTiles}{1}} +\DeclareOption{Malayalam}{\overrideClassLoading\renewcommand{\enableMalayalam}{1}} +\DeclareOption{MathematicalAlphanumericSymbols}{\overrideClassLoading\renewcommand{\enableMathematicalAlphanumericSymbols}{1}} +\DeclareOption{MathematicalOperators}{\overrideClassLoading\renewcommand{\enableMathematicalOperators}{1}} +\DeclareOption{MiscellaneousMathematicalSymbolsA}{\overrideClassLoading\renewcommand{\enableMiscellaneousMathematicalSymbolsA}{1}} +\DeclareOption{MiscellaneousMathematicalSymbolsB}{\overrideClassLoading\renewcommand{\enableMiscellaneousMathematicalSymbolsB}{1}} +\DeclareOption{MiscellaneousSymbols}{\overrideClassLoading\renewcommand{\enableMiscellaneousSymbols}{1}} +\DeclareOption{MiscellaneousSymbolsAndArrows}{\overrideClassLoading\renewcommand{\enableMiscellaneousSymbolsAndArrows}{1}} +\DeclareOption{MiscellaneousTechnical}{\overrideClassLoading\renewcommand{\enableMiscellaneousTechnical}{1}} +\DeclareOption{ModifierToneLetters}{\overrideClassLoading\renewcommand{\enableModifierToneLetters}{1}} +\DeclareOption{Mongolian}{\overrideClassLoading\renewcommand{\enableMongolian}{1}} +\DeclareOption{MusicalSymbols}{\overrideClassLoading\renewcommand{\enableMusicalSymbols}{1}} +\DeclareOption{Myanmar}{\overrideClassLoading\renewcommand{\enableMyanmar}{1}} +\DeclareOption{NewTaiLue}{\overrideClassLoading\renewcommand{\enableNewTaiLue}{1}} +\DeclareOption{NKo}{\overrideClassLoading\renewcommand{\enableNKo}{1}} +\DeclareOption{NumberForms}{\overrideClassLoading\renewcommand{\enableNumberForms}{1}} +\DeclareOption{Ogham}{\overrideClassLoading\renewcommand{\enableOgham}{1}} +\DeclareOption{OldChiki}{\overrideClassLoading\renewcommand{\enableOldChiki}{1}} +\DeclareOption{OldItalic}{\overrideClassLoading\renewcommand{\enableOldItalic}{1}} +\DeclareOption{OldPersian}{\overrideClassLoading\renewcommand{\enableOldPersian}{1}} +\DeclareOption{OpticalCharacterRecognition}{\overrideClassLoading\renewcommand{\enableOpticalCharacterRecognition}{1}} +\DeclareOption{Oriya}{\overrideClassLoading\renewcommand{\enableOriya}{1}} +\DeclareOption{Osmanya}{\overrideClassLoading\renewcommand{\enableOsmanya}{1}} +\DeclareOption{PhagsPa}{\overrideClassLoading\renewcommand{\enablePhagsPa}{1}} +\DeclareOption{PhaistosDisc}{\overrideClassLoading\renewcommand{\enablePhaistosDisc}{1}} +\DeclareOption{Phoenician}{\overrideClassLoading\renewcommand{\enablePhoenician}{1}} +\DeclareOption{PhoneticExtensions}{\overrideClassLoading\renewcommand{\enablePhoneticExtensions}{1}} +\DeclareOption{PhoneticExtensionsSupplement}{\overrideClassLoading\renewcommand{\enablePhoneticExtensionsSupplement}{1}} +\DeclareOption{PrivateUseArea}{\overrideClassLoading\renewcommand{\enablePrivateUseArea}{1}} +\DeclareOption{Rejang}{\overrideClassLoading\renewcommand{\enableRejang}{1}} +\DeclareOption{Runic}{\overrideClassLoading\renewcommand{\enableRunic}{1}} +\DeclareOption{Saurashtra}{\overrideClassLoading\renewcommand{\enableSaurashtra}{1}} +\DeclareOption{Shavian}{\overrideClassLoading\renewcommand{\enableShavian}{1}} +\DeclareOption{Sinhala}{\overrideClassLoading\renewcommand{\enableSinhala}{1}} +\DeclareOption{SmallFormVariants}{\overrideClassLoading\renewcommand{\enableSmallFormVariants}{1}} +\DeclareOption{SpacingModifierLetters}{\overrideClassLoading\renewcommand{\enableSpacingModifierLetters}{1}} +\DeclareOption{Specials}{\overrideClassLoading\renewcommand{\enableSpecials}{1}} +\DeclareOption{SuperscriptsAndSubscripts}{\overrideClassLoading\renewcommand{\enableSuperscriptsAndSubscripts}{1}} +\DeclareOption{SupplementalArrowsA}{\overrideClassLoading\renewcommand{\enableSupplementalArrowsA}{1}} +\DeclareOption{SupplementalArrowsB}{\overrideClassLoading\renewcommand{\enableSupplementalArrowsB}{1}} +\DeclareOption{SupplementalMathematicalOperators}{\overrideClassLoading\renewcommand{\enableSupplementalMathematicalOperators}{1}} +\DeclareOption{SupplementalPunctuation}{\overrideClassLoading\renewcommand{\enableSupplementalPunctuation}{1}} +\DeclareOption{SupplementaryPrivateUseAreaA}{\overrideClassLoading\renewcommand{\enableSupplementaryPrivateUseAreaA}{1}} +\DeclareOption{SupplementaryPrivateUseAreaB}{\overrideClassLoading\renewcommand{\enableSupplementaryPrivateUseAreaB}{1}} +\DeclareOption{SylotiNagri}{\overrideClassLoading\renewcommand{\enableSylotiNagri}{1}} +\DeclareOption{Syriac}{\overrideClassLoading\renewcommand{\enableSyriac}{1}} +\DeclareOption{Tagalog}{\overrideClassLoading\renewcommand{\enableTagalog}{1}} +\DeclareOption{Tagbanwa}{\overrideClassLoading\renewcommand{\enableTagbanwa}{1}} +\DeclareOption{Tags}{\overrideClassLoading\renewcommand{\enableTags}{1}} +\DeclareOption{TaiLe}{\overrideClassLoading\renewcommand{\enableTaiLe}{1}} +\DeclareOption{TaiXuanJingSymbols}{\overrideClassLoading\renewcommand{\enableTaiXuanJingSymbols}{1}} +\DeclareOption{Tamil}{\overrideClassLoading\renewcommand{\enableTamil}{1}} +\DeclareOption{Telugu}{\overrideClassLoading\renewcommand{\enableTelugu}{1}} +\DeclareOption{Thaana}{\overrideClassLoading\renewcommand{\enableThaana}{1}} +\DeclareOption{Thai}{\overrideClassLoading\renewcommand{\enableThai}{1}} +\DeclareOption{Tibetan}{\overrideClassLoading\renewcommand{\enableTibetan}{1}} +\DeclareOption{Tifinagh}{\overrideClassLoading\renewcommand{\enableTifinagh}{1}} +\DeclareOption{Ugaritic}{\overrideClassLoading\renewcommand{\enableUgaritic}{1}} +\DeclareOption{UnifiedCanadianAboriginalSyllabics}{\overrideClassLoading\renewcommand{\enableUnifiedCanadianAboriginalSyllabics}{1}} +\DeclareOption{Vai}{\overrideClassLoading\renewcommand{\enableVai}{1}} +\DeclareOption{VariationSelectors}{\overrideClassLoading\renewcommand{\enableVariationSelectors}{1}} +\DeclareOption{VariationSelectorsSupplement}{\overrideClassLoading\renewcommand{\enableVariationSelectorsSupplement}{1}} +\DeclareOption{VerticalForms}{\overrideClassLoading\renewcommand{\enableVerticalForms}{1}} +\DeclareOption{YiRadicals}{\overrideClassLoading\renewcommand{\enableYiRadicals}{1}} +\DeclareOption{YiSyllables}{\overrideClassLoading\renewcommand{\enableYiSyllables}{1}} +\DeclareOption{YijingHexagramSymbols}{\overrideClassLoading\renewcommand{\enableYijingHexagramSymbols}{1}} +\DeclareOption{Mandaic}{\overrideClassLoading\renewcommand{\enableMandaic}{1}} +\DeclareOption{Batak}{\overrideClassLoading\renewcommand{\enableBatak}{1}} +\DeclareOption{EthiopicExtendedA}{\overrideClassLoading\renewcommand{\enableEthiopicExtendedA}{1}} +\DeclareOption{Brahmi}{\overrideClassLoading\renewcommand{\enableBrahmi}{1}} +\DeclareOption{BamumSupplement}{\overrideClassLoading\renewcommand{\enableBamumSupplement}{1}} +\DeclareOption{KanaSupplement}{\overrideClassLoading\renewcommand{\enableKanaSupplement}{1}} +\DeclareOption{PlayingCards}{\overrideClassLoading\renewcommand{\enablePlayingCards}{1}} +\DeclareOption{MiscellaneousSymbolsAndPictographs}{\overrideClassLoading\renewcommand{\enableMiscellaneousSymbolsAndPictographs}{1}} +\DeclareOption{Emoticons}{\overrideClassLoading\renewcommand{\enableEmoticons}{1}} +\DeclareOption{TransportAndMapSymbols}{\overrideClassLoading\renewcommand{\enableTransportAndMapSymbols}{1}} +\DeclareOption{AlchemicalSymbols}{\overrideClassLoading\renewcommand{\enableAlchemicalSymbols}{1}} +\DeclareOption{CJKUnifiedIdeographsExtensionD}{\overrideClassLoading\renewcommand{\enableCJKUnifiedIdeographsExtensionD}{1}} + +% informal groups + +\DeclareOption{Arabic}{ + \overrideClassLoading + \renewcommand{\enableArabic}{1} + \renewcommand{\enableArabicPresentationFormsA}{1} + \renewcommand{\enableArabicPresentationFormsB}{1} + \renewcommand{\enableArabicSupplement}{1}} + +\DeclareOption{Chinese}{ + \overrideClassLoading + \renewcommand{\enableBopomofo}{1} + \renewcommand{\enableBopomofoExtended}{1} + \renewcommand{\enableCJKCompatibility}{1} + \renewcommand{\enableCJKCompatibilityForms}{1} + \renewcommand{\enableCJKCompatibilityIdeographs}{1} + \renewcommand{\enableCJKCompatibilityIdeographsSupplement}{1} + \renewcommand{\enableCJKRadicalsSupplement}{1} + \renewcommand{\enableCJKStrokes}{1} + \renewcommand{\enableCJKSymbolsAndPunctuation}{1} + \renewcommand{\enableCJKUnifiedIdeographs}{1} + \renewcommand{\enableCJKUnifiedIdeographsExtensionA}{1} + \renewcommand{\enableCJKUnifiedIdeographsExtensionB}{1} + \renewcommand{\enableCJKUnifiedIdeographsExtensionC}{1} + \renewcommand{\enableCJKUnifiedIdeographsExtensionD}{1} + \renewcommand{\enableEnclosedCJKLettersAndMonths}{1} + \renewcommand{\enableIdeographicDescriptionCharacters}{1} + \renewcommand{\enableKangxiRadicals}{1} +} + +\DeclareOption{CJK}{ + \overrideClassLoading + \renewcommand{\enableBopomofo}{1} + \renewcommand{\enableBopomofoExtended}{1} + \renewcommand{\enableCJKCompatibility}{1} + \renewcommand{\enableCJKCompatibilityForms}{1} + \renewcommand{\enableCJKCompatibilityIdeographs}{1} + \renewcommand{\enableCJKCompatibilityIdeographsSupplement}{1} + \renewcommand{\enableCJKRadicalsSupplement}{1} + \renewcommand{\enableCJKStrokes}{1} + \renewcommand{\enableCJKSymbolsAndPunctuation}{1} + \renewcommand{\enableCJKUnifiedIdeographs}{1} + \renewcommand{\enableCJKUnifiedIdeographsExtensionA}{1} + \renewcommand{\enableCJKUnifiedIdeographsExtensionB}{1} + \renewcommand{\enableCJKUnifiedIdeographsExtensionC}{1} + \renewcommand{\enableCJKUnifiedIdeographsExtensionD}{1} + \renewcommand{\enableEnclosedCJKLettersAndMonths}{1} + \renewcommand{\enableHalfwidthAndFullwidthForms}{1} + \renewcommand{\enableHangulCompatibilityJamo}{1} + \renewcommand{\enableHangulJamo}{1} + \renewcommand{\enableHangulSyllables}{1} + \renewcommand{\enableHiragana}{1} + \renewcommand{\enableIdeographicDescriptionCharacters}{1} + \renewcommand{\enableKanbun}{1} + \renewcommand{\enableKangxiRadicals}{1} + \renewcommand{\enableKatakana}{1} + \renewcommand{\enableKatakanaPhoneticExtensions}{1} + \renewcommand{\enableKanaSupplement}{1} +} + +\DeclareOption{Cyrillic}{ + \overrideClassLoading + \renewcommand{\enableCyrillic}{1} + \renewcommand{\enableCyrillicExtendedA}{1} + \renewcommand{\enableCyrillicExtendedB}{1} + \renewcommand{\enableCyrillicSupplement}{1} +} + +\DeclareOption{Diacritics}{ + \overrideClassLoading + \renewcommand{\enableCombiningDiacriticalMarks}{1} + \renewcommand{\enableCombiningDiacriticalMarksforSymbols}{1} + \renewcommand{\enableCombiningDiacriticalMarksSupplement}{1} + \renewcommand{\enableCombiningHalfMarks}{1} +} + +\DeclareOption{Greek}{ + \overrideClassLoading + \renewcommand{\enableCoptic}{1} + \renewcommand{\enableGreekAndCoptic}{1} + \renewcommand{\enableGreekExtended}{1} +} + +\DeclareOption{Korean}{ + \overrideClassLoading + \renewcommand{\enableHangulCompatibilityJamo}{1} + \renewcommand{\enableHangulJamo}{1} + \renewcommand{\enableHangulSyllables}{1} +} + +\DeclareOption{Japanese}{ + \overrideClassLoading + \renewcommand{\enableHalfwidthAndFullwidthForms}{1} + \renewcommand{\enableHiragana}{1} + \renewcommand{\enableKanbun}{1} + \renewcommand{\enableKangxiRadicals}{1} + \renewcommand{\enableKatakana}{1} + \renewcommand{\enableKatakanaPhoneticExtensions}{1} + \renewcommand{\enableKanaSupplement}{1} + \renewcommand{\enableCJKUnifiedIdeographs}{1} +} + +\DeclareOption{Latin}{ + \overrideClassLoading + \renewcommand{\enableBasicLatin}{1} + \renewcommand{\enableLatinExtendedAdditional}{1} + \renewcommand{\enableLatinExtendedA}{1} + \renewcommand{\enableLatinExtendedB}{1} + \renewcommand{\enableLatinExtendedC}{1} + \renewcommand{\enableLatinExtendedD}{1} + \renewcommand{\enableLatinSupplement}{1} + \renewcommand{\enableAlphabeticPresentationForms}{1} +} + +\DeclareOption{Mathematics}{ + \overrideClassLoading + \renewcommand{\enableMathematicalAlphanumericSymbols}{1} + \renewcommand{\enableMathematicalOperators}{1} + \renewcommand{\enableMiscellaneousMathematicalSymbolsA}{1} + \renewcommand{\enableMiscellaneousMathematicalSymbolsB}{1} + \renewcommand{\enableSupplementalMathematicalOperators}{1} +} + +\DeclareOption{Phonetics}{ + \overrideClassLoading + \renewcommand{\enableIPAExtensions}{1} + \renewcommand{\enablePhoneticExtensions}{1} + \renewcommand{\enablePhoneticExtensionsSupplement}{1} +} + +\DeclareOption{Punctuation}{ + \overrideClassLoading + \renewcommand{\enableGeneralPunctuation}{1} + \renewcommand{\enableSupplementalPunctuation}{1} +} + +\DeclareOption{Symbols}{ + \overrideClassLoading + \renewcommand{\enableArrows}{1} + \renewcommand{\enableBoxDrawing}{1} + \renewcommand{\enableByzantineMusicalSymbols}{1} + \renewcommand{\enableControlPictures}{1} + \renewcommand{\enableCurrencySymbols}{1} + \renewcommand{\enableGeometricShapes}{1} + \renewcommand{\enableLetterlikeSymbols}{1} + \renewcommand{\enableMiscellaneousSymbols}{1} + \renewcommand{\enableMiscellaneousSymbolsAndArrows}{1} + \renewcommand{\enableMiscellaneousTechnical}{1} + \renewcommand{\enableSupplementalArrowsA}{1} + \renewcommand{\enableSupplementalArrowsB}{1} + \renewcommand{\enableVariationSelectors}{1} + \renewcommand{\enableVariationSelectorsSupplement}{1} + \renewcommand{\enableMiscellaneousSymbolsAndPictographs}{1} + \renewcommand{\enableEmoticons}{1} + \renewcommand{\enableTransportAndMapSymbols}{1} + \renewcommand{\enableAlchemicalSymbols}{1} +} + +\DeclareOption{Yi}{ + \overrideClassLoading + \renewcommand{\enableYiRadicals}{1} + \renewcommand{\enableYiSyllables}{1} +} + +\DeclareOption{Other}{ + \overrideClassLoading + \renewcommand{\enableAegeanNumbers}{1} + \renewcommand{\enableAncientGreekMusicalNotation}{1} + \renewcommand{\enableAncientGreekNumbers}{1} + \renewcommand{\enableArmenian}{1} + \renewcommand{\enableBalinese}{1} + \renewcommand{\enableBengali}{1} + \renewcommand{\enableBlockElements}{1} + \renewcommand{\enableBraillePatterns}{1} + \renewcommand{\enableBuginese}{1} + \renewcommand{\enableBuhid}{1} + \renewcommand{\enableCherokee}{1} + \renewcommand{\enableCoptic}{1} + \renewcommand{\enableCountingRodNumerals}{1} + \renewcommand{\enableCuneiform}{1} + \renewcommand{\enableCuneiformNumbersAndPunctuation}{1} + \renewcommand{\enableCypriotSyllabary}{1} + \renewcommand{\enableDeseret}{1} + \renewcommand{\enableDevanagari}{1} + \renewcommand{\enableDingbats}{1} + \renewcommand{\enableDominoTiles}{1} + \renewcommand{\enableEnclosedAlphanumerics}{1} + \renewcommand{\enableEthiopic}{1} + \renewcommand{\enableEthiopicExtended}{1} + \renewcommand{\enableEthiopicSupplement}{1} + \renewcommand{\enableGeorgian}{1} + \renewcommand{\enableGeorgianSupplement}{1} + \renewcommand{\enableGlagolitic}{1} + \renewcommand{\enableGothic}{1} + \renewcommand{\enableGujarati}{1} + \renewcommand{\enableGurmukhi}{1} + \renewcommand{\enableHanunoo}{1} + \renewcommand{\enableHebrew}{1} + \renewcommand{\enableKannada}{1} + \renewcommand{\enableKharoshthi}{1} + \renewcommand{\enableKhmer}{1} + \renewcommand{\enableKhmerSymbols}{1} + \renewcommand{\enableLao}{1} + \renewcommand{\enableLimbu}{1} + \renewcommand{\enableLinearBIdeograms}{1} + \renewcommand{\enableLinearBSyllabary}{1} + \renewcommand{\enableMahjongTiles}{1} + \renewcommand{\enableMalayalam}{1} + \renewcommand{\enableModifierToneLetters}{1} + \renewcommand{\enableMongolian}{1} + \renewcommand{\enableMusicalSymbols}{1} + \renewcommand{\enableMyanmar}{1} + \renewcommand{\enableNewTaiLue}{1} + \renewcommand{\enableNKo}{1} + \renewcommand{\enableNumberForms}{1} + \renewcommand{\enableOgham}{1} + \renewcommand{\enableOldItalic}{1} + \renewcommand{\enableOldPersian}{1} + \renewcommand{\enableOpticalCharacterRecognition}{1} + \renewcommand{\enableOriya}{1} + \renewcommand{\enableOsmanya}{1} + \renewcommand{\enablePhagsPa}{1} + \renewcommand{\enablePhoenician}{1} + \renewcommand{\enablePrivateUseArea}{1} + \renewcommand{\enableRunic}{1} + \renewcommand{\enableShavian}{1} + \renewcommand{\enableSinhala}{1} + \renewcommand{\enableSmallFormVariants}{1} + \renewcommand{\enableSpacingModifierLetters}{1} + \renewcommand{\enableSpecials}{1} + \renewcommand{\enableSuperscriptsAndSubscripts}{1} + \renewcommand{\enableSupplementaryPrivateUseAreaA}{1} + \renewcommand{\enableSupplementaryPrivateUseAreaB}{1} + \renewcommand{\enableSylotiNagri}{1} + \renewcommand{\enableSyriac}{1} + \renewcommand{\enableTagalog}{1} + \renewcommand{\enableTagbanwa}{1} + \renewcommand{\enableTags}{1} + \renewcommand{\enableTaiLe}{1} + \renewcommand{\enableTaiXuanJingSymbols}{1} + \renewcommand{\enableTamil}{1} + \renewcommand{\enableTelugu}{1} + \renewcommand{\enableThaana}{1} + \renewcommand{\enableThai}{1} + \renewcommand{\enableTibetan}{1} + \renewcommand{\enableTifinagh}{1} + \renewcommand{\enableUgaritic}{1} + \renewcommand{\enableUnifiedCanadianAboriginalSyllabics}{1} + \renewcommand{\enableVerticalForms}{1} + \renewcommand{\enableYijingHexagramSymbols}{1} +} + +\ProcessOptions + +% ---------------------------------------------------------------------------- +% After dealing with the options, make sure we have the necessary packages available +% ---------------------------------------------------------------------------- + +% because this package relies on XeTeX's intercharclass sytem, better require XeTeX +\RequirePackage{ifxetex} +\RequireXeTeX + +% I like a slightly more intuitive programming interface than vanilla TeX +\RequirePackage{ifthen} +\RequirePackage{forloop} + +% ---------------------------------------------------------------------------- +% This package heavily exploits XeTeX's intercharclass system! +% ---------------------------------------------------------------------------- + +% enable/disable commands +\newcommand{\disableTransitionRules}{\XeTeXinterchartokenstate = 0} +\newcommand{\enableTransitionRules}{\XeTeXinterchartokenstate = 1} + +% shorthand commands +\newcommand{\uccoff}{\disableTransitionRules} +\newcommand{\uccon}{\enableTransitionRules} + +% make sure it's turned on +\enableTransitionRules + +% ---------------------------------------------------------------------------- +% Block compatibility for version: Unicode 6.0 +% ---------------------------------------------------------------------------- + +\newcounter{glyphcounter} +\newcommand{\@defineUnicodeClass}[3]{% + \newXeTeXintercharclass#1 + %\message{Package ucharclasses Message: #1 was assigned \the#1} + \forloop{glyphcounter}{#2}{\value{glyphcounter}<#3}{\XeTeXcharclass\value{glyphcounter}=#1} + \XeTeXcharclass#3=#1} + +% Unicode 5.1 block definitions +\newcommand{\@loadAegeanNumbers}{\@defineUnicodeClass{\AegeanNumbersClass}{65792}{65855}} +\newcommand{\@loadAlphabeticPresentationForms}{\@defineUnicodeClass{\AlphabeticPresentationFormsClass}{64256}{64335}} +\newcommand{\@loadAncientGreekMusicalNotation}{\@defineUnicodeClass{\AncientGreekMusicalNotationClass}{119296}{119375}} +\newcommand{\@loadAncientGreekNumbers}{\@defineUnicodeClass{\AncientGreekNumbersClass}{65856}{65935}} +\newcommand{\@loadAncientSymbols}{\@defineUnicodeClass{\AncientSymbolsClass}{65936}{65999}} +\newcommand{\@loadArabic}{\@defineUnicodeClass{\ArabicClass}{1536}{1791}} +\newcommand{\@loadArabicPresentationFormsA}{\@defineUnicodeClass{\ArabicPresentationFormsAClass}{64336}{65023}} +\newcommand{\@loadArabicPresentationFormsB}{\@defineUnicodeClass{\ArabicPresentationFormsBClass}{65136}{65279}} +\newcommand{\@loadArabicSupplement}{\@defineUnicodeClass{\ArabicSupplementClass}{1872}{1919}} +\newcommand{\@loadArmenian}{\@defineUnicodeClass{\ArmenianClass}{1328}{1423}} +\newcommand{\@loadArrows}{\@defineUnicodeClass{\ArrowsClass}{8592}{8703}} +\newcommand{\@loadBalinese}{\@defineUnicodeClass{\BalineseClass}{6912}{7039}} +\newcommand{\@loadBasicLatin}{\@defineUnicodeClass{\BasicLatinClass}{32}{127}} +\newcommand{\@loadBengali}{\@defineUnicodeClass{\BengaliClass}{2432}{2559}} +\newcommand{\@loadBlockElements}{\@defineUnicodeClass{\BlockElementsClass}{9600}{9631}} +\newcommand{\@loadBopomofo}{\@defineUnicodeClass{\BopomofoClass}{12544}{12591}} +\newcommand{\@loadBopomofoExtended}{\@defineUnicodeClass{\BopomofoExtendedClass}{12704}{12735}} +\newcommand{\@loadBoxDrawing}{\@defineUnicodeClass{\BoxDrawingClass}{9472}{9599}} +\newcommand{\@loadBraillePatterns}{\@defineUnicodeClass{\BraillePatternsClass}{10240}{10495}} +\newcommand{\@loadBuginese}{\@defineUnicodeClass{\BugineseClass}{6656}{6687}} +\newcommand{\@loadBuhid}{\@defineUnicodeClass{\BuhidClass}{5952}{5983}} +\newcommand{\@loadByzantineMusicalSymbols}{\@defineUnicodeClass{\ByzantineMusicalSymbolsClass}{118784}{119039}} +\newcommand{\@loadCarian}{\@defineUnicodeClass{\CarianClass}{66208}{66271}} +\newcommand{\@loadCham}{\@defineUnicodeClass{\ChamClass}{43520}{43615}} +\newcommand{\@loadCherokee}{\@defineUnicodeClass{\CherokeeClass}{5024}{5119}} +\newcommand{\@loadCJKCompatibility}{\@defineUnicodeClass{\CJKCompatibilityClass}{13056}{13311}} +\newcommand{\@loadCJKCompatibilityForms}{\@defineUnicodeClass{\CJKCompatibilityFormsClass}{65072}{65103}} +\newcommand{\@loadCJKCompatibilityIdeographs}{\@defineUnicodeClass{\CJKCompatibilityIdeographsClass}{63744}{64255}} +\newcommand{\@loadCJKCompatibilityIdeographsSupplement}{\@defineUnicodeClass{\CJKCompatibilityIdeographsSupplementClass}{194560}{195103}} +\newcommand{\@loadCJKRadicalsSupplement}{\@defineUnicodeClass{\CJKRadicalsSupplementClass}{11904}{12031}} +\newcommand{\@loadCJKStrokes}{\@defineUnicodeClass{\CJKStrokesClass}{12736}{12783}} +\newcommand{\@loadCJKSymbolsAndPunctuation}{\@defineUnicodeClass{\CJKSymbolsAndPunctuationClass}{12288}{12351}} +\newcommand{\@loadCJKUnifiedIdeographs}{\@defineUnicodeClass{\CJKUnifiedIdeographsClass}{19968}{40959}} +\newcommand{\@loadCJKUnifiedIdeographsExtensionA}{\@defineUnicodeClass{\CJKUnifiedIdeographsExtensionAClass}{13312}{19903}} +\newcommand{\@loadCJKUnifiedIdeographsExtensionB}{\@defineUnicodeClass{\CJKUnifiedIdeographsExtensionBClass}{131072}{173791}} +\newcommand{\@loadCombiningDiacriticalMarks}{\@defineUnicodeClass{\CombiningDiacriticalMarksClass}{768}{879}} +\newcommand{\@loadCombiningDiacriticalMarksforSymbols}{\@defineUnicodeClass{\CombiningDiacriticalMarksforSymbolsClass}{8400}{8447}} +\newcommand{\@loadCombiningDiacriticalMarksSupplement}{\@defineUnicodeClass{\CombiningDiacriticalMarksSupplementClass}{7616}{7679}} +\newcommand{\@loadCombiningHalfMarks}{\@defineUnicodeClass{\CombiningHalfMarksClass}{65056}{65071}} +\newcommand{\@loadControlPictures}{\@defineUnicodeClass{\ControlPicturesClass}{9216}{9279}} +\newcommand{\@loadCoptic}{\@defineUnicodeClass{\CopticClass}{11392}{11519}} +\newcommand{\@loadCountingRodNumerals}{\@defineUnicodeClass{\CountingRodNumeralsClass}{119648}{119679}} +\newcommand{\@loadCuneiform}{\@defineUnicodeClass{\CuneiformClass}{73728}{74751}} +\newcommand{\@loadCuneiformNumbersAndPunctuation}{\@defineUnicodeClass{\CuneiformNumbersAndPunctuationClass}{74752}{74879}} +\newcommand{\@loadCurrencySymbols}{\@defineUnicodeClass{\CurrencySymbolsClass}{8352}{8399}} +\newcommand{\@loadCypriotSyllabary}{\@defineUnicodeClass{\CypriotSyllabaryClass}{67584}{67647}} +\newcommand{\@loadCyrillic}{\@defineUnicodeClass{\CyrillicClass}{1024}{1279}} +\newcommand{\@loadCyrillicExtendedA}{\@defineUnicodeClass{\CyrillicExtendedAClass}{11744}{11775}} +\newcommand{\@loadCyrillicExtendedB}{\@defineUnicodeClass{\CyrillicExtendedBClass}{42560}{42655}} +\newcommand{\@loadCyrillicSupplement}{\@defineUnicodeClass{\CyrillicSupplementClass}{1280}{1327}} +\newcommand{\@loadDeseret}{\@defineUnicodeClass{\DeseretClass}{66560}{66639}} +\newcommand{\@loadDevanagari}{\@defineUnicodeClass{\DevanagariClass}{2304}{2431}} +\newcommand{\@loadDingbats}{\@defineUnicodeClass{\DingbatsClass}{9984}{10175}} +\newcommand{\@loadDominoTiles}{\@defineUnicodeClass{\DominoTilesClass}{127024}{127135}} +\newcommand{\@loadEnclosedAlphanumerics}{\@defineUnicodeClass{\EnclosedAlphanumericsClass}{9312}{9471}} +\newcommand{\@loadEnclosedCJKLettersAndMonths}{\@defineUnicodeClass{\EnclosedCJKLettersAndMonthsClass}{12800}{13055}} +\newcommand{\@loadEthiopic}{\@defineUnicodeClass{\EthiopicClass}{4608}{4991}} +\newcommand{\@loadEthiopicExtended}{\@defineUnicodeClass{\EthiopicExtendedClass}{11648}{11743}} +\newcommand{\@loadEthiopicSupplement}{\@defineUnicodeClass{\EthiopicSupplementClass}{4992}{5023}} +\newcommand{\@loadGeneralPunctuation}{\@defineUnicodeClass{\GeneralPunctuationClass}{8192}{8303}} +\newcommand{\@loadGeometricShapes}{\@defineUnicodeClass{\GeometricShapesClass}{9632}{9727}} +\newcommand{\@loadGeorgian}{\@defineUnicodeClass{\GeorgianClass}{4256}{4351}} +\newcommand{\@loadGeorgianSupplement}{\@defineUnicodeClass{\GeorgianSupplementClass}{11520}{11567}} +\newcommand{\@loadGlagolitic}{\@defineUnicodeClass{\GlagoliticClass}{11264}{11359}} +\newcommand{\@loadGothic}{\@defineUnicodeClass{\GothicClass}{66352}{66383}} +\newcommand{\@loadGreekAndCoptic}{\@defineUnicodeClass{\GreekAndCopticClass}{880}{1023}} +\newcommand{\@loadGreekExtended}{\@defineUnicodeClass{\GreekExtendedClass}{7936}{8191}} +\newcommand{\@loadGujarati}{\@defineUnicodeClass{\GujaratiClass}{2688}{2815}} +\newcommand{\@loadGurmukhi}{\@defineUnicodeClass{\GurmukhiClass}{2560}{2687}} +\newcommand{\@loadHalfwidthAndFullwidthForms}{\@defineUnicodeClass{\HalfwidthAndFullwidthFormsClass}{65280}{65519}} +\newcommand{\@loadHangulCompatibilityJamo}{\@defineUnicodeClass{\HangulCompatibilityJamoClass}{12592}{12687}} +\newcommand{\@loadHangulJamo}{\@defineUnicodeClass{\HangulJamoClass}{4352}{4607}} +\newcommand{\@loadHangulSyllables}{\@defineUnicodeClass{\HangulSyllablesClass}{44032}{55215}} +\newcommand{\@loadHanunoo}{\@defineUnicodeClass{\HanunooClass}{5920}{5951}} +\newcommand{\@loadHebrew}{\@defineUnicodeClass{\HebrewClass}{1424}{1535}} +\newcommand{\@loadHiragana}{\@defineUnicodeClass{\HiraganaClass}{12352}{12447}} +\newcommand{\@loadIdeographicDescriptionCharacters}{\@defineUnicodeClass{\IdeographicDescriptionCharactersClass}{12272}{12287}} +\newcommand{\@loadIPAExtensions}{\@defineUnicodeClass{\IPAExtensionsClass}{592}{687}} +\newcommand{\@loadKanbun}{\@defineUnicodeClass{\KanbunClass}{12688}{12703}} +\newcommand{\@loadKangxiRadicals}{\@defineUnicodeClass{\KangxiRadicalsClass}{12032}{12255}} +\newcommand{\@loadKannada}{\@defineUnicodeClass{\KannadaClass}{3200}{3327}} +\newcommand{\@loadKatakana}{\@defineUnicodeClass{\KatakanaClass}{12448}{12543}} +\newcommand{\@loadKatakanaPhoneticExtensions}{\@defineUnicodeClass{\KatakanaPhoneticExtensionsClass}{12784}{12799}} +\newcommand{\@loadKayahLi}{\@defineUnicodeClass{\KayahLiClass}{43264}{43311}} +\newcommand{\@loadKharoshthi}{\@defineUnicodeClass{\KharoshthiClass}{68096}{68191}} +\newcommand{\@loadKhmer}{\@defineUnicodeClass{\KhmerClass}{6016}{6143}} +\newcommand{\@loadKhmerSymbols}{\@defineUnicodeClass{\KhmerSymbolsClass}{6624}{6655}} +\newcommand{\@loadLao}{\@defineUnicodeClass{\LaoClass}{3712}{3839}} +\newcommand{\@loadLatinExtendedAdditional}{\@defineUnicodeClass{\LatinExtendedAdditionalClass}{7680}{7935}} +\newcommand{\@loadLatinExtendedA}{\@defineUnicodeClass{\LatinExtendedAClass}{256}{383}} +\newcommand{\@loadLatinExtendedB}{\@defineUnicodeClass{\LatinExtendedBClass}{384}{591}} +\newcommand{\@loadLatinExtendedC}{\@defineUnicodeClass{\LatinExtendedCClass}{11360}{11391}} +\newcommand{\@loadLatinExtendedD}{\@defineUnicodeClass{\LatinExtendedDClass}{42784}{43007}} +\newcommand{\@loadLatinSupplement}{\@defineUnicodeClass{\LatinSupplementClass}{128}{255}} +\newcommand{\@loadLepcha}{\@defineUnicodeClass{\LepchaClass}{7168}{7247}} +\newcommand{\@loadLetterlikeSymbols}{\@defineUnicodeClass{\LetterlikeSymbolsClass}{8448}{8527}} +\newcommand{\@loadLimbu}{\@defineUnicodeClass{\LimbuClass}{6400}{6479}} +\newcommand{\@loadLinearBIdeograms}{\@defineUnicodeClass{\LinearBIdeogramsClass}{65664}{65791}} +\newcommand{\@loadLinearBSyllabary}{\@defineUnicodeClass{\LinearBSyllabaryClass}{65536}{65663}} +\newcommand{\@loadLycian}{\@defineUnicodeClass{\LycianClass}{66176}{66207}} +\newcommand{\@loadLydian}{\@defineUnicodeClass{\LydianClass}{67872}{67903}} +\newcommand{\@loadMahjongTiles}{\@defineUnicodeClass{\MahjongTilesClass}{126976}{127023}} +\newcommand{\@loadMalayalam}{\@defineUnicodeClass{\MalayalamClass}{3328}{3455}} +\newcommand{\@loadMathematicalAlphanumericSymbols}{\@defineUnicodeClass{\MathematicalAlphanumericSymbolsClass}{119808}{120831}} +\newcommand{\@loadMathematicalOperators}{\@defineUnicodeClass{\MathematicalOperatorsClass}{8704}{8959}} +\newcommand{\@loadMiscellaneousMathematicalSymbolsA}{\@defineUnicodeClass{\MiscellaneousMathematicalSymbolsAClass}{10176}{10223}} +\newcommand{\@loadMiscellaneousMathematicalSymbolsB}{\@defineUnicodeClass{\MiscellaneousMathematicalSymbolsBClass}{10624}{10751}} +\newcommand{\@loadMiscellaneousSymbols}{\@defineUnicodeClass{\MiscellaneousSymbolsClass}{9728}{9983}} +\newcommand{\@loadMiscellaneousSymbolsAndArrows}{\@defineUnicodeClass{\MiscellaneousSymbolsAndArrowsClass}{11008}{11263}} +\newcommand{\@loadMiscellaneousTechnical}{\@defineUnicodeClass{\MiscellaneousTechnicalClass}{8960}{9215}} +\newcommand{\@loadModifierToneLetters}{\@defineUnicodeClass{\ModifierToneLettersClass}{42752}{42783}} +\newcommand{\@loadMongolian}{\@defineUnicodeClass{\MongolianClass}{6144}{6319}} +\newcommand{\@loadMusicalSymbols}{\@defineUnicodeClass{\MusicalSymbolsClass}{119040}{119295}} +\newcommand{\@loadMyanmar}{\@defineUnicodeClass{\MyanmarClass}{4096}{4255}} +\newcommand{\@loadNewTaiLue}{\@defineUnicodeClass{\NewTaiLueClass}{6528}{6623}} +\newcommand{\@loadNKo}{\@defineUnicodeClass{\NKoClass}{1984}{2047}} +\newcommand{\@loadNumberForms}{\@defineUnicodeClass{\NumberFormsClass}{8528}{8591}} +\newcommand{\@loadOgham}{\@defineUnicodeClass{\OghamClass}{5760}{5791}} +\newcommand{\@loadOldChiki}{\@defineUnicodeClass{\OldChikiClass}{7248}{7295}} +\newcommand{\@loadOldItalic}{\@defineUnicodeClass{\OldItalicClass}{66304}{66351}} +\newcommand{\@loadOldPersian}{\@defineUnicodeClass{\OldPersianClass}{66464}{66527}} +\newcommand{\@loadOpticalCharacterRecognition}{\@defineUnicodeClass{\OpticalCharacterRecognitionClass}{9280}{9311}} +\newcommand{\@loadOriya}{\@defineUnicodeClass{\OriyaClass}{2816}{2943}} +\newcommand{\@loadOsmanya}{\@defineUnicodeClass{\OsmanyaClass}{66688}{66735}} +\newcommand{\@loadPhagsPa}{\@defineUnicodeClass{\PhagsPaClass}{43072}{43135}} +\newcommand{\@loadPhaistosDisc}{\@defineUnicodeClass{\PhaistosDiscClass}{66000}{66047}} +\newcommand{\@loadPhoenician}{\@defineUnicodeClass{\PhoenicianClass}{67840}{67871}} +\newcommand{\@loadPhoneticExtensions}{\@defineUnicodeClass{\PhoneticExtensionsClass}{7424}{7551}} +\newcommand{\@loadPhoneticExtensionsSupplement}{\@defineUnicodeClass{\PhoneticExtensionsSupplementClass}{7552}{7615}} +\newcommand{\@loadPrivateUseArea}{\@defineUnicodeClass{\PrivateUseAreaClass}{57344}{63743}} +\newcommand{\@loadRejang}{\@defineUnicodeClass{\RejangClass}{43312}{43359}} +\newcommand{\@loadRunic}{\@defineUnicodeClass{\RunicClass}{5792}{5887}} +\newcommand{\@loadSaurashtra}{\@defineUnicodeClass{\SaurashtraClass}{43136}{43231}} +\newcommand{\@loadShavian}{\@defineUnicodeClass{\ShavianClass}{66640}{66687}} +\newcommand{\@loadSinhala}{\@defineUnicodeClass{\SinhalaClass}{3456}{3583}} +\newcommand{\@loadSmallFormVariants}{\@defineUnicodeClass{\SmallFormVariantsClass}{65104}{65135}} +\newcommand{\@loadSpacingModifierLetters}{\@defineUnicodeClass{\SpacingModifierLettersClass}{688}{767}} +\newcommand{\@loadSpecials}{\@defineUnicodeClass{\SpecialsClass}{65520}{65535}} +\newcommand{\@loadSuperscriptsAndSubscripts}{\@defineUnicodeClass{\SuperscriptsAndSubscriptsClass}{8304}{8351}} +\newcommand{\@loadSupplementalArrowsA}{\@defineUnicodeClass{\SupplementalArrowsAClass}{10224}{10239}} +\newcommand{\@loadSupplementalArrowsB}{\@defineUnicodeClass{\SupplementalArrowsBClass}{10496}{10623}} +\newcommand{\@loadSupplementalMathematicalOperators}{\@defineUnicodeClass{\SupplementalMathematicalOperatorsClass}{10752}{11007}} +\newcommand{\@loadSupplementalPunctuation}{\@defineUnicodeClass{\SupplementalPunctuationClass}{11776}{11903}} +\newcommand{\@loadSupplementaryPrivateUseAreaA}{\@defineUnicodeClass{\SupplementaryPrivateUseAreaAClass}{983040}{1048575}} +\newcommand{\@loadSupplementaryPrivateUseAreaB}{\@defineUnicodeClass{\SupplementaryPrivateUseAreaBClass}{1048576}{1114111}} +\newcommand{\@loadSylotiNagri}{\@defineUnicodeClass{\SylotiNagriClass}{43008}{43055}} +\newcommand{\@loadSyriac}{\@defineUnicodeClass{\SyriacClass}{1792}{1871}} +\newcommand{\@loadTagalog}{\@defineUnicodeClass{\TagalogClass}{5888}{5919}} +\newcommand{\@loadTagbanwa}{\@defineUnicodeClass{\TagbanwaClass}{5984}{6015}} +\newcommand{\@loadTags}{\@defineUnicodeClass{\TagsClass}{917504}{917631}} +\newcommand{\@loadTaiLe}{\@defineUnicodeClass{\TaiLeClass}{6480}{6527}} +\newcommand{\@loadTaiXuanJingSymbols}{\@defineUnicodeClass{\TaiXuanJingSymbolsClass}{119552}{119647}} +\newcommand{\@loadTamil}{\@defineUnicodeClass{\TamilClass}{2944}{3071}} +\newcommand{\@loadTelugu}{\@defineUnicodeClass{\TeluguClass}{3072}{3199}} +\newcommand{\@loadThaana}{\@defineUnicodeClass{\ThaanaClass}{1920}{1983}} +\newcommand{\@loadThai}{\@defineUnicodeClass{\ThaiClass}{3584}{3711}} +\newcommand{\@loadTibetan}{\@defineUnicodeClass{\TibetanClass}{3840}{4095}} +\newcommand{\@loadTifinagh}{\@defineUnicodeClass{\TifinaghClass}{11568}{11647}} +\newcommand{\@loadUgaritic}{\@defineUnicodeClass{\UgariticClass}{66432}{66463}} +\newcommand{\@loadUnifiedCanadianAboriginalSyllabics}{\@defineUnicodeClass{\UnifiedCanadianAboriginalSyllabicsClass}{5120}{5759}} +\newcommand{\@loadVai}{\@defineUnicodeClass{\VaiClass}{42240}{42559}} +\newcommand{\@loadVariationSelectors}{\@defineUnicodeClass{\VariationSelectorsClass}{65024}{65039}} +\newcommand{\@loadVariationSelectorsSupplement}{\@defineUnicodeClass{\VariationSelectorsSupplementClass}{917760}{917999}} +\newcommand{\@loadVerticalForms}{\@defineUnicodeClass{\VerticalFormsClass}{65040}{65055}} +\newcommand{\@loadYiRadicals}{\@defineUnicodeClass{\YiRadicalsClass}{42128}{42191}} +\newcommand{\@loadYiSyllables}{\@defineUnicodeClass{\YiSyllablesClass}{40960}{42127}} +\newcommand{\@loadYijingHexagramSymbols}{\@defineUnicodeClass{\YijingHexagramSymbolsClass}{19904}{19967}} + +% Unicode 6.0 block definitions +\newcommand{\@loadMandaic}{\@defineUnicodeClass{\MandaicClass}{2112}{2143}} +\newcommand{\@loadBatak}{\@defineUnicodeClass{\BatakClass}{7104}{7167}} +\newcommand{\@loadEthiopicExtendedA}{\@defineUnicodeClass{\EthiopicExtendedAClass}{43776}{43823}} +\newcommand{\@loadBrahmi}{\@defineUnicodeClass{\BrahmiClass}{69632}{69759}} +\newcommand{\@loadBamumSupplement}{\@defineUnicodeClass{\BamumSupplementClass}{92160}{92735}} +\newcommand{\@loadKanaSupplement}{\@defineUnicodeClass{\KanaSupplementClass}{110592}{110847}} +\newcommand{\@loadPlayingCards}{\@defineUnicodeClass{\PlayingCardsClass}{127136}{127231}} +\newcommand{\@loadMiscellaneousSymbolsAndPictographs}{\@defineUnicodeClass{\MiscellaneousSymbolsAndPictographsClass}{127744}{128511}} +\newcommand{\@loadEmoticons}{\@defineUnicodeClass{\EmoticonsClass}{128512}{128591}} +\newcommand{\@loadTransportAndMapSymbols}{\@defineUnicodeClass{\TransportAndMapSymbolsClass}{128640}{128767}} +\newcommand{\@loadAlchemicalSymbols}{\@defineUnicodeClass{\AlchemicalSymbolsClass}{128768}{128895}} +\newcommand{\@loadCJKUnifiedIdeographsExtensionD}{\@defineUnicodeClass{\CJKUnifiedIdeographsExtensionDClass}{177984}{178207}} + + +% ---------------------------------------------------------------------------- +% And now, finally, we can start loading all the requested blocks +% ---------------------------------------------------------------------------- + +\message{Package ucharclasses Message: Assigning character classes per unicode block (this may take a while)} + +% first, we record the start our of charclass range +\newXeTeXintercharclass\@classstart + +% then we check if we should load everything, or just the indicated blocks +\ifthenelse{\equal{\loadAllClasses}{1}}{% + % if loadAllClasses is "1", we load every class that we know + \@loadAegeanNumbers + \@loadAlphabeticPresentationForms + \@loadAncientGreekMusicalNotation + \@loadAncientGreekNumbers + \@loadAncientSymbols + \@loadArabic + \@loadArabicPresentationFormsA + \@loadArabicPresentationFormsB + \@loadArabicSupplement + \@loadArmenian + \@loadArrows + \@loadBalinese + \@loadBasicLatin + \@loadBengali + \@loadBlockElements + \@loadBopomofo + \@loadBopomofoExtended + \@loadBoxDrawing + \@loadBraillePatterns + \@loadBuginese + \@loadBuhid + \@loadByzantineMusicalSymbols + \@loadCarian + \@loadCham + \@loadCherokee + \@loadCJKCompatibility + \@loadCJKCompatibilityForms + \@loadCJKCompatibilityIdeographs + \@loadCJKCompatibilityIdeographsSupplement + \@loadCJKRadicalsSupplement + \@loadCJKStrokes + \@loadCJKSymbolsAndPunctuation + \@loadCJKUnifiedIdeographs + \@loadCJKUnifiedIdeographsExtensionA + \@loadCJKUnifiedIdeographsExtensionB + \@loadCombiningDiacriticalMarks + \@loadCombiningDiacriticalMarksforSymbols + \@loadCombiningDiacriticalMarksSupplement + \@loadCombiningHalfMarks + \@loadControlPictures + \@loadCoptic + \@loadCountingRodNumerals + \@loadCuneiform + \@loadCuneiformNumbersAndPunctuation + \@loadCurrencySymbols + \@loadCypriotSyllabary + \@loadCyrillic + \@loadCyrillicExtendedA + \@loadCyrillicExtendedB + \@loadCyrillicSupplement + \@loadDeseret + \@loadDevanagari + \@loadDingbats + \@loadDominoTiles + \@loadEnclosedAlphanumerics + \@loadEnclosedCJKLettersAndMonths + \@loadEthiopic + \@loadEthiopicExtended + \@loadEthiopicSupplement + \@loadGeneralPunctuation + \@loadGeometricShapes + \@loadGeorgian + \@loadGeorgianSupplement + \@loadGlagolitic + \@loadGothic + \@loadGreekAndCoptic + \@loadGreekExtended + \@loadGujarati + \@loadGurmukhi + \@loadHalfwidthAndFullwidthForms + \@loadHangulCompatibilityJamo + \@loadHangulJamo + \@loadHangulSyllables + \@loadHanunoo + \@loadHebrew + \@loadHiragana + \@loadIdeographicDescriptionCharacters + \@loadIPAExtensions + \@loadKanbun + \@loadKangxiRadicals + \@loadKannada + \@loadKatakana + \@loadKatakanaPhoneticExtensions + \@loadKayahLi + \@loadKharoshthi + \@loadKhmer + \@loadKhmerSymbols + \@loadLao + \@loadLatinExtendedAdditional + \@loadLatinExtendedA + \@loadLatinExtendedB + \@loadLatinExtendedC + \@loadLatinExtendedD + \@loadLatinSupplement + \@loadLepcha + \@loadLetterlikeSymbols + \@loadLimbu + \@loadLinearBIdeograms + \@loadLinearBSyllabary + \@loadLycian + \@loadLydian + \@loadMahjongTiles + \@loadMalayalam + \@loadMathematicalAlphanumericSymbols + \@loadMathematicalOperators + \@loadMiscellaneousMathematicalSymbolsA + \@loadMiscellaneousMathematicalSymbolsB + \@loadMiscellaneousSymbols + \@loadMiscellaneousSymbolsAndArrows + \@loadMiscellaneousTechnical + \@loadModifierToneLetters + \@loadMongolian + \@loadMusicalSymbols + \@loadMyanmar + \@loadNewTaiLue + \@loadNKo + \@loadNumberForms + \@loadOgham + \@loadOldChiki + \@loadOldItalic + \@loadOldPersian + \@loadOpticalCharacterRecognition + \@loadOriya + \@loadOsmanya + \@loadPhagsPa + \@loadPhaistosDisc + \@loadPhoenician + \@loadPhoneticExtensions + \@loadPhoneticExtensionsSupplement + \@loadPrivateUseArea + \@loadRejang + \@loadRunic + \@loadSaurashtra + \@loadShavian + \@loadSinhala + \@loadSmallFormVariants + \@loadSpacingModifierLetters + \@loadSpecials + \@loadSuperscriptsAndSubscripts + \@loadSupplementalArrowsA + \@loadSupplementalArrowsB + \@loadSupplementalMathematicalOperators + \@loadSupplementalPunctuation + \@loadSupplementaryPrivateUseAreaA + \@loadSupplementaryPrivateUseAreaB + \@loadSylotiNagri + \@loadSyriac + \@loadTagalog + \@loadTagbanwa + \@loadTags + \@loadTaiLe + \@loadTaiXuanJingSymbols + \@loadTamil + \@loadTelugu + \@loadThaana + \@loadThai + \@loadTibetan + \@loadTifinagh + \@loadUgaritic + \@loadUnifiedCanadianAboriginalSyllabics + \@loadVai + \@loadVariationSelectors + \@loadVariationSelectorsSupplement + \@loadVerticalForms + \@loadYiRadicals + \@loadYiSyllables + \@loadYijingHexagramSymbols + \@loadMandaic + \@loadBatak + \@loadEthiopicExtendedA + \@loadBrahmi + \@loadBamumSupplement + \@loadKanaSupplement + \@loadPlayingCards + \@loadMiscellaneousSymbolsAndPictographs + \@loadEmoticons + \@loadTransportAndMapSymbols + \@loadAlchemicalSymbols + \@loadCJKUnifiedIdeographsExtensionD +} +% if loadAllClasses is not "1" (it will be "0", but this is irrelevant to the conditional) +% we only load those blocks for which a load option was declared +{ + \ifthenelse{\equal{\enableAegeanNumbers}{1}}{\@loadAegeanNumbers}{} + \ifthenelse{\equal{\enableAlphabeticPresentationForms}{1}}{\@loadAlphabeticPresentationForms}{} + \ifthenelse{\equal{\enableAncientGreekMusicalNotation}{1}}{\@loadAncientGreekMusicalNotation}{} + \ifthenelse{\equal{\enableAncientGreekNumbers}{1}}{\@loadAncientGreekNumbers}{} + \ifthenelse{\equal{\enableAncientSymbols}{1}}{\@loadAncientSymbols}{} + \ifthenelse{\equal{\enableArabic}{1}}{\@loadArabic}{} + \ifthenelse{\equal{\enableArabicPresentationFormsA}{1}}{\@loadArabicPresentationFormsA}{} + \ifthenelse{\equal{\enableArabicPresentationFormsB}{1}}{\@loadArabicPresentationFormsB}{} + \ifthenelse{\equal{\enableArabicSupplement}{1}}{\@loadArabicSupplement}{} + \ifthenelse{\equal{\enableArmenian}{1}}{\@loadArmenian}{} + \ifthenelse{\equal{\enableArrows}{1}}{\@loadArrows}{} + \ifthenelse{\equal{\enableBalinese}{1}}{\@loadBalinese}{} + \ifthenelse{\equal{\enableBasicLatin}{1}}{\@loadBasicLatin}{} + \ifthenelse{\equal{\enableBengali}{1}}{\@loadBengali}{} + \ifthenelse{\equal{\enableBlockElements}{1}}{\@loadBlockElements}{} + \ifthenelse{\equal{\enableBopomofo}{1}}{\@loadBopomofo}{} + \ifthenelse{\equal{\enableBopomofoExtended}{1}}{\@loadBopomofoExtended}{} + \ifthenelse{\equal{\enableBoxDrawing}{1}}{\@loadBoxDrawing}{} + \ifthenelse{\equal{\enableBraillePatterns}{1}}{\@loadBraillePatterns}{} + \ifthenelse{\equal{\enableBuginese}{1}}{\@loadBuginese}{} + \ifthenelse{\equal{\enableBuhid}{1}}{\@loadBuhid}{} + \ifthenelse{\equal{\enableByzantineMusicalSymbols}{1}}{\@loadByzantineMusicalSymbols}{} + \ifthenelse{\equal{\enableCarian}{1}}{\@loadCarian}{} + \ifthenelse{\equal{\enableCham}{1}}{\@loadCham}{} + \ifthenelse{\equal{\enableCherokee}{1}}{\@loadCherokee}{} + \ifthenelse{\equal{\enableCJKCompatibility}{1}}{\@loadCJKCompatibility}{} + \ifthenelse{\equal{\enableCJKCompatibilityForms}{1}}{\@loadCJKCompatibilityForms}{} + \ifthenelse{\equal{\enableCJKCompatibilityIdeographs}{1}}{\@loadCJKCompatibilityIdeographs}{} + \ifthenelse{\equal{\enableCJKCompatibilityIdeographsSupplement}{1}}{\@loadCJKCompatibilityIdeographsSupplement}{} + \ifthenelse{\equal{\enableCJKRadicalsSupplement}{1}}{\@loadCJKRadicalsSupplement}{} + \ifthenelse{\equal{\enableCJKStrokes}{1}}{\@loadCJKStrokes}{} + \ifthenelse{\equal{\enableCJKSymbolsAndPunctuation}{1}}{\@loadCJKSymbolsAndPunctuation}{} + \ifthenelse{\equal{\enableCJKUnifiedIdeographs}{1}}{\@loadCJKUnifiedIdeographs}{} + \ifthenelse{\equal{\enableCJKUnifiedIdeographsExtensionA}{1}}{\@loadCJKUnifiedIdeographsExtensionA}{} + \ifthenelse{\equal{\enableCJKUnifiedIdeographsExtensionB}{1}}{\@loadCJKUnifiedIdeographsExtensionB}{} + \ifthenelse{\equal{\enableCombiningDiacriticalMarks}{1}}{\@loadCombiningDiacriticalMarks}{} + \ifthenelse{\equal{\enableCombiningDiacriticalMarksforSymbols}{1}}{\@loadCombiningDiacriticalMarksforSymbols}{} + \ifthenelse{\equal{\enableCombiningDiacriticalMarksSupplement}{1}}{\@loadCombiningDiacriticalMarksSupplement}{} + \ifthenelse{\equal{\enableCombiningHalfMarks}{1}}{\@loadCombiningHalfMarks}{} + \ifthenelse{\equal{\enableControlPictures}{1}}{\@loadControlPictures}{} + \ifthenelse{\equal{\enableCoptic}{1}}{\@loadCoptic}{} + \ifthenelse{\equal{\enableCountingRodNumerals}{1}}{\@loadCountingRodNumerals}{} + \ifthenelse{\equal{\enableCuneiform}{1}}{\@loadCuneiform}{} + \ifthenelse{\equal{\enableCuneiformNumbersAndPunctuation}{1}}{\@loadCuneiformNumbersAndPunctuation}{} + \ifthenelse{\equal{\enableCurrencySymbols}{1}}{\@loadCurrencySymbols}{} + \ifthenelse{\equal{\enableCypriotSyllabary}{1}}{\@loadCypriotSyllabary}{} + \ifthenelse{\equal{\enableCyrillic}{1}}{\@loadCyrillic}{} + \ifthenelse{\equal{\enableCyrillicExtendedA}{1}}{\@loadCyrillicExtendedA}{} + \ifthenelse{\equal{\enableCyrillicExtendedB}{1}}{\@loadCyrillicExtendedB}{} + \ifthenelse{\equal{\enableCyrillicSupplement}{1}}{\@loadCyrillicSupplement}{} + \ifthenelse{\equal{\enableDeseret}{1}}{\@loadDeseret}{} + \ifthenelse{\equal{\enableDevanagari}{1}}{\@loadDevanagari}{} + \ifthenelse{\equal{\enableDingbats}{1}}{\@loadDingbats}{} + \ifthenelse{\equal{\enableDominoTiles}{1}}{\@loadDominoTiles}{} + \ifthenelse{\equal{\enableEnclosedAlphanumerics}{1}}{\@loadEnclosedAlphanumerics}{} + \ifthenelse{\equal{\enableEnclosedCJKLettersAndMonths}{1}}{\@loadEnclosedCJKLettersAndMonths}{} + \ifthenelse{\equal{\enableEthiopic}{1}}{\@loadEthiopic}{} + \ifthenelse{\equal{\enableEthiopicExtended}{1}}{\@loadEthiopicExtended}{} + \ifthenelse{\equal{\enableEthiopicSupplement}{1}}{\@loadEthiopicSupplement}{} + \ifthenelse{\equal{\enableGeneralPunctuation}{1}}{\@loadGeneralPunctuation}{} + \ifthenelse{\equal{\enableGeometricShapes}{1}}{\@loadGeometricShapes}{} + \ifthenelse{\equal{\enableGeorgian}{1}}{\@loadGeorgian}{} + \ifthenelse{\equal{\enableGeorgianSupplement}{1}}{\@loadGeorgianSupplement}{} + \ifthenelse{\equal{\enableGlagolitic}{1}}{\@loadGlagolitic}{} + \ifthenelse{\equal{\enableGothic}{1}}{\@loadGothic}{} + \ifthenelse{\equal{\enableGreekAndCoptic}{1}}{\@loadGreekAndCoptic}{} + \ifthenelse{\equal{\enableGreekExtended}{1}}{\@loadGreekExtended}{} + \ifthenelse{\equal{\enableGujarati}{1}}{\@loadGujarati}{} + \ifthenelse{\equal{\enableGurmukhi}{1}}{\@loadGurmukhi}{} + \ifthenelse{\equal{\enableHalfwidthAndFullwidthForms}{1}}{\@loadHalfwidthAndFullwidthForms}{} + \ifthenelse{\equal{\enableHangulCompatibilityJamo}{1}}{\@loadHangulCompatibilityJamo}{} + \ifthenelse{\equal{\enableHangulJamo}{1}}{\@loadHangulJamo}{} + \ifthenelse{\equal{\enableHangulSyllables}{1}}{\@loadHangulSyllables}{} + \ifthenelse{\equal{\enableHanunoo}{1}}{\@loadHanunoo}{} + \ifthenelse{\equal{\enableHebrew}{1}}{\@loadHebrew}{} + \ifthenelse{\equal{\enableHiragana}{1}}{\@loadHiragana}{} + \ifthenelse{\equal{\enableIdeographicDescriptionCharacters}{1}}{\@loadIdeographicDescriptionCharacters}{} + \ifthenelse{\equal{\enableIPAExtensions}{1}}{\@loadIPAExtensions}{} + \ifthenelse{\equal{\enableKanbun}{1}}{\@loadKanbun}{} + \ifthenelse{\equal{\enableKangxiRadicals}{1}}{\@loadKangxiRadicals}{} + \ifthenelse{\equal{\enableKannada}{1}}{\@loadKannada}{} + \ifthenelse{\equal{\enableKatakana}{1}}{\@loadKatakana}{} + \ifthenelse{\equal{\enableKatakanaPhoneticExtensions}{1}}{\@loadKatakanaPhoneticExtensions}{} + \ifthenelse{\equal{\enableKayahLi}{1}}{\@loadKayahLi}{} + \ifthenelse{\equal{\enableKharoshthi}{1}}{\@loadKharoshthi}{} + \ifthenelse{\equal{\enableKhmer}{1}}{\@loadKhmer}{} + \ifthenelse{\equal{\enableKhmerSymbols}{1}}{\@loadKhmerSymbols}{} + \ifthenelse{\equal{\enableLao}{1}}{\@loadLao}{} + \ifthenelse{\equal{\enableLatinExtendedAdditional}{1}}{\@loadLatinExtendedAdditional}{} + \ifthenelse{\equal{\enableLatinExtendedA}{1}}{\@loadLatinExtendedA}{} + \ifthenelse{\equal{\enableLatinExtendedB}{1}}{\@loadLatinExtendedB}{} + \ifthenelse{\equal{\enableLatinExtendedC}{1}}{\@loadLatinExtendedC}{} + \ifthenelse{\equal{\enableLatinExtendedD}{1}}{\@loadLatinExtendedD}{} + \ifthenelse{\equal{\enableLatinSupplement}{1}}{\@loadLatinSupplement}{} + \ifthenelse{\equal{\enableLepcha}{1}}{\@loadLepcha}{} + \ifthenelse{\equal{\enableLetterlikeSymbols}{1}}{\@loadLetterlikeSymbols}{} + \ifthenelse{\equal{\enableLimbu}{1}}{\@loadLimbu}{} + \ifthenelse{\equal{\enableLinearBIdeograms}{1}}{\@loadLinearBIdeograms}{} + \ifthenelse{\equal{\enableLinearBSyllabary}{1}}{\@loadLinearBSyllabary}{} + \ifthenelse{\equal{\enableLycian}{1}}{\@loadLycian}{} + \ifthenelse{\equal{\enableLydian}{1}}{\@loadLydian}{} + \ifthenelse{\equal{\enableMahjongTiles}{1}}{\@loadMahjongTiles}{} + \ifthenelse{\equal{\enableMalayalam}{1}}{\@loadMalayalam}{} + \ifthenelse{\equal{\enableMathematicalAlphanumericSymbols}{1}}{\@loadMathematicalAlphanumericSymbols}{} + \ifthenelse{\equal{\enableMathematicalOperators}{1}}{\@loadMathematicalOperators}{} + \ifthenelse{\equal{\enableMiscellaneousMathematicalSymbolsA}{1}}{\@loadMiscellaneousMathematicalSymbolsA}{} + \ifthenelse{\equal{\enableMiscellaneousMathematicalSymbolsB}{1}}{\@loadMiscellaneousMathematicalSymbolsB}{} + \ifthenelse{\equal{\enableMiscellaneousSymbols}{1}}{\@loadMiscellaneousSymbols}{} + \ifthenelse{\equal{\enableMiscellaneousSymbolsAndArrows}{1}}{\@loadMiscellaneousSymbolsAndArrows}{} + \ifthenelse{\equal{\enableMiscellaneousTechnical}{1}}{\@loadMiscellaneousTechnical}{} + \ifthenelse{\equal{\enableModifierToneLetters}{1}}{\@loadModifierToneLetters}{} + \ifthenelse{\equal{\enableMongolian}{1}}{\@loadMongolian}{} + \ifthenelse{\equal{\enableMusicalSymbols}{1}}{\@loadMusicalSymbols}{} + \ifthenelse{\equal{\enableMyanmar}{1}}{\@loadMyanmar}{} + \ifthenelse{\equal{\enableNewTaiLue}{1}}{\@loadNewTaiLue}{} + \ifthenelse{\equal{\enableNKo}{1}}{\@loadNKo}{} + \ifthenelse{\equal{\enableNumberForms}{1}}{\@loadNumberForms}{} + \ifthenelse{\equal{\enableOgham}{1}}{\@loadOgham}{} + \ifthenelse{\equal{\enableOldChiki}{1}}{\@loadOldChiki}{} + \ifthenelse{\equal{\enableOldItalic}{1}}{\@loadOldItalic}{} + \ifthenelse{\equal{\enableOldPersian}{1}}{\@loadOldPersian}{} + \ifthenelse{\equal{\enableOpticalCharacterRecognition}{1}}{\@loadOpticalCharacterRecognition}{} + \ifthenelse{\equal{\enableOriya}{1}}{\@loadOriya}{} + \ifthenelse{\equal{\enableOsmanya}{1}}{\@loadOsmanya}{} + \ifthenelse{\equal{\enablePhagsPa}{1}}{\@loadPhagsPa}{} + \ifthenelse{\equal{\enablePhaistosDisc}{1}}{\@loadPhaistosDisc}{} + \ifthenelse{\equal{\enablePhoenician}{1}}{\@loadPhoenician}{} + \ifthenelse{\equal{\enablePhoneticExtensions}{1}}{\@loadPhoneticExtensions}{} + \ifthenelse{\equal{\enablePhoneticExtensionsSupplement}{1}}{\@loadPhoneticExtensionsSupplement}{} + \ifthenelse{\equal{\enablePrivateUseArea}{1}}{\@loadPrivateUseArea}{} + \ifthenelse{\equal{\enableRejang}{1}}{\@loadRejang}{} + \ifthenelse{\equal{\enableRunic}{1}}{\@loadRunic}{} + \ifthenelse{\equal{\enableSaurashtra}{1}}{\@loadSaurashtra}{} + \ifthenelse{\equal{\enableShavian}{1}}{\@loadShavian}{} + \ifthenelse{\equal{\enableSinhala}{1}}{\@loadSinhala}{} + \ifthenelse{\equal{\enableSmallFormVariants}{1}}{\@loadSmallFormVariants}{} + \ifthenelse{\equal{\enableSpacingModifierLetters}{1}}{\@loadSpacingModifierLetters}{} + \ifthenelse{\equal{\enableSpecials}{1}}{\@loadSpecials}{} + \ifthenelse{\equal{\enableSuperscriptsAndSubscripts}{1}}{\@loadSuperscriptsAndSubscripts}{} + \ifthenelse{\equal{\enableSupplementalArrowsA}{1}}{\@loadSupplementalArrowsA}{} + \ifthenelse{\equal{\enableSupplementalArrowsB}{1}}{\@loadSupplementalArrowsB}{} + \ifthenelse{\equal{\enableSupplementalMathematicalOperators}{1}}{\@loadSupplementalMathematicalOperators}{} + \ifthenelse{\equal{\enableSupplementalPunctuation}{1}}{\@loadSupplementalPunctuation}{} + \ifthenelse{\equal{\enableSupplementaryPrivateUseAreaA}{1}}{\@loadSupplementaryPrivateUseAreaA}{} + \ifthenelse{\equal{\enableSupplementaryPrivateUseAreaB}{1}}{\@loadSupplementaryPrivateUseAreaB}{} + \ifthenelse{\equal{\enableSylotiNagri}{1}}{\@loadSylotiNagri}{} + \ifthenelse{\equal{\enableSyriac}{1}}{\@loadSyriac}{} + \ifthenelse{\equal{\enableTagalog}{1}}{\@loadTagalog}{} + \ifthenelse{\equal{\enableTagbanwa}{1}}{\@loadTagbanwa}{} + \ifthenelse{\equal{\enableTags}{1}}{\@loadTags}{} + \ifthenelse{\equal{\enableTaiLe}{1}}{\@loadTaiLe}{} + \ifthenelse{\equal{\enableTaiXuanJingSymbols}{1}}{\@loadTaiXuanJingSymbols}{} + \ifthenelse{\equal{\enableTamil}{1}}{\@loadTamil}{} + \ifthenelse{\equal{\enableTelugu}{1}}{\@loadTelugu}{} + \ifthenelse{\equal{\enableThaana}{1}}{\@loadThaana}{} + \ifthenelse{\equal{\enableThai}{1}}{\@loadThai}{} + \ifthenelse{\equal{\enableTibetan}{1}}{\@loadTibetan}{} + \ifthenelse{\equal{\enableTifinagh}{1}}{\@loadTifinagh}{} + \ifthenelse{\equal{\enableUgaritic}{1}}{\@loadUgaritic}{} + \ifthenelse{\equal{\enableUnifiedCanadianAboriginalSyllabics}{1}}{\@loadUnifiedCanadianAboriginalSyllabics}{} + \ifthenelse{\equal{\enableVai}{1}}{\@loadVai}{} + \ifthenelse{\equal{\enableVariationSelectors}{1}}{\@loadVariationSelectors}{} + \ifthenelse{\equal{\enableVariationSelectorsSupplement}{1}}{\@loadVariationSelectorsSupplement}{} + \ifthenelse{\equal{\enableVerticalForms}{1}}{\@loadVerticalForms}{} + \ifthenelse{\equal{\enableYiRadicals}{1}}{\@loadYiRadicals}{} + \ifthenelse{\equal{\enableYiSyllables}{1}}{\@loadYiSyllables}{} + \ifthenelse{\equal{\enableYijingHexagramSymbols}{1}}{\@loadYijingHexagramSymbols}{} + \ifthenelse{\equal{\enableMandaic}{1}}{\@loadMandaic}{} + \ifthenelse{\equal{\enableBatak}{1}}{\@loadBatak}{} + \ifthenelse{\equal{\enableEthiopicExtendedA}{1}}{\@loadEthiopicExtendedA}{} + \ifthenelse{\equal{\enableBrahmi}{1}}{\@loadBrahmi}{} + \ifthenelse{\equal{\enableBamumSupplement}{1}}{\@loadBamumSupplement}{} + \ifthenelse{\equal{\enableKanaSupplement}{1}}{\@loadKanaSupplement}{} + \ifthenelse{\equal{\enablePlayingCards}{1}}{\@loadPlayingCards}{} + \ifthenelse{\equal{\enableMiscellaneousSymbolsAndPictographs}{1}}{\@loadMiscellaneousSymbolsAndPictographs}{} + \ifthenelse{\equal{\enableEmoticons}{1}}{\@loadEmoticons}{} + \ifthenelse{\equal{\enableTransportAndMapSymbols}{1}}{\@loadTransportAndMapSymbols}{} + \ifthenelse{\equal{\enableAlchemicalSymbols}{1}}{\@loadAlchemicalSymbols}{} + \ifthenelse{\equal{\enableCJKUnifiedIdeographsExtensionD}{1}}{\@loadCJKUnifiedIdeographsExtensionD}{} +} + +% finally, we record the end of our charclass range +\newXeTeXintercharclass\@classend + +% ---------------------------------------------------------------------------- +% +% The transition master commands +% +% ---------------------------------------------------------------------------- + +\newcounter{iclass} + +\newcommand{\@transition}[3]{ + %\PackageWarning{ucharclasses}{#1 #2 #3} + \XeTeXinterchartoks #1 #2=#3 +} + +% ---------------------------------------------------------------------------- +% Use: \setTransitionsFor{block name}{when entering this block}{when leaving this block} +% ---------------------------------------------------------------------------- + +\newcommand{\setTransitionsFor}[3]{ + \forloop{iclass}{\the\@classstart}{\value{iclass} < \@nameuse{#1Class}}{ + \@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}} + \@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#3}}} + \addtocounter{iclass}{2} + \forloop{iclass}{\value{iclass}}{\value{iclass} < \the\@classend}{ + \@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}} + \@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#3}}} + % and a binding for the transitions to and from boundary characters + \@transition{255}{\@nameuse{#1Class}}{{#2}} + \@transition{\@nameuse{#1Class}}{255}{{#3}}} + +% ---------------------------------------------------------------------------- +% Use: \setTransitionTo{block name}{what to do when entering this block} +% ---------------------------------------------------------------------------- + +\newcommand{\setTransitionTo}[2] { + \forloop{iclass}{\the\@classstart}{\value{iclass} < \@nameuse{#1Class}}{ + \@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}} + \addtocounter{iclass}{2} + \forloop{iclass}{\value{iclass}}{\value{iclass} < \the\@classend}{ + \@transition{\the\value{iclass}}{\@nameuse{#1Class}}{{#2}}} + % and a binding for the transition from boundary characters + \@transition{255}{\@nameuse{#1Class}}{{#2}}} + +% ---------------------------------------------------------------------------- +% Use: \setTransitionFrom{block name }{what to do when leaving this block} +% ---------------------------------------------------------------------------- + +\newcommand{\setTransitionFrom}[2]{ + \forloop{iclass}{\the\@classstart}{\value{iclass} < \@nameuse{#1Class}}{ + \@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#2}}} + \addtocounter{iclass}{2} + \forloop{iclass}{\value{iclass}}{\value{iclass} < \the\@classend}{ + \@transition{\@nameuse{#1Class}}{\the\value{iclass}}{{#2}}} + % and a binding for the transition to boundary characters + \@transition{\@nameuse{#1Class}}{255}{{#2}}} + + +% ---------------------------------------------------------------------------- +% Informal Block Rules - for these, to/from must always be defined +% +% Available informal groups are: +% +% - Arabic +% - Chinese (including bopomofo) +% - CJK (Chinese/Japanese/Korean) +% - Cyrillic +% - Diacritics +% - Greek +% - Japanese (it is advised to set CJK first to a catch-all, then set Japanese for specifics) +% - Korean (=Hangul) (same comment as for Japanese) +% - Latin +% - Mathematics +% - Phonetics +% - Punctuation +% - Symbols +% - Yi +% - Other (I am not a fan of lump groups. I hope to un-lump most of it) +% +% ---------------------------------------------------------------------------- + +\newcommand{\setTransitionsForArabic}[2]{ +\setTransitionsFor{Arabic}{#1}{#2} +\setTransitionsFor{ArabicPresentationFormsA}{#1}{#2} +\setTransitionsFor{ArabicPresentationFormsB}{#1}{#2} +\setTransitionsFor{ArabicSupplement}{#1}{#2} +} + +\newcommand{\setTransitionsForChinese}[2]{ +\setTransitionsFor{Bopomofo}{#1}{#2} +\setTransitionsFor{BopomofoExtended}{#1}{#2} +\setTransitionsFor{CJKCompatibility}{#1}{#2} +\setTransitionsFor{CJKCompatibilityForms}{#1}{#2} +\setTransitionsFor{CJKCompatibilityIdeographs}{#1}{#2} +\setTransitionsFor{CJKCompatibilityIdeographsSupplement}{#1}{#2} +\setTransitionsFor{CJKRadicalsSupplement}{#1}{#2} +\setTransitionsFor{CJKStrokes}{#1}{#2} +\setTransitionsFor{CJKSymbolsAndPunctuation}{#1}{#2} +\setTransitionsFor{CJKUnifiedIdeographs}{#1}{#2} +\setTransitionsFor{CJKUnifiedIdeographsExtensionA}{#1}{#2} +\setTransitionsFor{CJKUnifiedIdeographsExtensionB}{#1}{#2} +\setTransitionsFor{EnclosedCJKLettersAndMonths}{#1}{#2} +\setTransitionsFor{IdeographicDescriptionCharacters}{#1}{#2} +\setTransitionsFor{KangxiRadicals}{#1}{#2} +} + +\newcommand{\setTransitionsForCJK}[2]{ +\setTransitionsFor{Bopomofo}{#1}{#2} +\setTransitionsFor{BopomofoExtended}{#1}{#2} +\setTransitionsFor{CJKCompatibility}{#1}{#2} +\setTransitionsFor{CJKCompatibilityForms}{#1}{#2} +\setTransitionsFor{CJKCompatibilityIdeographs}{#1}{#2} +\setTransitionsFor{CJKCompatibilityIdeographsSupplement}{#1}{#2} +\setTransitionsFor{CJKRadicalsSupplement}{#1}{#2} +\setTransitionsFor{CJKStrokes}{#1}{#2} +\setTransitionsFor{CJKSymbolsAndPunctuation}{#1}{#2} +\setTransitionsFor{CJKUnifiedIdeographs}{#1}{#2} +\setTransitionsFor{CJKUnifiedIdeographsExtensionA}{#1}{#2} +\setTransitionsFor{CJKUnifiedIdeographsExtensionB}{#1}{#2} +\setTransitionsFor{EnclosedCJKLettersAndMonths}{#1}{#2} +\setTransitionsFor{HalfwidthAndFullwidthForms}{#1}{#2} +\setTransitionsFor{HangulCompatibilityJamo}{#1}{#2} +\setTransitionsFor{HangulJamo}{#1}{#2} +\setTransitionsFor{HangulSyllables}{#1}{#2} +\setTransitionsFor{Hiragana}{#1}{#2} +\setTransitionsFor{IdeographicDescriptionCharacters}{#1}{#2} +\setTransitionsFor{Kanbun}{#1}{#2} +\setTransitionsFor{KangxiRadicals}{#1}{#2} +\setTransitionsFor{Katakana}{#1}{#2} +\setTransitionsFor{KatakanaPhoneticExtensions}{#1}{#2} +} + +\newcommand{\setTransitionsForCyrillic}[2]{ +\setTransitionsFor{Cyrillic}{#1}{#2} +\setTransitionsFor{CyrillicExtendedA}{#1}{#2} +\setTransitionsFor{CyrillicExtendedB}{#1}{#2} +\setTransitionsFor{CyrillicSupplement}{#1}{#2} +} + +\newcommand{\setTransitionsForDiacritics}[2]{ +\setTransitionsFor{CombiningDiacriticalMarks}{#1}{#2} +\setTransitionsFor{CombiningDiacriticalMarksforSymbols}{#1}{#2} +\setTransitionsFor{CombiningDiacriticalMarksSupplement}{#1}{#2} +\setTransitionsFor{CombiningHalfMarks}{#1}{#2} +} + +\newcommand{\setTransitionsForGreek}[2]{ +\setTransitionsFor{Coptic}{#1}{#2} +\setTransitionsFor{GreekAndCoptic}{#1}{#2} +\setTransitionsFor{GreekExtended}{#1}{#2} +} + +\newcommand{\setTransitionsForKorean}[2]{ +\setTransitionsFor{HangulCompatibilityJamo}{#1}{#2} +\setTransitionsFor{HangulJamo}{#1}{#2} +\setTransitionsFor{HangulSyllables}{#1}{#2} +} + +\newcommand{\setTransitionsForJapanese}[2]{ +\setTransitionsFor{HalfwidthAndFullwidthForms}{#1}{#2} +\setTransitionsFor{Hiragana}{#1}{#2} +\setTransitionsFor{Kanbun}{#1}{#2} +\setTransitionsFor{Katakana}{#1}{#2} +\setTransitionsFor{KatakanaPhoneticExtensions}{#1}{#2} +\setTransitionsFor{KangxiRadicals}{#1}{#2} +} + +\newcommand{\setTransitionsForLatin}[2]{ +\setTransitionsFor{BasicLatin}{#1}{#2} +\setTransitionsFor{LatinExtendedAdditional}{#1}{#2} +\setTransitionsFor{LatinExtendedA}{#1}{#2} +\setTransitionsFor{LatinExtendedB}{#1}{#2} +\setTransitionsFor{LatinExtendedC}{#1}{#2} +\setTransitionsFor{LatinExtendedD}{#1}{#2} +\setTransitionsFor{LatinSupplement}{#1}{#2} +\setTransitionsFor{AlphabeticPresentationForms}{#1}{#2} +} + +\newcommand{\setTransitionsForMathematics}[2]{ +\setTransitionsFor{MathematicalAlphanumericSymbols}{#1}{#2} +\setTransitionsFor{MathematicalOperators}{#1}{#2} +\setTransitionsFor{MiscellaneousMathematicalSymbolsA}{#1}{#2} +\setTransitionsFor{MiscellaneousMathematicalSymbolsB}{#1}{#2} +\setTransitionsFor{SupplementalMathematicalOperators}{#1}{#2} +} + +\newcommand{\setTransitionsForPhonetics}[2]{ +\setTransitionsFor{IPAExtensions}{#1}{#2} +\setTransitionsFor{PhoneticExtensions}{#1}{#2} +\setTransitionsFor{PhoneticExtensionsSupplement}{#1}{#2} +} + +\newcommand{\setTransitionsForPunctuation}[2]{ +\setTransitionsFor{GeneralPunctuation}{#1}{#2} +\setTransitionsFor{SupplementalPunctuation}{#1}{#2} +} + +\newcommand{\setTransitionsForSymbols}[2]{ +\setTransitionsFor{Arrows}{#1}{#2} +\setTransitionsFor{BoxDrawing}{#1}{#2} +\setTransitionsFor{ByzantineMusicalSymbols}{#1}{#2} +\setTransitionsFor{ControlPictures}{#1}{#2} +\setTransitionsFor{CurrencySymbols}{#1}{#2} +\setTransitionsFor{GeometricShapes}{#1}{#2} +\setTransitionsFor{LetterlikeSymbols}{#1}{#2} +\setTransitionsFor{MiscellaneousSymbols}{#1}{#2} +\setTransitionsFor{MiscellaneousSymbolsAndArrows}{#1}{#2} +\setTransitionsFor{MiscellaneousTechnical}{#1}{#2} +\setTransitionsFor{SupplementalArrowsA}{#1}{#2} +\setTransitionsFor{SupplementalArrowsB}{#1}{#2} +\setTransitionsFor{VariationSelectors}{#1}{#2} +\setTransitionsFor{VariationSelectorsSupplement}{#1}{#2} +} + +\newcommand{\setTransitionsForYi}[2]{ +\setTransitionsFor{YiRadicals}{#1}{#2} +\setTransitionsFor{YiSyllables}{#1}{#2} +} + +\newcommand{\setTransitionsForOther}[2]{ +\setTransitionsFor{AegeanNumbers}{#1}{#2} +\setTransitionsFor{AncientGreekMusicalNotation}{#1}{#2} +\setTransitionsFor{AncientGreekNumbers}{#1}{#2} +\setTransitionsFor{Armenian}{#1}{#2} +\setTransitionsFor{Balinese}{#1}{#2} +\setTransitionsFor{Bengali}{#1}{#2} +\setTransitionsFor{BlockElements}{#1}{#2} +\setTransitionsFor{BraillePatterns}{#1}{#2} +\setTransitionsFor{Buginese}{#1}{#2} +\setTransitionsFor{Buhid}{#1}{#2} +\setTransitionsFor{Cherokee}{#1}{#2} +\setTransitionsFor{Coptic}{#1}{#2} +\setTransitionsFor{CountingRodNumerals}{#1}{#2} +\setTransitionsFor{Cuneiform}{#1}{#2} +\setTransitionsFor{CuneiformNumbersAndPunctuation}{#1}{#2} +\setTransitionsFor{CypriotSyllabary}{#1}{#2} +\setTransitionsFor{Deseret}{#1}{#2} +\setTransitionsFor{Devanagari}{#1}{#2} +\setTransitionsFor{Dingbats}{#1}{#2} +\setTransitionsFor{DominoTiles}{#1}{#2} +\setTransitionsFor{EnclosedAlphanumerics}{#1}{#2} +\setTransitionsFor{Ethiopic}{#1}{#2} +\setTransitionsFor{EthiopicExtended}{#1}{#2} +\setTransitionsFor{EthiopicSupplement}{#1}{#2} +\setTransitionsFor{Georgian}{#1}{#2} +\setTransitionsFor{GeorgianSupplement}{#1}{#2} +\setTransitionsFor{Glagolitic}{#1}{#2} +\setTransitionsFor{Gothic}{#1}{#2} +\setTransitionsFor{Gujarati}{#1}{#2} +\setTransitionsFor{Gurmukhi}{#1}{#2} +\setTransitionsFor{Hanunoo}{#1}{#2} +\setTransitionsFor{Hebrew}{#1}{#2} +\setTransitionsFor{Kannada}{#1}{#2} +\setTransitionsFor{Kharoshthi}{#1}{#2} +\setTransitionsFor{Khmer}{#1}{#2} +\setTransitionsFor{KhmerSymbols}{#1}{#2} +\setTransitionsFor{Lao}{#1}{#2} +\setTransitionsFor{Limbu}{#1}{#2} +\setTransitionsFor{LinearBIdeograms}{#1}{#2} +\setTransitionsFor{LinearBSyllabary}{#1}{#2} +\setTransitionsFor{MahjongTiles}{#1}{#2} +\setTransitionsFor{Malayalam}{#1}{#2} +\setTransitionsFor{ModifierToneLetters}{#1}{#2} +\setTransitionsFor{Mongolian}{#1}{#2} +\setTransitionsFor{MusicalSymbols}{#1}{#2} +\setTransitionsFor{Myanmar}{#1}{#2} +\setTransitionsFor{NewTaiLue}{#1}{#2} +\setTransitionsFor{NKo}{#1}{#2} +\setTransitionsFor{NumberForms}{#1}{#2} +\setTransitionsFor{Ogham}{#1}{#2} +\setTransitionsFor{OldItalic}{#1}{#2} +\setTransitionsFor{OldPersian}{#1}{#2} +\setTransitionsFor{OpticalCharacterRecognition}{#1}{#2} +\setTransitionsFor{Oriya}{#1}{#2} +\setTransitionsFor{Osmanya}{#1}{#2} +\setTransitionsFor{PhagsPa}{#1}{#2} +\setTransitionsFor{Phoenician}{#1}{#2} +\setTransitionsFor{PrivateUseArea}{#1}{#2} +\setTransitionsFor{Runic}{#1}{#2} +\setTransitionsFor{Shavian}{#1}{#2} +\setTransitionsFor{Sinhala}{#1}{#2} +\setTransitionsFor{SmallFormVariants}{#1}{#2} +\setTransitionsFor{SpacingModifierLetters}{#1}{#2} +\setTransitionsFor{Specials}{#1}{#2} +\setTransitionsFor{SuperscriptsAndSubscripts}{#1}{#2} +\setTransitionsFor{SupplementaryPrivateUseAreaA}{#1}{#2} +\setTransitionsFor{SupplementaryPrivateUseAreaB}{#1}{#2} +\setTransitionsFor{SylotiNagri}{#1}{#2} +\setTransitionsFor{Syriac}{#1}{#2} +\setTransitionsFor{Tagalog}{#1}{#2} +\setTransitionsFor{Tagbanwa}{#1}{#2} +\setTransitionsFor{Tags}{#1}{#2} +\setTransitionsFor{TaiLe}{#1}{#2} +\setTransitionsFor{TaiXuanJingSymbols}{#1}{#2} +\setTransitionsFor{Tamil}{#1}{#2} +\setTransitionsFor{Telugu}{#1}{#2} +\setTransitionsFor{Thaana}{#1}{#2} +\setTransitionsFor{Thai}{#1}{#2} +\setTransitionsFor{Tibetan}{#1}{#2} +\setTransitionsFor{Tifinagh}{#1}{#2} +\setTransitionsFor{Ugaritic}{#1}{#2} +\setTransitionsFor{UnifiedCanadianAboriginalSyllabics}{#1}{#2} +\setTransitionsFor{VerticalForms}{#1}{#2} +\setTransitionsFor{YijingHexagramSymbols}{#1}{#2} +} + +% ---------------------------------------------------------------------------- +% +% based on the previous informal groups, we can define a catch-all transition command +% +% ---------------------------------------------------------------------------- + +\newcommand{\setDefaultTransitions}[2]{ +\setTransitionsForArabic{#1}{#2} +\setTransitionsForCJK{#1}{#2} +\setTransitionsForCyrillic{#1}{#2} +\setTransitionsForDiacritics{#1}{#2} +\setTransitionsForGreek{#1}{#2} +\setTransitionsForLatin{#1}{#2} +\setTransitionsForMathematics{#1}{#2} +\setTransitionsForPhonetics{#1}{#2} +\setTransitionsForPunctuation{#1}{#2} +\setTransitionsForSymbols{#1}{#2} +\setTransitionsForYi{#1}{#2} +\setTransitionsForOther{#1}{#2} +} + +% ---------------------------------------------------------------------------- +\endinput +% +% End of file `ucharclasses.sty'.
\ No newline at end of file diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 271cdb80196..6b6a00457d7 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -333,7 +333,8 @@ my @TLP_working = qw( tucv tufte-latex tugboat tugboat-plain turkmen turnstile twoinone twoup txfonts txfontsb type1cm typehtml typogrid - uaclasses uebungsblatt ucdavisthesis ucs ucthesis uiucthesis + uaclasses ucharclasses ucdavisthesis ucs + ucthesis uebungsblatt uiucthesis ulem ulqda umich-thesis uml umlaute umoline umthesis umtypewriter diff --git a/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc b/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc index ce4211d532c..013d5e4e71e 100644 --- a/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-xetex.tlpsrc @@ -10,6 +10,7 @@ depend harvardkyoto depend mathspec depend philokalia depend polyglossia +depend ucharclasses depend xecjk depend xecolour depend xecyr diff --git a/Master/tlpkg/tlpsrc/ucharclasses.tlpsrc b/Master/tlpkg/tlpsrc/ucharclasses.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/ucharclasses.tlpsrc |