LaTeX: \newenvironment только с одним необязательным аргументом (и не обязательно)
Я пытаюсь установить новую среду внутри класса, которая будет принимать только необязательный аргумент или ни одного.
Это будет использоваться так:
\begin{myEnv} --> "Label:"
или же
\begin{myEnv}[myLabel] --> "Label: myLabel"
Я пытаюсь определить эту среду с помощью основных макросов. Я бы предпочел не использовать пакет xparse.
Я нашел несколько примеров \newenvironment с необязательным аргументом вместе с обязательным. Но мне не нужен обязательный аргумент!
Есть ли способ сделать это с помощью макросов \newenvironment или \def?
1 ответ
Нет проблем, просто объявите среду с одним аргументом и сделайте это необязательным:
\documentclass{minimal}
\newenvironment*{myEnv}[1][]{%
Label: #1%
\par
\ignorespaces
}{%
\par
end%
\par
\ignorespacesafterend
}
\begin{document}
\begin{myEnv}
abc
\end{myEnv}
\begin{myEnv}[myLabel]
abc
\end{myEnv}
\end{document}