我使用工具箱包生成带有一些条件表达式的表。
\documentclass{article}
\usepackage{etoolbox}
\begin{document}
\providetoggle{ch}
\begin{tabular}{ |l|c|}
\hline
Name&value\\\hline
\togglefalse{ch}
\iftoggle{ch}{
Foo0&0\\\hline
}{}
\toggletrue{ch}
\iftoggle{ch}{
Foo&12342\\\hline
}{}
\togglefalse{ch}
\iftoggle{ch}{
bar&0\\\hline
}{}
\end{tabular}
\end{document}
它强制在表末尾添加新的空行。是否可以删除它,或者使用一些不执行此操作的宏?
我在etoolbox 条件导致表格中出现不需要的空行但解决方案建议使用 expl3,但这对我来说不起作用。
答案1
如果您希望保持测试连续,那么这将起作用:
\documentclass{article}
\usepackage{etoolbox}
\begin{document}
\providetoggle{ch}
\begin{tabular}{ |l|c|}
\hline
Name&value
\togglefalse{ch}%
\iftoggle{ch}{%
\\\hline Foo0&0%
}{}%
\toggletrue{ch}%
\iftoggle{ch}{%
\\\hline Foo&12342%
}{}%
\togglefalse{ch}%
\iftoggle{ch}{%
\\\hline bar&0%
}{}%
\\\hline
\end{tabular}
\end{document}
另一方面,如果你能够嵌套条件,那么只要至少有一个条件保证为真,这就会起作用:
\documentclass{article}
\usepackage{etoolbox}
\begin{document}
\providetoggle{ch}
\begin{tabular}{ |l|c|}
\hline
Name&value\\\hline
\togglefalse{ch}%
\iftoggle{ch}{%
Foo0&0\\\hline%
}{%
\toggletrue{ch}%
\iftoggle{ch}{%
Foo&12342\\\hline%
}{%
\togglefalse{ch}%
\iftoggle{ch}{%
bar&0\\\hline%
}{%
}%
}%
}%
\end{tabular}
\end{document}
此外,%
行尾的一些符号还会消除杂散的空格标记。
这两种方法的关键在于您必须tabular
在某些实际输出(在这些情况下是\hline
)上结束,而不是错误条件计算。