![为什么我无法用 newenviron 包装图形环境?](https://linux22.com/image/401056/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E6%97%A0%E6%B3%95%E7%94%A8%20newenviron%20%E5%8C%85%E8%A3%85%E5%9B%BE%E5%BD%A2%E7%8E%AF%E5%A2%83%EF%BC%9F.png)
这看起来像是一种包装figure
环境的相当简单的方法:
\documentclass{article}
\usepackage{newenviron}
\newenviron{myenv}{
\begin{figure}
\envbody
\end{figure}
}
\begin{document}
\begin{myenv}
Hi!
\end{myenv}
\end{document}
然而,我得到了这个:
Incomplete \ifcsname; all text was ignored after line 11.
<inserted text>
我见过一些例子,其中figure
首先重命名(用\let
),然后更新;但我的例子有什么问题?
答案1
你需要看看第一的错误:
! LaTeX Error: Missing \begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.8 \begin{d
ocument}
?
问题出在哪里?该软件包的简明文档指出
% \newenviron<optional *>
% {<name>}[<narg>][<default of 1st argument>]{<start-code>}{<end-code>}
这表明语法与 相同\newenvironment
。
\documentclass{article}
\usepackage{newenviron}
\newenviron{myenv}{
\begin{figure}
\envbody
\end{figure}
}{}%<--- nothing at end
\begin{document}
\begin{myenv}
Hi!
\end{myenv}
\end{document}
我建议改用xparse
:
\documentclass{article}
\usepackage{xparse}
\NewDocumentEnvironment{myenv}{O{htp}+b}{%
\begin{figure}[#1]
#2
\end{figure}
}{}
\begin{document}
\begin{myenv}
Hi!
\end{myenv}
\end{document}