Seite 1 von 1

Zeilen in Tabellen ein- und ausblenden (ifthenelse)

Verfasst: Di 13. Jan 2015, 20:39
von T.Schoener
Hallo Gemeinde,

ich habe ein kleines Problem mit einer Tabelle die ich dynamisch gestalten möchte. Durch Auswahl verschiedener Eingabeparameter werden Zeilen dargestellt oder ausgeblendet.

Anbei ein kleines Beispiel:
\tablehead{\textbf{Type} & \textbf{Content Type}& \textbf{Item Description}\\}
\tabletail{}

\begin{supertabular}{|p{3cm}|p{4cm}|p{9cm}|}

\ifthenelse{\equal{\Eingabe1}{A}} { A & A & A\\} {} 
\ifthenelse{\equal{\Eingabe2}{B}} { B & B & B\\} {} 
\ifthenelse{\equal{\Eingabe3}{C}} { C & C & C\\} {} 

 & & \\   %<==== diese Zeile muss ich eingeben sonst bekomme ich eine Fehlermeldung

\end{supertabular}

\tablehead{}
\tabletail{}
Da eine Tabelle nur mit \\ beendet werden darf habe ich die letzte Zeile eingefügt. Damit erzeuge ich mir aber immer eine Leerzeile zum Schluss.

Die {} werden ja scheinbar nicht als "gar nichts" erkannt und überschreiben mir ein vorhergehendes \\.

Weiss jemand Rat?

Danke
Tobi

Verfasst: Di 13. Jan 2015, 22:06
von esdd
Bitte erstelle immer vollständige Minimalbeispiele.

Du kannst den Zeilenumbruch auch immer erst vor der Ausgabe der Zeile durchführen lassen.
\documentclass{article}
\usepackage{supertabular}
\usepackage{ifthen}

\newcommand\EingabeI{A}
\newcommand\EingabeII{B}
\newcommand\EingabeIII{X}

\begin{document}
\begin{supertabular}{|p{3cm}|p{4cm}|p{2cm}|}
  Eins&Zwei&Drei
  \ifthenelse{\equal{\EingabeI}{A}}{\\A & A & A}{}%
  \ifthenelse{\equal{\EingabeII}{B}}{\\B & B & B}{}% 
  \ifthenelse{\equal{\EingabeIII}{C}}{\\C & C & C}{}% 
  \\
\end{supertabular}
\end{document}
Der Einfachheit halber habe ich mal angenommen, dass in der ersten Zeile, vor der ja dann kein Umbruch erfolgen darf. immer der gleiche Text steht. Falls das nicht so ist, muss Du noch sicherstellen, dass der Zeilenumbruch nur erfolgt, wenn es sich nicht um die erste Zeile in der Tabelle handelt.

Gruß
Elke

Verfasst: Di 13. Jan 2015, 23:39
von T.Schoener
Perfekt! Vielen Dank.. und Sorry für den nicht vollständigen Code.