PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit eigener Tabellenumgebung



Meta
05-12-2008, 22:50
Hallo zusammen,

folgende Zeilen bringen das gewünschte Ergebnis:


\begin{tabularx}{\textwidth}{>{\hfill}p{8mm}p{16mm}X}
1 &kg &Mais\\
4500 &Flaschen &Chili-Sauce\\
\end{tabularx}


So weit, so gut.

Jetzt würde ich diese Art von Tabelle jedoch mehrfach verwenden und habe daher eine neue Umgebung angelegt.


\newenvironment{ingredients}{%
\begin{tabularx}{\textwidth}{>{\hfill}p{8mm}p{16mm}X}%
}{%
\end{tabularx}%
}


Wenn ich nun jedoch die Tabelle anlege


\begin{ingredients}
1 &kg &Mais\\
4500 &Flaschen &Chili-Sauce\\
\end{ingredients}

erhalte ich zwei Fehlermeldungen.

File ended while scanning use of \TX@get@body.
<inserted text>
\par

Emergency stop.


Was mache ich falsch? :(

mechanicus
06-12-2008, 00:10
Was mache ich falsch? :(
Hallo,

kann ich dir auch nicht sagen, mit der tabularx-Umgebung klappt es bei mir auch nicht. Aber ich habe das:

\documentclass{article}
\usepackage{array}
\usepackage{calc}
\newlength{\hilfleng}
\setlength{\hilfleng}{\textwidth-8mm-16mm}
\newenvironment{ingredients}{\begin{center}\begin{ tabular}{p{8mm}p{16mm}p{\hilfleng}}}{\end{tabular} \end{center}}

\begin{document}
\section{foo}
hallo
\begin{ingredients}
1 &kg &Mais\\
4500 &Flaschen &Chili-Sauce Chili-Sauce Chili-Sauce Chili-Sauce Chili-Sauce \\
\end{ingredients}
\end{document}

Gruß
Marco

voss
06-12-2008, 00:28
Was mache ich falsch? :(


\documentclass{article}
\usepackage{array,calc,tabularx,ragged2e}

\newenvironment{ingredients}{%
\tabularx{\textwidth}{>{\RaggedLeft}p{8mm}p{16mm}X}%
}{\endtabularx}

\begin{document}

\begin{ingredients}
1 &kg &Mais\\
4500 &Flaschen &Chili-Sauce\\
\end{ingredients}

\end{document}

Herbert

mechanicus
06-12-2008, 10:42
\documentclass{article}
\usepackage{array,calc,tabularx,ragged2e}

\newenvironment{ingredients}{%
\tabularx{\textwidth}{>{\RaggedLeft}p{8mm}p{16mm}X}%
}{\endtabularx}

\begin{document}

\begin{ingredients}
1 &kg &Mais\\
4500 &Flaschen &Chili-Sauce\\
\end{ingredients}

\end{document}

Herbert
Hallo Herbert,

\tabularx und \entabularx funktionieren. Warum?

Gruß
Marco

Meta
06-12-2008, 12:25
Hallo und vielen Dank euch beiden! :)

Wieso das mit \tabularx und \endtabularx funktioniert, es bei \begin{tabularx} und \end{tabularx} jedoch Fehlermeldungen gibt, würde mich aber auch noch interessieren. :rolleyes:

Und gut zu wissen, dass es so Sachen wir \raggedleft gibt, dann brauche ich kein \hfill mehr zu ge-/missbrauchen. :p

voss
06-12-2008, 13:53
\tabularx und \entabularx funktionieren. Warum?


Vereinfachte Erklärung:
Ein \end{...} benutzt eigentlich \end...
Es funktioniert immer dann, wenn das \end... im Prinzip
nichts anderes macht als Gruppen zu schließen oder gar nichts, d.h. nur
die Umgebung beendet. \endtabularx wird aber erstmal auf \relax gesetzt
und dann folgt ein relativ komplizierter Algorithmus zum Einlesen der
Tabelle, ermitteln der einzelnen Spaltenbreiten usw. Dabei geht die
symmetrische Zurodnung geschachtelter Umgebungen flöten.

Die Kombination \&lt;makro&gt; ... \end&lt;macro&gt; kann man (fast) immer in
eigene Umgebungen einbauen. \begin{..} ... \end{...} selten.

Herbert