无法将参数传递给新环境的第二部分

无法将参数传递给新环境的第二部分

该代码有效:

\documentclass{book}

\newenvironment{testenvironment}[1][]
    {\begin{quote}#1}
    {\end{quote}}

\begin{document}

\begin{testenvironment}[testargument]
test text
\end{testenvironment}

\end{document}

此代码不:

\documentclass{book}

\newenvironment{testenvironment}[1][]
    {\begin{quote}}
    {#1\end{quote}}

\begin{document}

\begin{testenvironment}[testargument]
test text
\end{testenvironment}

\end{document}

唯一的区别在于是否#1写在命令的第一个括号内还是第二个括号内\newenvironment

我如何将参数传递给第二个括号,传递给内容输入?

答案1

使用较新的 LaTeX 版本,您可以使用\NewDocumentEnvironment而不是\newenvironment
您可能需要加载 xparser 包。

\documentclass{book}
\usepackage{graphicx}

\NewDocumentEnvironment{testenvironment}{O{}}
    {\begin{quote}}
    {#1\end{quote}}

\begin{document}

\begin{testenvironment}[testargument]
test text
\end{testenvironment}

\begin{testenvironment}
test text
\end{testenvironment}

\begin{testenvironment}[testargumentB]
test text
\end{testenvironment}

\end{document}

相关内容