summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/xpinyin/xpinyin.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-06-25 23:33:54 +0000
committerKarl Berry <karl@freefriends.org>2014-06-25 23:33:54 +0000
commitecaf632627f4b52388324beecebb00d0fe3a53c7 (patch)
tree148024a0563abcef800db753fb42a928f66434de /Master/texmf-dist/tex/latex/xpinyin/xpinyin.sty
parent531f34e967beded1d10f9aa49f6ce4ae9c1dff93 (diff)
xpinyin (25jun14)
git-svn-id: svn://tug.org/texlive/trunk@34415 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/xpinyin/xpinyin.sty')
-rw-r--r--Master/texmf-dist/tex/latex/xpinyin/xpinyin.sty65
1 files changed, 36 insertions, 29 deletions
diff --git a/Master/texmf-dist/tex/latex/xpinyin/xpinyin.sty b/Master/texmf-dist/tex/latex/xpinyin/xpinyin.sty
index d2a8ce3b863..ef216f8fa1e 100644
--- a/Master/texmf-dist/tex/latex/xpinyin/xpinyin.sty
+++ b/Master/texmf-dist/tex/latex/xpinyin/xpinyin.sty
@@ -21,10 +21,10 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: xpinyin.dtx 654 2014-05-12 15:23:16Z sobenlee $
+\GetIdInfo$Id: xpinyin.dtx 700 2014-06-25 10:54:28Z sobenlee $
{Automatically add pinyin to Chinese characters}
\ProvidesExplPackage{\ExplFileName}
- {\ExplFileDate}{1.8}{\ExplFileDescription}
+ {\ExplFileDate}{1.9}{\ExplFileDescription}
\msg_new:nnn { xpinyin } { no-LuaTeX }
{
The~xpinyin~package~is~not~supported~in~LuaTeX.\\\\
@@ -40,9 +40,10 @@
{ ā }{ \= a } , { á }{ \' a } , { ǎ }{ \v a } , { à }{ \` a } ,
{ ō }{ \= o } , { ó }{ \' o } , { ǒ }{ \v o } , { ò }{ \` o } ,
{ ē }{ \= e } , { é }{ \' e } , { ě }{ \v e } , { è }{ \` e } ,
- { ī }{ \=\i } , { í }{ \'\i } , { ǐ }{ \v\i } , { ì }{ \`\i } ,
{ ū }{ \= u } , { ú }{ \' u } , { ǔ }{ \v u } , { ù }{ \` u } ,
{ ḿ }{ \' m } , { ń }{ \' n } , { ň }{ \v n } , { ǹ }{ \` n } ,
+ { ī }{ \= { \i } } , { í }{ \' { \i } } ,
+ { ǐ }{ \v { \i } } , { ì }{ \` { \i } } ,
{ ü }{ \" u } ,
{ ǖ }{ \= { \" u } } , { ǘ }{ \' { \" u } } ,
{ ǚ }{ \v { \" u } } , { ǜ }{ \` { \" u } }
@@ -51,7 +52,7 @@
\cs_new_protected_nopar:Npn \__xpinyin_UTF_char:nn #1#2
{
\cs_if_exist:cF { u8:#1 }
- { \cs_new_protected_nopar:cpn { u8:#1 } {#2} }
+ { \tl_const:cn { u8:#1 } {#2} }
}
\cs_new_protected_nopar:Npn \__xpinyin_GBK_char:nn #1#2
{
@@ -87,15 +88,15 @@
}
\tl_new:N \c__xpinyin_reset_UTF_catcode_tl
\group_begin:
-\char_set_catcode_active:n { \c_zero }
+\char_set_catcode_active:n { 126 }
\cs_new_protected_nopar:Npn \__xpinyin_save_UTF_cs:Nn #1#2
{
\group_begin:
- \char_set_lccode:nn { \c_zero } {#2}
- \tl_to_lowercase:n
+ \char_set_lccode:nn { 126 } {#2}
+ \tex_lowercase:D
{
\group_end:
- \tl_gput_right:Nn \c__xpinyin_reset_UTF_cs_tl { \cs_set_eq:NN ^^00 #1 }
+ \tl_gput_right:Nn \c__xpinyin_reset_UTF_cs_tl { \cs_set_eq:NN ~ #1 }
}
}
\group_end:
@@ -139,10 +140,10 @@
}
\box_new:N \l__xpinyin_tmpa_box
\box_new:N \l__xpinyin_tmpb_box
-\cs_new_protected_nopar:Npn \__xpinyin_make_box:nn #1#2
+\cs_new_protected:Npn \__xpinyin_width:Nn #1#2
{
- \__xpinyin_make_pinyin_box:xnn { \__xpinyin_to_unicode:n {#1} } {#1} {#2}
- \__xpinyin_save_CJKsymbol:n {#1}
+ \hbox_set:Nn \l__xpinyin_tmpa_box {#2}
+ #1 = \box_wd:N \l__xpinyin_tmpa_box
}
\cs_new_protected_nopar:Npn \__xpinyin_make_pinyin_box:nnn #1#2#3
{
@@ -153,8 +154,8 @@
{ \__xpinyin_CJKsymbol_hook: \__xpinyin_save_CJKsymbol:n {#2} }
\hbox_set:Nn \l__xpinyin_tmpb_box
{
- \l__xpinyin_pinyin_box_hook_tl
\color_group_begin: \color_ensure_current:
+ \l__xpinyin_pinyin_box_hook_tl
\__xpinyin_select_font:
\clist_if_exist:cTF { c__xpinyin_multiple_ #1 _clist }
{ \l__xpinyin_multiple_tl \l__xpinyin_format_tl }
@@ -178,6 +179,11 @@
}
}
\tl_new:N \l__xpinyin_pinyin_box_hook_tl
+\pdftex_if_engine:T
+ {
+ \tl_put_right:Nn \l__xpinyin_pinyin_box_hook_tl
+ { \cs_set_eq:NN \CJK@plane \tex_undefined:D }
+ }
\cs_generate_variant:Nn \__xpinyin_make_pinyin_box:nnn { x }
\cs_new_protected_nopar:Npn \__xpinyin_CJKsymbol:n #1
{ \__xpinyin_CJKsymbol:xn { \__xpinyin_to_unicode:n {#1} } {#1} }
@@ -207,7 +213,7 @@
\group_begin:
\keys_set:nn { xpinyin } {#2}
\bool_if:NF \l__xpinyin_enable_bool
- { \settowidth \l__xpinyin_CJKglue_dim { \CJKglue } }
+ { \__xpinyin_width:Nn \l__xpinyin_CJKglue_dim { \CJKglue } }
\leavevmode
\__xpinyin_single_aux:nn {#3}
}
@@ -224,7 +230,7 @@
\cs_set_eq:NN \__xpinyin_save_CJKglue: \CJKglue
\cs_set_eq:NN \CJKglue \__xpinyin_CJKglue:
}
- \settowidth \l__xpinyin_CJKglue_dim { \CJKglue }
+ \__xpinyin_width:Nn \l__xpinyin_CJKglue_dim { \CJKglue }
\__xpinyin_replace_CJKsymbol:
\__xpinyin_restore_footnote:
\bool_set_true:N \l__xpinyin_enable_bool
@@ -266,7 +272,7 @@
}
\cs_new_protected_nopar:Npn \__xpinyin_single_CJKsymbol:nn #1#2
{
- \__xpinyin_make_pinyin_box:nnn
+ \__xpinyin_make_pinyin_box:xnn
{ \__xpinyin_to_unicode:n {#1} } {#1} { \__xpinyin_pinyin:n {#2} }
\__xpinyin_save_CJKsymbol:n {#1}
}
@@ -295,6 +301,7 @@
\fontsize
{ \l__xpinyin_ratio_tl \etex_dimexpr:D \f@size pt \scan_stop: }
{ \f@baselineskip }
+ \normalfont
\l__xpinyin_font_tl
\selectfont
}
@@ -404,6 +411,8 @@
\int_compare:nNnTF { \CJKpunct@punctstyle } = { \CJKpunct@ps@plain }
{ \__xpinyin_replace_CJKsymbol_single_aux:n { ##1 } }
{
+ \bool_if:NF \l__xpinyin_enable_bool
+ { \cs_set_eq:NN \__xpinyin_save_CJKsymbol:n \CJKosymbol }
\cs_set_protected_nopar:Npn \CJKosymbol ####1
{ \__xpinyin_single_CJKsymbol:nn { ####1 } { ##1 } }
}
@@ -512,7 +521,7 @@
}
\NewDocumentCommand \xpinyinsetup { m } { \keys_set:nn { xpinyin } {#1} }
\clist_map_inline:nn
- { ratio , vsep , hsep , pysep , font , format , multiple , footnote }
+ { ratio , vsep , hsep , pysep , font , format , multiple }
{ \keys_define:nn { xpinyin } { #1 .tl_set:c = { l__xpinyin_ #1 _tl } } }
\keys_define:nn { xpinyin }
{ footnote .bool_set:N = \l__xpinyin_footnote_bool }
@@ -523,18 +532,14 @@
pysep = \c_space_tl ,
font = \normalfont ,
}
+\cs_new_protected_nopar:Npn \xpinyin_customary:nnn #1#2#3
+ { \cs_gset_nopar:cpn { c__xpinyin_ #2 _tl } {#3} }
+\cs_new_protected_nopar:Npn \xpinyin_multiple:nnn #1#2#3
+ { \cs_gset_nopar:cpn { c__xpinyin_multiple_ #2 _clist } {#3} }
\group_begin:
-\char_set_catcode_active:N \U
-\char_set_catcode_active:N \V
-\cs_set_nopar:Npn U+ #1 ~ #2 ~
- { \tl_gset:cn { c__xpinyin_ #1 _tl } {#2} }
-\cs_set_nopar:Npn V+ #1 ~ #2 ~
- { \clist_gset:cn { c__xpinyin_multiple_ #1 _clist } {#2} }
-\use:n
- {
- \char_set_catcode_space:N \
- \file_input:n { xpinyin-map.cfg }
- }
+ \cs_set_eq:NN \XPYU \xpinyin_customary:nnn
+ \cs_set_eq:NN \XPYUM \xpinyin_multiple:nnn
+ \file_input:n { xpinyin-database.def }
\group_end:
\NewDocumentCommand \setpinyin { m m }
{
@@ -545,10 +550,12 @@
\ProcessKeysOptions { xpinyin }
%%
%% This package consists of the file xpinyin.dtx,
-%% xpinyin-map.cfg,
%% and the derived files xpinyin.sty,
%% xpinyin.pdf,
-%% xpinyin.ins and
+%% xpinyin.ins,
+%% xpinyin.lua,
+%% xpinyin.db,
+%% xpinyin-database.def and
%% README.
%%
%% End of file `xpinyin.sty'.