diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/xpinyin/xpinyin.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/xpinyin/xpinyin.sty | 65 |
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'. |