使用 xparse 声明环境

使用 xparse 声明环境

我在使用 xparse 包的环境创建命令时遇到了麻烦。我最终想做的是编写自己的列表环境。下面的示例显示了我当前的问题:列表显示出来,但在关闭环境时会附加一些额外的文本。我使用命令“修复”了这个问题\newenvironment,但我希望使用 xparse 提供的参数处理选项。

在 cljlists.sty 包中:

\NewDocumentEnvironment{xparselist}{}{BEGIN!\begin{itemize}}{\end{itemize}END!}
\newenvironment{newlist}{BEGIN!\begin{itemize}}{\end{itemize}END!}

在文档中:

\subparagraph*[short]{Second Sub-Paragraph}
text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text
\begin{newlist}
\item item
\end{newlist}
\begin{xparselist}{mandatory}
\item item
\end{xparselist}

输出如下:(抱歉,由于是新图片所以被截断了,不过大概是这样的......)

第二款文本...文本开始!

  • 物品

结束!开始!

  • 物品

END! 短第二小段

我不确定为什么环境关闭时\subparagraph会使用提供给的参数。我已使用 xparse重新定义。但是,当我使用 xparse 声明另一个命令时,不会出现此问题。我是否遗漏了文档中的重要内容?blahblahblah\subparagraph\DeclareDocumentCommand


编辑:这是重现问题的代码的完整最小副本,包括来自评论的请求。

现在我可以附上照片了,问题应该更加明显了。我使用创建的列表环境xparse在环境关闭后立即排版了一些文本,这似乎来自我提供给 subparameters 命令的参数。

文档:

\documentclass{article}
\usepackage{toylists}

\begin{document}
\subparagraph{title}
text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text
\begin{newenvlist}
\item item
\end{newenvlist}
\begin{xparselist}
\item item
\end{xparselist}
\end{document}

包裹:

\ProvidesPackage{toylists}[2011/03/08 xparse list example]

\NeedsTeXFormat{LaTeX2e}
\RequirePackage{xparse}

\DeclareDocumentCommand{\subparagraph}{s o m}{\textit{#3}}

\NewDocumentEnvironment{xparselist}{}{%
\begin{itemize}}{%
\end{itemize}}

\newenvironment{newenvlist}{%
\begin{itemize}}{%
\end{itemize}}

输出:

在此处输入图片描述

相关内容