Ifthen 和 tabularx 环境

Ifthen 和 tabularx 环境

我想让 tabularx 表格的开头和结尾仅在某些情况下出现,但这似乎不可能。我收到“参数失控错误”。为什么是错误的,或者这种构造是不可能的?

这是一个简单的例子:

\documentclass[a4paper,12pt]{book}%

\usepackage[utf8]{inputenc}
\usepackage[swedish]{babel}
\usepackage{tabularx}
\usepackage{ifthen}

\newboolean{thing}

\begin{document}
\setboolean{thing}{false}

\chapter*{Testchapter}
\ifthenelse{\boolean{thing}}{}{\begin{tabularx}{7cm}{|c|X|}}
3&5\\
\ifthenelse{\boolean{thing}}{}{\end{tabularx}}

\end{document}

(当然,在我的真实文档中,当“事物”为真时,“3&5 \”行会被替换为非表格的内容。)

答案1

环境tabularx被完全扫描(最多\end{tabularx})在处理之前一次扫描整个身体。因此,您不能中断执行方式。在调节期间将其作为一个整体包括进来是一种选择\begin{tabularx}\end{tabularx}

在此处输入图片描述

\documentclass{article}

\usepackage{tabularx,etoolbox}

\newbool{thing}

\begin{document}

\boolfalse{thing}

Before

\ifbool{thing}
  {3 and 5}
  {%
  \begin{tabularx}{7cm}{ | c | X | }
    3 & 5 \\
  \end{tabularx}
  }%

After

\end{document}

相关内容