beamer listingsblock

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


flying sheep
Forum-Anfänger
Forum-Anfänger
Beiträge: 40
Registriert: So 27. Jul 2008, 14:34
Wohnort: München, By
Kontaktdaten:

beamer listingsblock

Beitrag von flying sheep »

ich möchte ein enviroment erstellen, dass folgendes macht:
\begin{python}
erstellt einen unbetitelten beamer-block mit einem python-listing drin
\begin{python}[inline]
erstellt nur ein listing ohne zeilennummern
\begin{python}[irgendwas außer „inline“]
erstellt einen beamer-block mit dem titel im optionalen argument

mein minimalbeispiel wirft mir ein fehlendes } um die ohren:
\RequirePackage{atbegshi}
\documentclass[utf8x,hyperref={pdfpagelabels=false}]{beamer}
\usepackage{ucs}
\usepackage{ifthen}
\usepackage{listings}
\usecolortheme{orchid}

\lstnewenvironment{python}[1][]{
	\ifthenelse{\equal{#1}{inline}}{
		\lstset{language=python,numbers=none}
	}{
		\begin{block}{#1}
			\lstset{language=python,numbers=left,numberstyle=\small\color{gray}}
	}
}{
	\ifthenelse{\equal{#1}{inline}}{}{
		\end{block}
	}
}

\begin{document}
	\begin{frame}[fragile]{bwt}
		\begin{python}[inline]
			def bwt(string):
				matrix = []
		\end{python}
		\begin{python}[Nicht inline, d.h. Überschrift]
			def bwt(string):
				matrix = []
		\end{python}
	\end{frame}
\end{document}