我需要一个在方括号之间采用可选参数的环境,但只有当在与命令相同的行上提供时才可以\begin{...}
。
\documentclass{article}
\begin{document}
\makeatletter
\def \MyTest {
\@ifnextchar[{TRUE} {FALSE}
}
\makeatother
SUCCESS: \MyTest
A\\
Next should be FALSE:
\MyTest
[B\\
\newenvironment{TEST}{\MyTest}{}
SUCCESS: \begin{TEST}\end{TEST}
SUCCESS: \begin{TEST}[\end{TEST}\\
Next should be FALSE:
\begin{TEST}
[\end{TEST}
\end{document}
Verbatim
这个行为对于包的环境来说是一样的fancyvrb
,但是源代码中提取相关部分相当复杂。
我曾尝试使用\peek_catcode_ignore_spaces:NTF
或\peek_meaning_ignore_spaces:NTF
识别 EOL,但没有成功。
\@ifnextchar
我怎样才能最好地实现这种方案,expl3
但任何解决方案都值得欢迎。