有条件地从对齐环境中排除方程式

有条件地从对齐环境中排除方程式

有没有办法重新使用对齐环境(通过\input),但由于包含之前设置了不同的布尔值而对其进行轻微更改? 理由是我想在我的文档中分段构建这样的环境(并解释添加的内容)而不重复我自己(以便以后编辑某些方程式时不会出错)。

以下不是工作,但显示了我的意图:我想使用这两个方程式并根据命令改变外观ifthenelse

\documentclass{article}
\usepackage{ifthen}
\usepackage{amsmath}
\begin{document}
\begin{align*}
  & 42 & = \text{the answer}
         {\ifthenelse{true}{\\ & 23 & = \text{a mysterious number}}{}}
\end{align*}
\end{document}

答案1

tabular(align 也是 tabular)是复杂的怪物:单元格是组,它们向前看下一个 &,因此经常与向前看的条件发生冲突。align 甚至更加复杂,因为它要经过两次传递。一种经常有效的策略是使用原始 if 并隐藏&命令中的:

\documentclass{article}
\usepackage{amsmath,ifthen}
\newif\ifshowline
\newcommand\alignline{\\& 23 & = \text{a mysterious number}} 
\begin{document}

\begin{align*}
  & 42 & = \text{the answer}
  %\showlinetrue
  \ifshowline
     \alignline
  \else
     % something else
  \fi
\end{align*}
\end{document}

相关内容