该代码有效:
\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}