突出显示第 n 个单词后的文本(字数限制)

突出显示第 n 个单词后的文本(字数限制)

此前,我问了一个问题关于突出显示第 n 页之后的页面。这是因为我必须遵守页面限制,并且想要指示页面何时超出该限制。

我现在遇到了类似的问题,只不过我有一个单词限制。我想在环境中n出现单词后突出显示(例如使用红色背景)所有单词。

在下面的 MWE 中,单词ABORT应该突出显示,所有其他文本应该正常。

\documentclass{article}

\newenvironment{limitwords}{}{}
% ...code to set a limit of 20 in the above env...


\begin{document}

\begin{limitwords}
Hello, this is a sample text.
Oh no, we are going to run out of budget!

Help! Help! Here we ABORT ABORT ABORT ABORT ABORT

ABORT
\end{limitwords}

Luckily, outside of the environment, we can write more than
20 words without anything bad happening. And what's more, if we
start another such environment, it will allow 20 words again.

\begin{limitwords}
Hello, world!
\end{limitwords}

\end{document}

答案1

使用颜色和单词,随心所欲。如果是为了满足大学的一些奇怪要求,你可以像我一样,在有效的句子中使用非常短的单词,或者使用非常长的单词,这样就大错特错了!如果是为了某些计算课程,请使用爪哇语、高棉语或中文,因为它们没有分词符:)

\documentclass{article}
\usepackage{xcolor}
\begin{document}
\ExplSyntaxOn
\cs_set:Npn\l_process_aux#1{
\seq_set_split:Nnn \l_tmpa_seq {~} {#1}
\seq_map_inline:Nn\l_tmpa_seq 
{ \int_incr:N\l_tmpa_int 
  \int_compare:nNnTF{\l_tmpa_int}>{20}{{\color{blue}##1}~}
  {##1~}
 }
}
\NewDocumentEnvironment{limitwords}{+b}
{\l_process_aux{#1}}{}
\ExplSyntaxOff
\begin{limitwords}
So, if it is in or if it is on, it is as it is,be it in or be it on.\\
ABORT ABORT
\end{limitwords}
\end{document}

相关内容