summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty')
-rw-r--r--Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty165
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'.