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
전달하는 것이 가장 좋습니다 .table
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}
답변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}