summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-02-03 23:02:34 +0000
committerKarl Berry <karl@freefriends.org>2016-02-03 23:02:34 +0000
commitd7e7feec5992a359e08cb62c8bb2a53b59b7112f (patch)
tree382490c4e07b4ab12dfa6c15c3ace2012b847ad9
parentf4a543aed2bbfaec5c3f8dbfee5985322cd1b938 (diff)
zhnumber (2feb16)
git-svn-id: svn://tug.org/texlive/trunk@39567 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/zhnumber/zhnumber.pdfbin328366 -> 325428 bytes
-rw-r--r--Master/texmf-dist/source/latex/zhnumber/zhnumber.dtx102
-rw-r--r--Master/texmf-dist/source/latex/zhnumber/zhnumber.ins4
-rw-r--r--Master/texmf-dist/tex/latex/zhnumber/zhnumber-big5.cfg6
-rw-r--r--Master/texmf-dist/tex/latex/zhnumber/zhnumber-gbk.cfg6
-rw-r--r--Master/texmf-dist/tex/latex/zhnumber/zhnumber-utf8.cfg6
-rw-r--r--Master/texmf-dist/tex/latex/zhnumber/zhnumber.sty99
7 files changed, 108 insertions, 115 deletions
diff --git a/Master/texmf-dist/doc/latex/zhnumber/zhnumber.pdf b/Master/texmf-dist/doc/latex/zhnumber/zhnumber.pdf
index 1bdb5c845c9..65289a9c2eb 100644
--- a/Master/texmf-dist/doc/latex/zhnumber/zhnumber.pdf
+++ b/Master/texmf-dist/doc/latex/zhnumber/zhnumber.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/zhnumber/zhnumber.dtx b/Master/texmf-dist/source/latex/zhnumber/zhnumber.dtx
index 218c0fee1e7..3fa1919271a 100644
--- a/Master/texmf-dist/source/latex/zhnumber/zhnumber.dtx
+++ b/Master/texmf-dist/source/latex/zhnumber/zhnumber.dtx
@@ -130,7 +130,7 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
\askforoverwritefalse
\preamble
- Copyright (C) 2012, 2014, 2015 by Qing Lee <sobenlee@gmail.com>
+ Copyright (C) 2012, 2014-2016 by Qing Lee <sobenlee@gmail.com>
--------------------------------------------------------------------------
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -200,7 +200,7 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
%<config&utf8> {\ExplFileName-utf8.cfg}
%<config&big5> {\ExplFileName-big5.cfg}
%<config&gbk> {\ExplFileName-gbk.cfg}
- {\ExplFileDate}{2.2}{\ExplFileDescription}
+ {\ExplFileDate}{2.3}{\ExplFileDescription}
%</driver|package|config>
%<*driver>
\ExplSyntaxOff
@@ -309,7 +309,7 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
%</driver>
% \fi
%
-% \CheckSum{1194}
+% \CheckSum{1193}
% \GetFileInfo{\jobname.sty}
%
% \title{\bfseries\pkg{zhnumber} 宏包}
@@ -627,7 +627,7 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
'l3kernel'~and~'l3packages'\\\\
using~your~TeX~package~manager~or~from~CTAN.
}
-\@ifpackagelater { expl3 } { 2014/08/25 } { }
+\@ifpackagelater { expl3 } { 2015/09/24 } { }
{ \msg_error:nn { zhnumber } { l3-too-old } }
% \end{macrocode}
%
@@ -770,7 +770,9 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
{ \@@_counter_error:n {#1} }
}
\cs_new:Npn \@@_counter_error:n #1
- { \__msg_expandable_error:n { `#1'~is~not~a~LaTeX~counter. } }
+ { \msg_expandable_error:nnn { zhnumber } { not-counter } {#1} }
+\msg_new:nnn { zhnumber } { not-counter }
+ { `#1'~is~not~a~LaTeX~counter. }
\cs_new:Npn \zhnum_int:n #1
{
\int_compare:nNnTF {#1} > \c_zero
@@ -798,7 +800,7 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
\exp_after:wN \@@_read_integer:www
\tex_number:D
\exp_after:wN \@@_read_sign_loop:N
- \tex_romannumeral:D -`0 \use:n
+ \exp:w \exp_end_continue_f:w \use:n
#1 \exp_stop_f: \q_recursion_tail \q_recursion_stop
\@@_result:nn { \c_zero } { } ;
}
@@ -806,10 +808,10 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
{
\if:w + \if:w - \exp_not:N #1 + \fi: \exp_not:N #1
\exp_after:wN \@@_read_sign_loop:N
- \tex_romannumeral:D -`0 \exp_after:wN \use:n
+ \exp:w \exp_end_continue_f:w \exp_after:wN \use:n
\else:
1 \exp_after:wN ;
- \tex_romannumeral:D -`0
+ \exp:w \exp_end_continue_f:w
\exp_after:wN \@@_read_zeros_loop:N
\exp_after:wN #1
\fi:
@@ -818,7 +820,7 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
{
\if:w 0 \exp_not:N #1
\exp_after:wN \@@_read_zeros_loop:N
- \tex_romannumeral:D -`0 \exp_after:wN \use:n
+ \exp:w \exp_end_continue_f:w \exp_after:wN \use:n
\else:
\exp_after:wN \@@_read_abs_loop:Nw
\exp_after:wN #1
@@ -840,7 +842,7 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
{ \@@_output:nnwnn { + \c_one } #1 }
{ \quark_if_recursion_tail_stop_do:Nn #1 { \@@_loop_end:wnn } }
\exp_after:wN \@@_read_abs_loop:Nw
- \tex_romannumeral:D -`0 \use:n #2 \q_recursion_stop
+ \exp:w \exp_end_continue_f:w \use:n #2 \q_recursion_stop
}
\cs_new:Npn \@@_output:nnwnn #1#2#3 \@@_result:nn #4#5
{ #3 \@@_result:nn { #4#1 } { #5#2 } }
@@ -1037,14 +1039,14 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
\exp_after:wN \@@_read_digits:w
\tex_number:D
\exp_after:wN \@@_read_sign_loop:NN \exp_after:wN #1
- \tex_romannumeral:D -`0 \use:n
+ \exp:w \exp_end_continue_f:w \use:n
#2 \exp_stop_f: \q_recursion_tail \q_recursion_stop
}
\cs_new:Npn \@@_read_sign_loop:NN #1#2
{
\if:w + \if:w - \exp_not:N #2 + \fi: \exp_not:N #2
\exp_after:wN \@@_read_sign_loop:NN \exp_after:wN #1
- \tex_romannumeral:D -`0 \exp_after:wN \use:n
+ \exp:w \exp_end_continue_f:w \exp_after:wN \use:n
\else:
1 \exp_after:wN ;
\exp_after:wN \@@_read_digits_loop:NN
@@ -1061,7 +1063,7 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
\if:w .\exp_not:N #2 \exp_after:wN \c_@@_dot_tl \fi:
}
\exp_after:wN \@@_read_digits_loop:NN \exp_after:wN #1
- \tex_romannumeral:D -`0 \use:n
+ \exp:w \exp_end_continue_f:w \use:n
}
\cs_new:Npn \@@_read_digits:w #1 ;
{
@@ -1225,16 +1227,13 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
% \begin{macrocode}
\cs_new:Npn \zhtime #1
{ \@@_time:ww #1 \q_stop }
-\group_begin:
-\char_set_lccode:nn { `\; } { `\: }
-\tl_to_lowercase:n
+\use:x
{
- \group_end:
- \cs_new:Npn \@@_time:ww #1 ; #2 \q_stop
- {
- \zhnum_check_time:Nn \zhnum_int:n {#1} \c_@@_hour_tl
- \zhnum_check_time:Nn \zhnum_int:n {#2} \c_@@_minute_tl
- }
+ \cs_new:Npn \exp_not:N \@@_time:ww ##1 \c_colon_str ##2 \exp_not:N \q_stop
+ }
+ {
+ \zhnum_check_time:Nn \zhnum_int:n {#1} \c_@@_hour_tl
+ \zhnum_check_time:Nn \zhnum_int:n {#2} \c_@@_minute_tl
}
% \end{macrocode}
% \end{macro}
@@ -1657,16 +1656,16 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
% \begin{macrocode}
\cs_new_protected:Npn \zhnum_load_cfg:n #1
{
- \zhnum_set_cfg_name:Nn \l_@@_cfg_tl {#1}
- \tl_if_eq:NNF \l_@@_cfg_tl \l_@@_last_cfg_tl
+ \zhnum_set_cfg_name:Nn \l_@@_cfg_str {#1}
+ \str_if_eq:NNF \l_@@_cfg_str \l_@@_last_cfg_str
{ \zhnum_update_cfg:n {#1} }
\zhnum_parse_config:
}
\cs_generate_variant:Nn \zhnum_load_cfg:n { o }
\cs_new_protected:Npn \zhnum_update_cfg:n #1
{
- \prop_if_exist:cTF { g_@@_cfg_ \l_@@_cfg_tl _prop }
- { \tl_set_eq:NN \l_@@_last_cfg_tl \l_@@_cfg_tl }
+ \prop_if_exist:cTF { g_@@_cfg_ \l_@@_cfg_str _prop }
+ { \str_set_eq:NN \l_@@_last_cfg_str \l_@@_cfg_str }
{ \zhnum_input_cfg:n {#1} }
\@@_update_cfg_prop:N \prop_set_eq:Nc
}
@@ -1688,10 +1687,10 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
}
\cs_new_protected:Npn \@@_update_cfg_prop:N #1
{
- #1 \l_@@_cfg_map_prop { g_@@_cfg_ \l_@@_cfg_tl _prop }
- #1 \l_@@_cfg_map_var_prop { g_@@_cfg_var_ \l_@@_cfg_tl _prop }
- #1 \l_@@_cfg_map_finan_prop { g_@@_cfg_finan_ \l_@@_cfg_tl _prop }
- #1 \l_@@_cfg_map_ganzhi_prop { g_@@_cfg_ganzhi_ \l_@@_cfg_tl _prop }
+ #1 \l_@@_cfg_map_prop { g_@@_cfg_ \l_@@_cfg_str _prop }
+ #1 \l_@@_cfg_map_var_prop { g_@@_cfg_var_ \l_@@_cfg_str _prop }
+ #1 \l_@@_cfg_map_finan_prop { g_@@_cfg_finan_ \l_@@_cfg_str _prop }
+ #1 \l_@@_cfg_map_ganzhi_prop { g_@@_cfg_ganzhi_ \l_@@_cfg_str _prop }
}
\cs_new_protected:Npn \@@_prop_initial:Nn #1#2
{
@@ -1700,8 +1699,8 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
}
\cs_new_protected:Npn \@@_prop_gset_eq:Nn #1#2
{ \prop_gset_eq:cN {#2} #1 }
-\tl_new:N \l_@@_cfg_tl
-\tl_new:N \l_@@_last_cfg_tl
+\str_new:N \l_@@_cfg_str
+\str_new:N \l_@@_last_cfg_str
\bool_new:N \l_@@_reset_bool
\msg_new:nnnn { zhnumber } { file-not-found }
{ File~`#1'~not~found. }
@@ -1714,16 +1713,14 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
%
% \begin{macro}[internal,pTF]{\zhnum_if_unicode_engine:}
% 使用 \upTeX{} 的时候,也不必将汉字的首字符设置为活动字符。判断 |^^^^0021| 是否为
-% 单个记号的办法对 \upTeX{} 不适用。因此,参考 \pkg{ifuptex} 宏包,通过 \tn{kchar}
-% 是否为 primitive 来判断。
+% 单个记号的办法对 \upTeX{} 不适用。
% \begin{macrocode}
-\pdftex_if_engine:TF
+\bool_if:nTF
{
- \str_if_eq_x:nnTF
- { \token_to_str:N \kchar }
- { \token_to_meaning:N \kchar }
+ \sys_if_engine_xetex_p: ||
+ \sys_if_engine_luatex_p: ||
+ \sys_if_engine_uptex_p:
}
- { \use_i:nn }
{
\cs_new_eq:NN \zhnum_if_unicode_engine_p: \c_true_bool
\cs_new_eq:NN \zhnum_if_unicode_engine:TF \use_i:nn
@@ -1747,8 +1744,8 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
\cs_new_eq:NN \zhnum_set_catcode: \prg_do_nothing:
\cs_new_protected:Npn \zhnum_set_cfg_name:Nn #1#2
{
- \tl_set:Nx \l_@@_encoding_tl {#2}
- \tl_set:Nx #1 { \tl_to_str:N \l_@@_encoding_tl }
+ \str_set:Nx \l_@@_encoding_str {#2}
+ \str_set_eq:NN #1 \l_@@_encoding_str
}
\cs_new_eq:NN \zhnum_reset_config: \zhnum_parse_config:
\else:
@@ -1756,7 +1753,7 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
{ \bool_if:NT \l_@@_active_char_bool { \zhnum_set_active: } }
\cs_new_protected_nopar:Npn \zhnum_set_active:
{
- \str_case:onTF { \l_@@_encoding_tl }
+ \str_case:onTF { \l_@@_encoding_str }
{
{ gbk } { \int_set:Nn \l_@@_byte_min_int { "81 } }
{ big5 } { \int_set:Nn \l_@@_byte_min_int { "A1 } }
@@ -1774,16 +1771,15 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
\int_new:N \l_@@_byte_max_int
\cs_new_protected:Npn \zhnum_set_cfg_name:Nn #1#2
{
- \tl_set:Nx \l_@@_encoding_tl {#2}
- \tl_set:Nx #1
+ \str_set:Nx \l_@@_encoding_str {#2}
+ \str_set:Nx #1
{
- \tl_to_str:N \l_@@_encoding_tl
- \bool_if:NT \l_@@_active_char_bool
- { \tl_to_str:n { _active } }
+ \l_@@_encoding_str
+ \bool_if:NT \l_@@_active_char_bool { _active }
}
}
\cs_new_protected_nopar:Npn \zhnum_reset_config:
- { \zhnum_load_cfg:o { \l_@@_encoding_tl } }
+ { \zhnum_load_cfg:o { \l_@@_encoding_str } }
\bool_new:N \l_@@_active_char_bool
\bool_set_true:N \l_@@_active_char_bool
\fi:
@@ -1798,9 +1794,9 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
encoding .choices:nn =
{ UTF8 , GBK , Big5 }
{
- \exp_args:Nx \tex_lowercase:D
- { \tl_set:Nn \exp_not:N \l_@@_encoding_tl { \l_keys_choice_tl } }
- \zhnum_load_cfg:o { \l_@@_encoding_tl }
+ \str_set:Nx \l_@@_encoding_str
+ { \str_fold_case:V \l_keys_choice_tl }
+ \zhnum_load_cfg:o { \l_@@_encoding_str }
} ,
encoding .default:n = { GBK } ,
encoding / Bg5 .meta:n = { encoding = Big5 } ,
@@ -1839,7 +1835,7 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
{ \cs_set_eq:NN \zhnum_ganzhi:nnn \zhnum_ganzhi_normal:nnn } ,
ganzhi-cyclic .default:n = { true } ,
}
-\tl_new:N \l_@@_encoding_tl
+\str_new:N \l_@@_encoding_str
\msg_new:nnnn { zhnumber } { encoding-invalid }
{ The~encoding~`#1'~is~invalid. }
{ Available~encodings~are~`UTF8',~`GBK'~and~`Big5'. }
@@ -1865,7 +1861,7 @@ and some specific Chinese Simplified fonts (TrueType or OpenType).
%
% 如果没有选定编码,则根据引擎自动设置编码。
% \begin{macrocode}
-\tl_if_empty:NT \l_@@_encoding_tl
+\str_if_empty:NT \l_@@_encoding_str
{
\zhnum_if_unicode_engine:TF
{ \keys_set:nn { zhnum / options } { encoding = UTF8 } }
diff --git a/Master/texmf-dist/source/latex/zhnumber/zhnumber.ins b/Master/texmf-dist/source/latex/zhnumber/zhnumber.ins
index 1ed6564f831..4aadc96b646 100644
--- a/Master/texmf-dist/source/latex/zhnumber/zhnumber.ins
+++ b/Master/texmf-dist/source/latex/zhnumber/zhnumber.ins
@@ -6,7 +6,7 @@
%%
%% zhnumber.dtx (with options: `install')
%%
-%% Copyright (C) 2012, 2014, 2015 by Qing Lee <sobenlee@gmail.com>
+%% Copyright (C) 2012, 2014-2016 by Qing Lee <sobenlee@gmail.com>
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -65,7 +65,7 @@
\askforoverwritefalse
\preamble
- Copyright (C) 2012, 2014, 2015 by Qing Lee <sobenlee@gmail.com>
+ Copyright (C) 2012, 2014-2016 by Qing Lee <sobenlee@gmail.com>
--------------------------------------------------------------------------
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/Master/texmf-dist/tex/latex/zhnumber/zhnumber-big5.cfg b/Master/texmf-dist/tex/latex/zhnumber/zhnumber-big5.cfg
index f74aee2d3d5..f62be008da2 100644
--- a/Master/texmf-dist/tex/latex/zhnumber/zhnumber-big5.cfg
+++ b/Master/texmf-dist/tex/latex/zhnumber/zhnumber-big5.cfg
@@ -6,7 +6,7 @@
%%
%% zhnumber.dtx (with options: `config,big5')
%%
-%% Copyright (C) 2012, 2014, 2015 by Qing Lee <sobenlee@gmail.com>
+%% Copyright (C) 2012, 2014-2016 by Qing Lee <sobenlee@gmail.com>
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -19,11 +19,11 @@
%% This work has the LPPL maintenance status "maintained".
%% The Current Maintainer of this work is Qing Lee.
%%
-\GetIdInfo$Id: zhnumber.dtx 42dbb38 2015-05-21 23:20:32 +0800 Qing Lee <sobenlee@gmail.com> $
+\GetIdInfo$Id: zhnumber.dtx 9686fd1 2016-02-02 16:55:41 +0800 Qing Lee <sobenlee@gmail.com> $
{Chinese numerals with Big5 encoding}
\ProvidesExplFile
{\ExplFileName-big5.cfg}
- {\ExplFileDate}{2.2}{\ExplFileDescription}
+ {\ExplFileDate}{2.3}{\ExplFileDescription}
\zhnum_set_digits_map:nn { minus } { t }
\zhnum_set_digits_map:nn { 0 } { s }
\zhnum_set_digits_map:nn { null } { }
diff --git a/Master/texmf-dist/tex/latex/zhnumber/zhnumber-gbk.cfg b/Master/texmf-dist/tex/latex/zhnumber/zhnumber-gbk.cfg
index 2f6dd172f76..57e1af8dbf9 100644
--- a/Master/texmf-dist/tex/latex/zhnumber/zhnumber-gbk.cfg
+++ b/Master/texmf-dist/tex/latex/zhnumber/zhnumber-gbk.cfg
@@ -6,7 +6,7 @@
%%
%% zhnumber.dtx (with options: `config,gbk')
%%
-%% Copyright (C) 2012, 2014, 2015 by Qing Lee <sobenlee@gmail.com>
+%% Copyright (C) 2012, 2014-2016 by Qing Lee <sobenlee@gmail.com>
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -19,11 +19,11 @@
%% This work has the LPPL maintenance status "maintained".
%% The Current Maintainer of this work is Qing Lee.
%%
-\GetIdInfo$Id: zhnumber.dtx 42dbb38 2015-05-21 23:20:32 +0800 Qing Lee <sobenlee@gmail.com> $
+\GetIdInfo$Id: zhnumber.dtx 9686fd1 2016-02-02 16:55:41 +0800 Qing Lee <sobenlee@gmail.com> $
{Chinese numerals with GBK encoding}
\ProvidesExplFile
{\ExplFileName-gbk.cfg}
- {\ExplFileDate}{2.2}{\ExplFileDescription}
+ {\ExplFileDate}{2.3}{\ExplFileDescription}
\zhnum_set_digits_map:nnn { minus } { simp } { }
\zhnum_set_digits_map:nnn { minus } { trad } { ؓ }
\zhnum_set_digits_map:nn { 0 } { }
diff --git a/Master/texmf-dist/tex/latex/zhnumber/zhnumber-utf8.cfg b/Master/texmf-dist/tex/latex/zhnumber/zhnumber-utf8.cfg
index b006f7b0b2b..d8f110df755 100644
--- a/Master/texmf-dist/tex/latex/zhnumber/zhnumber-utf8.cfg
+++ b/Master/texmf-dist/tex/latex/zhnumber/zhnumber-utf8.cfg
@@ -6,7 +6,7 @@
%%
%% zhnumber.dtx (with options: `config,utf8')
%%
-%% Copyright (C) 2012, 2014, 2015 by Qing Lee <sobenlee@gmail.com>
+%% Copyright (C) 2012, 2014-2016 by Qing Lee <sobenlee@gmail.com>
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -19,11 +19,11 @@
%% This work has the LPPL maintenance status "maintained".
%% The Current Maintainer of this work is Qing Lee.
%%
-\GetIdInfo$Id: zhnumber.dtx 42dbb38 2015-05-21 23:20:32 +0800 Qing Lee <sobenlee@gmail.com> $
+\GetIdInfo$Id: zhnumber.dtx 9686fd1 2016-02-02 16:55:41 +0800 Qing Lee <sobenlee@gmail.com> $
{Chinese numerals with UTF8 encoding}
\ProvidesExplFile
{\ExplFileName-utf8.cfg}
- {\ExplFileDate}{2.2}{\ExplFileDescription}
+ {\ExplFileDate}{2.3}{\ExplFileDescription}
\zhnum_set_digits_map:nnn { minus } { simp } { 负 }
\zhnum_set_digits_map:nnn { minus } { trad } { 負 }
\zhnum_set_digits_map:nn { 0 } { 零 }
diff --git a/Master/texmf-dist/tex/latex/zhnumber/zhnumber.sty b/Master/texmf-dist/tex/latex/zhnumber/zhnumber.sty
index 4223c0743d7..3945d1cfc98 100644
--- a/Master/texmf-dist/tex/latex/zhnumber/zhnumber.sty
+++ b/Master/texmf-dist/tex/latex/zhnumber/zhnumber.sty
@@ -6,7 +6,7 @@
%%
%% zhnumber.dtx (with options: `package')
%%
-%% Copyright (C) 2012, 2014, 2015 by Qing Lee <sobenlee@gmail.com>
+%% Copyright (C) 2012, 2014-2016 by Qing Lee <sobenlee@gmail.com>
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -21,11 +21,11 @@
%%
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\GetIdInfo$Id: zhnumber.dtx 42dbb38 2015-05-21 23:20:32 +0800 Qing Lee <sobenlee@gmail.com> $
+\GetIdInfo$Id: zhnumber.dtx 9686fd1 2016-02-02 16:55:41 +0800 Qing Lee <sobenlee@gmail.com> $
{Typesetting numbers with Chinese glyphs}
\ProvidesExplPackage
{\ExplFileName}
- {\ExplFileDate}{2.2}{\ExplFileDescription}
+ {\ExplFileDate}{2.3}{\ExplFileDescription}
\msg_new:nnn { zhnumber } { l3-too-old }
{
Support~package~'expl3'~too~old. \\\\
@@ -33,7 +33,7 @@
'l3kernel'~and~'l3packages'\\\\
using~your~TeX~package~manager~or~from~CTAN.
}
-\@ifpackagelater { expl3 } { 2014/08/25 } { }
+\@ifpackagelater { expl3 } { 2015/09/24 } { }
{ \msg_error:nn { zhnumber } { l3-too-old } }
\RequirePackage { xparse , l3keys2e }
\DeclareExpandableDocumentCommand \zhnumber { +o +m }
@@ -118,7 +118,9 @@
{ \__zhnum_counter_error:n {#1} }
}
\cs_new:Npn \__zhnum_counter_error:n #1
- { \__msg_expandable_error:n { `#1'~is~not~a~LaTeX~counter. } }
+ { \msg_expandable_error:nnn { zhnumber } { not-counter } {#1} }
+\msg_new:nnn { zhnumber } { not-counter }
+ { `#1'~is~not~a~LaTeX~counter. }
\cs_new:Npn \zhnum_int:n #1
{
\int_compare:nNnTF {#1} > \c_zero
@@ -138,7 +140,7 @@
\exp_after:wN \__zhnum_read_integer:www
\tex_number:D
\exp_after:wN \__zhnum_read_sign_loop:N
- \tex_romannumeral:D -`0 \use:n
+ \exp:w \exp_end_continue_f:w \use:n
#1 \exp_stop_f: \q_recursion_tail \q_recursion_stop
\__zhnum_result:nn { \c_zero } { } ;
}
@@ -146,10 +148,10 @@
{
\if:w + \if:w - \exp_not:N #1 + \fi: \exp_not:N #1
\exp_after:wN \__zhnum_read_sign_loop:N
- \tex_romannumeral:D -`0 \exp_after:wN \use:n
+ \exp:w \exp_end_continue_f:w \exp_after:wN \use:n
\else:
1 \exp_after:wN ;
- \tex_romannumeral:D -`0
+ \exp:w \exp_end_continue_f:w
\exp_after:wN \__zhnum_read_zeros_loop:N
\exp_after:wN #1
\fi:
@@ -158,7 +160,7 @@
{
\if:w 0 \exp_not:N #1
\exp_after:wN \__zhnum_read_zeros_loop:N
- \tex_romannumeral:D -`0 \exp_after:wN \use:n
+ \exp:w \exp_end_continue_f:w \exp_after:wN \use:n
\else:
\exp_after:wN \__zhnum_read_abs_loop:Nw
\exp_after:wN #1
@@ -170,7 +172,7 @@
{ \__zhnum_output:nnwnn { + \c_one } #1 }
{ \quark_if_recursion_tail_stop_do:Nn #1 { \__zhnum_loop_end:wnn } }
\exp_after:wN \__zhnum_read_abs_loop:Nw
- \tex_romannumeral:D -`0 \use:n #2 \q_recursion_stop
+ \exp:w \exp_end_continue_f:w \use:n #2 \q_recursion_stop
}
\cs_new:Npn \__zhnum_output:nnwnn #1#2#3 \__zhnum_result:nn #4#5
{ #3 \__zhnum_result:nn { #4#1 } { #5#2 } }
@@ -304,14 +306,14 @@
\exp_after:wN \__zhnum_read_digits:w
\tex_number:D
\exp_after:wN \__zhnum_read_sign_loop:NN \exp_after:wN #1
- \tex_romannumeral:D -`0 \use:n
+ \exp:w \exp_end_continue_f:w \use:n
#2 \exp_stop_f: \q_recursion_tail \q_recursion_stop
}
\cs_new:Npn \__zhnum_read_sign_loop:NN #1#2
{
\if:w + \if:w - \exp_not:N #2 + \fi: \exp_not:N #2
\exp_after:wN \__zhnum_read_sign_loop:NN \exp_after:wN #1
- \tex_romannumeral:D -`0 \exp_after:wN \use:n
+ \exp:w \exp_end_continue_f:w \exp_after:wN \use:n
\else:
1 \exp_after:wN ;
\exp_after:wN \__zhnum_read_digits_loop:NN
@@ -328,7 +330,7 @@
\if:w .\exp_not:N #2 \exp_after:wN \c__zhnum_dot_tl \fi:
}
\exp_after:wN \__zhnum_read_digits_loop:NN \exp_after:wN #1
- \tex_romannumeral:D -`0 \use:n
+ \exp:w \exp_end_continue_f:w \use:n
}
\cs_new:Npn \__zhnum_read_digits:w #1 ;
{
@@ -427,16 +429,13 @@
}
\cs_new:Npn \zhtime #1
{ \__zhnum_time:ww #1 \q_stop }
-\group_begin:
-\char_set_lccode:nn { `\; } { `\: }
-\tl_to_lowercase:n
+\use:x
{
- \group_end:
- \cs_new:Npn \__zhnum_time:ww #1 ; #2 \q_stop
- {
- \zhnum_check_time:Nn \zhnum_int:n {#1} \c__zhnum_hour_tl
- \zhnum_check_time:Nn \zhnum_int:n {#2} \c__zhnum_minute_tl
- }
+ \cs_new:Npn \exp_not:N \__zhnum_time:ww ##1 \c_colon_str ##2 \exp_not:N \q_stop
+ }
+ {
+ \zhnum_check_time:Nn \zhnum_int:n {#1} \c__zhnum_hour_tl
+ \zhnum_check_time:Nn \zhnum_int:n {#2} \c__zhnum_minute_tl
}
\cs_new_nopar:Npn \zhcurrtime
{
@@ -733,16 +732,16 @@
{ \cs_set_eq:NN \zhnum_set_alias:NN \tl_set_eq:NN }
\cs_new_protected:Npn \zhnum_load_cfg:n #1
{
- \zhnum_set_cfg_name:Nn \l__zhnum_cfg_tl {#1}
- \tl_if_eq:NNF \l__zhnum_cfg_tl \l__zhnum_last_cfg_tl
+ \zhnum_set_cfg_name:Nn \l__zhnum_cfg_str {#1}
+ \str_if_eq:NNF \l__zhnum_cfg_str \l__zhnum_last_cfg_str
{ \zhnum_update_cfg:n {#1} }
\zhnum_parse_config:
}
\cs_generate_variant:Nn \zhnum_load_cfg:n { o }
\cs_new_protected:Npn \zhnum_update_cfg:n #1
{
- \prop_if_exist:cTF { g__zhnum_cfg_ \l__zhnum_cfg_tl _prop }
- { \tl_set_eq:NN \l__zhnum_last_cfg_tl \l__zhnum_cfg_tl }
+ \prop_if_exist:cTF { g__zhnum_cfg_ \l__zhnum_cfg_str _prop }
+ { \str_set_eq:NN \l__zhnum_last_cfg_str \l__zhnum_cfg_str }
{ \zhnum_input_cfg:n {#1} }
\__zhnum_update_cfg_prop:N \prop_set_eq:Nc
}
@@ -764,10 +763,10 @@
}
\cs_new_protected:Npn \__zhnum_update_cfg_prop:N #1
{
- #1 \l__zhnum_cfg_map_prop { g__zhnum_cfg_ \l__zhnum_cfg_tl _prop }
- #1 \l__zhnum_cfg_map_var_prop { g__zhnum_cfg_var_ \l__zhnum_cfg_tl _prop }
- #1 \l__zhnum_cfg_map_finan_prop { g__zhnum_cfg_finan_ \l__zhnum_cfg_tl _prop }
- #1 \l__zhnum_cfg_map_ganzhi_prop { g__zhnum_cfg_ganzhi_ \l__zhnum_cfg_tl _prop }
+ #1 \l__zhnum_cfg_map_prop { g__zhnum_cfg_ \l__zhnum_cfg_str _prop }
+ #1 \l__zhnum_cfg_map_var_prop { g__zhnum_cfg_var_ \l__zhnum_cfg_str _prop }
+ #1 \l__zhnum_cfg_map_finan_prop { g__zhnum_cfg_finan_ \l__zhnum_cfg_str _prop }
+ #1 \l__zhnum_cfg_map_ganzhi_prop { g__zhnum_cfg_ganzhi_ \l__zhnum_cfg_str _prop }
}
\cs_new_protected:Npn \__zhnum_prop_initial:Nn #1#2
{
@@ -776,8 +775,8 @@
}
\cs_new_protected:Npn \__zhnum_prop_gset_eq:Nn #1#2
{ \prop_gset_eq:cN {#2} #1 }
-\tl_new:N \l__zhnum_cfg_tl
-\tl_new:N \l__zhnum_last_cfg_tl
+\str_new:N \l__zhnum_cfg_str
+\str_new:N \l__zhnum_last_cfg_str
\bool_new:N \l__zhnum_reset_bool
\msg_new:nnnn { zhnumber } { file-not-found }
{ File~`#1'~not~found. }
@@ -785,13 +784,12 @@
The~requested~file~could~not~be~found~in~the~current~directory,~
in~the~TeX~search~path~or~in~the~LaTeX~search~path.
}
-\pdftex_if_engine:TF
+\bool_if:nTF
{
- \str_if_eq_x:nnTF
- { \token_to_str:N \kchar }
- { \token_to_meaning:N \kchar }
+ \sys_if_engine_xetex_p: ||
+ \sys_if_engine_luatex_p: ||
+ \sys_if_engine_uptex_p:
}
- { \use_i:nn }
{
\cs_new_eq:NN \zhnum_if_unicode_engine_p: \c_true_bool
\cs_new_eq:NN \zhnum_if_unicode_engine:TF \use_i:nn
@@ -804,8 +802,8 @@
\cs_new_eq:NN \zhnum_set_catcode: \prg_do_nothing:
\cs_new_protected:Npn \zhnum_set_cfg_name:Nn #1#2
{
- \tl_set:Nx \l__zhnum_encoding_tl {#2}
- \tl_set:Nx #1 { \tl_to_str:N \l__zhnum_encoding_tl }
+ \str_set:Nx \l__zhnum_encoding_str {#2}
+ \str_set_eq:NN #1 \l__zhnum_encoding_str
}
\cs_new_eq:NN \zhnum_reset_config: \zhnum_parse_config:
\else:
@@ -813,7 +811,7 @@
{ \bool_if:NT \l__zhnum_active_char_bool { \zhnum_set_active: } }
\cs_new_protected_nopar:Npn \zhnum_set_active:
{
- \str_case:onTF { \l__zhnum_encoding_tl }
+ \str_case:onTF { \l__zhnum_encoding_str }
{
{ gbk } { \int_set:Nn \l__zhnum_byte_min_int { "81 } }
{ big5 } { \int_set:Nn \l__zhnum_byte_min_int { "A1 } }
@@ -831,16 +829,15 @@
\int_new:N \l__zhnum_byte_max_int
\cs_new_protected:Npn \zhnum_set_cfg_name:Nn #1#2
{
- \tl_set:Nx \l__zhnum_encoding_tl {#2}
- \tl_set:Nx #1
+ \str_set:Nx \l__zhnum_encoding_str {#2}
+ \str_set:Nx #1
{
- \tl_to_str:N \l__zhnum_encoding_tl
- \bool_if:NT \l__zhnum_active_char_bool
- { \tl_to_str:n { _active } }
+ \l__zhnum_encoding_str
+ \bool_if:NT \l__zhnum_active_char_bool { _active }
}
}
\cs_new_protected_nopar:Npn \zhnum_reset_config:
- { \zhnum_load_cfg:o { \l__zhnum_encoding_tl } }
+ { \zhnum_load_cfg:o { \l__zhnum_encoding_str } }
\bool_new:N \l__zhnum_active_char_bool
\bool_set_true:N \l__zhnum_active_char_bool
\fi:
@@ -849,9 +846,9 @@
encoding .choices:nn =
{ UTF8 , GBK , Big5 }
{
- \exp_args:Nx \tex_lowercase:D
- { \tl_set:Nn \exp_not:N \l__zhnum_encoding_tl { \l_keys_choice_tl } }
- \zhnum_load_cfg:o { \l__zhnum_encoding_tl }
+ \str_set:Nx \l__zhnum_encoding_str
+ { \str_fold_case:V \l_keys_choice_tl }
+ \zhnum_load_cfg:o { \l__zhnum_encoding_str }
} ,
encoding .default:n = { GBK } ,
encoding / Bg5 .meta:n = { encoding = Big5 } ,
@@ -890,7 +887,7 @@
{ \cs_set_eq:NN \zhnum_ganzhi:nnn \zhnum_ganzhi_normal:nnn } ,
ganzhi-cyclic .default:n = { true } ,
}
-\tl_new:N \l__zhnum_encoding_tl
+\str_new:N \l__zhnum_encoding_str
\msg_new:nnnn { zhnumber } { encoding-invalid }
{ The~encoding~`#1'~is~invalid. }
{ Available~encodings~are~`UTF8',~`GBK'~and~`Big5'. }
@@ -901,7 +898,7 @@
}
\keys_set:nn { zhnum / options } { style , time }
\ProcessKeysOptions { zhnum / options }
-\tl_if_empty:NT \l__zhnum_encoding_tl
+\str_if_empty:NT \l__zhnum_encoding_str
{
\zhnum_if_unicode_engine:TF
{ \keys_set:nn { zhnum / options } { encoding = UTF8 } }