ifthen 및 tabularx 관련 문제

ifthen 및 tabularx 관련 문제

ifthen 및 tabularx 패키지와 관련된 문제가 있습니다.

다음은 최소한의 예입니다.

\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}

포함된 파일이 다음과 같은 경우:

\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}  

원하는 출력을 얻습니다.

원하는 출력

그러나 '파일'을 (주석 부분 참고)로 변경하면

\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}  

여러 가지 오류("Misplaced \noalign \end{tabularx}" 등)가 발생하고 다음과 같은 결과가 출력됩니다.

잘못된 출력

어떤 단서라도 알려주시면 감사하겠습니다...

편집: \include 대신 \input을 사용하면 문제는 동일하게 유지됩니다.

답변1

이어야 \include하지만 \input문제는 아닙니다.

문제는 \rowcolor확장 후 행의 첫 번째 항목이어야 하므로 확장 가능한 테스트를 사용해야 하지만 그렇지 \ifthenelse않다는 것입니다. 그것은 etoolbox쉽습니다.

그건 그렇고, beamer이미 로드 xcolor되었으므로 로드하려면 전역 옵션에 추가하여 수행되는 옵션을 colortbl전달하는 것이 가장 좋습니다 .tablexcolor=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}

여기에 이미지 설명을 입력하세요

답변2

이 시도.

\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}

여기에 이미지 설명을 입력하세요

관련 정보