\newenvironment

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

\newenvironment

Beitrag von IrenaSekuta »

Hallo,

übe mich gerade an dem \newenvironment-Befehl und komme nicht so richtig weiter. Folgendes Minimalbeispiel endet mit mit einer Fehlermeldung und ich weiß nicht warum:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{ltablex}

\newenvironment{A}{\begin{tabularx}{\textwidth}{c X}}{\end{tabularx}}

\begin{document}

\begin{A}
1 & 2\\
3 & 4\\
\end{A}

\end{document}
Ausgeschrieben funktioniert es wie gewohnt:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{ltablex}

%\newenvironment{A}{\begin{tabularx}{\textwidth}{l X}}{\end{tabularx}}

\begin{document}

%\begin{A}
%1 & 2\\
%3 & 4\\
%\end{A}

\begin{tabularx}{\textwidth}{l X}
1 & 2\\
3 & 4\\
\end{tabularx}

\end{document}
Gruß,

Irena
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Soweit ich mich erinnere, mag tabularx es nicht, wenn es in anderen Umgebungen verwendet werden soll.
Afaik gibt es dazu einen eigenen Absatz in der TabularX-Doku.

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Habe ein bissel genauer in der Doku gelesen und eventuell ist das was Du anspricht dort wie folgt zu finden:
The body of the tabularx environment is in fact the argument to a com-
mand, and so certain constructions which are not allowed in command ar-
guments (like \verb) may not be used
Naja, Shit happens... :-)

Gruß,

Irena
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Mit Hilfe des Pakets environ gehts:
\documentclass{scrreprt} 
\usepackage[T1]{fontenc} 
\usepackage[latin1]{inputenc} 
\usepackage[ngerman]{babel} 
\usepackage{tabularx} 
\usepackage{environ}

\NewEnviron{A}{%
	\begin{tabularx}{\textwidth}{c|X|c}
		\BODY
	\end{tabularx}
} 

\begin{document} 

\begin{A} 
1 & 2 & a\\ 
3 & 4 & b\\ 
\hline
\end{A} 

\end{document}
Hatte dein Tabellenpaket nicht und hab einfach tabularx geladen, das sollte aber im Prinzip das gleiche sein.
Zur Erläuterung des Befehls NewEnviron siehe die Paketdoku.

Viele Grüße
Tobi

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Danke !

Beitrag von IrenaSekuta »

Danke für den tollen Tip. Mit dem Paket environ klappt es.

Gruß,

Irena
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Gerne, bin übrigens vor kurzem an genau der gleichen Stelle hängen geblieben und hab überlegt, ob’s mit environ geht, hatte dann aber keine Lust, es zu probieren. Jetzt weiß ich, dass es geht...

Grüße,
Tobi

Antworten