diff options
Diffstat (limited to 'Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx')
-rw-r--r-- | Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx | 2147 |
1 files changed, 1911 insertions, 236 deletions
diff --git a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx index 5c19c51446a..a6eda0639d1 100644 --- a/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx +++ b/Master/texmf-dist/source/xelatex/xecjk/xeCJK.dtx @@ -29,6 +29,7 @@ This package consists of the file xeCJK.dtx, xeCJKfntef.sty, xeCJK-listings.sty, xunicode-addon.sty, + xunicode-extra.def, xeCJK-example-autofake.tex, xeCJK-example-fallback.tex, xeCJK-example-subCJKblock.tex, @@ -39,6 +40,10 @@ This package consists of the file xeCJK.dtx, xeCJK-example-verbatim.tex, xeCJK-example-IVS.tex, xeCJK-example-listings.tex, + xunicode-symbols.tex, + xunicode-commands.tex, + xunicode-combine-marks.tex, + xunicode-symbols.pdf, full-stop.tec, fullwidth-stop.tec, han-simp.tec, @@ -90,7 +95,7 @@ CJK scripts fonts (TrueType or OpenType). \askforoverwritefalse \preamble -$Id: xeCJK.dtx 533 2013-12-05 10:52:12Z sobenlee $ +$Id: xeCJK.dtx 537 2013-12-08 13:01:40Z sobenlee $ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ ----------------------------------------------------------------- Author: @@ -130,6 +135,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ xeCJKfntef.sty, xeCJK-listings.sty, xunicode-addon.sty, + xunicode-extra.def, xeCJK-example-autofake.tex, xeCJK-example-fallback.tex, xeCJK-example-subCJKblock.tex, @@ -140,6 +146,10 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ xeCJK-example-verbatim.tex, xeCJK-example-IVS.tex, xeCJK-example-listings.tex, + xunicode-symbols.tex, + xunicode-commands.tex, + xunicode-combine-marks.tex, + xunicode-symbols.pdf, full-stop.tec, fullwidth-stop.tec, han-simp.tec, @@ -159,6 +169,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \file{xeCJKfntef.sty}{\from{\jobname.dtx}{fntef}} \file{xeCJK-listings.sty}{\from{\jobname.dtx}{listings}} \file{xunicode-addon.sty}{\from{\jobname.dtx}{xunicode}} + \file{xunicode-extra.def}{\from{\jobname.dtx}{xunextra}} \usepreamble\emptypreamble \usepostamble\emptypostamble \usedir{tex/xelatex/xecjk/config} @@ -174,6 +185,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \file{\jobname-example-verbatim.tex}{\from{\jobname.dtx}{ex-verb}} \file{\jobname-example-IVS.tex}{\from{\jobname.dtx}{ex-IVS}} \file{\jobname-example-listings.tex}{\from{\jobname.dtx}{ex-listings}} + \file{xunicode-symbols.tex}{\from{\jobname.dtx}{xunicode-symbols}} \nopreamble\nopostamble \usedir{doc/xelatex/xecjk} \file{README.txt}{\from{\jobname.dtx}{readme}} @@ -184,12 +196,12 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ %<*internal> \fi %</internal> -%<*driver|package|config|fntef|listings|xunicode> -%<*!config> +%<*driver|package|config|fntef|listings|xunicode|xunextra> +%<*!config&!xunextra> \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -%</!config> -\GetIdInfo$Id: xeCJK.dtx 533 2013-12-05 10:52:12Z sobenlee $ +%</!config&!xunextra> +\GetIdInfo$Id: xeCJK.dtx 537 2013-12-08 13:01:40Z sobenlee $ %<*driver|package> {Typesetting CJK scripts with XeLaTeX} %</driver|package> @@ -197,24 +209,27 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ %<fntef> {xeCJK patch file for ulem/CJKfntef} %<listings> {xeCJK patch file for listings} %<xunicode> {addon file for xunicode} -%<*driver|config> +%<xunextra> {extra definition for xunicode} +%<*driver|config|xunextra> \ProvidesExplFile -%</driver|config> +%</driver|config|xunextra> %<*driver> {\ExplFileName.\ExplFileExtension} %</driver> %<config> {\ExplFileName.cfg} +%<xunextra> {\ExplFileName.def} %<package|fntef|listings|xunicode>\ProvidesExplPackage %<package> {\ExplFileName} %<fntef> {xeCJKfntef} %<listings> {xeCJK-listings} %<xunicode> {xunicode-addon} - {\ExplFileDate}{3.2.8}{\ExplFileDescription} + {\ExplFileDate}{3.2.9}{\ExplFileDescription} +%<xunextra>\ExplSyntaxOff %<*driver> \let\xeCJKrevnum\ExplFileVersion \ExplSyntaxOff %</driver> -%</driver|package|config|fntef|listings|xunicode> +%</driver|package|config|fntef|listings|xunicode|xunextra> % %<*driver> \expandafter\let\csname ver@thumbpdf.sty\endcsname\fmtversion @@ -340,7 +355,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \changes{v3.2.4}{2013/07/02}{遵循 \hologo{LaTeX3} 变量需要预先声明的原则。} % \changes{v3.2.6}{2013/07/29}{\texttt{case} 类函数的用法与 \hologo{LaTeX3} 同步。} % -% \CheckSum{5934} +% \CheckSum{8827} % \GetFileInfo{\jobname.dtx} % % \title{\bfseries\pkg{xeCJK} 宏包} @@ -6942,6 +6957,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ { \textellipsis \textemdash \textperiodcentered \textcentereddot \textquoteleft \textquoteright \textquotedblleft \textquotedblright + \textcdot \textgrq \textgrqq } { \AtBeginUTFCommand [#1] { \@@_group_begin: \makexeCJKinactive } @@ -6950,22 +6966,99 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \end{macrocode} % \end{macro} % +% \begin{macro}[internal]{\l_@@_patch_Bxii_tl,\@@_patch_Bxii:n} +% \changes{v3.2.9}{2013/12/08} +% {完整处理 \file{encguide.pdf} 的编码符号表中,与旧编码的 \texttt{U+00B7} 冲突。} % 常被用作中文间隔号的 \texttt{U+00B7} 与 T1 等旧字体编码下定义的符号命令冲突。 +% 在 \file{encguide.pdf} 的编码符号表中,如下定义有冲突。 +% \begin{verbatim} +% \DeclareTextComposite{\r}{T1}{u}{183} +% \DeclareTextSymbol{\cyrchvcrs}{T2A}{183} +% \DeclareTextSymbol{\cyrchldsc}{T2B}{183} +% \DeclareTextSymbol{\cyrabhha}{T2C}{183} +% \DeclareTextSymbol\textvibyy{T3}{183} +% \DeclareTextComposite{\B}{T4}{t}{183} +% \DeclareTextComposite{\`}{T5}{\ecircumflex}{183} +% \DeclareTextDoubleComposite{\`}{T5}{\^}{e}{183} +% \DeclareTextSymbol{\textperiodcentered}{TS1}{183} +% \DeclareTextSymbol{\cyrchldsc}{X2}{183} +% \DeclareTextSymbol{\textperiodcentered}{LY1}{183} +% \end{verbatim} +% LGR 编码的符号表有 \texttt{183} 号字符,但在 \file{lgrenc.def} 中未找到相应的 +% 符号命令,它的输入方式为 |>`w| 或者 |\accpsilivaria{w}|。前者比较特殊,如果 +% 与 \pkg{xeCJK} 一起使用,\XeTeX\ 会出现如下错误。 +% \begin{verbatim} +% ! Cannot use \XeTeXglyphbounds with grmn1000; not a native platform font. +% \xeCJK_glyph_bounds:NN ...use:N \XeTeXglyphbounds +% #1 \XeTeXcharglyph \xeCJK_... +% \end{verbatim} +% 这个不好处理,只修改后者。 % \begin{macrocode} -\@@_after_preamble:n +\@@_after_end_preamble:n { \l_@@_patch_Bxii_tl } +\tl_new:N \l_@@_patch_Bxii_tl +\cs_new_protected_nopar:Npn \@@_patch_Bxii:nN #1#2 { - \tl_put_left:Nn \tipaencoding { \makexeCJKinactive } - \cs_new_eq:NN \@@_aux_r:n \r - \cs_set_nopar:Npn \r #1 + \tl_put_right:Nx \l_@@_patch_Bxii_tl + { \@@_patch_Bxii:n { #1 \token_to_str:N #2 } } + } +\group_begin: +\cs_set:Npn \@@_tmp:w #1 + { + \group_end: + \cs_new_protected_nopar:Npn \@@_patch_Bxii:nNN ##1##2##3 { - \bool_if:nTF + \tl_put_right:Nx \l_@@_patch_Bxii_tl { - \str_if_eq_x_p:nn { \f@encoding } { T1 } && - \str_if_eq_x_p:nn {#1} { u } + \@@_patch_Bxii:Nnn + #1 { ##1 \token_to_str:N ##2 } { \token_to_str:N ##3 } } - { { \makexeCJKinactive \@@_aux_r:n {#1} } } - { \@@_aux_r:n {#1} } } + } +\use:n + { + \char_set_catcode_other:N \\ + \@@_tmp:w + } + { \ } +\cs_new_protected_nopar:Npn \@@_patch_Bxii:n #1 + { \cs_if_free:cF {#1} { \cs_gset_eq:cN {#1} \@@_Default_Bxii: } } +\cs_new_protected_nopar:Npn \@@_patch_Bxii:Nnn #1#2#3 + { \cs_if_free:cF {#2} { \cs_gset_eq:cN { #1#2 - #3 } \@@_Default_Bxii: } } +\group_begin: +\char_set_catcode_other:n { 183 } +\cs_new_protected_nopar:Npn \@@_Default_Bxii: + { + \int_compare:nNnTF \XeTeXinterchartokenstate > \c_zero + { \@@_group_begin: \makexeCJKinactive ^^b7 \@@_group_end: } + { ^^b7 } + } +\group_end: +\clist_map_inline:nn + { + { T3 } \textvibyy , + { T2A } \cyrchvcrs , + { T2B } \cyrchldsc , + { T2C } \cyrabhha , + { X2 } \cyrchldsc , + { TS1 } \textperiodcentered , + { LY1 } \textperiodcentered + } + { \@@_patch_Bxii:nN #1 } +\clist_map_inline:nn + { + { T1 } \r u , + { T4 } \B t , + { T5 } \` \ecircumflex , + { LGR } \accpsilivaria w + } + { \@@_patch_Bxii:nNN #1 } +\tl_put_right:Nx \l_@@_patch_Bxii_tl + { + \@@_patch_Bxii:n + { \token_to_str:N \T 5 \token_to_str:N \` - \token_to_str:N \^ - e } + } +\@@_after_end_preamble:n + { \xeCJK_if_package_loaded:nT { pifont } { \RenewDocumentCommand \Pifont { m } @@ -6973,6 +7066,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ } } % \end{macrocode} +% \end{macro} % % 简单处理与 \pkg{hyperref} 宏包的兼容问题。 % \begin{macrocode} @@ -8168,6 +8262,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % % \changes{v3.2.5}{2013/07/18} % {增加小宏包 \pkg{xunicode-addon},为 \pkg{xunicode} 提供判断字符是否存在的功能。} +% \changes{v3.2.9}{2013/12/08} +% {文档部分增加 \pkg{xunicode} 定义的符号表。} % % \begin{macrocode} %<*xunicode> @@ -8261,8 +8357,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \tl_set:Nx \UTFencname {##1} \clist_gput_right:Nx \g_@@_encname_clist {##1} \file_input:n { xunicode.sty } - \@@_declare_textcircled:n { \UTFencname } - \@@_declare_math_symbols:n { \UTFencname } + \file_input:n { xunicode-extra.def } } { \msg_error:nnn { xunicode-addon } { encoding-unknown } {##1} } } @@ -8280,21 +8375,6 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \end{macrocode} % \end{macro} % -% \begin{macro}[internal]{\@@_declare_math_symbols:} -% 几个特殊的数学符号对应的 Unicode 符号定义以 \cs{text} 打头的命令。 -% \begin{macrocode} -\cs_new_protected_nopar:Npn \@@_declare_math_symbols:n #1 - { - \@@_declare_character:Nnn \textFinv {#1} { x2132 } - \@@_declare_character:Nnn \textaleph {#1} { x2135 } - \@@_declare_character:Nnn \textbeth {#1} { x2136 } - \@@_declare_character:Nnn \textgimel {#1} { x2137 } - \@@_declare_character:Nnn \textdaleth {#1} { x2138 } - \@@_declare_character:Nnn \textGame {#1} { x2141 } - } -% \end{macrocode} -% \end{macro} -% % \begin{macro}[internal]{\DeclareUTFmathsymbols} % \changes{v3.2.8}{2013/12/04}{修正 \cs{UseMathAsText} 的功能,恢复 \cs{hbar} % 和增加以 \texttt{text} 打头的文本符号命令。} @@ -8380,7 +8460,16 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ {#1} {#4} {#2} } \cs_new_protected:Npn \@@_undeclare_composite:Nnnn #1#2#3#4 - { \cs_undefine:c { \token_to_str:c {#2} \token_to_str:N #1 - \tl_to_str:n {#3} } } + { \cs_undefine:c { \@@_composite_cs:Nnn #1 {#2} {#3} } } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[internal]{\@@_composite_cs:Nnn,\@@_composite_cs:nnn} +% \begin{macrocode} +\cs_new:Npx \@@_composite_cs:Nnn #1#2#3 + { \cs_to_str:N \\ #2 \exp_not:N \token_to_str:N #1 - \exp_not:N \tl_to_str:n {#3} } +\cs_new:Npx \@@_composite_cs:nnn #1#2#3 + { \cs_to_str:N \\ #2 #1 - \exp_not:N \tl_to_str:n {#3} } % \end{macrocode} % \end{macro} % @@ -8439,7 +8528,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % % \begin{macro}[internal]{\@@_declare_character:Nnn} % 通过 \texttt{lowercase} 技巧,直接由 Unicode |#3| 得到编码 |#2| 下的符号命令 -% |#1| 对应的实际字符。 +% |#1| 对应的实际字符。\cs{DeclareUTFSymbol} 的参数格式与 \cs{DeclareTextSymbol} +% 完全一致。 % \begin{macrocode} \cs_new_protected:Npn \@@_declare_character:Nnn #1#2#3 { @@ -8457,6 +8547,25 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \end{macrocode} % \end{macro} % +% \begin{macro}[internal]{\DeclareUTFSymbol,\DeclareUTFCommand} +% \cs{DeclareUTFCommand} 只能用于定义不带参数的符号命令。 +% \begin{macrocode} +\NewDocumentCommand \DeclareUTFSymbol { m O { \UTFencname } m } + { \@@_declare_character:Nnn #1 {#2} {#3} } +\NewDocumentCommand \DeclareUTFCommand { m O { \UTFencname } m } + { \@@_text_command:Nonn #1 { \token_to_str:N #1 } {#2} {#3} } +\cs_new_protected:Npn \@@_text_command:Nnnn #1#2#3#4 + { \DeclareTextCommand #1 {#3} { \@@_text_command:nn {#2} {#4} } } +\cs_generate_variant:Nn \@@_text_command:Nnnn { No } +\cs_new_protected:Npn \@@_text_command:nn #1#2 + { + \@@_begin_hook:nn {#1} {#2} + #2 + \@@_end_hook:nn {#1} {#2} + } +% \end{macrocode} +% \end{macro} +% % \begin{macro}[internal]{\@@_provide_text_command_default:N} % 如果控制序列 |#1| 已经存在,但不是符号命令,\pkg{xunicode} 会将它定义为 % \cs{UTFencname} 编码下的符号命令。但是编码被转换之后,再使用这些控制序列, @@ -8541,8 +8650,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ \cs_new_protected:Npn \@@_declare_composite:Nnnn #1#2#3#4 { \tex_afterassignment:D \use_none_delimit_by_q_stop:w - \@@_chardef:cn - { \token_to_str:c {#2} \token_to_str:N #1 - \tl_to_str:n {#3} } + \@@_chardef:cn { \@@_composite_cs:Nnn #1 {#2} {#3} } { \@@_check_slot:n {#4} } \q_stop } @@ -8553,125 +8661,189 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \end{macrocode} % \end{macro} % -% \begin{macro}[internal]{\tonebar} -% 使得 |\tonebar{25}| 和 |\tonebar{52}| 生效。 +% \begin{macro}[internal]{\DeclareUTFCompositeCommand} +% 设置编码 |#2| 下的符号命令 |#1| 与它的参数 |#3| 的复合对应结果是 |#4|。不能直接用 +% \cs{Declare\-Text\-Composite\-Command} 来定义,它与我们的机制冲突。 % \begin{macrocode} -\AtEndOfPackage - { - \DeclareUTFCompositeCommand \tonebar { 25 } { \tonebar { 2 } \tonebar { 5 } } - \DeclareUTFCompositeCommand \tonebar { 52 } { \tonebar { 5 } \tonebar { 2 } } - } +\NewDocumentCommand \DeclareUTFCompositeCommand { m O { \UTFencname } m m } + { \cs_set_protected:cpn { \@@_composite_cs:Nnn #1 {#2} {#3} } {#4} } % \end{macrocode} % \end{macro} % -% \begin{macro}[internal]{\DeclareUTFCompositeCommand} -% 设置编码 |#1| 下的符号命令 |#2| 与它的参数 |#3| 的复合对应结果是 |#4|。不能直接用 -% \cs{Declare\-Text\-Composite\-Command} 来定义,它与我们的机制冲突。 +% \begin{macro}[internal]{\DeclareUTFCompositeSymbol} +% 设置编码 |#2| 下的符号命令 |#1| 与它的参数 |#3| 的复合对应结果是 |#4|。不能直接用 +% \cs{Declare\-Text\-Composite} 来定义,它与我们的机制冲突。 % \begin{macrocode} -\NewDocumentCommand \DeclareUTFCompositeCommand { O { \UTFencname } m m m } +\NewDocumentCommand \DeclareUTFCompositeSymbol { m O { \UTFencname } m m } { - \@@_if_csname:nTF {#2} - { \@@_declare_composite_command:Nnnn #2 } - { \@@_declare_composite_command:cnnn { \tl_to_str:n {#2} } } - {#1} {#3} {#4} + \@@_chardef:cn { \@@_composite_cs:Nnn #1 {#2} {#3} } + { \@@_check_slot:n {#4} } } % \end{macrocode} % \end{macro} % -% \begin{macro}[internal]{\@@_declare_composite_command:Nnnn} +% \begin{macro}[internal]{\DeclareUTFComposite} +% 将 |#1| 设置为编码 |#2| 下的带一个参数的复合符号命令。 % \begin{macrocode} -\cs_new_protected:Npn \@@_declare_composite_command:Nnnn #1#2#3#4 - { - \cs_set_protected:cpn - { \token_to_str:c {#2} \token_to_str:N #1 - \tl_to_str:n {#3} } - {#4} - } -\cs_generate_variant:Nn \@@_declare_composite_command:Nnnn { c } +\NewDocumentCommand \DeclareUTFComposite { m O { \UTFencname } } + { \use:x { \@@_declare_composite:Nnn \exp_not:N #1 { \token_to_str:N #1 } {#2} } } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[internal]{\DeclareUTFEncodedAccent} +% |#1| 是重音命令,|#2| 是编码,|#3| 是组合重音符号的 Unicode,|#4| 是基本重音符号 +% 的 Unicode。当 |#1| 的参数为空时,输出 |#4|,否则是 |#1| 的参数与 |#3| 的组合。 +% \begin{macrocode} +\NewDocumentCommand \DeclareUTFEncodedAccent { m O { \UTFencname } m m } + { \@@_declare_encoded:NNnnn \@@_combine_accent:nnNNn #1 {#2} {#3} {#4} } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[internal]{\DeclareUTFEncodedAccents} +% |#1| 是重音命令,|#2| 是编码,|#3| 和 |#4| 都是组合重音符号的 Unicode。 +% 输出 |#1| 与 |#3|、|#4| 的组合。 +% \begin{macrocode} +\NewDocumentCommand \DeclareUTFEncodedAccents { m O { \UTFencname } m m } + { \@@_declare_encoded:NNnnn \@@_combine_accents:nnNNn #1 {#2} {#3} {#4} } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[internal]{\DeclareUTFEncodedSymbol} +% |#1| 是带参数的符号命令,|#2| 是编码,|#3| 是组合符号的 Unicode,|#4| 是基本符号的 +% Unicode。当 |#1| 的参数为空时,输出 |#4|,否则是 |#1| 的参数与 |#3| 的组合。 +% \begin{macrocode} +\NewDocumentCommand \DeclareUTFEncodedSymbol { m O { \UTFencname } m m } + { \@@_declare_encoded:NNnnn \@@_combine_symbol:nnNNn #1 {#2} {#3} {#4} } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[internal]{\DeclareUTFEncodedCircle} +% |#1| 是带参数的圆圈符号命令,|#2| 是编码,|#3| 是组合圆圈符号的 Unicode,|#4| +% 是圆圈符号的 Unicode。当 |#1| 的参数为空时,输出 |#4|,否则是 |#1| 的参数与 |#4| 的组合。 +% \begin{macrocode} +\NewDocumentCommand \DeclareUTFEncodedCircle { m O { \UTFencname } m m } + { \@@_declare_encoded:NNnnn \@@_combine_circle:nnNNn #1 {#2} {#3} {#4} } % \end{macrocode} % \end{macro} % % \begin{macro}[internal]{\DeclareEncodedCompositeCharacter} -% |#1| 是编码,|#2| 是重音命令,|#3| 是组合重音符号的 Unicode,|#4| 是基本重音符号 -% 的 Unicode。当 |#2| 的参数为空时,输出 |#4|,否则是 |#2| 的参数与 |#3| 的组合。 % \begin{macrocode} \RenewDocumentCommand \DeclareEncodedCompositeCharacter { m m m m } - { - \@@_if_csname:nTF {#2} - { \@@_declare_accent:Nnnn #2 } - { \@@_declare_accent:cnnn { \tl_to_str:n {#2} } } - {#1} {#3} {#4} - } + { \DeclareUTFEncodedSymbol #2 [#1] { "#3 } { "0#4 } } % \end{macrocode} % \end{macro} % % \begin{macro}[internal]{\DeclareEncodedCompositeAccents} -% |#1| 是编码,|#2| 是重音命令,|#3| 和 |#4| 都是组合重音的 Unicode。当 |#2| 的 -% 参数为空时,输出 |#3|,否则是 |#2| 的参数与 |#4| 的组合。 +% \changes{v3.2.9}{2013/12/07}{修正 \pkg{xunicode} 中的错误定义。} % \begin{macrocode} \RenewDocumentCommand \DeclareEncodedCompositeAccents { m m m m } + { \DeclareUTFEncodedAccents #2 [#1] { "#4 } { "#3 } } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[internal]{\@@_declare_composite:Nnn} +% 通过 \texttt{lowercase} 技巧,直接由重音符号的 Unicode 得到实际字符。 +% \begin{macrocode} +\cs_new_protected:Npn \@@_declare_composite:Nnn #1#2#3 + { \DeclareTextCommand #1 {#3} { \@@_text_composite:nnn {#2} {#3} } } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[internal]{\@@_text_composite:nnn} +% \begin{macrocode} +\cs_new_protected:Npn \@@_text_composite:nnn #1#2#3 { - \@@_if_csname:nTF {#2} - { \@@_declare_accent:Nnnn #2 } - { \@@_declare_accent:cnnn { \tl_to_str:n {#2} } } - {#1} {#4} {#3} + \@@_begin_hook:nn {#1} {#3} + \cs_if_exist:cTF { \@@_composite_cs:nnn {#1} {#2} {#3} } + { + \@@_text_composite:cnn + { \@@_composite_cs:nnn {#1} {#2} {#3} } {#1} {#3} + } + { \cs_if_exist_use:cTF { ? #1 } { {#3} } {#3} } + \@@_end_hook:nn {#1} {#3} } +\cs_new_protected:Npn \@@_text_composite:Nnn #1#2#3 + { + \token_if_chardef:NTF #1 + { + \@@_glyph_if_exist:nTF {#1} + {#1} { \cs_if_exist_use:cTF { ? #2 } { {#3} } {#3} } + } + {#1} + } +\cs_generate_variant:Nn \@@_text_composite:Nnn { c } % \end{macrocode} % \end{macro} % -% \begin{macro}[internal]{\@@_declare_accent:Nnnn} +% \begin{macro}[internal]{\@@_declare_encoded:NNnnn} % 通过 \texttt{lowercase} 技巧,直接由重音符号的 Unicode 得到实际字符。 % \begin{macrocode} -\cs_new_protected:Npn \@@_declare_accent:Nnnn #1#2#3#4 +\cs_new_protected:Npn \@@_declare_encoded:NNnnn #1#2#3#4#5 { \group_begin: - \char_set_lccode:nn { `3 } { "#3 } - \char_set_lccode:nn { `4 } { \tl_if_blank:nTF {#4} { "#3 } { "#4 } } + \char_set_lccode:nn { `4 } { \@@_check_slot:n {#4} } + \char_set_lccode:nn { `5 } { \@@_check_slot:n {#5} } \tl_to_lowercase:n { \group_end: - \@@_declare_accent:NNNxxn 3 4 + \@@_declare_encoded:NNNNxx 4 5 } - #1 { \token_to_str:c {#2} } { \token_to_str:N #1 } {#2} - } -\cs_new_protected:Npn \@@_declare_accent:NNNnnn #1#2#3#4#5#6 - { - \DeclareTextCommand #3 {#6} - { \@@_text_composite:nnNNn {#4} {#5} {#1} {#2} } + #1 #2 { \token_to_str:N #2 } {#3} } -\cs_generate_variant:Nn \@@_declare_accent:Nnnn { c } -\cs_generate_variant:Nn \@@_declare_accent:NNNnnn { NNNxx } +\cs_new_protected:Npn \@@_declare_encoded:NNNNnn #1#2#3#4#5#6 + { \DeclareTextCommand #4 {#6} { #3 {#5} {#6} {#1} {#2} } } +\cs_generate_variant:Nn \@@_declare_encoded:NNnnn { c } +\cs_generate_variant:Nn \@@_declare_encoded:NNNNnn { NNNNxx } % \end{macrocode} % \end{macro} % -% \begin{macro}[internal]{\@@_text_composite:nnNNn} -% 若重音命令 |#2| 与它的参数 |#5| 的复合已经由 \cs{DeclareUTFcomposite} 设置, +% \begin{macro}[internal]{\@@_text_combine:NnnNNn} +% 若重音命令 |#2| 与它的参数 |#6| 的复合已经由 \cs{DeclareUTFcomposite} 设置, % 并且在当前字体中存在该字符,则直接使用。否则使用组合命令。 % \begin{macrocode} -\cs_new_protected:Npn \@@_text_composite:nnNNn #1#2#3#4#5 +\cs_new_protected:Npn \@@_text_combine:NnnNNn #1#2#3#4#5#6 { - \@@_begin_hook:nn {#2} {#5} - \cs_if_exist:cTF { #1#2 - \tl_to_str:n {#5} } + \@@_begin_hook:nn {#2} {#6} + \cs_if_exist:cTF { \@@_composite_cs:nnn {#2} {#3} {#6} } { - \@@_text_composite_aux:cnNNn - { #1#2 - \tl_to_str:n {#5} } {#2} {#3} {#4} {#5} + \@@_text_combine:cNnNNn + { \@@_composite_cs:nnn {#2} {#3} {#6} } #1 {#2} {#4} {#5} {#6} } - { \@@_add_accent:nnNN {#5} {#2} {#3} {#4} } - \@@_end_hook:nn {#2} {#5} + { #1 {#6} {#2} {#4} {#5} } + \@@_end_hook:nn {#2} {#6} } -\cs_new_protected:Npn \@@_text_composite_aux:NnNNn #1#2#3#4#5 +\cs_new_protected:Npn \@@_text_combine:NNnNNn #1#2#3#4#5#6 { \token_if_chardef:NTF #1 + { \@@_glyph_if_exist:nTF {#1} {#1} { #2 {#6} {#3} {#4} {#5} } } + {#1} + } +\cs_generate_variant:Nn \@@_text_combine:NNnNNn { c } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[internal]{\@@_combine_symbol:nnNNn} +% \begin{macrocode} +\cs_new_protected:Npn \@@_combine_symbol:nnNNn #1#2#3#4#5 + { \@@_text_combine:NnnNNn \@@_add_symbol:nnNN {#1} {#2} {#3} {#4} {#5} } +\cs_new_protected:Npn \@@_add_symbol:nnNN #1#2#3#4 + { + \tl_if_blank:nTF {#1} { - \@@_glyph_if_exist:nTF {#1} - {#1} { \@@_add_accent:nnNN {#5} {#2} {#3} {#4} } + \@@_glyph_if_exist:nTF { `#4 } + {#4} + { \cs_if_exist_use:cTF { ? #2 } { {#1} } {#4} } + } + { + \@@_glyph_if_exist:nTF { `#3 } + { #1#3 } + { \cs_if_exist_use:cTF { ? #2 } { {#1} } { #1#3 } } } - {#1} } -\cs_generate_variant:Nn \@@_text_composite_aux:NnNNn { c } % \end{macrocode} % \end{macro} % -% \begin{macro}[internal]{\@@_add_accent:nnNN} +% \begin{macro}[internal]{\@@_combine_accent:nnNNn,\@@_add_accent:nnNN} % 若组合重音符号的 |#3| 和基本重音符号 |#4| 在当前字体中都不存在,则转换到 % \cs{Declare\-Text\-Accent\-Default} 设置的编码或者使用 % \cs{DeclareTextCommandDefault} 中设置的命令。\texttt{0.9999} 版以前的 \XeTeX @@ -8680,6 +8852,8 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % \cs{XeTeXinputnormalization} 似乎是无效的,怀疑是使用 HarfBuzz 库替代 ICU 进行 % 字体排版的缘故\footnote{\url{http://tug.org/pipermail/xetex/2013-July/024579.html}}。 % \begin{macrocode} +\cs_new_protected:Npn \@@_combine_accent:nnNNn #1#2#3#4#5 + { \@@_text_combine:NnnNNn \@@_add_accent:nnNN {#1} {#2} {#3} {#4} {#5} } \cs_new_protected:Npn \@@_add_accent:nnNN #1#2#3#4 { \tl_if_blank:nTF {#1} @@ -8689,31 +8863,60 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ { \cs_if_exist_use:cTF { ? #2 } { {#1} } {#4} } } { - \bool_if:NTF \l_@@_add_circle_bool + \@@_glyph_if_exist:nTF { `#3 } + { #1#3 } { - \bool_set_false:N \l_@@_add_circle_bool \@@_glyph_if_exist:nTF { `#4 } - { \@@_add_circle:nn {#4} {#1} } + { \add@accent { `#4 } {#1} } + { \cs_if_exist_use:cTF { ? #2 } { {#1} } { #1#3 } } } + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[internal]{\@@_combine_accents:nnNNn,\@@_add_accents:nnNN} +% \begin{macrocode} +\cs_new_protected:Npn \@@_combine_accents:nnNNn #1#2#3#4#5 + { \@@_text_combine:NnnNNn \@@_add_accents:nnNN {#1} {#2} {#3} {#4} {#5} } +\cs_new_protected:Npn \@@_add_accents:nnNN #1#2#3#4 + { + \tl_if_blank:nTF {#1} + { \cs_if_exist_use:cTF { ? #2 } { {#1} } {#1} } + { + \bool_if:nTF { - \@@_glyph_if_exist:nTF { `#3 } - { #1#3 } - { - \@@_glyph_if_exist:nTF { `#4 } - { \add@accent { `#4 } {#1} } - } + \@@_glyph_if_exist_p:n { `#3 } && + \@@_glyph_if_exist_p:n { `#4 } } - { \cs_if_exist_use:cTF { ? #2 } { {#1} } {#1} } + { #1#3#4 } + { \cs_if_exist_use:cTF { ? #2 } { {#1} } { #1#3#4 } } } } % \end{macrocode} % \end{macro} % -% \begin{macro}[internal]{\@@_add_circle:nn} +% \begin{macro}[internal]{\@@_combine_circle:nnNNn,\@@_add_circle:nnNN,\@@_add_circle:Nn} % 对圆圈中的数字或者字母适当缩小,以适合圆圈的大小。只有字体中存在 % \texttt{U+25EF} 时,才使用这里的设置,否则还还是 \LaTeX\ 中的设置。 % \begin{macrocode} -\cs_new_protected:Npn \@@_add_circle:nn #1#2 +\cs_new_protected:Npn \@@_combine_circle:nnNNn #1#2#3#4#5 + { \@@_text_combine:NnnNNn \@@_add_circle:nnNN {#1} {#2} {#3} {#4} {#5} } +\cs_new_protected:Npn \@@_add_circle:nnNN #1#2#3#4 + { + \tl_if_blank:nTF {#1} + { + \@@_glyph_if_exist:nTF { `#4 } + {#4} + { \cs_if_exist_use:cTF { ? #2 } { {#1} } {#4} } + } + { + \@@_glyph_if_exist:nTF { `#4 } + { \@@_add_circle:Nn #4 {#1} } + { \cs_if_exist_use:cTF { ? #2 } { {#1} } {#1} } + } + } +\cs_new_protected:Npn \@@_add_circle:Nn #1#2 { \hcoffin_set:Nn \l_@@_circle_coffin {#1} \hcoffin_set:Nn \l_@@_tmp_coffin {#2} @@ -8819,125 +9022,1406 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ % % \changes{v3.2.8}{2013/12/05}{启用 \pkg{xunicode} 中的带圈数字和字母设置。} % -% \begin{macro}[internal]{\@@_declare_textcircled:n} -% 启用 \pkg{xunicode} 中的带圈数字和字母设置。 -% \begin{macrocode} -\AtBeginUTFCommand [ \textcircled ] - { \bool_set_true:N \l_@@_add_circle_bool } -\bool_new:N \l_@@_add_circle_bool -\cs_new_protected_nopar:Npn \@@_declare_textcircled:n #1 - { - \@@_declare_character:Nnn \textbigcircle {#1} { x25EF } - \@@_declare_accent:Nnnn \textcircled {#1} { 20DD } { 25EF } - \@@_declare_composite:Nnnn \textcircled {#1} { 0 } { x24EA } - \@@_declare_composite:Nnnn \textcircled {#1} { 1 } { x2460 } - \@@_declare_composite:Nnnn \textcircled {#1} { 2 } { x2461 } - \@@_declare_composite:Nnnn \textcircled {#1} { 3 } { x2462 } - \@@_declare_composite:Nnnn \textcircled {#1} { 4 } { x2463 } - \@@_declare_composite:Nnnn \textcircled {#1} { 5 } { x2464 } - \@@_declare_composite:Nnnn \textcircled {#1} { 6 } { x2465 } - \@@_declare_composite:Nnnn \textcircled {#1} { 7 } { x2466 } - \@@_declare_composite:Nnnn \textcircled {#1} { 8 } { x2467 } - \@@_declare_composite:Nnnn \textcircled {#1} { 9 } { x2468 } - \@@_declare_composite:Nnnn \textcircled {#1} { 10 } { x2469 } - \@@_declare_composite:Nnnn \textcircled {#1} { 11 } { x246A } - \@@_declare_composite:Nnnn \textcircled {#1} { 12 } { x246B } - \@@_declare_composite:Nnnn \textcircled {#1} { 13 } { x246C } - \@@_declare_composite:Nnnn \textcircled {#1} { 14 } { x246D } - \@@_declare_composite:Nnnn \textcircled {#1} { 15 } { x246E } - \@@_declare_composite:Nnnn \textcircled {#1} { 16 } { x246F } - \@@_declare_composite:Nnnn \textcircled {#1} { 17 } { x2470 } - \@@_declare_composite:Nnnn \textcircled {#1} { 18 } { x2471 } - \@@_declare_composite:Nnnn \textcircled {#1} { 19 } { x2472 } - \@@_declare_composite:Nnnn \textcircled {#1} { 20 } { x2473 } - \@@_declare_composite:Nnnn \textcircled {#1} { 21 } { x3251 } - \@@_declare_composite:Nnnn \textcircled {#1} { 22 } { x3252 } - \@@_declare_composite:Nnnn \textcircled {#1} { 23 } { x3253 } - \@@_declare_composite:Nnnn \textcircled {#1} { 24 } { x3254 } - \@@_declare_composite:Nnnn \textcircled {#1} { 25 } { x3255 } - \@@_declare_composite:Nnnn \textcircled {#1} { 26 } { x3256 } - \@@_declare_composite:Nnnn \textcircled {#1} { 27 } { x3257 } - \@@_declare_composite:Nnnn \textcircled {#1} { 28 } { x3258 } - \@@_declare_composite:Nnnn \textcircled {#1} { 29 } { x3259 } - \@@_declare_composite:Nnnn \textcircled {#1} { 30 } { x325A } - \@@_declare_composite:Nnnn \textcircled {#1} { 31 } { x325B } - \@@_declare_composite:Nnnn \textcircled {#1} { 32 } { x325C } - \@@_declare_composite:Nnnn \textcircled {#1} { 33 } { x325D } - \@@_declare_composite:Nnnn \textcircled {#1} { 34 } { x325E } - \@@_declare_composite:Nnnn \textcircled {#1} { 35 } { x325F } - \@@_declare_composite:Nnnn \textcircled {#1} { 36 } { x32B1 } - \@@_declare_composite:Nnnn \textcircled {#1} { 37 } { x32B2 } - \@@_declare_composite:Nnnn \textcircled {#1} { 38 } { x32B3 } - \@@_declare_composite:Nnnn \textcircled {#1} { 39 } { x32B4 } - \@@_declare_composite:Nnnn \textcircled {#1} { 40 } { x32B5 } - \@@_declare_composite:Nnnn \textcircled {#1} { 41 } { x32B6 } - \@@_declare_composite:Nnnn \textcircled {#1} { 42 } { x32B7 } - \@@_declare_composite:Nnnn \textcircled {#1} { 43 } { x32B8 } - \@@_declare_composite:Nnnn \textcircled {#1} { 44 } { x32B9 } - \@@_declare_composite:Nnnn \textcircled {#1} { 45 } { x32BA } - \@@_declare_composite:Nnnn \textcircled {#1} { 46 } { x32BB } - \@@_declare_composite:Nnnn \textcircled {#1} { 47 } { x32BC } - \@@_declare_composite:Nnnn \textcircled {#1} { 48 } { x32BD } - \@@_declare_composite:Nnnn \textcircled {#1} { 49 } { x32BE } - \@@_declare_composite:Nnnn \textcircled {#1} { 50 } { x32BF } - \@@_declare_composite:Nnnn \textcircled {#1} { A } { x24B6 } - \@@_declare_composite:Nnnn \textcircled {#1} { B } { x24B7 } - \@@_declare_composite:Nnnn \textcircled {#1} { C } { x24B8 } - \@@_declare_composite:Nnnn \textcircled {#1} { D } { x24B9 } - \@@_declare_composite:Nnnn \textcircled {#1} { E } { x24BA } - \@@_declare_composite:Nnnn \textcircled {#1} { F } { x24BB } - \@@_declare_composite:Nnnn \textcircled {#1} { G } { x24BC } - \@@_declare_composite:Nnnn \textcircled {#1} { H } { x24BD } - \@@_declare_composite:Nnnn \textcircled {#1} { I } { x24BE } - \@@_declare_composite:Nnnn \textcircled {#1} { J } { x24BF } - \@@_declare_composite:Nnnn \textcircled {#1} { K } { x24C0 } - \@@_declare_composite:Nnnn \textcircled {#1} { L } { x24C1 } - \@@_declare_composite:Nnnn \textcircled {#1} { M } { x24C2 } - \@@_declare_composite:Nnnn \textcircled {#1} { N } { x24C3 } - \@@_declare_composite:Nnnn \textcircled {#1} { O } { x24C4 } - \@@_declare_composite:Nnnn \textcircled {#1} { P } { x24C5 } - \@@_declare_composite:Nnnn \textcircled {#1} { Q } { x24C6 } - \@@_declare_composite:Nnnn \textcircled {#1} { R } { x24C7 } - \@@_declare_composite:Nnnn \textcircled {#1} { S } { x24C8 } - \@@_declare_composite:Nnnn \textcircled {#1} { T } { x24C9 } - \@@_declare_composite:Nnnn \textcircled {#1} { U } { x24CA } - \@@_declare_composite:Nnnn \textcircled {#1} { V } { x24CB } - \@@_declare_composite:Nnnn \textcircled {#1} { W } { x24CC } - \@@_declare_composite:Nnnn \textcircled {#1} { X } { x24CD } - \@@_declare_composite:Nnnn \textcircled {#1} { Y } { x24CE } - \@@_declare_composite:Nnnn \textcircled {#1} { Z } { x24CF } - \@@_declare_composite:Nnnn \textcircled {#1} { a } { x24D0 } - \@@_declare_composite:Nnnn \textcircled {#1} { b } { x24D1 } - \@@_declare_composite:Nnnn \textcircled {#1} { c } { x24D2 } - \@@_declare_composite:Nnnn \textcircled {#1} { d } { x24D3 } - \@@_declare_composite:Nnnn \textcircled {#1} { e } { x24D4 } - \@@_declare_composite:Nnnn \textcircled {#1} { f } { x24D5 } - \@@_declare_composite:Nnnn \textcircled {#1} { g } { x24D6 } - \@@_declare_composite:Nnnn \textcircled {#1} { h } { x24D7 } - \@@_declare_composite:Nnnn \textcircled {#1} { i } { x24D8 } - \@@_declare_composite:Nnnn \textcircled {#1} { j } { x24D9 } - \@@_declare_composite:Nnnn \textcircled {#1} { k } { x24DA } - \@@_declare_composite:Nnnn \textcircled {#1} { l } { x24DB } - \@@_declare_composite:Nnnn \textcircled {#1} { m } { x24DC } - \@@_declare_composite:Nnnn \textcircled {#1} { n } { x24DD } - \@@_declare_composite:Nnnn \textcircled {#1} { o } { x24DE } - \@@_declare_composite:Nnnn \textcircled {#1} { p } { x24DF } - \@@_declare_composite:Nnnn \textcircled {#1} { q } { x24E0 } - \@@_declare_composite:Nnnn \textcircled {#1} { r } { x24E1 } - \@@_declare_composite:Nnnn \textcircled {#1} { s } { x24E2 } - \@@_declare_composite:Nnnn \textcircled {#1} { t } { x24E3 } - \@@_declare_composite:Nnnn \textcircled {#1} { u } { x24E4 } - \@@_declare_composite:Nnnn \textcircled {#1} { v } { x24E5 } - \@@_declare_composite:Nnnn \textcircled {#1} { w } { x24E6 } - \@@_declare_composite:Nnnn \textcircled {#1} { x } { x24E7 } - \@@_declare_composite:Nnnn \textcircled {#1} { y } { x24E8 } - \@@_declare_composite:Nnnn \textcircled {#1} { z } { x24E9 } - } -% \end{macrocode} -% \end{macro} -% % \begin{macrocode} %</xunicode> +%<*xunextra> +% \end{macrocode} +% +% 以下内容选自 \pkg{xunicode},并做了适当修改。 +% \begin{macrocode} +\DeclareUTFComposite\textsuperscript +\DeclareUTFComposite\textsubscript +\DeclareUTFEncodedAccent\textsbleftarrow{"20EE}{"20FF} +\DeclareUTFEncodedAccent\`{"0300}{"02CB} +\DeclareUTFEncodedAccent\capitalgrave{"0300}{"02CB} +\DeclareUTFEncodedAccent\'{"0301}{"02CA} +\DeclareUTFEncodedAccent\capitalacute{"0301}{"02CA} +\DeclareUTFEncodedAccent\^{"0302}{"02C6} +\DeclareUTFEncodedAccent\capitalcircumflex{"0302}{"02C6} +\DeclareUTFEncodedAccent\~{"0303}{"02DC} +\DeclareUTFEncodedAccent\capitaltilde{"0303}{"02DC} +\DeclareUTFEncodedAccent\={"0304}{"02C9} +\DeclareUTFEncodedAccent\capitalmacron{"0304}{"02C9} +\DeclareUTFEncodedAccent\textoverline{"0305}{"203E} +\DeclareUTFEncodedAccent\u{"0306}{"02D8} +\DeclareUTFEncodedAccent\capitalbreve{"0306}{"02D8} +\DeclareUTFEncodedAccent\.{"0307}{"02D9} +\DeclareUTFEncodedAccent\capitaldotaccent{"0307}{"02D9} +\DeclareUTFEncodedAccent\"{"0308}{"00A8} +\DeclareUTFEncodedAccent\capitaldieresis{"0308}{"00A8} +\DeclareUTFEncodedAccent\m{"0309}{"0309} +\DeclareUTFEncodedAccent\texthookabove{"0309}{"0309} +\DeclareUTFEncodedAccent\r{"030A}{"02DA} +\DeclareUTFEncodedAccent\capitalring{"030A}{"02DA} +\DeclareUTFEncodedAccent\H{"030B}{"02DD} +\DeclareUTFEncodedAccent\capitalhungarumlaut{"030B}{"02DD} +\DeclareUTFEncodedAccent\v{"030C}{"02C7} +\DeclareUTFEncodedAccent\capitalcaron{"030C}{"02C7} +\DeclareUTFEncodedAccent\textvbaraccent{"030D}{"02C8} +\DeclareUTFEncodedAccent\textdoublevbaraccent{"030E}{"0022} +\DeclareUTFEncodedAccent\U{"030E}{"0022} +\DeclareUTFEncodedAccent\textdoublegrave{"030F}{"02F5} +\DeclareUTFEncodedAccent\G{"030F}{"02F5} +\DeclareUTFEncodedAccent\textdotbreve{"0310}{"0310} +\DeclareUTFEncodedAccent\textroundcap{"0311}{"0311} +\DeclareUTFEncodedAccent\newtie{"0311}{"0311} +\DeclareUTFEncodedAccent\capitalnewtie{"0311}{"0311} +\DeclareUTFEncodedAccent\textturncommaabove{"0312}{"02BB} +\DeclareUTFEncodedAccent\textcommaabove{"0313}{"02BC} +\DeclareUTFEncodedAccent\textrevcommaabove{"0314}{"02BD} +\DeclareUTFEncodedAccent\overbridge{"0346}{"0346} +\DeclareUTFEncodedAccent\crtilde{"034A}{"034A} +\DeclareUTFEncodedAccent\dottedtilde{"034B}{"034B} +\DeclareUTFEncodedAccent\doubletilde{"034C}{"034C} +\DeclareUTFEncodedAccent\textrightarrowhead{"0350}{"02C3} +\DeclareUTFEncodedAccent\textlefthalfring{"0351}{"02D3} +\DeclareUTFEncodedAccent\textrighthalfring{"0357}{"02D2} +\DeclareUTFEncodedAccent\textdoubletilde{"0360}{"0360} +\DeclareUTFEncodedAccent\t{"0361}{"0361} +\DeclareUTFEncodedAccent\textdoublebreve{"035D}{"035D} +\DeclareUTFEncodedAccent\textdoublemacron{"035E}{"035E} +\DeclareUTFEncodedAccent\capitaltie{"0361}{"0361} +\DeclareUTFEncodedAccent\texttoptiebar{"0361}{"0361} +\DeclareUTFEncodedAccent\texthighrise{"1DC4}{"1DC4} +\DeclareUTFEncodedAccent\textlowrise{"1DC5}{"1DC5} +\DeclareUTFEncodedAccent\textrisefall{"1DC8}{"1DC8} +\DeclareUTFEncodedAccent\textfallrise{"1DC9}{"1DC9} +\DeclareUTFEncodedAccent\textaolig{"1DD5}{"1DD5} +\DeclareUTFCompositeSymbol\textundertie{H}{"1E2A} +\DeclareUTFCompositeSymbol\textundertie{h}{"1E2B} +\DeclareUTFEncodedAccents\textcircumgrave{"0302}{"0301} +\DeclareUTFSymbol\textFinv{"2132} +\DeclareUTFSymbol\textaleph{"2135} +\DeclareUTFSymbol\textbeth{"2136} +\DeclareUTFSymbol\textgimel{"2137} +\DeclareUTFSymbol\textdaleth{"2138} +\DeclareUTFSymbol\textGame{"2141} +\DeclareUTFCompositeCommand\tonebar{25}{\tonebar{2}\tonebar{5}} +\DeclareUTFCompositeCommand\tonebar{52}{\tonebar{5}\tonebar{2}} +\DeclareUTFSymbol\textbigcircle{"25EF} +\DeclareUTFEncodedCircle\textcircled{"20DD}{"25EF} +\DeclareUTFCompositeSymbol\textcircled{0}{"24EA} +\DeclareUTFCompositeSymbol\textcircled{1}{"2460} +\DeclareUTFCompositeSymbol\textcircled{2}{"2461} +\DeclareUTFCompositeSymbol\textcircled{3}{"2462} +\DeclareUTFCompositeSymbol\textcircled{4}{"2463} +\DeclareUTFCompositeSymbol\textcircled{5}{"2464} +\DeclareUTFCompositeSymbol\textcircled{6}{"2465} +\DeclareUTFCompositeSymbol\textcircled{7}{"2466} +\DeclareUTFCompositeSymbol\textcircled{8}{"2467} +\DeclareUTFCompositeSymbol\textcircled{9}{"2468} +\DeclareUTFCompositeSymbol\textcircled{10}{"2469} +\DeclareUTFCompositeSymbol\textcircled{11}{"246A} +\DeclareUTFCompositeSymbol\textcircled{12}{"246B} +\DeclareUTFCompositeSymbol\textcircled{13}{"246C} +\DeclareUTFCompositeSymbol\textcircled{14}{"246D} +\DeclareUTFCompositeSymbol\textcircled{15}{"246E} +\DeclareUTFCompositeSymbol\textcircled{16}{"246F} +\DeclareUTFCompositeSymbol\textcircled{17}{"2470} +\DeclareUTFCompositeSymbol\textcircled{18}{"2471} +\DeclareUTFCompositeSymbol\textcircled{19}{"2472} +\DeclareUTFCompositeSymbol\textcircled{20}{"2473} +\DeclareUTFCompositeSymbol\textcircled{21}{"3251} +\DeclareUTFCompositeSymbol\textcircled{22}{"3252} +\DeclareUTFCompositeSymbol\textcircled{23}{"3253} +\DeclareUTFCompositeSymbol\textcircled{24}{"3254} +\DeclareUTFCompositeSymbol\textcircled{25}{"3255} +\DeclareUTFCompositeSymbol\textcircled{26}{"3256} +\DeclareUTFCompositeSymbol\textcircled{27}{"3257} +\DeclareUTFCompositeSymbol\textcircled{28}{"3258} +\DeclareUTFCompositeSymbol\textcircled{29}{"3259} +\DeclareUTFCompositeSymbol\textcircled{30}{"325A} +\DeclareUTFCompositeSymbol\textcircled{31}{"325B} +\DeclareUTFCompositeSymbol\textcircled{32}{"325C} +\DeclareUTFCompositeSymbol\textcircled{33}{"325D} +\DeclareUTFCompositeSymbol\textcircled{34}{"325E} +\DeclareUTFCompositeSymbol\textcircled{35}{"325F} +\DeclareUTFCompositeSymbol\textcircled{36}{"32B1} +\DeclareUTFCompositeSymbol\textcircled{37}{"32B2} +\DeclareUTFCompositeSymbol\textcircled{38}{"32B3} +\DeclareUTFCompositeSymbol\textcircled{39}{"32B4} +\DeclareUTFCompositeSymbol\textcircled{40}{"32B5} +\DeclareUTFCompositeSymbol\textcircled{41}{"32B6} +\DeclareUTFCompositeSymbol\textcircled{42}{"32B7} +\DeclareUTFCompositeSymbol\textcircled{43}{"32B8} +\DeclareUTFCompositeSymbol\textcircled{44}{"32B9} +\DeclareUTFCompositeSymbol\textcircled{45}{"32BA} +\DeclareUTFCompositeSymbol\textcircled{46}{"32BB} +\DeclareUTFCompositeSymbol\textcircled{47}{"32BC} +\DeclareUTFCompositeSymbol\textcircled{48}{"32BD} +\DeclareUTFCompositeSymbol\textcircled{49}{"32BE} +\DeclareUTFCompositeSymbol\textcircled{50}{"32BF} +\DeclareUTFCompositeSymbol\textcircled{A}{"24B6} +\DeclareUTFCompositeSymbol\textcircled{B}{"24B7} +\DeclareUTFCompositeSymbol\textcircled{C}{"24B8} +\DeclareUTFCompositeSymbol\textcircled{D}{"24B9} +\DeclareUTFCompositeSymbol\textcircled{E}{"24BA} +\DeclareUTFCompositeSymbol\textcircled{F}{"24BB} +\DeclareUTFCompositeSymbol\textcircled{G}{"24BC} +\DeclareUTFCompositeSymbol\textcircled{H}{"24BD} +\DeclareUTFCompositeSymbol\textcircled{I}{"24BE} +\DeclareUTFCompositeSymbol\textcircled{J}{"24BF} +\DeclareUTFCompositeSymbol\textcircled{K}{"24C0} +\DeclareUTFCompositeSymbol\textcircled{L}{"24C1} +\DeclareUTFCompositeSymbol\textcircled{M}{"24C2} +\DeclareUTFCompositeSymbol\textcircled{N}{"24C3} +\DeclareUTFCompositeSymbol\textcircled{O}{"24C4} +\DeclareUTFCompositeSymbol\textcircled{P}{"24C5} +\DeclareUTFCompositeSymbol\textcircled{Q}{"24C6} +\DeclareUTFCompositeSymbol\textcircled{R}{"24C7} +\DeclareUTFCompositeSymbol\textcircled{S}{"24C8} +\DeclareUTFCompositeSymbol\textcircled{T}{"24C9} +\DeclareUTFCompositeSymbol\textcircled{U}{"24CA} +\DeclareUTFCompositeSymbol\textcircled{V}{"24CB} +\DeclareUTFCompositeSymbol\textcircled{W}{"24CC} +\DeclareUTFCompositeSymbol\textcircled{X}{"24CD} +\DeclareUTFCompositeSymbol\textcircled{Y}{"24CE} +\DeclareUTFCompositeSymbol\textcircled{Z}{"24CF} +\DeclareUTFCompositeSymbol\textcircled{a}{"24D0} +\DeclareUTFCompositeSymbol\textcircled{b}{"24D1} +\DeclareUTFCompositeSymbol\textcircled{c}{"24D2} +\DeclareUTFCompositeSymbol\textcircled{d}{"24D3} +\DeclareUTFCompositeSymbol\textcircled{e}{"24D4} +\DeclareUTFCompositeSymbol\textcircled{f}{"24D5} +\DeclareUTFCompositeSymbol\textcircled{g}{"24D6} +\DeclareUTFCompositeSymbol\textcircled{h}{"24D7} +\DeclareUTFCompositeSymbol\textcircled{i}{"24D8} +\DeclareUTFCompositeSymbol\textcircled{j}{"24D9} +\DeclareUTFCompositeSymbol\textcircled{k}{"24DA} +\DeclareUTFCompositeSymbol\textcircled{l}{"24DB} +\DeclareUTFCompositeSymbol\textcircled{m}{"24DC} +\DeclareUTFCompositeSymbol\textcircled{n}{"24DD} +\DeclareUTFCompositeSymbol\textcircled{o}{"24DE} +\DeclareUTFCompositeSymbol\textcircled{p}{"24DF} +\DeclareUTFCompositeSymbol\textcircled{q}{"24E0} +\DeclareUTFCompositeSymbol\textcircled{r}{"24E1} +\DeclareUTFCompositeSymbol\textcircled{s}{"24E2} +\DeclareUTFCompositeSymbol\textcircled{t}{"24E3} +\DeclareUTFCompositeSymbol\textcircled{u}{"24E4} +\DeclareUTFCompositeSymbol\textcircled{v}{"24E5} +\DeclareUTFCompositeSymbol\textcircled{w}{"24E6} +\DeclareUTFCompositeSymbol\textcircled{x}{"24E7} +\DeclareUTFCompositeSymbol\textcircled{y}{"24E8} +\DeclareUTFCompositeSymbol\textcircled{z}{"24E9} +% \end{macrocode} +% +% \changes{v3.2.9}{2013/12/07} +% {增加 \file{xunicode-extra.def} 中,用于加入 \file{puenc.def} 中的符号定义。} +% +% 以下定义取自 \pkg{hyperref} 的 \file{puenc.def}。 +% \begin{macrocode} +\DeclareUTFEncodedAccent\textinvbreve{"0311}{"0311} +\DeclareUTFEncodedSymbol\textsubbreve{"032E}{"203F} +\DeclareUTFSymbol\textHT{"0009} +\DeclareUTFSymbol\textLF{"000A} +\DeclareUTFSymbol\textCR{"000D} +\DeclareUTFSymbol\textnumbersign{"0023} +\DeclareUTFSymbol\textparenleft{"0028} +\DeclareUTFSymbol\textparenright{"0029} +\DeclareUTFSymbol\textMVPlus{"002B} +\DeclareUTFSymbol\textMVComma{"002C} +\DeclareUTFSymbol\textMVMinus{"002D} +\DeclareUTFSymbol\textMVPeriod{"002E} +\DeclareUTFSymbol\textMVDivision{"002F} +\DeclareUTFSymbol\textMVZero{"0030} +\DeclareUTFSymbol\textMVOne{"0031} +\DeclareUTFSymbol\textMVTwo{"0032} +\DeclareUTFSymbol\textMVThree{"0033} +\DeclareUTFSymbol\textMVFour{"0034} +\DeclareUTFSymbol\textMVFive{"0035} +\DeclareUTFSymbol\textMVSix{"0036} +\DeclareUTFSymbol\textMVSeven{"0037} +\DeclareUTFSymbol\textMVEight{"0038} +\DeclareUTFSymbol\textMVNine{"0039} +\DeclareUTFSymbol\textMVAt{"0040} +\DeclareUTFCompositeCommand\.{\i}{i} +\DeclareUTFCompositeCommand\.{i}{i} +\DeclareUTFSymbol\textlnot{"00AC} +\DeclareUTFSymbol\textplusminus{"00B1} +\DeclareUTFSymbol\textcedilla{"00B8} +\DeclareUTFSymbol\textmultiply{"00D7} +\DeclareUTFSymbol\textThorn{"00DE} +\DeclareUTFSymbol\textdivide{"00F7} +\DeclareUTFSymbol\textHslash{"0126} +\DeclareUTFCompositeSymbol\k{\i}{"012F} +\DeclareUTFCompositeSymbol\.{L}{"013F} +\DeclareUTFCompositeSymbol\.{l}{"0140} +\DeclareUTFSymbol\textnapostrophe{"0149} +\DeclareUTFSymbol\textTslash{"0166} +\DeclareUTFSymbol\texttslash{"0167} +\DeclareUTFSymbol\textlongs{"017F} +\DeclareUTFSymbol\texthausaB{"0181} +\DeclareUTFSymbol\texthausaD{"018A} +\DeclareUTFSymbol\textrevE{"018E} +\DeclareUTFSymbol\texthausaK{"0198} +\DeclareUTFSymbol\textPUnrleg{"019E} +\DeclareUTFSymbol\textinve{"01DD} +\DeclareUTFSymbol\textGslash{"01E4} +\DeclareUTFSymbol\textgslash{"01E5} +\DeclareUTFCompositeSymbol\textinvbreve{E}{"0206} +\DeclareUTFCompositeSymbol\textinvbreve{e}{"0207} +\DeclareUTFCompositeSymbol\textinvbreve{I}{"020A} +\DeclareUTFCompositeSymbol\textinvbreve{i}{"020B} +\DeclareUTFCompositeSymbol\textinvbreve{\i}{"020B} +\DeclareUTFCompositeSymbol\textinvbreve{O}{"020E} +\DeclareUTFCompositeSymbol\textinvbreve{o}{"020F} +\DeclareUTFCompositeSymbol\textinvbreve{U}{"0216} +\DeclareUTFCompositeSymbol\textinvbreve{u}{"0217} +\DeclareUTFSymbol\j{"0237} +\DeclareUTFSymbol\textPUdblig{"0238} +\DeclareUTFSymbol\textPUqplig{"0239} +\DeclareUTFSymbol\textslashc{"023C} +\DeclareUTFSymbol\textniepsilon{"025B} +\DeclareUTFSymbol\textipagamma{"0263} +\DeclareUTFSymbol\textniiota{"0269} +\DeclareUTFSymbol\textniphi{"0278} +\DeclareUTFSymbol\textniupsilon{"028A} +\DeclareUTFSymbol\textring{"02DA} +\DeclareUTFSymbol\texttilde{"02DC} +\DeclareUTFSymbol\texthungarumlaut{"02DD} +\DeclareUTFSymbol\textringlow{"02F3} +\DeclareUTFSymbol\texttildelow{"02F7} +\DeclareUTFCommand\textnewtie{\textinvbreve\ } +\DeclareUTFCommand\textdotbelow{\d\ } +\DeclareUTFSymbol\textmacronbelow{"02CD} +\DeclareUTFCommand\texttie{\t\ } +\DeclareUTFSymbol\textnumeralsigngreek{"0374} +\DeclareUTFSymbol\textnumeralsignlowergreek{"0375} +\DeclareUTFCompositeSymbol\'{\textAlpha}{"0386} +\DeclareUTFCompositeSymbol\'{\textEpsilon}{"0388} +\DeclareUTFCompositeSymbol\'{\textEta}{"0389} +\DeclareUTFCompositeSymbol\'{\textIota}{"038A} +\DeclareUTFCompositeSymbol\'{\textOmicron}{"038C} +\DeclareUTFCompositeSymbol\'{\textUpsilon}{"038E} +\DeclareUTFCompositeSymbol\'{\textOmega}{"038F} +\DeclareUTFCompositeSymbol\'{\textIotadieresis}{"0390} +\DeclareUTFSymbol\textIotadieresis{"03AA} +\DeclareUTFCompositeSymbol\"{\textIota}{"03AA} +\DeclareUTFCompositeSymbol\"{\textUpsilon}{"03AB} +\DeclareUTFCompositeSymbol\'{\textalpha}{"03AC} +\DeclareUTFCompositeSymbol\'{\textepsilon}{"03AD} +\DeclareUTFCompositeSymbol\'{\texteta}{"03AE} +\DeclareUTFCompositeSymbol\'{\textiota}{"03AF} +\DeclareUTFCompositeSymbol\"{\textupsilonacute}{"03B0} +\DeclareUTFSymbol\textmugreek{"03BC} +\DeclareUTFSymbol\textvarsigma{"03C2} +\DeclareUTFCompositeSymbol\"{\textiota}{"03CA} +\DeclareUTFCompositeSymbol\"{\textupsilon}{"03CB} +\DeclareUTFCompositeSymbol\'{\textomicron}{"03CC} +\DeclareUTFSymbol\textupsilonacute{"03CD} +\DeclareUTFCompositeSymbol\'{\textupsilon}{"03CD} +\DeclareUTFCompositeSymbol\'{\textomega}{"03CE} +\DeclareUTFSymbol\textStigmagreek{"03DA} +\DeclareUTFSymbol\textstigmagreek{"03DB} +\DeclareUTFSymbol\textDigammagreek{"03DC} +\DeclareUTFSymbol\textdigammagreek{"03DD} +\DeclareUTFSymbol\textKoppagreek{"03DE} +\DeclareUTFSymbol\textkoppagreek{"03DF} +\DeclareUTFSymbol\textSampigreek{"03E0} +\DeclareUTFSymbol\textsampigreek{"03E1} +\DeclareUTFSymbol\textbackepsilon{"03F6} +\DeclareUTFCompositeSymbol\`{\CYRE}{"0400} +\DeclareUTFSymbol\CYRYO{"0401} +\DeclareUTFCompositeSymbol\"{\CYRE}{"0401} +\DeclareUTFSymbol\CYRDJE{"0402} +\DeclareUTFCompositeSymbol\'{\CYRG}{"0403} +\DeclareUTFSymbol\CYRIE{"0404} +\DeclareUTFSymbol\CYRDZE{"0405} +\DeclareUTFSymbol\CYRII{"0406} +\DeclareUTFSymbol\CYRYI{"0407} +\DeclareUTFCompositeSymbol\"{\CYRII}{"0407} +\DeclareUTFSymbol\CYRJE{"0408} +\DeclareUTFSymbol\CYRLJE{"0409} +\DeclareUTFSymbol\CYRNJE{"040A} +\DeclareUTFSymbol\CYRTSHE{"040B} +\DeclareUTFCompositeSymbol\'{\CYRK}{"040C} +\DeclareUTFCompositeSymbol\`{\CYRI}{"040D} +\DeclareUTFSymbol\CYRUSHRT{"040E} +\DeclareUTFCompositeSymbol\U{\CYRU}{"040E} +\DeclareUTFSymbol\CYRDZHE{"040F} +\DeclareUTFSymbol\CYRA{"0410} +\DeclareUTFSymbol\CYRB{"0411} +\DeclareUTFSymbol\CYRV{"0412} +\DeclareUTFSymbol\CYRG{"0413} +\DeclareUTFSymbol\CYRD{"0414} +\DeclareUTFSymbol\CYRE{"0415} +\DeclareUTFSymbol\CYRZH{"0416} +\DeclareUTFSymbol\CYRZ{"0417} +\DeclareUTFSymbol\CYRI{"0418} +\DeclareUTFSymbol\CYRISHRT{"0419} +\DeclareUTFCompositeSymbol\U{\CYRI}{"0419} +\DeclareUTFSymbol\CYRK{"041A} +\DeclareUTFSymbol\CYRL{"041B} +\DeclareUTFSymbol\CYRM{"041C} +\DeclareUTFSymbol\CYRN{"041D} +\DeclareUTFSymbol\CYRO{"041E} +\DeclareUTFSymbol\CYRP{"041F} +\DeclareUTFSymbol\CYRR{"0420} +\DeclareUTFSymbol\CYRS{"0421} +\DeclareUTFSymbol\CYRT{"0422} +\DeclareUTFSymbol\CYRU{"0423} +\DeclareUTFSymbol\CYRF{"0424} +\DeclareUTFSymbol\CYRH{"0425} +\DeclareUTFSymbol\CYRC{"0426} +\DeclareUTFSymbol\CYRCH{"0427} +\DeclareUTFSymbol\CYRSH{"0428} +\DeclareUTFSymbol\CYRSHCH{"0429} +\DeclareUTFSymbol\CYRHRDSN{"042A} +\DeclareUTFSymbol\CYRERY{"042B} +\DeclareUTFSymbol\CYRSFTSN{"042C} +\DeclareUTFSymbol\CYREREV{"042D} +\DeclareUTFSymbol\CYRYU{"042E} +\DeclareUTFSymbol\CYRYA{"042F} +\DeclareUTFSymbol\cyra{"0430} +\DeclareUTFSymbol\cyrb{"0431} +\DeclareUTFSymbol\cyrv{"0432} +\DeclareUTFSymbol\cyrg{"0433} +\DeclareUTFSymbol\cyrd{"0434} +\DeclareUTFSymbol\cyre{"0435} +\DeclareUTFSymbol\cyrzh{"0436} +\DeclareUTFSymbol\cyrz{"0437} +\DeclareUTFSymbol\cyri{"0438} +\DeclareUTFSymbol\cyrishrt{"0439} +\DeclareUTFCompositeSymbol\U{\cyri}{"0439} +\DeclareUTFSymbol\cyrk{"043A} +\DeclareUTFSymbol\cyrl{"043B} +\DeclareUTFSymbol\cyrm{"043C} +\DeclareUTFSymbol\cyrn{"043D} +\DeclareUTFSymbol\cyro{"043E} +\DeclareUTFSymbol\cyrp{"043F} +\DeclareUTFSymbol\cyrr{"0440} +\DeclareUTFSymbol\cyrs{"0441} +\DeclareUTFSymbol\cyrt{"0442} +\DeclareUTFSymbol\cyru{"0443} +\DeclareUTFSymbol\cyrf{"0444} +\DeclareUTFSymbol\cyrh{"0445} +\DeclareUTFSymbol\cyrc{"0446} +\DeclareUTFSymbol\cyrch{"0447} +\DeclareUTFSymbol\cyrsh{"0448} +\DeclareUTFSymbol\cyrshch{"0449} +\DeclareUTFSymbol\cyrhrdsn{"044A} +\DeclareUTFSymbol\cyrery{"044B} +\DeclareUTFSymbol\cyrsftsn{"044C} +\DeclareUTFSymbol\cyrerev{"044D} +\DeclareUTFSymbol\cyryu{"044E} +\DeclareUTFSymbol\cyrya{"044F} +\DeclareUTFCompositeSymbol\`{\cyre}{"0450} +\DeclareUTFSymbol\cyryo{"0451} +\DeclareUTFCompositeSymbol\"{\cyre}{"0451} +\DeclareUTFSymbol\cyrdje{"0452} +\DeclareUTFCompositeSymbol\'{\cyrg}{"0453} +\DeclareUTFSymbol\cyrie{"0454} +\DeclareUTFSymbol\cyrdze{"0455} +\DeclareUTFSymbol\cyrii{"0456} +\DeclareUTFSymbol\cyryi{"0457} +\DeclareUTFCompositeSymbol\"{\cyrii}{"0457} +\DeclareUTFSymbol\cyrje{"0458} +\DeclareUTFSymbol\cyrlje{"0459} +\DeclareUTFSymbol\cyrnje{"045A} +\DeclareUTFSymbol\cyrtshe{"045B} +\DeclareUTFCompositeSymbol\'{\cyrk}{"045C} +\DeclareUTFCompositeSymbol\`{\cyri}{"045D} +\DeclareUTFSymbol\cyrushrt{"045E} +\DeclareUTFCompositeSymbol\U{\curu}{"045E} +\DeclareUTFSymbol\cyrdzhe{"045F} +\DeclareUTFSymbol\CYROMEGA{"0460} +\DeclareUTFSymbol\cyromega{"0461} +\DeclareUTFSymbol\CYRYAT{"0462} +\DeclareUTFSymbol\cyryat{"0463} +\DeclareUTFSymbol\CYRIOTE{"0464} +\DeclareUTFSymbol\cyriote{"0465} +\DeclareUTFSymbol\CYRLYUS{"0466} +\DeclareUTFSymbol\cyrlyus{"0467} +\DeclareUTFSymbol\CYRIOTLYUS{"0468} +\DeclareUTFSymbol\cyriotlyus{"0469} +\DeclareUTFSymbol\CYRBYUS{"046A} +\DeclareUTFSymbol\cyrbyus{"046B} +\DeclareUTFSymbol\CYRIOTBYUS{"046C} +\DeclareUTFSymbol\cyriotbyus{"046D} +\DeclareUTFSymbol\CYRKSI{"046E} +\DeclareUTFSymbol\cyrksi{"046F} +\DeclareUTFSymbol\CYRPSI{"0470} +\DeclareUTFSymbol\cyrpsi{"0471} +\DeclareUTFSymbol\CYRFITA{"0472} +\DeclareUTFSymbol\cyrfita{"0473} +\DeclareUTFSymbol\CYRIZH{"0474} +\DeclareUTFSymbol\cyrizh{"0475} +\DeclareUTFCompositeSymbol\C{\CYRIZH}{"0476} +\DeclareUTFCompositeSymbol\C{\cyrizh}{"0477} +\DeclareUTFSymbol\CYRUK{"0478} +\DeclareUTFSymbol\cyruk{"0479} +\DeclareUTFSymbol\CYROMEGARND{"047A} +\DeclareUTFSymbol\cyromegarnd{"047B} +\DeclareUTFSymbol\CYROMEGATITLO{"047C} +\DeclareUTFSymbol\cyromegatitlo{"047D} +\DeclareUTFSymbol\CYROT{"047E} +\DeclareUTFSymbol\cyrot{"047F} +\DeclareUTFSymbol\CYRKOPPA{"0480} +\DeclareUTFSymbol\cyrkoppa{"0481} +\DeclareUTFSymbol\cyrthousands{"0482} +\DeclareUTFSymbol\CYRISHRTDSC{"048A} +\DeclareUTFSymbol\cyrishrtdsc{"048B} +\DeclareUTFSymbol\CYRSEMISFTSN{"048C} +\DeclareUTFSymbol\cyrsemisftsn{"048D} +\DeclareUTFSymbol\CYRRTICK{"048E} +\DeclareUTFSymbol\cyrrtick{"048F} +\DeclareUTFSymbol\CYRGUP{"0490} +\DeclareUTFSymbol\cyrgup{"0491} +\DeclareUTFSymbol\CYRGHCRS{"0492} +\DeclareUTFSymbol\cyrghcrs{"0493} +\DeclareUTFSymbol\CYRGHK{"0494} +\DeclareUTFSymbol\cyrghk{"0495} +\DeclareUTFSymbol\CYRZHDSC{"0496} +\DeclareUTFSymbol\cyrzhdsc{"0497} +\DeclareUTFSymbol\CYRZDSC{"0498} +\DeclareUTFCompositeSymbol\c{\CYRZ}{"0498} +\DeclareUTFSymbol\cyrzdsc{"0499} +\DeclareUTFCompositeSymbol\c{\cyrz}{"0499} +\DeclareUTFSymbol\CYRKDSC{"049A} +\DeclareUTFSymbol\cyrkdsc{"049B} +\DeclareUTFSymbol\CYRKVCRS{"049C} +\DeclareUTFSymbol\cyrkvcrs{"049D} +\DeclareUTFSymbol\CYRKHCRS{"049E} +\DeclareUTFSymbol\cyrkhcrs{"049F} +\DeclareUTFSymbol\CYRKBEAK{"04A0} +\DeclareUTFSymbol\cyrkbeak{"04A1} +\DeclareUTFSymbol\CYRNDSC{"04A2} +\DeclareUTFSymbol\cyrndsc{"04A3} +\DeclareUTFSymbol\CYRNG{"04A4} +\DeclareUTFSymbol\cyrng{"04A5} +\DeclareUTFSymbol\CYRPHK{"04A6} +\DeclareUTFSymbol\cyrphk{"04A7} +\DeclareUTFSymbol\CYRABHHA{"04A8} +\DeclareUTFSymbol\cyrabhha{"04A9} +\DeclareUTFSymbol\CYRSDSC{"04AA} +\DeclareUTFCompositeSymbol\CYRSDSC{\CYRS}{"04AA} +\DeclareUTFSymbol\cyrsdsc{"04AB} +\DeclareUTFCompositeSymbol\k{\cyrs}{"04AB} +\DeclareUTFSymbol\CYRTDSC{"04AC} +\DeclareUTFSymbol\cyrtdsc{"04AD} +\DeclareUTFSymbol\CYRY{"04AE} +\DeclareUTFSymbol\cyry{"04AF} +\DeclareUTFSymbol\CYRYHCRS{"04B0} +\DeclareUTFSymbol\cyryhcrs{"04B1} +\DeclareUTFSymbol\CYRHDSC{"04B2} +\DeclareUTFSymbol\cyrhdsc{"04B3} +\DeclareUTFSymbol\CYRTETSE{"04B4} +\DeclareUTFSymbol\cyrtetse{"04B5} +\DeclareUTFSymbol\CYRCHRDSC{"04B6} +\DeclareUTFSymbol\cyrchrdsc{"04B7} +\DeclareUTFSymbol\CYRCHVCRS{"04B8} +\DeclareUTFSymbol\cyrchvcrs{"04B9} +\DeclareUTFSymbol\CYRSHHA{"04BA} +\DeclareUTFSymbol\cyrshha{"04BB} +\DeclareUTFSymbol\CYRABHCH{"04BC} +\DeclareUTFSymbol\cyrabhch{"04BD} +\DeclareUTFSymbol\CYRABHCHDSC{"04BE} +\DeclareUTFCompositeSymbol\k{\CYRABHCH}{"04BE} +\DeclareUTFSymbol\cyrabhchdsc{"04BF} +\DeclareUTFCompositeSymbol\k{\cyrabhch}{"04BF} +\DeclareUTFSymbol\CYRpalochka{"04C0} +\DeclareUTFCompositeSymbol\U{\CYRZH}{"04C1} +\DeclareUTFCompositeSymbol\U{\cyrzh}{"04C2} +\DeclareUTFSymbol\CYRKHK{"04C3} +\DeclareUTFSymbol\cyrkhk{"04C4} +\DeclareUTFSymbol\CYRLDSC{"04C5} +\DeclareUTFSymbol\cyrldsc{"04C6} +\DeclareUTFSymbol\CYRNHK{"04C7} +\DeclareUTFSymbol\cyrnhk{"04C8} +\DeclareUTFSymbol\CYRCHLDSC{"04CB} +\DeclareUTFSymbol\cyrchldsc{"04CC} +\DeclareUTFSymbol\CYRMDSC{"04CD} +\DeclareUTFSymbol\cyrmdsc{"04CE} +\DeclareUTFCompositeSymbol\U{\CYRA}{"04D0} +\DeclareUTFCompositeSymbol\U{\cyra}{"04D1} +\DeclareUTFCompositeSymbol\"{\CYRA}{"04D2} +\DeclareUTFCompositeSymbol\"{\cyra}{"04D3} +\DeclareUTFSymbol\CYRAE{"04D4} +\DeclareUTFSymbol\cyrae{"04D5} +\DeclareUTFCompositeSymbol\U{\CYRE}{"04D6} +\DeclareUTFCompositeSymbol\U{\cyre}{"04D7} +\DeclareUTFSymbol\CYRSCHWA{"04D8} +\DeclareUTFSymbol\cyrschwa{"04D9} +\DeclareUTFCompositeSymbol\"{\CYRSCHWA}{"04DA} +\DeclareUTFCompositeSymbol\"{\cyrschwa}{"04DB} +\DeclareUTFCompositeSymbol\"{\CYRZH}{"04DC} +\DeclareUTFCompositeSymbol\"{\cyrzh}{"04DD} +\DeclareUTFCompositeSymbol\"{\CYRZ}{"04DE} +\DeclareUTFCompositeSymbol\"{\cyrz}{"04DF} +\DeclareUTFSymbol\CYRABHDZE{"04E0} +\DeclareUTFSymbol\cyrabhdze{"04E1} +\DeclareUTFCompositeSymbol\={\CYRI}{"04E2} +\DeclareUTFCompositeSymbol\={\cyri}{"04E3} +\DeclareUTFCompositeSymbol\"{\CYRI}{"04E4} +\DeclareUTFCompositeSymbol\"{\cyri}{"04E5} +\DeclareUTFCompositeSymbol\"{\CYRO}{"04E6} +\DeclareUTFCompositeSymbol\"{\cyro}{"04E7} +\DeclareUTFSymbol\CYROTLD{"04E8} +\DeclareUTFSymbol\cyrotld{"04E9} +\DeclareUTFCompositeSymbol\"{\CYROTLD}{"04EA} +\DeclareUTFCompositeSymbol\"{\cyrotld}{"04EB} +\DeclareUTFCompositeSymbol\"{\CYREREV}{"04EC} +\DeclareUTFCompositeSymbol\"{\cyreref}{"04ED} +\DeclareUTFCompositeSymbol\={\CYRU}{"04EE} +\DeclareUTFCompositeSymbol\={\cyru}{"04EF} +\DeclareUTFCompositeSymbol\"{\CYRU}{"04F0} +\DeclareUTFCompositeSymbol\"{\cyru}{"04F1} +\DeclareUTFCompositeSymbol\H{\CYRU}{"04F2} +\DeclareUTFCompositeSymbol\H{\cyru}{"04F3} +\DeclareUTFCompositeSymbol\"{\CYRCH}{"04F4} +\DeclareUTFCompositeSymbol\"{\cyrch}{"04F5} +\DeclareUTFSymbol\CYRGDSC{"04F6} +\DeclareUTFSymbol\cyrgdsc{"04F7} +\DeclareUTFCompositeSymbol\"{\CYRERY}{"04F8} +\DeclareUTFCompositeSymbol\"{\cyrery}{"04F9} +\DeclareUTFSymbol\CYRHHK{"04FC} +\DeclareUTFSymbol\cyrhhk{"04FD} +\DeclareUTFSymbol\sofpasuq{"05C3} +\DeclareUTFSymbol\hebalef{"05D0} +\DeclareUTFSymbol\hebbet{"05D1} +\DeclareUTFSymbol\hebgimel{"05D2} +\DeclareUTFSymbol\hebdalet{"05D3} +\DeclareUTFSymbol\hebhe{"05D4} +\DeclareUTFSymbol\hebvav{"05D5} +\DeclareUTFSymbol\hebzayin{"05D6} +\DeclareUTFSymbol\hebhet{"05D7} +\DeclareUTFSymbol\hebtet{"05D8} +\DeclareUTFSymbol\hebyod{"05D9} +\DeclareUTFSymbol\hebfinalkaf{"05DA} +\DeclareUTFSymbol\hebkaf{"05DB} +\DeclareUTFSymbol\heblamed{"05DC} +\DeclareUTFSymbol\hebfinalmem{"05DD} +\DeclareUTFSymbol\hebmem{"05DE} +\DeclareUTFSymbol\hebfinalnun{"05DF} +\DeclareUTFSymbol\hebnun{"05E0} +\DeclareUTFSymbol\hebsamekh{"05E1} +\DeclareUTFSymbol\hebayin{"05E2} +\DeclareUTFSymbol\hebfinalpe{"05E3} +\DeclareUTFSymbol\hebpe{"05E4} +\DeclareUTFSymbol\hebfinaltsadi{"05E5} +\DeclareUTFSymbol\hebtsadi{"05E6} +\DeclareUTFSymbol\hebqof{"05E7} +\DeclareUTFSymbol\hebresh{"05E8} +\DeclareUTFSymbol\hebshin{"05E9} +\DeclareUTFSymbol\hebtav{"05EA} +\DeclareUTFSymbol\doublevav{"05F0} +\DeclareUTFSymbol\vavyod{"05F1} +\DeclareUTFSymbol\doubleyod{"05F2} +\DeclareUTFSymbol\textscd{"1D05} +\DeclareUTFSymbol\textPUsck{"1D0B} +\DeclareUTFSymbol\textPUscm{"1D0D} +\DeclareUTFSymbol\textPUscp{"1D18} +\DeclareUTFSymbol\textPUrevscr{"1D19} +\DeclareUTFSymbol\textiinferior{"1D62} +\DeclareUTFSymbol\textrinferior{"1D63} +\DeclareUTFSymbol\textuinferior{"1D64} +\DeclareUTFSymbol\textvinferior{"1D65} +\DeclareUTFSymbol\textbetainferior{"1D66} +\DeclareUTFSymbol\textgammainferior{"1D67} +\DeclareUTFSymbol\textrhoinferior{"1D68} +\DeclareUTFSymbol\textphiinferior{"1D69} +\DeclareUTFSymbol\textchiinferior{"1D6A} +\DeclareUTFSymbol\textbarsci{"1D7B} +\DeclareUTFSymbol\textbarp{"1D7D} +\DeclareUTFSymbol\textbarscu{"1D7E} +\DeclareUTFSymbol\textPUrhooka{"1D8F} +\DeclareUTFSymbol\textPUrhooke{"1D92} +\DeclareUTFSymbol\textPUrhookepsilon{"1D93} +\DeclareUTFSymbol\textPUrhookopeno{"1D97} +\DeclareUTFCompositeSymbol\textsubbreve{H}{"1E2A} +\DeclareUTFCompositeSymbol\textsubbreve{h}{"1E2B} +\DeclareUTFCompositeSymbol\.{\textlongs}{"1E9B} +\DeclareUTFSymbol\textcompwordmark{"200C} +\DeclareUTFSymbol\texthdotfor{"2025} +\DeclareUTFSymbol\textprime{"2032} +\DeclareUTFSymbol\textsecond{"2033} +\DeclareUTFSymbol\textthird{"2034} +\DeclareUTFSymbol\textbackprime{"2035} +\DeclareUTFSymbol\textlefttherefore{"2056} +\DeclareUTFSymbol\textfourth{"2057} +\DeclareUTFSymbol\textdiamonddots{"2058} +\DeclareUTFSymbol\textzerosuperior{"2070} +\DeclareUTFSymbol\textisuperior{"2071} +\DeclareUTFSymbol\textfoursuperior{"2074} +\DeclareUTFSymbol\textfivesuperior{"2075} +\DeclareUTFSymbol\textsixsuperior{"2076} +\DeclareUTFSymbol\textsevensuperior{"2077} +\DeclareUTFSymbol\texteightsuperior{"2078} +\DeclareUTFSymbol\textninesuperior{"2079} +\DeclareUTFSymbol\textplussuperior{"207A} +\DeclareUTFSymbol\textminussuperior{"207B} +\DeclareUTFSymbol\textequalsuperior{"207C} +\DeclareUTFSymbol\textparenleftsuperior{"207D} +\DeclareUTFSymbol\textparenrightsuperior{"207E} +\DeclareUTFSymbol\textnsuperior{"207F} +\DeclareUTFSymbol\textzeroinferior{"2080} +\DeclareUTFSymbol\textoneinferior{"2081} +\DeclareUTFSymbol\texttwoinferior{"2082} +\DeclareUTFSymbol\textthreeinferior{"2083} +\DeclareUTFSymbol\textfourinferior{"2084} +\DeclareUTFSymbol\textfiveinferior{"2085} +\DeclareUTFSymbol\textsixinferior{"2086} +\DeclareUTFSymbol\textseveninferior{"2087} +\DeclareUTFSymbol\texteightinferior{"2088} +\DeclareUTFSymbol\textnineinferior{"2089} +\DeclareUTFSymbol\textplusinferior{"208A} +\DeclareUTFSymbol\textminusinferior{"208B} +\DeclareUTFSymbol\textequalsinferior{"208C} +\DeclareUTFSymbol\textparenleftinferior{"208D} +\DeclareUTFSymbol\textparenrightinferior{"208E} +\DeclareUTFSymbol\textainferior{"2090} +\DeclareUTFSymbol\texteinferior{"2091} +\DeclareUTFSymbol\textoinferior{"2092} +\DeclareUTFSymbol\textxinferior{"2093} +\DeclareUTFSymbol\textschwainferior{"2094} +\DeclareUTFSymbol\texthinferior{"2095} +\DeclareUTFSymbol\textkinferior{"2096} +\DeclareUTFSymbol\textlinferior{"2097} +\DeclareUTFSymbol\textminferior{"2098} +\DeclareUTFSymbol\textninferior{"2099} +\DeclareUTFSymbol\textpinferior{"209A} +\DeclareUTFSymbol\textsinferior{"209B} +\DeclareUTFSymbol\texttinferior{"209C} +\DeclareUTFSymbol\textpeseta{"20A7} +\DeclareUTFSymbol\textDeleatur{"20B0} +\DeclareUTFSymbol\textguarani{"20B2} +\DeclareUTFSymbol\texthslash{"210F} +\DeclareUTFSymbol\textIm{"2111} +\DeclareUTFSymbol\textell{"2113} +\DeclareUTFSymbol\textwp{"2118} +\DeclareUTFSymbol\textRe{"211C} +\DeclareUTFSymbol\textriota{"2129} +\DeclareUTFSymbol\textangstrom{"212B} +\DeclareUTFSymbol\textFinv{"2132} +\DeclareUTFSymbol\textaleph{"2135} +\DeclareUTFSymbol\textbeth{"2136} +\DeclareUTFSymbol\textdaleth{"2138} +\DeclareUTFSymbol\textfax{"213B} +\DeclareUTFSymbol\textGame{"2141} +\DeclareUTFSymbol\textinvamp{"214B} +\DeclareUTFSymbol\textoneseventh{"2150} +\DeclareUTFSymbol\textoneninth{"2151} +\DeclareUTFSymbol\textonetenth{"2152} +\DeclareUTFSymbol\textonethird{"2153} +\DeclareUTFSymbol\texttwothirds{"2154} +\DeclareUTFSymbol\textonefifth{"2155} +\DeclareUTFSymbol\texttwofifths{"2156} +\DeclareUTFSymbol\textthreefifths{"2157} +\DeclareUTFSymbol\textfourfifths{"2158} +\DeclareUTFSymbol\textonesixth{"2159} +\DeclareUTFSymbol\textfivesixths{"215A} +\DeclareUTFSymbol\textoneeighth{"215B} +\DeclareUTFSymbol\textthreeeighths{"215C} +\DeclareUTFSymbol\textfiveeighths{"215D} +\DeclareUTFSymbol\textseveneighths{"215E} +\DeclareUTFSymbol\textrevc{"2184} +\DeclareUTFSymbol\textzerothirds{"2189} +\DeclareUTFSymbol\textnleftarrow{"219A} +\DeclareUTFSymbol\textnrightarrow{"219B} +\DeclareUTFSymbol\texttwoheadleftarrow{"219E} +\DeclareUTFCommand\textntwoheadleftarrow{\textlstrikethru\texttwoheadleftarrow} +\DeclareUTFSymbol\texttwoheaduparrow{"219F} +\DeclareUTFSymbol\texttwoheadrightarrow{"21A0} +\DeclareUTFCommand\textntwoheadrightarrow{\textlstrikethru\texttwoheadrightarrow} +\DeclareUTFSymbol\texttwoheaddownarrow{"21A1} +\DeclareUTFSymbol\textleftarrowtail{"21A2} +\DeclareUTFSymbol\textrightarrowtail{"21A3} +\DeclareUTFSymbol\textmapsto{"21A6} +\DeclareUTFSymbol\texthookleftarrow{"21A9} +\DeclareUTFSymbol\texthookrightarrow{"21AA} +\DeclareUTFSymbol\textlooparrowleft{"21AB} +\DeclareUTFSymbol\textlooparrowright{"21AC} +\DeclareUTFSymbol\textnleftrightarrow{"21AE} +\DeclareUTFSymbol\textlightning{"21AF} +\DeclareUTFSymbol\textdlsh{"21B5} +\DeclareUTFSymbol\textcurvearrowleft{"21B6} +\DeclareUTFSymbol\textcurvearrowright{"21B7} +\DeclareUTFSymbol\textleftharpoonup{"21BC} +\DeclareUTFSymbol\textleftharpoondown{"21BD} +\DeclareUTFSymbol\textupharpoonright{"21BE} +\DeclareUTFSymbol\textupharpoonleft{"21BF} +\DeclareUTFSymbol\textrightharpoonup{"21C0} +\DeclareUTFSymbol\textrightharpoondown{"21C1} +\DeclareUTFSymbol\textdownharpoonright{"21C2} +\DeclareUTFSymbol\textdownharpoonleft{"21C3} +\DeclareUTFSymbol\textrightleftarrows{"21C4} +\DeclareUTFSymbol\textupdownarrows{"21C5} +\DeclareUTFSymbol\textleftrightarrows{"21C6} +\DeclareUTFSymbol\textleftleftarrows{"21C7} +\DeclareUTFSymbol\textupuparrows{"21C8} +\DeclareUTFSymbol\textrightrightarrows{"21C9} +\DeclareUTFSymbol\textdowndownarrows{"21CA} +\DeclareUTFSymbol\textleftrightharpoons{"21CB} +\DeclareUTFSymbol\textrightleftharpoons{"21CC} +\DeclareUTFSymbol\textnLeftarrow{"21CD} +\DeclareUTFSymbol\textnLeftrightarrow{"21CE} +\DeclareUTFSymbol\textnRightarrow{"21CF} +\DeclareUTFSymbol\textLeftarrow{"21D0} +\DeclareUTFSymbol\textUparrow{"21D1} +\DeclareUTFSymbol\textRightarrow{"21D2} +\DeclareUTFSymbol\textDownarrow{"21D3} +\DeclareUTFSymbol\textLeftrightarrow{"21D4} +\DeclareUTFSymbol\textUpdownarrow{"21D5} +\DeclareUTFSymbol\textNwarrow{"21D6} +\DeclareUTFSymbol\textNearrow{"21D7} +\DeclareUTFSymbol\textSearrow{"21D8} +\DeclareUTFSymbol\textSwarrow{"21D9} +\DeclareUTFSymbol\textLleftarrow{"21DA} +\DeclareUTFSymbol\textRrightarrow{"21DB} +\DeclareUTFSymbol\textleftsquigarrow{"21DC} +\DeclareUTFSymbol\textrightsquigarrow{"21DD} +\DeclareUTFSymbol\textdashleftarrow{"21E0} +\DeclareUTFSymbol\textdasheduparrow{"21E1} +\DeclareUTFSymbol\textdashrightarrow{"21E2} +\DeclareUTFSymbol\textdasheddownarrow{"21E3} +\DeclareUTFSymbol\textpointer{"21E8} +\DeclareUTFSymbol\textdownuparrows{"21F5} +\DeclareUTFSymbol\textleftarrowtriangle{"21FD} +\DeclareUTFSymbol\textrightarrowtriangle{"21FE} +\DeclareUTFSymbol\textleftrightarrowtriangle{"21FF} +\DeclareUTFSymbol\textforall{"2200} +\DeclareUTFSymbol\textcomplement{"2201} +\DeclareUTFSymbol\textpartial{"2202} +\DeclareUTFSymbol\textexists{"2203} +\DeclareUTFSymbol\textnexists{"2204} +\DeclareUTFSymbol\textemptyset{"2205} +\DeclareUTFSymbol\texttriangle{"2206} +\DeclareUTFSymbol\textnabla{"2207} +\DeclareUTFSymbol\textin{"2208} +\DeclareUTFSymbol\textnotin{"2209} +\DeclareUTFSymbol\textsmallin{"220A} +\DeclareUTFSymbol\textni{"220B} +\DeclareUTFSymbol\textnotowner{"220C} +\DeclareUTFSymbol\textsmallowns{"220D} +\DeclareUTFSymbol\textprod{"220F} +\DeclareUTFSymbol\textamalg{"2210} +\DeclareUTFSymbol\textsum{"2211} +\DeclareUTFSymbol\textmp{"2213} +\DeclareUTFSymbol\textdotplus{"2214} +\DeclareUTFSymbol\textDivides{"2215} +\DeclareUTFSymbol\textsetminus{"2216} +\DeclareUTFSymbol\textast{"2217} +\DeclareUTFSymbol\textcirc{"2218} +\DeclareUTFSymbol\textbulletoperator{"2219} +\DeclareUTFSymbol\textpropto{"221D} +\DeclareUTFSymbol\textinfty{"221E} +\DeclareUTFSymbol\textangle{"2220} +\DeclareUTFSymbol\textmeasuredangle{"2221} +\DeclareUTFSymbol\textsphericalangle{"2222} +\DeclareUTFSymbol\textmid{"2223} +\DeclareUTFSymbol\textnmid{"2224} +\DeclareUTFSymbol\textparallel{"2225} +\DeclareUTFSymbol\textnparallel{"2226} +\DeclareUTFSymbol\textwedge{"2227} +\DeclareUTFCommand\textowedge{\textcircled\textwedge} +\DeclareUTFSymbol\textvee{"2228} +\DeclareUTFCommand\textovee{\textcircled\textvee} +\DeclareUTFSymbol\textcap{"2229} +\DeclareUTFSymbol\textcup{"222A} +\DeclareUTFSymbol\textint{"222B} +\DeclareUTFSymbol\textiint{"222C} +\DeclareUTFSymbol\textiiint{"222D} +\DeclareUTFSymbol\textoint{"222E} +\DeclareUTFSymbol\textoiint{"222F} +\DeclareUTFSymbol\textointclockwise{"2232} +\DeclareUTFSymbol\textointctrclockwise{"2233} +\DeclareUTFSymbol\texttherefore{"2234} +\DeclareUTFSymbol\textbecause{"2235} +\DeclareUTFSymbol\textvdotdot{"2236} +\DeclareUTFSymbol\textsquaredots{"2237} +\DeclareUTFSymbol\textdotminus{"2238} +\DeclareUTFSymbol\texteqcolon{"2239} +\DeclareUTFSymbol\textsim{"223C} +\DeclareUTFSymbol\textbacksim{"223D} +\DeclareUTFCommand\textnbacksim{\textlstrikethru\textnbacksim} +\DeclareUTFSymbol\textwr{"2240} +\DeclareUTFSymbol\textnsim{"2241} +\DeclareUTFSymbol\texteqsim{"2242} +\DeclareUTFCommand\textneqsim{\textlstrikethru\texteqsim} +\DeclareUTFSymbol\textsimeq{"2243} +\DeclareUTFSymbol\textnsimeq{"2244} +\DeclareUTFSymbol\textcong{"2245} +\DeclareUTFSymbol\textncong{"2247} +\DeclareUTFSymbol\textapprox{"2248} +\DeclareUTFSymbol\textnapprox{"2249} +\DeclareUTFSymbol\textapproxeq{"224A} +\DeclareUTFCommand\textnapproxeq{\textlstrikethru\textapproxeq} +\DeclareUTFSymbol\texttriplesim{"224B} +\DeclareUTFCommand\textntriplesim{\textlstrikethru\texttriplesim} +\DeclareUTFSymbol\textbackcong{"224C} +\DeclareUTFCommand\textnbackcong{\textlstrikethru\textbackcong} +\DeclareUTFSymbol\textasymp{"224D} +\DeclareUTFCommand\textnasymp{\textlstrikethru\textasymp} +\DeclareUTFSymbol\textBumpeq{"224E} +\DeclareUTFCommand\textnBumpeq{\textlstrikethru\textBumpeq} +\DeclareUTFSymbol\textbumpeq{"224F} +\DeclareUTFCommand\textnbumpeq{\textlstrikethru\textbumpeq} +\DeclareUTFSymbol\textdoteq{"2250} +\DeclareUTFCommand\textndoteq{\textlstrikethru\textdoteq} +\DeclareUTFSymbol\textdoteqdot{"2251} +\DeclareUTFCommand\textnDoteq{\textlstrikethru\textdoteqdot} +\DeclareUTFSymbol\textfallingdoteq{"2252} +\DeclareUTFCommand\textnfallingdoteq{\textlstrikethru\textfallingdoteq} +\DeclareUTFSymbol\textrisingdoteq{"2253} +\DeclareUTFCommand\textnrisingdoteq{\textlstrikethru\textrisingdoteq} +\DeclareUTFSymbol\textcolonequals{"2254} +\DeclareUTFSymbol\textequalscolon{"2255} +\DeclareUTFSymbol\texteqcirc{"2256} +\DeclareUTFCommand\textneqcirc{\textlstrikethru\texteqcirc} +\DeclareUTFSymbol\textcirceq{"2257} +\DeclareUTFCommand\textncirceq{\textlstrikethru\textcirceq} +\DeclareUTFSymbol\texthateq{"2259} +\DeclareUTFCommand\textnhateq{\textlstrikethru\texthateq} +\DeclareUTFSymbol\texttriangleeq{"225C} +\DeclareUTFSymbol\textneq{"2260} +\DeclareUTFSymbol\textne{"2260} +\DeclareUTFSymbol\textequiv{"2261} +\DeclareUTFSymbol\textnequiv{"2262} +\DeclareUTFSymbol\textleq{"2264} +\DeclareUTFSymbol\textle{"2264} +\DeclareUTFSymbol\textgeq{"2265} +\DeclareUTFSymbol\textge{"2265} +\DeclareUTFSymbol\textleqq{"2266} +\DeclareUTFCommand\textnleqq{\textlstrikethru\textleqq} +\DeclareUTFSymbol\textgeqq{"2267} +\DeclareUTFCommand\textngeqq{\textlstrikethru\textgeqq} +\DeclareUTFSymbol\textlneqq{"2268} +\DeclareUTFSymbol\textgneqq{"2269} +\DeclareUTFSymbol\textll{"226A} +\DeclareUTFCommand\textnll{\textlstrikethru\textll} +\DeclareUTFSymbol\textgg{"226B} +\DeclareUTFCommand\textngg{\textlstrikethru\textgg} +\DeclareUTFSymbol\textbetween{"226C} +\DeclareUTFSymbol\textnless{"226E} +\DeclareUTFSymbol\textngtr{"226F} +\DeclareUTFSymbol\textnleq{"2270} +\DeclareUTFSymbol\textngeq{"2271} +\DeclareUTFSymbol\textlesssim{"2272} +\DeclareUTFSymbol\textgtrsim{"2273} +\DeclareUTFSymbol\textnlesssim{"2274} +\DeclareUTFSymbol\textngtrsim{"2275} +\DeclareUTFSymbol\textlessgtr{"2276} +\DeclareUTFSymbol\textgtrless{"2277} +\DeclareUTFSymbol\textngtrless{"2278} +\DeclareUTFSymbol\textnlessgtr{"2279} +\DeclareUTFSymbol\textprec{"227A} +\DeclareUTFSymbol\textsucc{"227B} +\DeclareUTFSymbol\textpreccurlyeq{"227C} +\DeclareUTFSymbol\textsucccurlyeq{"227D} +\DeclareUTFSymbol\textprecsim{"227E} +\DeclareUTFCommand\textnprecsim{\textlstrikethru\textprecsim} +\DeclareUTFSymbol\textsuccsim{"227F} +\DeclareUTFCommand\textnsuccsim{\textlstrikethru\textsuccsim} +\DeclareUTFSymbol\textnprec{"2280} +\DeclareUTFSymbol\textnsucc{"2281} +\DeclareUTFSymbol\textsubset{"2282} +\DeclareUTFSymbol\textsupset{"2283} +\DeclareUTFSymbol\textnsubset{"2284} +\DeclareUTFSymbol\textnsupset{"2285} +\DeclareUTFSymbol\textsubseteq{"2286} +\DeclareUTFSymbol\textsupseteq{"2287} +\DeclareUTFSymbol\textnsubseteq{"2288} +\DeclareUTFSymbol\textnsupseteq{"2289} +\DeclareUTFSymbol\textsubsetneq{"228A} +\DeclareUTFSymbol\textsupsetneq{"228B} +\DeclareUTFSymbol\textcupdot{"228D} +\DeclareUTFSymbol\textcupplus{"228E} +\DeclareUTFSymbol\textsqsubset{"228F} +\DeclareUTFCommand\textnsqsubset{\textlstrikethru\textsqsubset} +\DeclareUTFSymbol\textsqsupset{"2290} +\DeclareUTFCommand\textnsqsupset{\textlstrikethru\textsqsupset} +\DeclareUTFSymbol\textsqsubseteq{"2291} +\DeclareUTFCommand\textnsqsubseteq{\textlstrikethru\textsqsubseteq} +\DeclareUTFSymbol\textsqsupseteq{"2292} +\DeclareUTFCommand\textnsqsupseteq{\textlstrikethru\textsqsupseteq} +\DeclareUTFSymbol\textsqcap{"2293} +\DeclareUTFSymbol\textsqcup{"2294} +\DeclareUTFSymbol\textoplus{"2295} +\DeclareUTFSymbol\textominus{"2296} +\DeclareUTFSymbol\textotimes{"2297} +\DeclareUTFSymbol\textoslash{"2298} +\DeclareUTFSymbol\textodot{"2299} +\DeclareUTFSymbol\textcircledcirc{"229A} +\DeclareUTFSymbol\textcircledast{"229B} +\DeclareUTFSymbol\textcircleddash{"229D} +\DeclareUTFSymbol\textboxplus{"229E} +\DeclareUTFSymbol\textboxminus{"229F} +\DeclareUTFSymbol\textboxtimes{"22A0} +\DeclareUTFSymbol\textboxdot{"22A1} +\DeclareUTFSymbol\textvdash{"22A2} +\DeclareUTFSymbol\textdashv{"22A3} +\DeclareUTFCommand\textndashv{\textlstrikethru\textdashv} +\DeclareUTFSymbol\texttop{"22A4} +\DeclareUTFCommand\textndownvdash{\textlstrikethru\texttop} +\DeclareUTFSymbol\textbot{"22A5} +\DeclareUTFCommand\textnupvdash{\textlstrikethru\textbot} +\DeclareUTFSymbol\textvDash{"22A8} +\DeclareUTFSymbol\textVdash{"22A9} +\DeclareUTFSymbol\textVvdash{"22AA} +\DeclareUTFCommand\textnVvash{\textlstrikethru\textVvdash} +\DeclareUTFSymbol\textVDash{"22AB} +\DeclareUTFSymbol\textnvdash{"22AC} +\DeclareUTFSymbol\textnvDash{"22AD} +\DeclareUTFSymbol\textnVdash{"22AE} +\DeclareUTFSymbol\textnVDash{"22AF} +\DeclareUTFSymbol\textlhd{"22B2} +\DeclareUTFSymbol\textrhd{"22B3} +\DeclareUTFSymbol\textunlhd{"22B4} +\DeclareUTFSymbol\textunrhd{"22B5} +\DeclareUTFSymbol\textmultimapdotbothA{"22B6} +\DeclareUTFSymbol\textmultimapdotbothB{"22B7} +\DeclareUTFSymbol\textmultimap{"22B8} +\DeclareUTFSymbol\textveebar{"22BB} +\DeclareUTFSymbol\textbarwedge{"22BC} +\DeclareUTFSymbol\textstar{"22C6} +\DeclareUTFSymbol\textdivideontimes{"22C7} +\DeclareUTFSymbol\textbowtie{"22C8} +\DeclareUTFSymbol\textltimes{"22C9} +\DeclareUTFSymbol\textrtimes{"22CA} +\DeclareUTFSymbol\textleftthreetimes{"22CB} +\DeclareUTFSymbol\textrightthreetimes{"22CC} +\DeclareUTFSymbol\textbacksimeq{"22CD} +\DeclareUTFCommand\textnbacksimeq{\textlstrikethru\textbacksimeq} +\DeclareUTFSymbol\textcurlyvee{"22CE} +\DeclareUTFSymbol\textcurlywedge{"22CF} +\DeclareUTFSymbol\textSubset{"22D0} +\DeclareUTFCommand\textnSubset{\textlstrikethru\textSubset} +\DeclareUTFSymbol\textSupset{"22D1} +\DeclareUTFCommand\textnSupset{\textlstrikethru\textSupset} +\DeclareUTFSymbol\textCap{"22D2} +\DeclareUTFSymbol\textCup{"22D3} +\DeclareUTFSymbol\textpitchfork{"22D4} +\DeclareUTFSymbol\textlessdot{"22D6} +\DeclareUTFSymbol\textgtrdot{"22D7} +\DeclareUTFSymbol\textlll{"22D8} +\DeclareUTFSymbol\textggg{"22D9} +\DeclareUTFSymbol\textlesseqgtr{"22DA} +\DeclareUTFSymbol\textgtreqless{"22DB} +\DeclareUTFSymbol\textcurlyeqprec{"22DE} +\DeclareUTFCommand\textncurlyeqprec{\textlstrikethru\textcurlyeqprec} +\DeclareUTFSymbol\textcurlyeqsucc{"22DF} +\DeclareUTFCommand\textncurlyeqsucc{\textlstrikethru\textcurlyeqsucc} +\DeclareUTFSymbol\textnpreccurlyeq{"22E0} +\DeclareUTFSymbol\textnsucccurlyeq{"22E1} +\DeclareUTFSymbol\textnqsubseteq{"22E2} +\DeclareUTFSymbol\textnqsupseteq{"22E3} +\DeclareUTFSymbol\textsqsubsetneq{"22E4} +\DeclareUTFSymbol\textsqsupsetneq{"22E5} +\DeclareUTFSymbol\textlnsim{"22E6} +\DeclareUTFSymbol\textgnsim{"22E7} +\DeclareUTFSymbol\textprecnsim{"22E8} +\DeclareUTFSymbol\textsuccnsim{"22E9} +\DeclareUTFSymbol\textntriangleleft{"22EA} +\DeclareUTFSymbol\textntriangleright{"22EB} +\DeclareUTFSymbol\textntrianglelefteq{"22EC} +\DeclareUTFSymbol\textntrianglerighteq{"22ED} +\DeclareUTFSymbol\textvdots{"22EE} +\DeclareUTFSymbol\textcdots{"22EF} +\DeclareUTFSymbol\textudots{"22F0} +\DeclareUTFSymbol\textddots{"22F1} +\DeclareUTFSymbol\textbarin{"22F6} +\DeclareUTFSymbol\textdiameter{"2300} +\DeclareUTFSymbol\textbackneg{"2310} +\DeclareUTFSymbol\textwasylozenge{"2311} +\DeclareUTFSymbol\textinvbackneg{"2319} +\DeclareUTFSymbol\textclock{"231A} +\DeclareUTFSymbol\textulcorner{"231C} +\DeclareUTFSymbol\texturcorner{"231D} +\DeclareUTFSymbol\textllcorner{"231E} +\DeclareUTFSymbol\textlrcorner{"231F} +\DeclareUTFSymbol\textfrown{"2322} +\DeclareUTFSymbol\textsmile{"2323} +\DeclareUTFSymbol\textKeyboard{"2328} +\DeclareUTFSymbol\textlangle{"2329} +\DeclareUTFSymbol\textrangle{"232A} +\DeclareUTFSymbol\textAPLinv{"2339} +\DeclareUTFSymbol\textTumbler{"233C} +\DeclareUTFSymbol\textstmaryrdbaro{"233D} +\DeclareUTFSymbol\textnotslash{"233F} +\DeclareUTFSymbol\textnotbackslash{"2340} +\DeclareUTFSymbol\textboxbackslash{"2342} +\DeclareUTFSymbol\textAPLleftarrowbox{"2347} +\DeclareUTFSymbol\textAPLrightarrowbox{"2348} +\DeclareUTFSymbol\textAPLuparrowbox{"2350} +\DeclareUTFSymbol\textAPLdownarrowbox{"2357} +\DeclareUTFSymbol\textAPLinput{"235E} +\DeclareUTFSymbol\textRequest{"2370} +\DeclareUTFSymbol\textBeam{"2393} +\DeclareUTFSymbol\texthexagon{"2394} +\DeclareUTFSymbol\textAPLbox{"2395} +\DeclareUTFSymbol\textForwardToIndex{"23ED} +\DeclareUTFSymbol\textRewindToIndex{"23EE} +\DeclareUTFSymbol\textbbslash{"244A} +\DeclareUTFSymbol\textCircledA{"24B6} +\DeclareUTFSymbol\textCleaningF{"24BB} +\DeclareUTFCommand\textCleaningFF{\b\textCleaningF} +\DeclareUTFSymbol\textCleaningP{"24C5} +\DeclareUTFCommand\textCleaningPP{\b\textCleaningP} +\DeclareUTFSymbol\textCuttingLine{"2504} +\DeclareUTFSymbol\textUParrow{"25B2} +\DeclareUTFSymbol\textbigtriangleup{"25B3} +\DeclareUTFSymbol\textForward{"25B6} +\DeclareUTFSymbol\texttriangleright{"25B7} +\DeclareUTFSymbol\textRHD{"25BA} +\DeclareUTFSymbol\textDOWNarrow{"25BC} +\DeclareUTFSymbol\textbigtriangledown{"25BD} +\DeclareUTFSymbol\textRewind{"25C0} +\DeclareUTFSymbol\texttriangleleft{"25C1} +\DeclareUTFSymbol\textLHD{"25C4} +\DeclareUTFSymbol\textdiamond{"25C7} +\DeclareUTFSymbol\textlozenge{"25CA} +\DeclareUTFSymbol\textLEFTCIRCLE{"25D6} +\DeclareUTFSymbol\textRIGHTCIRCLE{"25D7} +\DeclareUTFSymbol\textboxbar{"25EB} +\DeclareUTFSymbol\textbigcircle{"25EF} +\DeclareUTFSymbol\textCloud{"2601} +\DeclareUTFSymbol\textFiveStar{"2605} +\DeclareUTFSymbol\textFiveStarOpen{"2606} +\DeclareUTFSymbol\textPhone{"260E} +\DeclareUTFSymbol\textboxempty{"2610} +\DeclareUTFSymbol\textCheckedbox{"2611} +\DeclareUTFSymbol\textCrossedbox{"2612} +\DeclareUTFSymbol\textCoffeecup{"2615} +\DeclareUTFSymbol\textHandCuffLeft{"261A} +\DeclareUTFSymbol\textHandCuffRight{"261B} +\DeclareUTFSymbol\textHandLeft{"261C} +\DeclareUTFSymbol\textHandRight{"261E} +\DeclareUTFSymbol\textRadioactivity{"2622} +\DeclareUTFSymbol\textBiohazard{"2623} +\DeclareUTFSymbol\textAnkh{"2625} +\DeclareUTFSymbol\textYinYang{"262F} +\DeclareUTFSymbol\textfrownie{"2639} +\DeclareUTFSymbol\textsmiley{"263A} +\DeclareUTFSymbol\textblacksmiley{"263B} +\DeclareUTFSymbol\textsun{"263C} +\DeclareUTFSymbol\textleftmoon{"263D} +\DeclareUTFSymbol\textrightmoon{"263E} +\DeclareUTFSymbol\textmercury{"263F} +\DeclareUTFSymbol\textPUfemale{"2640} +\DeclareUTFSymbol\textearth{"2641} +\DeclareUTFSymbol\textmale{"2642} +\DeclareUTFSymbol\textjupiter{"2643} +\DeclareUTFSymbol\textsaturn{"2644} +\DeclareUTFSymbol\texturanus{"2645} +\DeclareUTFSymbol\textneptune{"2646} +\DeclareUTFSymbol\textpluto{"2647} +\DeclareUTFSymbol\textaries{"2648} +\DeclareUTFSymbol\texttaurus{"2649} +\DeclareUTFSymbol\textgemini{"264A} +\DeclareUTFSymbol\textcancer{"264B} +\DeclareUTFSymbol\textleo{"264C} +\DeclareUTFSymbol\textvirgo{"264D} +\DeclareUTFSymbol\textlibra{"264E} +\DeclareUTFSymbol\textscorpio{"264F} +\DeclareUTFSymbol\textsagittarius{"2650} +\DeclareUTFSymbol\textcapricornus{"2651} +\DeclareUTFSymbol\textaquarius{"2652} +\DeclareUTFSymbol\textpisces{"2653} +\DeclareUTFSymbol\textspadesuitblack{"2660} +\DeclareUTFSymbol\textheartsuitwhite{"2661} +\DeclareUTFSymbol\textdiamondsuitwhite{"2662} +\DeclareUTFSymbol\textclubsuitblack{"2663} +\DeclareUTFSymbol\textspadesuitwhite{"2664} +\DeclareUTFSymbol\textheartsuitblack{"2665} +\DeclareUTFSymbol\textdiamondsuitblack{"2666} +\DeclareUTFSymbol\textclubsuitwhite{"2667} +\DeclareUTFSymbol\textquarternote{"2669} +\DeclareUTFSymbol\texttwonotes{"266B} +\DeclareUTFSymbol\textsixteenthnote{"266C} +\DeclareUTFSymbol\textflat{"266D} +\DeclareUTFSymbol\textnatural{"266E} +\DeclareUTFSymbol\textsharp{"266F} +\DeclareUTFSymbol\textrecycle{"2672} +\DeclareUTFSymbol\textWheelchair{"267F} +\DeclareUTFSymbol\textFlag{"2691} +\DeclareUTFSymbol\textMineSign{"2692} +\DeclareUTFSymbol\textdsmilitary{"2694} +\DeclareUTFSymbol\textdsmedical{"2695} +\DeclareUTFSymbol\textdsjuridical{"2696} +\DeclareUTFSymbol\textdschemical{"2697} +\DeclareUTFSymbol\textdsbiological{"2698} +\DeclareUTFSymbol\textdscommercial{"269A} +\DeclareUTFSymbol\textmanstar{"269D} +\DeclareUTFSymbol\textdanger{"26A0} +\DeclareUTFSymbol\textFemaleFemale{"26A2} +\DeclareUTFSymbol\textMaleMale{"26A3} +\DeclareUTFSymbol\textFemaleMale{"26A4} +\DeclareUTFSymbol\textHermaphrodite{"26A5} +\DeclareUTFSymbol\textNeutral{"26AA} +\DeclareUTFSymbol\textPUuncrfemale{"26B2} +\DeclareUTFSymbol\texthexstar{"26B9} +\DeclareUTFSymbol\textSoccerBall{"26BD} +\DeclareUTFSymbol\textSunCload{"26C5} +\DeclareUTFSymbol\textRain{"26C6} +\DeclareUTFSymbol\textnoway{"26D4} +\DeclareUTFSymbol\textMountain{"26F0} +\DeclareUTFSymbol\textTent{"26FA} +\DeclareUTFSymbol\textScissorRightBrokenBottom{"2701} +\DeclareUTFSymbol\textScissorRight{"2702} +\DeclareUTFSymbol\textScissorRightBrokenTop{"2703} +\DeclareUTFSymbol\textScissorHollowRight{"2704} +\DeclareUTFSymbol\textPhoneHandset{"2706} +\DeclareUTFSymbol\textTape{"2707} +\DeclareUTFSymbol\textPlane{"2708} +\DeclareUTFSymbol\textEnvelope{"2709} +\DeclareUTFSymbol\textPeace{"270C} +\DeclareUTFSymbol\textWritingHand{"270D} +\DeclareUTFSymbol\textPencilRightDown{"270E} +\DeclareUTFSymbol\textPencilRight{"270F} +\DeclareUTFSymbol\textPencilRightUp{"2710} +\DeclareUTFSymbol\textNibRight{"2711} +\DeclareUTFSymbol\textNibSolidRight{"2712} +\DeclareUTFSymbol\textCheckmark{"2713} +\DeclareUTFSymbol\textCheckmarkBold{"2714} +\DeclareUTFSymbol\textXSolid{"2715} +\DeclareUTFSymbol\textXSolidBold{"2716} +\DeclareUTFSymbol\textXSolidBrush{"2717} +\DeclareUTFSymbol\textPlusOutline{"2719} +\DeclareUTFSymbol\textPlus{"271A} +\DeclareUTFSymbol\textPlusThinCenterOpen{"271B} +\DeclareUTFSymbol\textPlusCenterOpen{"271C} +\DeclareUTFSymbol\textCross{"271D} +\DeclareUTFSymbol\textCrossOpenShadow{"271E} +\DeclareUTFSymbol\textCrossOutline{"271F} +\DeclareUTFSymbol\textCrossMaltese{"2720} +\DeclareUTFSymbol\textDavidStar{"2721} +\DeclareUTFSymbol\textFourAsterisk{"2722} +\DeclareUTFSymbol\textJackStar{"2723} +\DeclareUTFSymbol\textJackStarBold{"2724} +\DeclareUTFSymbol\textClowerTips{"2725} +\DeclareUTFSymbol\textFourStar{"2726} +\DeclareUTFSymbol\textFourStarOpen{"2727} +\DeclareUTFSymbol\textFiveStarOpenCircled{"272A} +\DeclareUTFSymbol\textFiveStarCenterOpen{"272B} +\DeclareUTFSymbol\textFiveStarOpenDotted{"272C} +\DeclareUTFSymbol\textFiveStarOutline{"272D} +\DeclareUTFSymbol\textFiveStarOutlineHeavy{"272E} +\DeclareUTFSymbol\textFiveStarConvex{"272F} +\DeclareUTFSymbol\textFiveStarShadow{"2730} +\DeclareUTFSymbol\textAsteriskBold{"2731} +\DeclareUTFSymbol\textAsteriskCenterOpen{"2732} +\DeclareUTFSymbol\textEightStarTaper{"2734} +\DeclareUTFSymbol\textEightStarConvex{"2735} +\DeclareUTFSymbol\textSixStar{"2736} +\DeclareUTFSymbol\textEightStar{"2737} +\DeclareUTFSymbol\textEightStarBold{"2738} +\DeclareUTFSymbol\textTwelveStar{"2739} +\DeclareUTFSymbol\textSixteenStarLight{"273A} +\DeclareUTFSymbol\textSixFlowerPetalRemoved{"273B} +\DeclareUTFSymbol\textSixFlowerOpenCenter{"273C} +\DeclareUTFSymbol\textAsterisk{"273D} +\DeclareUTFSymbol\textSixFlowerAlternate{"273E} +\DeclareUTFSymbol\textFiveFlowerPetal{"273F} +\DeclareUTFSymbol\textFiveFlowerOpen{"2740} +\DeclareUTFSymbol\textEightFlowerPetal{"2741} +\DeclareUTFSymbol\textSunshineOpenCircled{"2742} +\DeclareUTFSymbol\textSixFlowerAltPetal{"2743} +\DeclareUTFSymbol\textSnowflakeChevron{"2744} +\DeclareUTFSymbol\textSnowflake{"2745} +\DeclareUTFSymbol\textSnowflakeChevronBold{"2746} +\DeclareUTFSymbol\textSparkle{"2747} +\DeclareUTFSymbol\textSparkleBold{"2748} +\DeclareUTFSymbol\textAsteriskRoundedEnds{"2749} +\DeclareUTFSymbol\textEightFlowerPetalRemoved{"274A} +\DeclareUTFSymbol\textEightAsterisk{"274B} +\DeclareUTFSymbol\textCircleShadow{"274D} +\DeclareUTFSymbol\textSquareShadowBottomRight{"274F} +\DeclareUTFSymbol\textSquareTopRight{"2750} +\DeclareUTFSymbol\textSquareCastShadowBottomRight{"2751} +\DeclareUTFSymbol\textSquareCastShadowTopRight{"2752} +\DeclareUTFSymbol\textDiamandSolid{"2756} +\DeclareUTFSymbol\textRectangleThin{"2758} +\DeclareUTFSymbol\textRectangle{"2759} +\DeclareUTFSymbol\textRectangleBold{"275A} +\DeclareUTFSymbol\textperp{"27C2} +\DeclareUTFCommand\textnotperp{\textlstrikethru\textperp} +\DeclareUTFSymbol\textveedot{"27C7} +\DeclareUTFSymbol\textwedgedot{"27D1} +\DeclareUTFSymbol\textleftspoon{"27DC} +\DeclareUTFSymbol\textlbrackdbl{"27E6} +\DeclareUTFSymbol\textrbrackdbl{"27E7} +\DeclareUTFSymbol\textcirclearrowleft{"27F2} +\DeclareUTFSymbol\textcirclearrowright{"27F3} +\DeclareUTFSymbol\textlongleftarrow{"27F5} +\DeclareUTFSymbol\textlongrightarrow{"27F6} +\DeclareUTFSymbol\textlongleftrightarrow{"27F7} +\DeclareUTFSymbol\textLongleftarrow{"27F8} +\DeclareUTFSymbol\textLongrightarrow{"27F9} +\DeclareUTFSymbol\textLongleftrightarrow{"27FA} +\DeclareUTFSymbol\textlongmapsto{"27FC} +\DeclareUTFSymbol\textLongmapsfrom{"27FD} +\DeclareUTFSymbol\textLongmapsto{"27FE} +\DeclareUTFSymbol\textnwsearrow{"2921} +\DeclareUTFSymbol\textneswarrow{"2922} +\DeclareUTFSymbol\textlhooknwarrow{"2923} +\DeclareUTFSymbol\textrhooknearrow{"2924} +\DeclareUTFSymbol\textlhooksearrow{"2925} +\DeclareUTFSymbol\textrhookswarrow{"2926} +\DeclareUTFSymbol\textleadsto{"2933} +\DeclareUTFSymbol\textrcurvearrowne{"2934} +\DeclareUTFSymbol\textlcurvearrowse{"2935} +\DeclareUTFSymbol\textlcurvearrowsw{"2936} +\DeclareUTFSymbol\textrcurvearrowse{"2937} +\DeclareUTFSymbol\textlcurvearrowdown{"2938} +\DeclareUTFSymbol\textrcurvearrowdown{"2939} +\DeclareUTFSymbol\textrcurvearrowleft{"293A} +\DeclareUTFSymbol\textrcurvearrowright{"293B} +\DeclareUTFSymbol\textleftrightharpoon{"294A} +\DeclareUTFSymbol\textrightleftharpoon{"294B} +\DeclareUTFSymbol\textupdownharpoonrightleft{"294C} +\DeclareUTFSymbol\textupdownharpoonleftright{"294D} +\DeclareUTFSymbol\textleftleftharpoons{"2962} +\DeclareUTFSymbol\textupupharpoons{"2963} +\DeclareUTFSymbol\textrightrightharpoons{"2964} +\DeclareUTFSymbol\textdowndownharpoons{"2965} +\DeclareUTFSymbol\textleftbarharpoon{"296A} +\DeclareUTFSymbol\textbarleftharpoon{"296B} +\DeclareUTFSymbol\textrightbarharpoon{"296C} +\DeclareUTFSymbol\textbarrightharpoon{"296D} +\DeclareUTFSymbol\textupdownharpoons{"296E} +\DeclareUTFSymbol\textdownupharpoons{"296F} +\DeclareUTFSymbol\textllparenthesis{"2987} +\DeclareUTFSymbol\textrrparenthesis{"2988} +\DeclareUTFSymbol\textinvdiameter{"29B0} +\DeclareUTFSymbol\textobar{"29B6} +\DeclareUTFSymbol\textobslash{"29B8} +\DeclareUTFSymbol\textobot{"29BA} +\DeclareUTFSymbol\textNoChemicalCleaning{"29BB} +\DeclareUTFSymbol\textolessthan{"29C0} +\DeclareUTFSymbol\textogreaterthan{"29C1} +\DeclareUTFSymbol\textboxslash{"29C4} +\DeclareUTFSymbol\textboxbslash{"29C5} +\DeclareUTFSymbol\textboxast{"29C6} +\DeclareUTFSymbol\textboxcircle{"29C7} +\DeclareUTFSymbol\textboxbox{"29C8} +\DeclareUTFSymbol\textValve{"29D3} +\DeclareUTFSymbol\textmultimapboth{"29DF} +\DeclareUTFSymbol\textshuffle{"29E2} +\DeclareUTFSymbol\textuplus{"2A04} +\DeclareUTFSymbol\textbigdoublewedge{"2A07} +\DeclareUTFSymbol\textbigdoublevee{"2A08} +\DeclareUTFSymbol\textJoin{"2A1D} +\DeclareUTFSymbol\textfatsemi{"2A1F} +\DeclareUTFSymbol\textcircplus{"2A22} +\DeclareUTFSymbol\textminusdot{"2A2A} +\DeclareUTFSymbol\textdottimes{"2A30} +\DeclareUTFSymbol\textdtimes{"2A32} +\DeclareUTFSymbol\textodiv{"2A38} +\DeclareUTFSymbol\textinvneg{"2A3C} +\DeclareUTFSymbol\textsqdoublecap{"2A4E} +\DeclareUTFSymbol\textcapdot{"2A40} +\DeclareUTFSymbol\textsqdoublecup{"2A4F} +\DeclareUTFSymbol\textdoublewedge{"2A55} +\DeclareUTFSymbol\textdoublevee{"2A56} +\DeclareUTFSymbol\textdoublebarwedge{"2A5E} +\DeclareUTFSymbol\textveedoublebar{"2A63} +\DeclareUTFSymbol\texteqdot{"2A66} +\DeclareUTFCommand\textneqdot{\textlstrikethru\texteqdot} +\DeclareUTFSymbol\textcoloncolonequals{"2A74} +\DeclareUTFSymbol\textleqslant{"2A7D} +\DeclareUTFCommand\textnleqslant{\textlstrikethrux\textleqslant} +\DeclareUTFSymbol\textgeqslant{"2A7E} +\DeclareUTFCommand\textngeqslant{\textlstrikethru\textgeqslant} +\DeclareUTFSymbol\textlessapprox{"2A85} +\DeclareUTFCommand\textnlessapprox{\textlstrikethru\textnlessapprox} +\DeclareUTFSymbol\textgtrapprox{"2A86} +\DeclareUTFCommand\textngtrapprox{\textlstrikethru\textgtrapprox} +\DeclareUTFSymbol\textlneq{"2A87} +\DeclareUTFSymbol\textgneq{"2A88} +\DeclareUTFSymbol\textlnapprox{"2A89} +\DeclareUTFSymbol\textgnapprox{"2A8A} +\DeclareUTFSymbol\textlesseqqgtr{"2A8B} +\DeclareUTFSymbol\textgtreqqless{"2A8C} +\DeclareUTFSymbol\texteqslantless{"2A95} +\DeclareUTFSymbol\texteqslantgtr{"2A96} +\DeclareUTFSymbol\textleftslice{"2AA6} +\DeclareUTFSymbol\textrightslice{"2AA7} +\DeclareUTFSymbol\textpreceq{"2AAF} +\DeclareUTFCommand\textnpreceq{\textlstrikethru\textpreceq} +\DeclareUTFSymbol\textsucceq{"2AB0} +\DeclareUTFCommand\textnsucceq{\textlstrikethru\textsucceq} +\DeclareUTFSymbol\textprecneq{"2AB1} +\DeclareUTFSymbol\textsuccneq{"2AB2} +\DeclareUTFSymbol\textpreceqq{"2AB3} +\DeclareUTFCommand\textnpreceqq{\textlstrikethru\textpreceqq} +\DeclareUTFSymbol\textsucceqq{"2AB4} +\DeclareUTFCommand\textnsucceqq{\textlstrikethru\textsucceqq} +\DeclareUTFSymbol\textprecneqq{"2AB5} +\DeclareUTFSymbol\textsuccneqq{"2AB6} +\DeclareUTFSymbol\textprecapprox{"2AB7} +\DeclareUTFCommand\textnprecapprox{\textlstrikethru\textprecapprox} +\DeclareUTFSymbol\textsuccapprox{"2AB8} +\DeclareUTFCommand\textnsuccapprox{\textlstrikethru\textsuccapprox} +\DeclareUTFSymbol\textprecnapprox{"2AB9} +\DeclareUTFSymbol\textsuccnapprox{"2ABA} +\DeclareUTFSymbol\textsubseteqq{"2AC5} +\DeclareUTFCommand\textnsubseteqq{\textlstrikethru\textsubseteqq} +\DeclareUTFSymbol\textsupseteqq{"2AC6} +\DeclareUTFCommand\textnsupseteqq{\textlstrikethru\textsupseteqq} +\DeclareUTFSymbol\textdashV{"2AE3} +\DeclareUTFCommand\textndashV{\textlstrikethru\textdashV} +\DeclareUTFSymbol\textDashv{"2AE4} +\DeclareUTFCommand\textnDashv{\textlstrikethru\textDashv} +\DeclareUTFSymbol\textDashV{"2AE5} +\DeclareUTFCommand\textnDashV{\textlstrikethru\textDashV} +\DeclareUTFSymbol\textdownmodels{"2AEA} +\DeclareUTFCommand\textndownmodels{\textlstrikethru\textdownmodels} +\DeclareUTFSymbol\textupmodels{"2AEB} +\DeclareUTFCommand\textnupmodels{\textlstrikethru\textupmodels} +\DeclareUTFSymbol\textupspoon{"2AEF} +\DeclareUTFSymbol\textinterleave{"2AF4} +\DeclareUTFSymbol\textsslash{"2AFD} +\DeclareUTFSymbol\textpentagon{"2B20} +\DeclareUTFSymbol\textvarhexagon{"2B21} +\DeclareUTFSymbol\textjinferior{"2C7C} +\DeclareUTFSymbol\textslashdiv{"2E13} +\DeclareUTFSymbol\textinterrobangdown{"2E18} +\DeclareUTFSymbol\textfivedots{"2E2D} +\DeclareUTFSymbol\textPUheng{"A727} +\DeclareUTFSymbol\textPUlhookfour{"A72C} +\DeclareUTFSymbol\textPUscf{"A730} +\DeclareUTFSymbol\textPUaolig{"A735} +\DeclareUTFSymbol\textoo{"A74F} +\DeclareUTFSymbol\textcircumlow{"A788} +\DeclareUTFSymbol\textfi{"FB01} +\DeclareUTFSymbol\textfl{"FB02} +\DeclareUTFSymbol\textGaPa{"1D13B} +\DeclareUTFSymbol\textHaPa{"1D13C} +\DeclareUTFSymbol\textViPa{"1D13D} +\DeclareUTFSymbol\textAcPa{"1D13E} +\DeclareUTFSymbol\textSePa{"1D13F} +\DeclareUTFSymbol\textZwPa{"1D140} +\DeclareUTFSymbol\textfullnote{"1D15D} +\DeclareUTFSymbol\texthalfnote{"1D15E} +\DeclareUTFSymbol\textVier{"1D15F} +\DeclareUTFSymbol\textAcht{"1D160} +\DeclareUTFSymbol\textSech{"1D161} +\DeclareUTFSymbol\textZwdr{"1D162} +\DeclareUTFSymbol\textMundus{"1F30D} +\DeclareUTFSymbol\textMoon{"1F319} +\DeclareUTFSymbol\textManFace{"1F468} +\DeclareUTFSymbol\textWomanFace{"1F469} +\DeclareUTFSymbol\textFax{"1F4E0} +\DeclareUTFSymbol\textFire{"1F525} +\DeclareUTFSymbol\textBicycle{"1F6B2} +\DeclareUTFSymbol\textGentsroom{"1F6B9} +\DeclareUTFSymbol\textLadiesroom{"1F6BA} +\DeclareUTFCommand\textcopyleft{\textcircled\textrevc} +\DeclareUTFCommand\textccsa{\textcircled\textcirclearrowleft} +\DeclareUTFSymbol\textglqq{"201E} +\DeclareUTFSymbol\textgrqq{"201C} +\DeclareUTFSymbol\textglq{"201A} +\DeclareUTFSymbol\textgrq{"2018} +\DeclareUTFSymbol\textflqq{"00AB} +\DeclareUTFSymbol\textfrqq{"00BB} +\DeclareUTFSymbol\textflq{"2039} +\DeclareUTFSymbol\textfrq{"203A} +\DeclareUTFSymbol\textneg{"00AC} +\DeclareUTFSymbol\textcdot{"00B7} +% \end{macrocode} +% +% \begin{macrocode} +%</xunextra> % \end{macrocode} % % \setbox\xeCJKtmpbox\vbox\bgroup\gobblelineno @@ -8961,7 +10445,7 @@ $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $ %</config> % \end{macrocode} % -% \iffalse +% \begin{comment} % % \makeatletter % \let\special@index\@gobble @@ -9564,7 +11048,198 @@ int main() %</ex-listings> % \end{macrocode} % -% \fi +% \subsection{\pkg{xunicode-symbols.tex}} +% +% \begin{macrocode} +%<*xunicode-symbols> +% \end{macrocode} +% +% \setbox\xeCJKtmpbox\vbox\bgroup\gobblelineno +% \begin{macrocode} +%<@@=xunsym> +% \end{macrocode}\egroup +% +% \begin{macrocode} +\documentclass{article} +\usepackage[margin=2cm]{geometry} +\usepackage{fontspec} +\usepackage{xunicode-addon} +\usepackage{l3str} +\usepackage{longtable,tabu,booktabs} +\usepackage{zref-base} + +\setmainfont{FreeSerif} +\newfontfamily\falllbackfont{Segoe UI Symbol} + +\makeatletter +\ExplSyntaxOn +\cs_new_protected_nopar:Npx \@@_restore_catcode: + { \char_set_catcode:nn { \c_zero } { \char_value_catcode:n { \c_zero } } } +\file_if_exist:nTF { xunicode-commands.tex } + { \char_set_catcode_comment:n { \c_zero } } + { \char_set_catcode_ignore:n { \c_zero } } +^^@ \tl_new:N \l_@@_command_tl +^^@ \int_new:N \l_@@_command_int +^^@ \iow_new:N \g_@@_command_iow +^^@ \iow_new:N \g_@@_combine_mark_iow +^^@ \ior_new:N \g_@@_unicode_ior +^^@ \prop_new:N \l_@@_command_prop +^^@ \prop_new:N \l_@@_combine_mark_prop +^^@ \prop_new:N \l_@@_combine_marks_prop +^^@ \cs_new_protected_nopar:Npn \SaveUTFCommands +^^@ { +^^@ \group_begin: +^^@ \@@_restore_catcode: +^^@ \cs_set_eq:NN \DeclareTextAccent \use_none:nnn +^^@ \cs_set_eq:NN \DeclareUTFComposite \use_none:n +^^@ \cs_set_eq:NN \DeclareUTFEncodedAccent \use_none:nnn +^^@ \cs_set_eq:NN \DeclareUTFCommand \use_none:nn +^^@ \cs_set_eq:NN \DeclareUTFCompositeCommand \use_none:nnn +^^@ \cs_set_eq:NN \DeclareUTFSymbol \@@_save_UTF_command:Nn +^^@ \cs_set_eq:NN \DeclareUTFCompositeSymbol \@@_save_UTF_command:Nnn +^^@ \cs_set_eq:NN \DeclareEncodedCompositeCharacter \@@_save_combine_mark:nnnn +^^@ \cs_set_eq:NN \DeclareEncodedCompositeAccents \@@_save_combine_marks:nnnn +^^@ \DeclareDocumentCommand \DeclareUTFcharacter { O { \UTFencname } m m } +^^@ { \@@_save_UTF_command:NNn \l_@@_command_prop {##3} {##2} } +^^@ \DeclareDocumentCommand \DeclareUTFcomposite { O { \UTFencname } m m m } +^^@ { \@@_save_UTF_command:NNnn \l_@@_command_prop {##3} {##4} {##2} } +^^@ \ReloadXunicode { \UTFencname } +^^@ \ior_open:NnTF \g_@@_unicode_ior { UnicodeData.txt } +^^@ { +^^@ \iow_open:Nn \g_@@_command_iow { xunicode-commands.tex } +^^@ \iow_open:Nn \g_@@_combine_mark_iow { xunicode-combine-marks.tex } +^^@ \ior_map_inline:Nn \g_@@_unicode_ior { \@@_make_table:w ##1 \q_stop } +^^@ \@@_write_combine_marks: +^^@ \ior_close:N \g_@@_unicode_ior +^^@ \iow_close:N \g_@@_command_iow +^^@ \iow_close:N \g_@@_combine_mark_iow +^^@ \group_end: +^^@ } +^^@ { +^^@ \group_end: +^^@ \msg_fatal:nn { @@ } { UnicodeData } +^^@ } +^^@ } +^^@ \msg_new:nnn { @@ } { UnicodeData } +^^@ { File~`UnicodeData.txt`~not~found. } +^^@ \cs_new_protected:Npn \@@_save_UTF_command:Nn +^^@ { \@@_save_UTF_command:NNn \l_@@_command_prop } +^^@ \cs_new_protected:Npn \@@_save_UTF_command:Nnn +^^@ { \@@_save_UTF_command:NNnn \l_@@_command_prop } +^^@ \cs_new_protected:Npn \@@_save_UTF_command:NNn #1#2#3 +^^@ { \@@_save_UTF_text_command:Nxx #1 { \use_none:n #3 } { \token_to_str:N #2 } } +^^@ \cs_new_protected:Npn \@@_save_UTF_command:NNnn #1#2#3#4 +^^@ { +^^@ \@@_save_UTF_text_command:Nxx #1 { \use_none:n #4 } +^^@ { +^^@ \token_to_str:N #2 \c_left_brace_str +^^@ \tl_if_single:nTF {#3} { \token_to_str:N #3 } { \tl_to_str:n {#3} } +^^@ \c_right_brace_str +^^@ } +^^@ } +^^@ \cs_new_protected:Npn \@@_save_combine_mark:nnnn #1#2#3#4 +^^@ { \@@_save_UTF_text_command:Nxx \l_@@_combine_mark_prop {#3} { \token_to_str:N #2 } } +^^@ \cs_new_protected:Npn \@@_save_combine_marks:nnnn #1#2#3#4 +^^@ { \@@_save_UTF_text_command:Nxx \l_@@_combine_marks_prop { { "#4 } { "#3 } } { \token_to_str:N #2 } } +^^@ \cs_new_protected:Npn \@@_save_UTF_text_command:Nxx #1#2#3 +^^@ { \use:x { \@@_save_UTF_text_command:Nnn \exp_not:N #1 {#2} {#3} } } +^^@ \cs_new_protected:Npn \@@_save_UTF_text_command:Nnn #1#2#3 +^^@ { +^^@ \prop_get:NnNTF #1 {#2} \l_@@_command_tl +^^@ { \prop_put:Nno #1 {#2} { \l_@@_command_tl , #3 } } +^^@ { \prop_put:Nnn #1 {#2} {#3} } +^^@ } +^^@ \cs_new_protected:Npn \@@_make_table:w #1 ; #2 ; #3 \q_stop +^^@ { +^^@ \prop_get:NnNT \l_@@_command_prop {#1} \l_@@_command_tl +^^@ { +^^@ \iow_now:Nx \g_@@_command_iow +^^@ { \token_to_str:N \UnicodeTextSymbol { "#1 } { \l_@@_command_tl } {#2} } +^^@ } +^^@ \prop_get:NnNT \l_@@_combine_mark_prop {#1} \l_@@_command_tl +^^@ { +^^@ \iow_now:Nx \g_@@_combine_mark_iow +^^@ { \token_to_str:N \UnicodeCombineMark { "#1 } { \l_@@_command_tl } {#2} } +^^@ } +^^@ } +^^@ \cs_new_protected:Npn \@@_write_combine_marks: +^^@ { +^^@ \prop_map_inline:Nn \l_@@_combine_marks_prop +^^@ { +^^@ \iow_now:Nx \g_@@_combine_mark_iow +^^@ { \token_to_str:N \UnicodeCombineMarks ##1 {##2} } +^^@ } +^^@ } +^^@ \ExplSyntaxOff +^^@ \SaveUTFCommands +^^@ \ExplSyntaxOn +\@@_restore_catcode: +\int_new:N \g_@@_symbol_int +\int_new:N \g_@@_table_int +\DeclareDocumentCommand \UnicodeTextSymbol { m v m } + { + \int_gincr:N \g_@@_symbol_int + \use_none:n #1 & + \scan_align_safe_stop: + \reverse_if:N \etex_iffontchar:D \tex_font:D #1 \exp_stop_f: \falllbackfont \fi: + \tex_char:D #1 \exp_stop_f: & + \tl_set:Nn \l_tmpa_clist {#2} + \clist_use:Nnnn \l_tmpa_clist + { \par } { \par } { \par } + \strut + & #3 \\ + } +\cs_set_eq:NN \UnicodeCombineMark \UnicodeTextSymbol +\DeclareDocumentCommand \UnicodeCombineMarks { m m v } + { + \int_gincr:N \g_@@_symbol_int + \use_none:n #1 ~ \use_none:n #2 & + \tex_char:D #1 \exp_stop_f: \tex_char:D #2 \exp_stop_f: & + \tl_set:Nn \l_tmpa_clist {#3} + \clist_use:Nnnn \l_tmpa_clist + { \par } { \par } { \par } + \strut \\ + } +\DeclareDocumentCommand \UTFTABLE { m m } + { + \int_gincr:N \g_@@_table_int + \exp_args:Nx \@@_make_table:nnn { UTFTABLE - \int_use:N \g_@@_table_int } {#1} {#2} + } +\cs_new_protected_nopar:Npn \@@_make_table:nnn #1#2#3 + { + \section{#2~(\zref@extractdefault{#1}{default}{0})} + \zref@refused{#1} + \noindent + \begin{longtabu} to \linewidth {>{\ttfamily\footnotesize}rc>{\ttfamily\footnotesize}X>{\tiny}X} + \toprule\rowfont{\normalfont\normalsize} + \multicolumn1c{USV} & Symbol & Macro(s) & Description \\ + \midrule \endhead + \bottomrule \endfoot + \int_gzero:N \g_@@_symbol_int + \input{#3} + \end{longtabu} + \group_begin: + \zref@setcurrent{default}{\int_use:N\g_@@_symbol_int} + \zref@wrapper@immediate{\zref@labelbyprops{#1}{default}} + \group_end: + } +\cs_generate_variant:Nn \@@_make_table:nnn { x } +\ExplSyntaxOff + +\begin{document} + +\UTFTABLE{Symbols}{xunicode-commands.tex} + +\UTFTABLE{Combining Marks}{xunicode-combine-marks.tex} + +\end{document} +% \end{macrocode} +% +% \begin{macrocode} +%</xunicode-symbols> +% \end{macrocode} +% +% \end{comment} % % \end{implementation} % |