空格和 getitems 包的问题

空格和 getitems 包的问题

在收集项目时,我希望避免首尾空白行和空格。我举个例子来解释。

这是我的代码

\documentclass{article}
 \usepackage{getitems}
  \NewEnviron{test}{
    \expandafter\gatheritems\expandafter{\BODY}
    }{}
 \begin{document}
  \begin{test}
  Text
  \item one%
  \item
  
  two  

 \end{test}

 X\gathereditem{1}\ignorespaces X

 X\gathereditem{2}\ignorespaces X

\end{document}

输出为

XoneX
X
two
X

好吧,我想删除所有空格\par和其他内容,并将 的输出设为X\gathereditem{2}\ignorespaces XXtwoX换句话说,我想忽略项目实际内容前面和后面的所有空白行和空格。

注意:我对一般用途感兴趣,因此一般情况下,\gathereditem{2}可能包含复杂的文本,如数学公式和嵌套环境(如枚举、逐项列出),我不想弄乱它们。只需删除首尾空白行和空格即可。

listofitems注意:我对包有同样的问题

答案1

listofitems可以吸收\pars。但是,它将无法区分多段项目和两个连续项目,如最后一种情况所示。

\documentclass{article}
 \usepackage{listofitems,environ}
\setsepchar{\item||\par}
\ignoreemptyitems
  \NewEnviron{test}{
    \greadlist*\mylist{\BODY}
    }{}
 \begin{document}
  \begin{test}
  Text
  \item one%
  \item
  
  two  

  \item

   First par

   Second par

 \end{test}

 X\mylist[1]X

 X\mylist[2]X

 X\mylist[3]X

 X\mylist[4]X

 X\mylist[5]X

\end{document}

在此处输入图片描述

另一种方法是引入一个新命令\mylistminuspars[<list number>],通过使用嵌套列表来删除参数:

\documentclass{article}
 \usepackage{listofitems,environ}
\setsepchar{\item/\par}
\ignoreemptyitems
  \NewEnviron{test}{
    \greadlist*\mylist{\BODY}
    }{}
\def\mylistminuspars[#1]{%
  \foreachitem\z\in\mylist[#1]{%
    \z%
  }%
}
 \begin{document}
  \begin{test}
  Text
  \item one%
  \item
  
  two  

  \item

   First par

   Second par

 \end{test}

 X\mylistminuspars[1]X

 X\mylistminuspars[2]X

 X\mylistminuspars[3]X

 X\mylistminuspars[4]X

\end{document}

在此处输入图片描述

最后,如果想保留除前导和尾随部分之外的部分,对上述内容进行小幅修改即可获得:

\documentclass{article}
 \usepackage{listofitems,environ}
\setsepchar{\item/\par}
\ignoreemptyitems
  \NewEnviron{test}{
    \greadlist*\mylist{\BODY}
    }{}
\def\mylistminuspars[#1]{%
  \foreachitem\z\in\mylist[#1]{%
    \z%
    \ifnum\zcnt<\listlen\mylist[#1]\par\fi
  }%
}
 \begin{document}
  \begin{test}
  Text
  \item one%
  \item
  
  two  

  \item

   First par

   Second par

 \end{test}

 X\mylistminuspars[1]X

 X\mylistminuspars[2]X

 X\mylistminuspars[3]X

 X\mylistminuspars[4]X

\end{document}

在此处输入图片描述

相关内容