Por algum motivo, não posso testar se #2
está vazio no seguinte tabu
caso de uso. Um
\ifx incompleto; todo o texto foi ignorado após a linha 14
é lançado executando o código a seguir.
\documentclass{article}
\usepackage{tabu}
\usepackage[english]{babel}
\newcommand \test [2]{%
%Works
%#1 \ifx& empty \else {\begin{minipage}[t]{\linewidth}#2\end{minipage}} \fi
% Doesn't with Arg A
\begin{tabu}{XX} #1 & \ifx& empty \else {\begin{minipage}[t]{\linewidth}#2\end{minipage}} \fi \end{tabu}
}
\begin{document}%
\test{A}{\begin{itemize}\item Test\end{itemize}} % Arg A
%\test{A}{}
\end{document}
Responder1
Isso parece ter algo a ver com a forma como tabu
examina o conteúdo das células. Adicionar um par de aparelho ajuda.
Também mudei o teste de vazio para algo mais seguro.
\newcommand\test[2]{%
\begin{tabu}{XX}
#1 &
{\if\relax\detokenize{#2}\relax
empty%
\else
\begin{minipage}[t]{\linewidth}#2\end{minipage}%
\fi}
\end{tabu}}
Responder2
Você tem
\ifx&
quando o TeX vê que &
a célula termina e o Tex alterna o código que encerra a definição da coluna. Portanto, aqui \ifx
iremos comparar os dois primeiros tokens na definição de fechamento do X
tipo de coluna em tabu. A seguir, usamos um teste mais seguro para vazio.
Além disso, não está claro por que você deseja colocar uma minipágina em uma coluna X, já que as colunas X já são parboxes?
\documentclass{article}
\usepackage{tabu}
\usepackage[english]{babel}
\makeatletter
\newcommand \test [2]{%
\begin{tabu}{XX}%
#1&%
\def\tmp{#2}%
\ifx\tmp\@empty
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{empty}%
{\begin{minipage}[t]{\linewidth}#2\end{minipage}}%
\end{tabu}}
\makeatother
\begin{document}%
\test{A}{\begin{itemize}\item Test\end{itemize}} % Arg A
\test{A}{}
\end{document}