diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty | 165 |
1 files changed, 94 insertions, 71 deletions
diff --git a/Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty b/Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty index d7d01c820ec..9f497f7d79d 100644 --- a/Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty +++ b/Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty @@ -22,103 +22,126 @@ %% %% The Current Maintainer of this work is Xiangdong Zeng. %% -%% This work consists of the files zhlipsum.dtx -%% zhlipsum.ins -%% README.md -%% and the derived files zhlipsum.pdf -%% zhlipsum.sty -%% zhlipsum-zh-cn.def. +%% This work consists of the file zhlipsum.dtx, +%% and the derived files zhlipsum.ins, +%% zhlipsum.sty, +%% zhlipsum-zh-cn-utf8.def, +%% zhlipsum-zh-cn-gbk.def, +%% zhlipsum-example-utf8.tex, +%% zhlipsum-example-gbk.tex, +%% zhlipsum.pdf, +%% and README.md. %% \NeedsTeXFormat{LaTeX2e} -\RequirePackage{expl3,xparse} -\GetIdInfo $Id: zhlipsum.dtx 0.3 2017-07-28 12:00:00Z Xiangdong Zeng $ +\RequirePackage{expl3} +\GetIdInfo $Id: zhlipsum.dtx 0.4 2017-09-16 12:00:00Z Xiangdong Zeng <pssysrq@163.com> $ {Chinese dummy text} \ProvidesExplPackage{\ExplFileName} {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} +\RequirePackage { xparse, l3keys2e } \str_new:N \l__zhlipsum_tmpa_str -\str_new:N \l__zhlipsum_lang_code_str -\str_const:Nn \c__zhlipsum_text_cs_prefix { c__zhlipsum_text_ } -\str_const:Nn \c__zhlipsum_text_cs_suffix { _tl } +\tl_new:N \g__zhlipsum_encoding_tl \int_const:Nn \c__zhlipsum_max_par_number_int { 50 } -\cs_new:Npn \__zhlipsum_print_single:N #1 +\bool_lazy_any:nTF { - \str_set:Nx \l__zhlipsum_tmpa_str - { \int_to_roman:n { #1 } } - \str_set:Nn \l__zhlipsum_lang_code_str - { zh_cn_ } - \str_put_left:Nx \l__zhlipsum_tmpa_str - \l__zhlipsum_lang_code_str - \str_put_left:Nx \l__zhlipsum_tmpa_str - \c__zhlipsum_text_cs_prefix - \str_put_right:Nx \l__zhlipsum_tmpa_str - \c__zhlipsum_text_cs_suffix -%% Print paragrapf number string. For debug. - \use:c { \str_use:N \l__zhlipsum_tmpa_str } + { \sys_if_engine_xetex_p: } + { \sys_if_engine_luatex_p: } + { \sys_if_engine_uptex_p: } } -\int_new:N \l__zhlipsum_begin_int -\int_new:N \l__zhlipsum_end_int -\int_new:N \l__zhlipsum_step_int -\cs_new:Npn \__zhlipsum_process_par_number:nn #1 #2 + { \cs_new_eq:NN \__zhlipsum_if_unicode_engine:TF \use_i:nn } + { \cs_new_eq:NN \__zhlipsum_if_unicode_engine:TF \use_ii:nn } +\cs_new:Npn \__zhlipsum_input_def_file:N #1 + { \exp_args:Nx \file_input:n { zhlipsum-zh-cn- #1 .def } } +\keys_define:nn { zhlipsum / option } { - \int_compare:nTF { #1 <= \c__zhlipsum_max_par_number_int } - { \int_set:Nn \l__zhlipsum_begin_int { #1 } } - { - \int_set_eq:NN \l__zhlipsum_begin_int - \c__zhlipsum_max_par_number_int - } - \IfNoValueTF { #2 } - { - \int_set_eq:NN \l__zhlipsum_end_int - \l__zhlipsum_begin_int - } + encoding .choice:, + encoding / UTF8 .code:n = + { \tl_set:Nn \g__zhlipsum_encoding_tl { utf8 } }, + encoding / GBK .code:n = { - \int_compare:nTF { #2 <= \c__zhlipsum_max_par_number_int } - { \int_set:Nn \l__zhlipsum_end_int { #2 } } + \__zhlipsum_if_unicode_engine:TF { - \int_set_eq:NN \l__zhlipsum_end_int - \c__zhlipsum_max_par_number_int + \tl_set:Nn \g__zhlipsum_encoding_tl { utf8 } + \msg_warning:nn { zhlipsum } { unicode-engine } } - } - \int_compare:nTF - { \l__zhlipsum_begin_int <= \l__zhlipsum_end_int } - { \int_set_eq:NN \l__zhlipsum_step_int \c_one } - { \int_set:Nn \l__zhlipsum_step_int { -1 } } + { \tl_set:Nn \g__zhlipsum_encoding_tl { gbk } } + }, + encoding / unknown .code:n = + { \msg_error:nnn { zhlipsum } { encoding-invalid } {#1} }, + encoding .value_required:n = true, + encoding .initial:n = { UTF8 }, + unknown .code:n = + { \msg_error:nn { zhlipsum } { unknown-option } } } -\cs_new:Npn \zhlipsum_print_multi_par:nn #1 #2 +\msg_new:nnn { zhlipsum } { unicode-engine } { - \__zhlipsum_process_par_number:nn { #1 } { #2 } - \int_step_inline:nnnn - { \l__zhlipsum_begin_int } - { \l__zhlipsum_step_int } - { \l__zhlipsum_end_int } - { - \__zhlipsum_print_single:N { ##1 } - \par - } + You~ are~ now~ using~ Unicode~ engine~ \c_sys_engine_str. \\ + Encoding~ "GBK"~ is~ invalid.~ Changed~ into~ UTF8. } -\cs_new:Npn \zhlipsum_print_multi_no_par:nn #1 #2 +\msg_new:nnn { zhlipsum } { encoding-invalid } { - \__zhlipsum_process_par_number:nn { #1 } { #2 } - \int_step_inline:nnnn - { \l__zhlipsum_begin_int } - { \l__zhlipsum_step_int } - { \l__zhlipsum_end_int } - { - \__zhlipsum_print_single:N { ##1 } - } + Encoding~ "#1"~ is~ invalid. \\ + Available~ encodings~ are~ "UTF8"~ and~ "GBK". } +\msg_new:nnn { zhlipsum } { unknown-option } + { Package~ option~ "\l_keys_key_tl"~ is~ unknown. } +\ProcessKeysOptions { zhlipsum / option } +\__zhlipsum_input_def_file:N \g__zhlipsum_encoding_tl \NewDocumentCommand \zhlipsum { s >{ \SplitArgument { 1 } { - } } O{ 1 - 3 } } { + \__zhlipsum_process_par_number:nn #2 \par - \IfBooleanTF { #1 } + \IfBooleanTF {#1} { - \zhlipsum_print_multi_no_par:nn #2 + \zhlipsum_print_multi_no_par:VVV + \l__zhlipsum_begin_int \l__zhlipsum_step_int \l__zhlipsum_end_int \par } - { \zhlipsum_print_multi_par:nn #2 } + { + \zhlipsum_print_multi:VVV + \l__zhlipsum_begin_int \l__zhlipsum_step_int \l__zhlipsum_end_int + } + } +\int_new:N \l__zhlipsum_begin_int +\int_new:N \l__zhlipsum_end_int +\int_new:N \l__zhlipsum_step_int +\cs_new:Npn \__zhlipsum_process_par_number:nn #1#2 + { + \__zhlipsum_process_par_number_aux:Nn \l__zhlipsum_begin_int {#1} + \IfNoValueTF {#2} + { \int_set_eq:NN \l__zhlipsum_end_int \l__zhlipsum_begin_int } + { \__zhlipsum_process_par_number_aux:Nn \l__zhlipsum_end_int {#2} } + \int_compare:nTF + { \l__zhlipsum_begin_int <= \l__zhlipsum_end_int } + { \int_set_eq:NN \l__zhlipsum_step_int \c_one } + { \int_set:Nn \l__zhlipsum_step_int { -1 } } + } +\cs_new:Npn \__zhlipsum_process_par_number_aux:Nn #1#2 + { + \int_compare:nTF { #2 <= \c__zhlipsum_max_par_number_int } + { \int_set:Nn #1 {#2} } + { \int_set_eq:NN #1 \c__zhlipsum_max_par_number_int } + } +\cs_new:Npn \zhlipsum_print_multi:nnn #1#2#3 + { + \int_step_inline:nnnn {#1} {#2} {#3} + { \__zhlipsum_print_single:n {##1} \par } + } +\cs_generate_variant:Nn \zhlipsum_print_multi:nnn { VVV } +\cs_new:Npn \zhlipsum_print_multi_no_par:nnn #1#2#3 + { + \int_step_inline:nnnn {#1} {#2} {#3} + { \__zhlipsum_print_single:n {##1} } + } +\cs_generate_variant:Nn \zhlipsum_print_multi_no_par:nnn { VVV } +\cs_new:Npn \__zhlipsum_print_single:n #1 + { + \str_set:Nx \l__zhlipsum_tmpa_str { \int_to_roman:n {#1} } + \str_put_left:Nn \l__zhlipsum_tmpa_str { c__zhlipsum_text_zh_cn_ } + \str_put_right:Nn \l__zhlipsum_tmpa_str { _tl } + \use:c { \str_use:N \l__zhlipsum_tmpa_str } } -\file_input:n { zhlipsum-zh-cn.def } \endinput %% %% End of file `zhlipsum.sty'. |