diff options
author | Karl Berry <karl@freefriends.org> | 2017-09-16 20:45:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-09-16 20:45:41 +0000 |
commit | 1e3a3ba35d94c55dd0486d738e887d704eac7589 (patch) | |
tree | f11e960a1beab7d56538443d65467ead5464a39b /Master/texmf-dist/source/latex/zhlipsum/zhlipsum.dtx | |
parent | 3d37034cd0e9282746768a103efd422d50cd46b0 (diff) |
zhlipsum (16sep17)
git-svn-id: svn://tug.org/texlive/trunk@45317 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/zhlipsum/zhlipsum.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/zhlipsum/zhlipsum.dtx | 738 |
1 files changed, 485 insertions, 253 deletions
diff --git a/Master/texmf-dist/source/latex/zhlipsum/zhlipsum.dtx b/Master/texmf-dist/source/latex/zhlipsum/zhlipsum.dtx index 4806768438e..52de96478bd 100644 --- a/Master/texmf-dist/source/latex/zhlipsum/zhlipsum.dtx +++ b/Master/texmf-dist/source/latex/zhlipsum/zhlipsum.dtx @@ -16,23 +16,154 @@ % % 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. -% -% \fi -% -% \iffalse +% 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. +% +%<*internal> +\iffalse +%</internal> +% +%<*readme> +# zhlipsum - Chinese dummy text + +[![Build Status](https://travis-ci.org/Stone-Zeng/zhlipsum.svg?branch=master)](https://travis-ci.org/Stone-Zeng/zhlipsum) +[![CTAN](https://img.shields.io/ctan/v/zhlipsum.svg)](https://www.ctan.org/pkg/zhlipsum) +[![GitHub release](https://img.shields.io/github/release/Stone-Zeng/zhlipsum/all.svg)](https://github.com/Stone-Zeng/zhlipsum/releases/latest) + +## Introduction + +This package provides an interface to dummy text in Chinese, which +will be useful for testing Chinese documents. + +`zhlipsum` supports both UTF-8 and GBK encoding. + +## Basic usage + +```tex +\zhlipsum[3] +\zhlipsum*[1-5] +``` + +More information can be found in the package documentation +[zhlipsum.pdf](http://mirrors.ctan.org/macros/latex/contrib/zhlipsum/zhlipsum.pdf). + +## License + +This work may be distributed and/or modified under the conditions of +the [LaTeX Project Public License](http://www.latex-project.org/lppl.txt), +either version 1.3c of this license or (at your option) any later +version. +%</readme> +% +%<*internal> +\fi +\begingroup + \def\NameOfLaTeXe{LaTeX2e} +\expandafter\endgroup\ifx\NameOfLaTeXe\fmtname\else +\csname fi\endcsname +%</internal> +% +%<*install> +\input ctxdocstrip.tex +\keepsilent + +\preamble + + Copyright (C) 2017 by Xiangdong Zeng <pssysrq@163.com> + + This work may be distributed and/or modified under the + conditions of the LaTeX Project Public License, either + version 1.3c of this license or (at your option) any later + version. The latest version of this license is in: + + http://www.latex-project.org/lppl.txt + + and version 1.3 or later is part of all distributions of + LaTeX version 2005/12/01 or later. + + This work has the LPPL maintenance status `maintained'. + + The Current Maintainer of this work is Xiangdong Zeng. + + 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. + +\endpreamble + +\generate{ + \usedir{tex/latex/zhlipsum} + \file{\jobname.sty} {\from{\jobname.dtx}{package}} + \file{\jobname-zh-cn-utf8.def} {\from{\jobname.dtx}{zh-cn,utf8}} + \file{\jobname-zh-cn-gbk.def} {\from{\jobname.dtx}{zh-cn,gbk}} +%</install> +%<*internal> + \usedir{source/latex/zhlipsum} + \file{\jobname.ins} {\from{\jobname.dtx}{install}} +%</internal> +%<*install> + \usedir{doc/latex/zhlipsum/example} + \usepreamble\emptypreamble + \usepostamble\emptypostamble + \file{\jobname-example-utf8.tex} {\from{\jobname.dtx}{ex-utf8}} + \file{\jobname-example-gbk.tex} {\from{\jobname.dtx}{ex-gbk}} + \usedir{doc/latex/zhlipsum} + \nopreamble\nopostamble + \file{README.md} {\from{\jobname.dtx}{readme}} +} + +\obeyspaces +\Msg{****************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the *} +\Msg{* following file into a directory searched by TeX: *} +\Msg{* *} +\Msg{* zhlipsum.sty *} +\Msg{* zhlipsum-zh-cn-utf8.def *} +\Msg{* zhlipsum-zh-cn-gbk.def *} +\Msg{* *} +\Msg{* The recommended directory is *} +\Msg{* TDS:tex/latex/zhlipsum *} +\Msg{* *} +\Msg{* To produce the documentation run the file *} +\Msg{* zhlipsum.dtx through XeLaTeX. *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{****************************************************} + +\endbatchfile +%</install> +% +%<*internal> +\fi +%</internal> % %<package>\NeedsTeXFormat{LaTeX2e} -%<package>\RequirePackage{expl3,xparse} -%<package|zh-cn>\GetIdInfo $Id: zhlipsum.dtx 0.3 2017-07-28 12:00:00Z Xiangdong Zeng $ -%<driver|package> {Chinese dummy text} -%<zh-cn> {Simplified Chinese dummy text (for zhlipsum)} -% +%<package>\RequirePackage{expl3} +%<*!(driver|install|ex-utf8|ex-gbk)> +%<!readme>\GetIdInfo $Id: zhlipsum.dtx 0.4 2017-09-16 12:00:00Z Xiangdong Zeng <pssysrq@163.com> $ +%<package> {Chinese dummy text} +%<package>\ProvidesExplPackage{\ExplFileName} +%<zh-cn&utf8> {Simplified Chinese dummy text with UTF8 encoding (for zhlipsum)} +%<zh-cn&utf8>\ProvidesExplFile{\ExplFileName-zh-cn-utf8.def} +%<zh-cn&gbk> {Simplified Chinese dummy text with GBK encoding (for zhlipsum)} +%<zh-cn&gbk>\ProvidesExplFile{\ExplFileName-zh-cn-gbk.def} +%<!readme> {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} +%</!(driver|install|ex-utf8|ex-gbk)> %<*driver> \documentclass{ctxdoc} \sisetup{ @@ -41,15 +172,16 @@ group-digits = true, group-minimum-digits = 4, group-separator = \text{~}, - range-phrase = \symbol{65374}, + range-phrase = \symbol{"FF5E}, separate-uncertainty = true } \hypersetup{ - pdftitle = {zhlipsum:中文乱数假文(Lorem ipsum)}, + pdftitle = {zhlipsum: 中文乱数假文(Lorem ipsum)}, pdfauthor = {曾祥东}, bookmarksopen = true, bookmarksnumbered = true } +\DoNotIndex{\\} \EnableCrossrefs \CodelineIndex \RecordChanges @@ -63,8 +195,11 @@ % \changes{v0.2}{2017/04/14}{仿照 \pkg{kantlipsum} 宏包,实现 % 任意的段落选取。} % \changes{v0.2}{2017/04/14}{使用名字空间。} +% \changes{v0.4}{2017/09/16}{将安装、测试文件集成进源文件。} +% \changes{v0.4}{2017/09/16}{新增 \opt{encoding} 选项。} +% \changes{v0.4}{2017/09/16}{优化宏包实现。} % -% \CheckSum{0} +% \CheckSum{121} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -84,15 +219,15 @@ % % ^^A标题页页边距。 % \newgeometry{ -% left = 3.18 cm, -% right = 3.18 cm, -% top = 3.18 cm, -% bottom = 3.18 cm +% left = 1.25 in, +% right = 1.25 in, +% top = 1.25 in, +% bottom = 1.00 in % } % -% \title{\textbf{zhlipsum:中文乱数假文(Lorem ipsum)}} +% \title{\textbf{zhlipsum: 中文乱数假文(Lorem ipsum)}} % \author{曾祥东} -% \date{2017/07/28 \quad v0.3\thanks{\url{https://github.com/Stone-Zeng/zhlipsum}.}} +% \date{2017/09/16 \quad v0.4\thanks{\url{https://github.com/Stone-Zeng/zhlipsum}.}} % \maketitle % % \begin{minipage}{0.9\textwidth} @@ -147,31 +282,39 @@ % % ^^A\restoregeometry % \newgeometry{ -% left = 6.35 cm, -% right = 2.54 cm, -% top = 3.18 cm, -% bottom = 2.54 cm +% left = 2.50 in, +% right = 1.00 in, +% top = 1.25 in, +% bottom = 1.00 in % } % % \section{使用说明} +% \begin{function}[added=2017-09-16]{encoding} +% \begin{syntax} +% encoding = <(UTF8)|GBK> +% \end{syntax} +% 用于指定编码的宏包选项,可以在调用宏包的时候设定,默认为 +% UTF8。对于 \XeLaTeX{}、\LuaLaTeX{} 和 \upLaTeX{} 等 Unicode +% 引擎,GBK 编码无效,宏包将强制使用 UTF8 编码。 +% \end{function} +% % \begin{function}{\zhlipsum} % \begin{syntax} % \cs{zhlipsum}\oarg{段落} % \end{syntax} % 插入假文文本,每段之间会分段。 +% \end{function} % -% 只给定一个参数时,将输出对应序号的段落, -% 如 |\zhlipsum[17]| 将生成第 17 段。 -% 给定两个参数并用“|-|”连接时, -% 则会输出该范围内的段落。 -% 如 |\zhlipsum[5-34]| 将生成第 5 至第 34 段假文。 +% 只给定一个参数时,将输出对应序号的段落,如 |\zhlipsum[17]| 将 +% 生成第 17 段。给定两个参数并用“|-|”连接时,则会输出该范围内的 +% 段落。如 |\zhlipsum[5-34]| 将生成第 5 至 34 段假文。没有指定可选 +% 参数时,默认输出第 1 至 3 段假文。 % -% 目前本宏包只提供了 50 段假文文本, -% 超出范围的数字一律按 50 处理。 -% 如 |\zhlipsum[48-55]| 将只会输出第 48、49 和第 50 段。 +% 目前本宏包只提供了 50 段假文文本,超出范围的数字一律按 50 处理。 +% 如 |\zhlipsum[51]| 将给出第 50 段,而 |\zhlipsum[48-55]| 将只会 +% 输出第 48、49 和第 50 段。 % -% 当前仅支持简体中文的假文,以“劳仑衣普桑”开头。 -% \end{function} +% 当前仅支持简体中文的假文,以“劳仑衣普桑”开头。 % % \begin{function}{\zhlipsum*} % \begin{syntax} @@ -181,22 +324,16 @@ % \end{function} % % \section{已知问题} -% \begin{enumerate} -% \item 本宏包中的假文文字使用 UTF-8 编码。用 \pdfLaTeX{} 编译时, -% 必须在 \pkg{ctex} 宏包或 \cls{ctexart} 等文档类中指明 -% |UTF8| 选项,否则将无法编译。 -% -% \item 用 |\zhlipsum*| 构建较长的单段假文文本时,可能会很慢。 -% 可能是因为 \TeX{} 的断行算法需耗费较多时间来处理长段落。 -% \end{enumerate} +% 用 |\zhlipsum*| 构建较长的单段假文文本时,可能会很慢。 +% 可能是因为 \TeX{} 的断行算法需耗费较多时间来处理长段落。 % % \StopEventually{ % ^^A索引部分页边距。 % \newgeometry{ -% left = 2.54 cm, -% right = 2.54 cm, -% top = 3.18 cm, -% bottom = 3.18 cm +% left = 1.00 in, +% right = 1.00 in, +% top = 1.25 in, +% bottom = 1.00 in % } % \ctexset{section / numbering = false} % \PrintChanges @@ -207,113 +344,168 @@ % % \section{实现细节} % -% 本宏包使用 \LaTeX3 语法编写,依赖于 \pkg{expl3} 环境。 % \begin{macrocode} -%<package>\ProvidesExplPackage{\ExplFileName} -%<zh-cn>\ProvidesExplFile{\ExplFileName} -%<package|zh-cn> {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} +%<*package> +%<@@=zhlipsum> % \end{macrocode} % -% \subsection{宏包主体} -% % \begin{macrocode} -%<*package> -%<@@=zhlipsum> +\RequirePackage { xparse, l3keys2e } % \end{macrocode} % -% \begin{macro}{\l_@@_tmpa_str} +% \subsection{内部变量和函数} +% +% \begin{variable}[int]{\l_@@_tmpa_str} % 临时变量。 % \begin{macrocode} \str_new:N \l_@@_tmpa_str % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\l_@@_lang_code_str, -% \c_@@_text_cs_prefix,\c_@@_text_cs_suffix} -% 假文每一段的命令形如 |\c__zhlipsum_text_语言代码_段落数_tl|, -% 其中的“段落数”用小写罗马数字表示。 -% 这几个字符串分别构成命令的几个部分。 +% \begin{variable}[int]{\g_@@_encoding_tl} +% 存放编码信息。 % \begin{macrocode} -\str_new:N \l_@@_lang_code_str -\str_const:Nn \c_@@_text_cs_prefix { c__zhlipsum_text_ } -\str_const:Nn \c_@@_text_cs_suffix { _tl } +\tl_new:N \g_@@_encoding_tl % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_max_par_number_int} +% \begin{variable}[int]{\c_@@_max_par_number_int} % 假文的最大段落数。目前设为 50。 % \begin{macrocode} \int_const:Nn \c_@@_max_par_number_int { 50 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\@@_print_single:N} -% \changes{v0.3}{2017/07/28}{改为内部函数。} -% 输出第 $n$ 段假文。 -% 方法是将段落数 $n$ 先转换成罗马数字,再组成完整命令。 -% 目前仅支持简体中文。 +% \begin{macro}[int,TF]{\@@_if_unicode_engine:} +% 判断是否为 Unicode 引擎。来自于 \pkg{zhnumber} 宏包。 % \begin{macrocode} -\cs_new:Npn \@@_print_single:N #1 +\bool_lazy_any:nTF { - \str_set:Nx \l_@@_tmpa_str - { \int_to_roman:n { #1 } } - \str_set:Nn \l_@@_lang_code_str - { zh_cn_ } - \str_put_left:Nx \l_@@_tmpa_str - \l_@@_lang_code_str - \str_put_left:Nx \l_@@_tmpa_str - \c_@@_text_cs_prefix - \str_put_right:Nx \l_@@_tmpa_str - \c_@@_text_cs_suffix -%% Print paragrapf number string. For debug. -%\str_use:N \l_@@_tmpa_str - \use:c { \str_use:N \l_@@_tmpa_str } + { \sys_if_engine_xetex_p: } + { \sys_if_engine_luatex_p: } + { \sys_if_engine_uptex_p: } } + { \cs_new_eq:NN \@@_if_unicode_engine:TF \use_i:nn } + { \cs_new_eq:NN \@@_if_unicode_engine:TF \use_ii:nn } % \end{macrocode} % \end{macro} % -% \begin{macro}{\l_@@_begin_int,\l_@@_end_int,\l_@@_step_int} -% 循环的开始、结束和步长。 +% \begin{macro}[int]{\@@_input_def_file:N} +% 读入定义文件。 % \begin{macrocode} -\int_new:N \l_@@_begin_int -\int_new:N \l_@@_end_int -\int_new:N \l_@@_step_int +\cs_new:Npn \@@_input_def_file:N #1 + { \exp_args:Nx \file_input:n { zhlipsum-zh-cn- #1 .def } } % \end{macrocode} % \end{macro} % -% \begin{macro}{\@@_process_par_number:nn} -% \changes{v0.3}{2017/07/28}{改为内部函数。} -% 处理段落数参数。 +% \subsection{宏包选项} +% +% \begin{macro}{encoding} +% 设置编码。 % \begin{macrocode} -\cs_new:Npn \@@_process_par_number:nn #1 #2 +\keys_define:nn { zhlipsum / option } { + encoding .choice:, + encoding / UTF8 .code:n = + { \tl_set:Nn \g_@@_encoding_tl { utf8 } }, + encoding / GBK .code:n = + { + \@@_if_unicode_engine:TF + { + \tl_set:Nn \g_@@_encoding_tl { utf8 } + \msg_warning:nn { zhlipsum } { unicode-engine } + } + { \tl_set:Nn \g_@@_encoding_tl { gbk } } + }, + encoding / unknown .code:n = + { \msg_error:nnn { zhlipsum } { encoding-invalid } {#1} }, + encoding .value_required:n = true, + encoding .initial:n = { UTF8 }, % \end{macrocode} -% 获得循环的开始位置。 +% \end{macro} +% +% 处理未知选项。 % \begin{macrocode} - \int_compare:nTF { #1 <= \c_@@_max_par_number_int } - { \int_set:Nn \l_@@_begin_int { #1 } } - { - \int_set_eq:NN \l_@@_begin_int - \c_@@_max_par_number_int - } + unknown .code:n = + { \msg_error:nn { zhlipsum } { unknown-option } } + } +% \end{macrocode} +% +% 提示信息。 +% \begin{macrocode} +\msg_new:nnn { zhlipsum } { unicode-engine } + { + You~ are~ now~ using~ Unicode~ engine~ \c_sys_engine_str. \\ + Encoding~ "GBK"~ is~ invalid.~ Changed~ into~ UTF8. + } +\msg_new:nnn { zhlipsum } { encoding-invalid } + { + Encoding~ "#1"~ is~ invalid. \\ + Available~ encodings~ are~ "UTF8"~ and~ "GBK". + } +\msg_new:nnn { zhlipsum } { unknown-option } + { Package~ option~ "\l_keys_key_tl"~ is~ unknown. } +% \end{macrocode} +% +% 将宏包选项传给 |zhlipsum/option|。 +% \begin{macrocode} +\ProcessKeysOptions { zhlipsum / option } +% \end{macrocode} +% +% 根据编码读入假文文本定义文件。 +% \begin{macrocode} +\@@_input_def_file:N \g_@@_encoding_tl % \end{macrocode} -% 获得循环的结束位置。 +% +% \subsection{核心函数} +% +% \begin{macro}{\zhlipsum} +% 输出假文,可选参数表示段落数,默认为 |1-3|。命令前后均插入了 +% |\par|,以便强制分段。带星号的命令在假文主体间不分段。 % \begin{macrocode} - \IfNoValueTF { #2 } +\NewDocumentCommand \zhlipsum + { s >{ \SplitArgument { 1 } { - } } O{ 1 - 3 } } + { + \@@_process_par_number:nn #2 + \par + \IfBooleanTF {#1} { - \int_set_eq:NN \l_@@_end_int - \l_@@_begin_int + \zhlipsum_print_multi_no_par:VVV + \l_@@_begin_int \l_@@_step_int \l_@@_end_int + \par } { - \int_compare:nTF { #2 <= \c_@@_max_par_number_int } - { \int_set:Nn \l_@@_end_int { #2 } } - { - \int_set_eq:NN \l_@@_end_int - \c_@@_max_par_number_int - } + \zhlipsum_print_multi:VVV + \l_@@_begin_int \l_@@_step_int \l_@@_end_int } + } +% \end{macrocode} +% \end{macro} +% +% \begin{variable}[int]{\l_@@_begin_int,\l_@@_end_int,\l_@@_step_int} +% 循环的开始、结束和步长。 +% \begin{macrocode} +\int_new:N \l_@@_begin_int +\int_new:N \l_@@_end_int +\int_new:N \l_@@_step_int +% \end{macrocode} +% \end{variable} +% +% \begin{macro}[int]{\@@_process_par_number:nn} +% \changes{v0.3}{2017/07/28}{改为内部函数。} +% 处理段落数参数。 +% \begin{macrocode} +\cs_new:Npn \@@_process_par_number:nn #1#2 + { % \end{macrocode} -% 开始位置在结束位置之前时,步长为 1,否则为 $-1$。 +% 获得循环的开始位置和结束位置。 +% \begin{macrocode} + \@@_process_par_number_aux:Nn \l_@@_begin_int {#1} + \IfNoValueTF {#2} + { \int_set_eq:NN \l_@@_end_int \l_@@_begin_int } + { \@@_process_par_number_aux:Nn \l_@@_end_int {#2} } +% \end{macrocode} +% 开始位置在结束位置之前时,步长为 $1$,否则为 $-1$。 % \begin{macrocode} \int_compare:nTF { \l_@@_begin_int <= \l_@@_end_int } @@ -323,63 +515,60 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\zhlipsum_print_multi_par:nn} +% \begin{macro}[aux]{\@@_process_par_number_aux:Nn} +% 与最大段落数进行比较,防止下标越界。 +% \begin{macrocode} +\cs_new:Npn \@@_process_par_number_aux:Nn #1#2 + { + \int_compare:nTF { #2 <= \c_@@_max_par_number_int } + { \int_set:Nn #1 {#2} } + { \int_set_eq:NN #1 \c_@@_max_par_number_int } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\zhlipsum_print_multi:nnn, +% \zhlipsum_print_multi:VVV} % 输出带段落的假文。 % \begin{macrocode} -\cs_new:Npn \zhlipsum_print_multi_par:nn #1 #2 +\cs_new:Npn \zhlipsum_print_multi:nnn #1#2#3 { - \@@_process_par_number:nn { #1 } { #2 } - \int_step_inline:nnnn - { \l_@@_begin_int } - { \l_@@_step_int } - { \l_@@_end_int } - { - \@@_print_single:N { ##1 } - \par - } + \int_step_inline:nnnn {#1} {#2} {#3} + { \@@_print_single:n {##1} \par } } +\cs_generate_variant:Nn \zhlipsum_print_multi:nnn { VVV } % \end{macrocode} % \end{macro} % -% \begin{macro}{\zhlipsum_print_multi_no_par:nn} +% \begin{macro}{\zhlipsum_print_multi_no_par:nnn, +% \zhlipsum_print_multi_no_par:VVV} % 输出不带段落的假文。 % \begin{macrocode} -\cs_new:Npn \zhlipsum_print_multi_no_par:nn #1 #2 +\cs_new:Npn \zhlipsum_print_multi_no_par:nnn #1#2#3 { - \@@_process_par_number:nn { #1 } { #2 } - \int_step_inline:nnnn - { \l_@@_begin_int } - { \l_@@_step_int } - { \l_@@_end_int } - { - \@@_print_single:N { ##1 } - } + \int_step_inline:nnnn {#1} {#2} {#3} + { \@@_print_single:n {##1} } } +\cs_generate_variant:Nn \zhlipsum_print_multi_no_par:nnn { VVV } % \end{macrocode} % \end{macro} % -% \begin{macro}{\zhlipsum} -% 输出假文,可选参数表示段落数,默认为 |1-3|。 -% 命令前后均插入了 |\par|,以便强制分段。 -% 带星号的命令在假文主体间不分段。 +% \begin{macro}[int]{\@@_print_single:n} +% \changes{v0.3}{2017/07/28}{改为内部函数。} +% 输出第 $n$ 段假文。方法是将段落数 $n$ 先转换成罗马数字,再组成 +% 完整命令。目前仅支持简体中文。 % \begin{macrocode} -\NewDocumentCommand \zhlipsum - { s >{ \SplitArgument { 1 } { - } } O{ 1 - 3 } } +\cs_new:Npn \@@_print_single:n #1 { - \par - \IfBooleanTF { #1 } - { - \zhlipsum_print_multi_no_par:nn #2 - \par - } - { \zhlipsum_print_multi_par:nn #2 } + \str_set:Nx \l_@@_tmpa_str { \int_to_roman:n {#1} } + \str_put_left:Nn \l_@@_tmpa_str { c_@@_text_zh_cn_ } + \str_put_right:Nn \l_@@_tmpa_str { _tl } + \use:c { \str_use:N \l_@@_tmpa_str } } % \end{macrocode} % \end{macro} % -% 读入假文文本定义文件。 % \begin{macrocode} -\file_input:n { zhlipsum-zh-cn.def } %</package> % \end{macrocode} % @@ -392,7 +581,7 @@ % 由 \url{http://www.cancms.com/content/dummytext} 网站生成, % 略有改动。 % -% \begin{macro}{\c_@@_i_tl} +% \begin{variable}[int]{\c_@@_i_tl} % 第 1 段。 % \begin{macrocode} \tl_const:Nn \c_@@_i_tl @@ -413,9 +602,9 @@ 所界走置派农难取眼,并细杆至志本。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_ii_tl} +% \begin{variable}[int]{\c_@@_ii_tl} % 第 2 段。 % \begin{macrocode} \tl_const:Nn \c_@@_ii_tl @@ -436,9 +625,9 @@ 铁看年程第则于去,且它后基格并下,每收感石形步而。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_iii_tl} +% \begin{variable}[int]{\c_@@_iii_tl} % 第 3 段。 % \begin{macrocode} \tl_const:Nn \c_@@_iii_tl @@ -460,7 +649,7 @@ 边建按划近些派民越,更具建火法住收保步连。 } % \end{macrocode} -% \end{macro} +% \end{variable} % % 以下还有 47 段,此处从略。 % @@ -470,7 +659,7 @@ % % \begin{implementation} % -% \begin{macro}{\c_@@_iv_tl} +% \begin{variable}[int]{\c_@@_iv_tl} % 第 4 段。 % \begin{macrocode} \tl_const:Nn \c_@@_iv_tl @@ -491,9 +680,9 @@ 置进义。治风理年构族业酸整要第,认取历难丽园变队。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_v_tl} +% \begin{variable}[int]{\c_@@_v_tl} % 第 5 段。 % \begin{macrocode} \tl_const:Nn \c_@@_v_tl @@ -515,9 +704,9 @@ 车图命辆该。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_vi_tl} +% \begin{variable}[int]{\c_@@_vi_tl} % 第 6 段。 % \begin{macrocode} \tl_const:Nn \c_@@_vi_tl @@ -538,9 +727,9 @@ 更心办要养任除并,者述水带称白。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_vii_tl} +% \begin{variable}[int]{\c_@@_vii_tl} % 第 7 段。 % \begin{macrocode} \tl_const:Nn \c_@@_vii_tl @@ -562,9 +751,9 @@ 音,什日学术等次。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_viii_tl} +% \begin{variable}[int]{\c_@@_viii_tl} % 第 8 段。 % \begin{macrocode} \tl_const:Nn \c_@@_viii_tl @@ -586,9 +775,9 @@ 件多如届两列性严拉。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_ix_tl} +% \begin{variable}[int]{\c_@@_ix_tl} % 第 9 段。 % \begin{macrocode} \tl_const:Nn \c_@@_ix_tl @@ -609,9 +798,9 @@ 一院却阶候,组准李年美坟林共值。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_x_tl} +% \begin{variable}[int]{\c_@@_x_tl} % 第 10 段。 % \begin{macrocode} \tl_const:Nn \c_@@_x_tl @@ -632,9 +821,9 @@ 型伯列。领条看的低细,南月这专处,济李我原。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xi_tl} +% \begin{variable}[int]{\c_@@_xi_tl} % 第 11 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xi_tl @@ -656,9 +845,9 @@ 研,程束步伸过音。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xii_tl} +% \begin{variable}[int]{\c_@@_xii_tl} % 第 12 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xii_tl @@ -679,9 +868,9 @@ 青,管品联便。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xiii_tl} +% \begin{variable}[int]{\c_@@_xiii_tl} % 第 13 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xiii_tl @@ -702,9 +891,9 @@ 油的物力队济持且量,县都两码表杰隶。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xiv_tl} +% \begin{variable}[int]{\c_@@_xiv_tl} % 第 14 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xiv_tl @@ -726,9 +915,9 @@ 型压规么把整器候,义白各议万次伶到济支。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xv_tl} +% \begin{variable}[int]{\c_@@_xv_tl} % 第 15 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xv_tl @@ -750,9 +939,9 @@ 水材蹦杏束码每利。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xvi_tl} +% \begin{variable}[int]{\c_@@_xvi_tl} % 第 16 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xvi_tl @@ -773,9 +962,9 @@ 院,个存何片水按传头风育多,更第弦代造必斗了但军。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xvii_tl} +% \begin{variable}[int]{\c_@@_xvii_tl} % 第 17 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xvii_tl @@ -796,9 +985,9 @@ 毛众或。美装外状切保西金基,清中意很提队已,可式束型飞十科。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xviii_tl} +% \begin{variable}[int]{\c_@@_xviii_tl} % 第 18 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xviii_tl @@ -819,9 +1008,9 @@ 层同已声张同建建,权这深斯制张处区直水。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xix_tl} +% \begin{variable}[int]{\c_@@_xix_tl} % 第 19 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xix_tl @@ -843,9 +1032,9 @@ 住。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xx_tl} +% \begin{variable}[int]{\c_@@_xx_tl} % 第 20 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xx_tl @@ -866,9 +1055,9 @@ 目报然属系,众历军出上外求究,回或葬精芽部。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxi_tl} +% \begin{variable}[int]{\c_@@_xxi_tl} % 第 21 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxi_tl @@ -889,9 +1078,9 @@ 到型详歼选放最。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxii_tl} +% \begin{variable}[int]{\c_@@_xxii_tl} % 第 22 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxii_tl @@ -912,9 +1101,9 @@ 劳决,型复角克验扯。结这日府火其月果,日取济入图。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxiii_tl} +% \begin{variable}[int]{\c_@@_xxiii_tl} % 第 23 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxiii_tl @@ -935,9 +1124,9 @@ 业究己现派当运却着,却飞照进大极更面可细图又。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxiv_tl} +% \begin{variable}[int]{\c_@@_xxiv_tl} % 第 24 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxiv_tl @@ -958,9 +1147,9 @@ 学响西计六观人影,斯除更放委族率克。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxv_tl} +% \begin{variable}[int]{\c_@@_xxv_tl} % 第 25 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxv_tl @@ -981,9 +1170,9 @@ 来。观等反公消委回切,元织增义物只象火,每建型豆你需。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxvi_tl} +% \begin{variable}[int]{\c_@@_xxvi_tl} % 第 26 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxvi_tl @@ -1002,9 +1191,9 @@ 格持织四无交各日周,格给这边南方想土片月正类。论图论构。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxvii_tl} +% \begin{variable}[int]{\c_@@_xxvii_tl} % 第 27 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxvii_tl @@ -1025,9 +1214,9 @@ 花,这报期两级与各识节杏化。问志长积义,调里包响声,详医励。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxviii_tl} +% \begin{variable}[int]{\c_@@_xxviii_tl} % 第 28 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxviii_tl @@ -1049,9 +1238,9 @@ 回,计为听芦贡。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxix_tl} +% \begin{variable}[int]{\c_@@_xxix_tl} % 第 29 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxix_tl @@ -1072,9 +1261,9 @@ 照第。走一委理长流团,书议交林斯,内京需在。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxx_tl} +% \begin{variable}[int]{\c_@@_xxx_tl} % 第 30 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxx_tl @@ -1096,9 +1285,9 @@ 保持加利必蠢没罐织三那。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxxi_tl} +% \begin{variable}[int]{\c_@@_xxxi_tl} % 第 31 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxxi_tl @@ -1119,9 +1308,9 @@ 包从话,历林接照满飞处广验设达,组取理把些改别空。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxxii_tl} +% \begin{variable}[int]{\c_@@_xxxii_tl} % 第 32 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxxii_tl @@ -1142,9 +1331,9 @@ 解后决细关,更龙争极学电各器资,再才求五众候。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxxiii_tl} +% \begin{variable}[int]{\c_@@_xxxiii_tl} % 第 33 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxxiii_tl @@ -1165,9 +1354,9 @@ 弦示走在系。区大布进划民率能美标带,展美段究听杨上才月。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxxiv_tl} +% \begin{variable}[int]{\c_@@_xxxiv_tl} % 第 34 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxxiv_tl @@ -1188,9 +1377,9 @@ 低持,选公东联完结际思飞划,切华弦治员扯路下斯。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxxv_tl} +% \begin{variable}[int]{\c_@@_xxxv_tl} % 第 35 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxxv_tl @@ -1212,9 +1401,9 @@ 位,标取材呈束奋低公。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxxvi_tl} +% \begin{variable}[int]{\c_@@_xxxvi_tl} % 第 36 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxxvi_tl @@ -1235,9 +1424,9 @@ 该,也计热五难上名加造,情海精造采。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxxvii_tl} +% \begin{variable}[int]{\c_@@_xxxvii_tl} % 第 37 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxxvii_tl @@ -1258,9 +1447,9 @@ 史次员断,情政无转商区成其,明世屈芽置观高。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxxviii_tl} +% \begin{variable}[int]{\c_@@_xxxviii_tl} % 第 38 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxxviii_tl @@ -1282,9 +1471,9 @@ 线,片贡再罐为。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xxxix_tl} +% \begin{variable}[int]{\c_@@_xxxix_tl} % 第 39 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xxxix_tl @@ -1305,9 +1494,9 @@ 族,速知增界验关据,而辰抓次敌。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xl_tl} +% \begin{variable}[int]{\c_@@_xl_tl} % 第 40 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xl_tl @@ -1328,9 +1517,9 @@ 回照织由走政可美至,走毛极更英专。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xli_tl} +% \begin{variable}[int]{\c_@@_xli_tl} % 第 41 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xli_tl @@ -1352,9 +1541,9 @@ 中还当辅半。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xlii_tl} +% \begin{variable}[int]{\c_@@_xlii_tl} % 第 42 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xlii_tl @@ -1375,9 +1564,9 @@ 本刷写究间覆。积品很市火线的个,识写深步龙都,质村约折果片。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xliii_tl} +% \begin{variable}[int]{\c_@@_xliii_tl} % 第 43 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xliii_tl @@ -1398,9 +1587,9 @@ 家,如那酸龙现石工,即丽位型主军。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xliv_tl} +% \begin{variable}[int]{\c_@@_xliv_tl} % 第 44 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xliv_tl @@ -1422,9 +1611,9 @@ 属不内济正四,过层孟计杨起里连身。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xlv_tl} +% \begin{variable}[int]{\c_@@_xlv_tl} % 第 45 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xlv_tl @@ -1445,9 +1634,9 @@ 理说转角段万,具即明流压实先,向鹰识刷。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xlvi_tl} +% \begin{variable}[int]{\c_@@_xlvi_tl} % 第 46 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xlvi_tl @@ -1469,9 +1658,9 @@ 态。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xlvii_tl} +% \begin{variable}[int]{\c_@@_xlvii_tl} % 第 47 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xlvii_tl @@ -1492,9 +1681,9 @@ 极九从精极素少到,斗常装求矿求重。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xlviii_tl} +% \begin{variable}[int]{\c_@@_xlviii_tl} % 第 48 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xlviii_tl @@ -1515,9 +1704,9 @@ 拉表拉少本总报,多多为特内村林。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_xlix_tl} +% \begin{variable}[int]{\c_@@_xlix_tl} % 第 49 段。 % \begin{macrocode} \tl_const:Nn \c_@@_xlix_tl @@ -1539,9 +1728,9 @@ 市承足助秩使赤。 } % \end{macrocode} -% \end{macro} +% \end{variable} % -% \begin{macro}{\c_@@_l_tl} +% \begin{variable}[int]{\c_@@_l_tl} % 第 50 段。 % \begin{macrocode} \tl_const:Nn \c_@@_l_tl @@ -1563,7 +1752,7 @@ 葡己。 } % \end{macrocode} -% \end{macro} +% \end{variable} % % \end{implementation} % @@ -1578,4 +1767,47 @@ % % \end{implementation} % +% \DisableImplementation +% +% \begin{implementation} +% +% \begin{macrocode} +%<ex-utf8>\documentclass[UTF8]{ctexart} +%<ex-utf8>\usepackage[encoding=UTF8]{zhlipsum} +%<ex-gbk>\documentclass[GBK]{ctexart} +%<ex-gbk>\usepackage[encoding=GBK]{zhlipsum} +%<*(ex-utf8|ex-gbk)> +\begin{document} +\def\parcmd{\texttt{\textbackslash par}} + +\section{Basic} +\zhlipsum + +\section{Different fonts} +{\songti \zhlipsum[1]} + +{\heiti \zhlipsum[2]} + +{\fangsong \zhlipsum[3]} + +{\kaishu \zhlipsum[4]} + +\section{Single paragraph} +\zhlipsum[55] + +\section{With `\parcmd'} +Some text before lorem ipsum. +\zhlipsum[0-1] +Some text after lorem ipsum. + +\section{Without `\parcmd'} +Some text before lorem ipsum. +\zhlipsum*[0-500] +Some text after lorem ipsum. +\end{document} +%</(ex-utf8|ex-gbk)> +% \end{macrocode} +% +% \end{implementation} +% % \Finale |