2010-12-20 8 views
2


Ich versuche, eine neue Umgebung innerhalb einer Klasse festzulegen, die nur ein optionales Argument oder keins nehmen würde.LaTeX: newenvironment mit nur einem optionalen arg (und nicht obligatorisch)

Dies würde wie folgt verwendet werden:

\begin{myEnv}   --> "Label:" 

oder

\begin{myEnv}[myLabel] --> "Label: myLabel" 

Ich versuche, diese Umgebung mit einfachen Makros zu definieren. Ich würde lieber nicht Xparse-Paket verwenden.

Ich habe mehrere Beispiele von \ newenvironment mit einem optionalen Argument zusammen mit einem obligatorischen Argument gefunden. Aber ich brauche kein zwingendes Argument!

Gibt es eine Möglichkeit, dies mit \ newenvironment oder \ def Makros zu tun?

+1

Sie können eine ganze Gemeinde auf die [TeX Stack] (http://tex.stackexchange.com/) finden , wo keine TeX-bezogene Frage zu klein ist. –

Antwort

6

Kein Problem, erklären nur die Umwelt mit einem Argument, und machen, dass optional:

\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}