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:
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:
Ich bin für jeden Hinweis dankbar...
Bearbeiten: Wenn ich \input statt \include verwende, bleibt das Problem dasselbe.
Antwort1
Beachten Sie, dass dies der \include
Fall sein sollte \input
, aber nicht das Problem ist.
Das Problem ist, dass es \rowcolor
sich um das erste Element in einer Zeile nach der Erweiterung handeln muss. Sie müssen also einen erweiterbaren Test verwenden, was \ifthenelse
nicht der Fall ist. Mit etoolbox
ist es einfach.
Es wird übrigens beamer
bereits geladen xcolor
, daher ist es zum Laden colortbl
am besten, ihm die Option zu übergeben , was durch Hinzufügen zu den globalen Optionen table
erfolgt .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}
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}