diff options
author | Karl Berry <karl@freefriends.org> | 2018-01-06 21:54:29 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-01-06 21:54:29 +0000 |
commit | 3af3ed68e9471efe28f233a3ac2fe97c2dad1f2c (patch) | |
tree | d325bf1c7f28369df2dc9701a45dbeeec1d0f990 /Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty | |
parent | 09d8a2ec38ae288b52a27f8681c3327ef0e58d8b (diff) |
zhlipsum (6jan18)
git-svn-id: svn://tug.org/texlive/trunk@46233 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty | 126 |
1 files changed, 97 insertions, 29 deletions
diff --git a/Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty b/Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty index 9f497f7d79d..548f5351512 100644 --- a/Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty +++ b/Master/texmf-dist/tex/latex/zhlipsum/zhlipsum.sty @@ -6,7 +6,7 @@ %% %% zhlipsum.dtx (with options: `package') %% -%% Copyright (C) 2017 by Xiangdong Zeng <pssysrq@163.com> +%% Copyright (C) 2017, 2018 by Xiangdong Zeng <pssysrq@163.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -25,23 +25,40 @@ %% 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-utf8.def, +%% zhlipsum-gbk.def, +%% zhlipsum-big5.def, %% zhlipsum-example-utf8.tex, %% zhlipsum-example-gbk.tex, +%% zhlipsum-example-big5.tex, +%% zhlipsum-en.tex, %% zhlipsum.pdf, +%% zhlipsum-en.pdf, %% and README.md. %% \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\GetIdInfo $Id: zhlipsum.dtx 0.4 2017-09-16 12:00:00Z Xiangdong Zeng <pssysrq@163.com> $ +\GetIdInfo $Id: zhlipsum.dtx 0.5 2018-01-06 12:00:00Z Xiangdong Zeng <pssysrq@163.com> $ {Chinese dummy text} \ProvidesExplPackage{\ExplFileName} {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} \RequirePackage { xparse, l3keys2e } +\msg_new:nnn { zhlipsum } { l3-too-old } + { + Package~ "#1"~ is~ too~ old. \\\\ + Please~ update~ an~ up-to-date~ version~ of~ the~ bundles \\ + "l3kernel"~ and~ "l3packages"~ using~ your~ TeX~ package \\ + manager~ or~ from~ CTAN. + } +\clist_map_inline:nn { expl3, xparse, l3keys2e } + { + \@ifpackagelater {#1} { 2017/12/16 } + { } { \msg_error:nnn { zhlipsum } { l3-too-old } {#1} } + } \str_new:N \l__zhlipsum_tmpa_str \tl_new:N \g__zhlipsum_encoding_tl \int_const:Nn \c__zhlipsum_max_par_number_int { 50 } +\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { Vn } { T, TF } \bool_lazy_any:nTF { { \sys_if_engine_xetex_p: } @@ -50,58 +67,108 @@ } { \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 } } +\cs_new:Npn \__zhlipsum_input_def_file:n #1 + { \file_input:n { zhlipsum- #1 .def } } +\cs_generate_variant:Nn \__zhlipsum_input_def_file:n { V } +\cs_new_eq:NN \__zhlipsum_par: \tex_par:D \keys_define:nn { zhlipsum / option } { encoding .choice:, - encoding / UTF8 .code:n = + encoding / utf8 .code:n = { \tl_set:Nn \g__zhlipsum_encoding_tl { utf8 } }, - encoding / GBK .code:n = + encoding / gbk .code:n = { \__zhlipsum_if_unicode_engine:TF { \tl_set:Nn \g__zhlipsum_encoding_tl { utf8 } - \msg_warning:nn { zhlipsum } { unicode-engine } + \msg_warning:nnn { zhlipsum } { unicode-engine } { gbk } } - { \tl_set:Nn \g__zhlipsum_encoding_tl { gbk } } + { \tl_set:Nn \g__zhlipsum_encoding_tl { gbk } } + }, + encoding / big5 .code:n = + { + \__zhlipsum_if_unicode_engine:TF + { + \tl_set:Nn \g__zhlipsum_encoding_tl { utf8 } + \msg_warning:nnn { zhlipsum } { unicode-engine } { big5 } + } + { \tl_set:Nn \g__zhlipsum_encoding_tl { big5 } } }, encoding / unknown .code:n = { \msg_error:nnn { zhlipsum } { encoding-invalid } {#1} }, encoding .value_required:n = true, - encoding .initial:n = { UTF8 }, + encoding .initial:n = { utf8 }, unknown .code:n = { \msg_error:nn { zhlipsum } { unknown-option } } } \msg_new:nnn { zhlipsum } { unicode-engine } { You~ are~ now~ using~ Unicode~ engine~ \c_sys_engine_str. \\ - Encoding~ "GBK"~ is~ invalid.~ Changed~ into~ UTF8. + Encoding~ "#1"~ is~ invalid.~ Changed~ into~ "utf8". } \msg_new:nnn { zhlipsum } { encoding-invalid } { Encoding~ "#1"~ is~ invalid. \\ - Available~ encodings~ are~ "UTF8"~ and~ "GBK". + Available~ encodings~ are~ "utf8",~ "gbk"~ and~ "big5". } \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_input_def_file:V \g__zhlipsum_encoding_tl +\str_new:N \l__zhlipsum_script_str +\keys_define:nn { zhlipsum } { - \__zhlipsum_process_par_number:nn #2 - \par - \IfBooleanTF {#1} + script .choice:, + script / simp .code:n = { - \zhlipsum_print_multi_no_par:VVV - \l__zhlipsum_begin_int \l__zhlipsum_step_int \l__zhlipsum_end_int - \par - } - { - \zhlipsum_print_multi:VVV - \l__zhlipsum_begin_int \l__zhlipsum_step_int \l__zhlipsum_end_int - } + \str_set:Nn \l__zhlipsum_script_str { simp } + \tl_if_eq:VnT \g__zhlipsum_encoding_tl { big5 } + { + \str_set:Nn \l__zhlipsum_script_str { trad } + \msg_warning:nn { zhlipsum } { big5-require-trad } + } + }, + script / trad .code:n = + { \str_set:Nn \l__zhlipsum_script_str { trad } }, + script / unknown .code:n = + { \msg_error:nnn { zhlipsum } { script-invalid } {#1} }, + script .value_required:n = true + } +\msg_new:nnn { zhlipsum } { big5-require-trad } + { + "script=simp"~ is~ not~ available~ in~ "BIG5"~ encoding.\\ + Changed~ into~ "script=trad". + } +\msg_new:nnn { zhlipsum } { script-invalid } + { + Script~ "#1"~ is~ unknown. \\ + Available~ scripts~ are~ "simp"~ and~ "trad". + } +\tl_if_eq:VnTF \g__zhlipsum_encoding_tl { big5 } + { \keys_set:nn { zhlipsum } { script = trad } } + { \keys_set:nn { zhlipsum } { script = simp } } +\NewDocumentCommand \zhlipsum + { s >{ \SplitArgument { 1 } { - } } O{ 1 - 3 } o } + { + \group_begin: + \__zhlipsum_process_par_number:nn #2 + \IfValueT {#3} { \keys_set:nn { zhlipsum } {#3} } + \__zhlipsum_par: + \IfBooleanTF {#1} + { + \zhlipsum_print_multi_no_par:VVV + \l__zhlipsum_begin_int + \l__zhlipsum_step_int + \l__zhlipsum_end_int + \__zhlipsum_par: + } + { + \zhlipsum_print_multi:VVV + \l__zhlipsum_begin_int + \l__zhlipsum_step_int + \l__zhlipsum_end_int + } + \group_end: } \int_new:N \l__zhlipsum_begin_int \int_new:N \l__zhlipsum_end_int @@ -126,7 +193,7 @@ \cs_new:Npn \zhlipsum_print_multi:nnn #1#2#3 { \int_step_inline:nnnn {#1} {#2} {#3} - { \__zhlipsum_print_single:n {##1} \par } + { \__zhlipsum_print_single:n {##1} \__zhlipsum_par: } } \cs_generate_variant:Nn \zhlipsum_print_multi:nnn { VVV } \cs_new:Npn \zhlipsum_print_multi_no_par:nnn #1#2#3 @@ -138,7 +205,8 @@ \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_left:Nx \l__zhlipsum_tmpa_str + { c__zhlipsum_text_ \l__zhlipsum_script_str _ } \str_put_right:Nn \l__zhlipsum_tmpa_str { _tl } \use:c { \str_use:N \l__zhlipsum_tmpa_str } } |