Probleme mit ifthen und tabularx

Probleme mit ifthen und tabularx

Ich habe ein Problem mit den Paketen ifthen und tabularx.

Hier ist ein Minimalbeispiel:

\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usepackage{tabularx,colortbl}
\usepackage{xcolor}
\usepackage{ifthen}

\def\kw{2}

\begin{document}
    \begin{frame}{Title}
        \include{file}
    \end{frame}
\end{document}

wenn die eingeschlossene Datei ist:

\begin{tabularx}{\textwidth}{|c|X|}
    \hline
    Bla & Blabla\\
    \hline
    \hline
    1 & something \\
    %\ifthenelse{\equal{\kw}{2}}{\rowcolor{red}}{}
    \rowcolor{red}
    \hline      
    2 & something else\\
    \hline
    3 & something else\\
    \hline      
\end{tabularx}  

Ich erhalte die gewünschte Ausgabe:

gewünschte Ausgabe

Wenn ich jedoch die 'Datei' ändere in (beachten Sie die kommentierten Teile)

\begin{tabularx}{\textwidth}{|c|X|}
    \hline
    Bla & Blabla\\
    \hline
    \hline
    1 & something \\
    \ifthenelse{\equal{\kw}{2}}{\rowcolor{red}}{}
    %\rowcolor{red}
    \hline      
    2 & something else\\
    \hline
    3 & something else\\
    \hline      
\end{tabularx}  

Ich erhalte eine Reihe von Fehlern („Falsch platziertes \noalign \end{tabularx}“ usw.) und diese Ausgabe:

fehlerhafte Ausgabe

Ich bin für jeden Hinweis dankbar...

Bearbeiten: Wenn ich \input statt \include verwende, bleibt das Problem dasselbe.

Antwort1

Beachten Sie, dass dies der \includeFall sein sollte \input, aber nicht das Problem ist.

Das Problem ist, dass es \rowcolorsich um das erste Element in einer Zeile nach der Erweiterung handeln muss. Sie müssen also einen erweiterbaren Test verwenden, was \ifthenelsenicht der Fall ist. Mit etoolboxist es einfach.

Es wird übrigens beamerbereits geladen xcolor, daher ist es zum Laden colortblam besten, ihm die Option zu übergeben , was durch Hinzufügen zu den globalen Optionen tableerfolgt .xcolor=table

\documentclass[xcolor=table]{beamer}

\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\usepackage{etoolbox}

\def\kw{2}

\begin{document}

\begin{frame}{Title}

\begin{tabularx}{\textwidth}{|c|X|}
  \hline
  Bla & Blabla\\
  \hline
  \hline
  1 & something \\
  \ifnumcomp{\kw}{=}{2}{\rowcolor{red}}{}
  \hline
  2 & something else\\
  \hline
  3 & something else\\
  \hline
\end{tabularx}

\end{frame}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Versuche dies.

\documentclass{beamer}

\usepackage[utf8]{inputenc}
\usepackage{tabularx,colortbl}
\usepackage{xcolor}
\usepackage{ifthen}

\def\kw{2}

\begin{document}
    \begin{frame}{Title}
\begin{tabularx}{\textwidth}{|c|X|}
    \hline
    Bla & Blabla\\
    \hline
    \hline
    1 & something\ifthenelse{\equal{\kw}{2}}{\\\rowcolor{red}}{\\}%
    \hline      
    2 & something else\\
    \hline
    3 & something else\\
    \hline      
\end{tabularx}
    \end{frame}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen