如何遍历 lorem ipsum 句子

如何遍历 lorem ipsum 句子

我希望能够lipsum逐句迭代包中的 lorem ipsum 文本。我使用它来模拟列表,当相同的文本一遍又一遍重复时,这一点非常明显。这不是理想的选择,所以我希望迭代器每次使用时都能从中断的地方继续。每次调用此命令时,我只需提供我想要的句子数。

下面是我开始使用的一个例子,这样你就能明白我所说的一遍又一遍重复的文本是什么意思。

\documentclass{article}

\usepackage{lipsum}

\begin{document}

\begin{itemize}
    \item \lipsum[-][-5]
    \item \lipsum[-][-2]
    \item \lipsum[-][-1]
    \item \lipsum[-][-11]
\end{itemize}

\end{document}

不充分示例的 Latex 输出截图

答案1

为了解决这个问题,我创建了以下最小工作示例中演示的命令:

\documentclass{article}

\usepackage{lipsum}

\newcounter{acounter}
\setcounter{acounter}{0}
\newcommand{\lipsumiterator}[1]{
    \lipsum[-][\arabic{acounter}+1-\arabic{acounter}+#1]
    \addtocounter{acounter}{#1}
    % max value is 2191
}

\begin{document}

\begin{itemize}
    \item \lipsumiterator{5}
    \item \lipsumiterator{2}
    \item \lipsumiterator{1}
    \item \lipsumiterator{11}
\end{itemize}

\end{document}

最小工作示例的 Latex 输出截图

答案2

您可以使用包中的\ducklist或宏来创建虚拟列表:\ducklistlistduckuments

\documentclass{article}

\usepackage{duckuments}

\begin{document}

\ducklist{itemize}

\ducklistlist{itemize}

\end{document}

在此处输入图片描述

答案3

我的想法是解开一个 Lipsum 段落,将其分成句子,然后看看我们是否有足够的句子;如果没有,则拆分下一个 Lipsum 段落,依此类推。

\documentclass{article}
\usepackage[nopar]{lipsum}

\ExplSyntaxOn

\NewDocumentCommand{\lipsumiterator}{m}
 {% #1 = number of desired sentences
  \partphysics_iterator:n { #1 }
 }

% the current lipsum paragraph index
\int_new:N \g_partphysics_iterator_current_int
% the sentence container
\seq_new:N \g_partphysics_iterator_sentences_seq
% the sentence to typeset
\tl_new:N \l__partphysics_iterator_sentence_tl

\cs_new_protected:Nn \partphysics_iterator:n
 {
  \__partphysics_iterator_available:n { #1 }
  \prg_replicate:nn { #1 }
   {
    \seq_gpop_left:NN \g_partphysics_iterator_sentences_seq \l__partphysics_iterator_sentence_tl
    \tl_use:N \l__partphysics_iterator_sentence_tl.~
   }
 }

\cs_new_protected:Nn \__partphysics_iterator_available:n
 {
  \int_compare:nF { #1 < \seq_count:N \g_partphysics_iterator_sentences_seq }
   {
    \int_gincr:N \g_partphysics_iterator_current_int
    \use:e { \exp_not:N \unpacklipsum[ \int_eval:n { \g_partphysics_iterator_current_int }]}
    \seq_set_split:NnV \l_tmpa_seq { . } \lipsumexp
    \seq_map_inline:Nn \l_tmpa_seq
     {
      \tl_if_blank:nF { ##1 }
       {
        \seq_gput_right:Nn \g_partphysics_iterator_sentences_seq { ##1 }
       }
     }
    \__partphysics_iterator_available:n { #1 }
   }
 }

\ExplSyntaxOff

\begin{document}

\begin{itemize}
    \item \lipsumiterator{5}
    \item \lipsumiterator{2}
    \item \lipsumiterator{1}
    \item \lipsumiterator{11}
    \item \lipsumiterator{11}
    \item \lipsumiterator{11}
    \item \lipsumiterator{11}
    \item \lipsumiterator{11}
\end{itemize}

\lipsumiterator{120}

\end{document}

在此处输入图片描述

实际上,这个例子有三页。

相关内容