summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2014-03-02 13:46:23 +0000
committerNorbert Preining <preining@logic.at>2014-03-02 13:46:23 +0000
commit766d9bbc3ad2de6c916ce68496922fe993550974 (patch)
tree2732239b79863ad65484ae346fb1ac3e545bdf91 /Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
parent68cf9481abafda214fbf946c6c46f444b8a81c5a (diff)
xdcjk 3.2.10 (28Feb)
git-svn-id: svn://tug.org/texlive/trunk@33074 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty')
-rw-r--r--Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty119
1 files changed, 101 insertions, 18 deletions
diff --git a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
index 08077672bc6..83a3b0f01e3 100644
--- a/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
+++ b/Master/texmf-dist/tex/xelatex/xecjk/xunicode-addon.sty
@@ -6,7 +6,7 @@
%%
%% xeCJK.dtx (with options: `xunicode')
%%
-%% $Id: xeCJK.dtx 537 2013-12-08 13:01:40Z sobenlee $
+%% $Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $
%% $URL: https://ctex-kit.googlecode.com/svn/trunk/xeCJK/xeCJK.dtx $
%% -----------------------------------------------------------------
%% Author:
@@ -15,9 +15,9 @@
%% Leo Liu <leoliu.pku@gmail.com>
%% Qing Lee <sobenlee@gmail.com>
%%
-%% Copyright (C) 2007--2013 Wenchang Sun
-%% (C) 2009--2013 Leo Liu
-%% (C) 2012--2013 Qing Lee
+%% Copyright (C) 2007--2014 Wenchang Sun
+%% (C) 2009--2014 Leo Liu
+%% (C) 2012--2014 Qing Lee
%%
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -33,11 +33,11 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xeCJK.dtx 537 2013-12-08 13:01:40Z sobenlee $
+\GetIdInfo$Id: xeCJK.dtx 549 2014-03-01 09:06:08Z sobenlee $
{addon file for xunicode}
\ProvidesExplPackage
{xunicode-addon}
- {\ExplFileDate}{3.2.9}{\ExplFileDescription}
+ {\ExplFileDate}{3.2.10}{\ExplFileDescription}
\pdftex_if_engine:T
{
\msg_new:nnnn { xunicode-addon } { cannot-use-pdftex }
@@ -303,6 +303,10 @@
{ \DeclareUTFEncodedSymbol #2 [#1] { "#3 } { "0#4 } }
\RenewDocumentCommand \DeclareEncodedCompositeAccents { m m m m }
{ \DeclareUTFEncodedAccents #2 [#1] { "#4 } { "#3 } }
+\NewDocumentCommand \DeclareUTFDoubleEncodedAccent { m O { \UTFencname } m m }
+ { \__xunadd_declare_encoded:NNnnn \__xunadd_combine_double_accent:nnNNn #1 {#2} {#3} {#4} }
+\NewDocumentCommand \DeclareUTFDoubleEncodedSymbol { m O { \UTFencname } m m }
+ { \__xunadd_declare_encoded:NNnnn \__xunadd_combine_double_symbol:nnNNn #1 {#2} {#3} {#4} }
\cs_new_protected:Npn \__xunadd_declare_composite:Nnn #1#2#3
{ \DeclareTextCommand #1 {#3} { \__xunadd_text_composite:nnn {#2} {#3} } }
\cs_new_protected:Npn \__xunadd_text_composite:nnn #1#2#3
@@ -360,8 +364,8 @@
{#1}
}
\cs_generate_variant:Nn \__xunadd_text_combine:NNnNNn { c }
-\cs_new_protected:Npn \__xunadd_combine_symbol:nnNNn #1#2#3#4#5
- { \__xunadd_text_combine:NnnNNn \__xunadd_add_symbol:nnNN {#1} {#2} {#3} {#4} {#5} }
+\cs_new_protected:Npn \__xunadd_combine_symbol:nnNNn
+ { \__xunadd_text_combine:NnnNNn \__xunadd_add_symbol:nnNN }
\cs_new_protected:Npn \__xunadd_add_symbol:nnNN #1#2#3#4
{
\tl_if_blank:nTF {#1}
@@ -376,8 +380,8 @@
{ \cs_if_exist_use:cTF { ? #2 } { {#1} } { #1#3 } }
}
}
-\cs_new_protected:Npn \__xunadd_combine_accent:nnNNn #1#2#3#4#5
- { \__xunadd_text_combine:NnnNNn \__xunadd_add_accent:nnNN {#1} {#2} {#3} {#4} {#5} }
+\cs_new_protected:Npn \__xunadd_combine_accent:nnNNn
+ { \__xunadd_text_combine:NnnNNn \__xunadd_add_accent:nnNN }
\cs_new_protected:Npn \__xunadd_add_accent:nnNN #1#2#3#4
{
\tl_if_blank:nTF {#1}
@@ -396,8 +400,8 @@
}
}
}
-\cs_new_protected:Npn \__xunadd_combine_accents:nnNNn #1#2#3#4#5
- { \__xunadd_text_combine:NnnNNn \__xunadd_add_accents:nnNN {#1} {#2} {#3} {#4} {#5} }
+\cs_new_protected:Npn \__xunadd_combine_accents:nnNNn
+ { \__xunadd_text_combine:NnnNNn \__xunadd_add_accents:nnNN }
\cs_new_protected:Npn \__xunadd_add_accents:nnNN #1#2#3#4
{
\tl_if_blank:nTF {#1}
@@ -412,8 +416,8 @@
{ \cs_if_exist_use:cTF { ? #2 } { {#1} } { #1#3#4 } }
}
}
-\cs_new_protected:Npn \__xunadd_combine_circle:nnNNn #1#2#3#4#5
- { \__xunadd_text_combine:NnnNNn \__xunadd_add_circle:nnNN {#1} {#2} {#3} {#4} {#5} }
+\cs_new_protected:Npn \__xunadd_combine_circle:nnNNn
+ { \__xunadd_text_combine:NnnNNn \__xunadd_add_circle:nnNN }
\cs_new_protected:Npn \__xunadd_add_circle:nnNN #1#2#3#4
{
\tl_if_blank:nTF {#1}
@@ -424,14 +428,14 @@
}
{
\__xunadd_glyph_if_exist:nTF { `#4 }
- { \__xunadd_add_circle:Nn #4 {#1} }
+ { \__xunadd_add_circle:nN {#1} #4 }
{ \cs_if_exist_use:cTF { ? #2 } { {#1} } {#1} }
}
}
-\cs_new_protected:Npn \__xunadd_add_circle:Nn #1#2
+\cs_new_protected:Npn \__xunadd_add_circle:nN #1#2
{
- \hcoffin_set:Nn \l__xunadd_circle_coffin {#1}
- \hcoffin_set:Nn \l__xunadd_tmp_coffin {#2}
+ \hcoffin_set:Nn \l__xunadd_tmp_coffin {#1}
+ \hcoffin_set:Nn \l__xunadd_circle_coffin {#2}
\dim_set:Nn \l__xunadd_circle_width_dim
{ \fp_use:N \l__xunadd_circle_ratio_fp \coffin_wd:N \l__xunadd_circle_coffin }
\coffin_resize:Nnn \l__xunadd_tmp_coffin
@@ -455,6 +459,63 @@
{ \fp_set:Nn \l__xunadd_circle_ratio_fp {#1} }
\fp_new:N \l__xunadd_circle_ratio_fp
\settextcircledratio { 0.7 }
+\cs_new_protected:Npn \__xunadd_combine_double_accent:nnNNn
+ { \__xunadd_text_combine:NnnNNn \__xunadd_add_double_accent:nnNN }
+\cs_new_protected:Npn \__xunadd_add_double_accent:nnNN #1#2#3#4
+ {
+ \tl_if_blank:nTF {#1}
+ {
+ \__xunadd_glyph_if_exist:nTF { `#4 }
+ {#4}
+ { \cs_if_exist_use:cTF { ? #2 } { {#1} } {#4} }
+ }
+ {
+ \__xunadd_glyph_if_exist:nTF { `#3 }
+ { \__xunadd_add_double_symbol:nN {#1} #3 }
+ {
+ \__xunadd_glyph_if_exist:nTF { `#4 }
+ { \add@accent { `#4 } {#1} }
+ { \cs_if_exist_use:cTF { ? #2 } { {#1} } { #1#3 } }
+ }
+ }
+ }
+\cs_new_protected:Npn \__xunadd_combine_double_symbol:nnNNn
+ { \__xunadd_text_combine:NnnNNn \__xunadd_add_double_symbol:nnNN }
+\cs_new_protected:Npn \__xunadd_add_double_symbol:nnNN #1#2#3#4
+ {
+ \tl_if_blank:nTF {#1}
+ {
+ \__xunadd_glyph_if_exist:nTF { `#4 }
+ {#4}
+ { \cs_if_exist_use:cTF { ? #2 } { {#1} } {#4} }
+ }
+ {
+ \__xunadd_glyph_if_exist:nTF { `#3 }
+ { \__xunadd_add_double_symbol:nN {#1} #3 }
+ { \cs_if_exist_use:cTF { ? #2 } { {#1} } { #1#3 } }
+ }
+ }
+\cs_new_protected:Npn \__xunadd_add_double_symbol:nN #1#2
+ {
+ \tl_if_head_is_N_type:nTF {#1}
+ {
+ \exp_after:wN \exp_after:wN \exp_after:wN
+ \__xunadd_add_double_symbol_aux:NnN \exp_after:wN \exp_after:wN
+ \tl_head:w #1 \q_stop \exp_after:wN { \use_none:n #1 } #2
+ }
+ { #1#2 }
+ }
+\cs_new_protected:Npn \__xunadd_add_double_symbol_aux:NnN #1#2#3
+ {
+ \bool_if:nTF
+ {
+ \token_if_letter_p:N #1 ||
+ \token_if_other_p:N #1 ||
+ \token_if_chardef_p:N #1
+ }
+ { #1#3#2 }
+ { #1#2#3 }
+ }
\NewDocumentCommand \AtBeginUTFCommand { s O { } +m }
{
\tl_if_blank:nTF {#2}
@@ -505,6 +566,28 @@
{#2}
\tl_use:N \l__xunadd_end_hook_tl
}
+\NewDocumentCommand \DeclareUTFTIPACommand { O { \UTFencname } m }
+ { \use:x { \__xunadd_text_tipa_command:Nnn \exp_not:N #2 { \token_to_str:N #2 } {#1} } }
+\cs_new_protected:Npn \__xunadd_text_tipa_command:Nnn #1#2#3
+ {
+ \cs_set_eq:cc { UTF/#3#2 } { #3#2 }
+ \DeclareTextCommand #1 {#3} { \__xunadd_text_tipa_command:nnn {#3} {#2} }
+ }
+\cs_new_protected:Npn \__xunadd_text_tipa_command:nnn #1#2#3
+ {
+ \exp_after:wN \__xunadd_check_for_tipa:NNn
+ \cs:w \use_none:n #2 \exp_after:wN \cs_end:
+ \cs:w UTF/#1#2 \cs_end: {#3}
+ }
+\cs_new_protected:Npn \__xunadd_check_for_tipa:NNn #1#2#3
+ {
+ \tl_if_head_eq_meaning:nNTF {#3} \textipa
+ {
+ \exp_after:wN \tipacatchonechar \exp_after:wN
+ { \exp_after:wN #1 \use_none:n #3 }
+ }
+ { #2 {#3} }
+ }
%%
%% This package consists of the file xeCJK.dtx,
%% full-stop.map,