我读过几篇解释align
和之间的区别的文章,alignat
比如这个 TeX SE 答案。
我想创建一个新的环境,它具有以下功能align
(可以根据环境的内容创建任意数量的环境,而无需输入参数<number>
),但具有“无水平空格”属性alignat
。
这可能吗?如果可以,我该如何定义这样的环境呢?(比方说altalign
)
谢谢。
答案1
一个简单的方法是创建一个新的环境,然后将其转发99
到alignat
:(注意,这是重新定义环境的“标准”方法;尽管如此,它对某些对环境名称进行硬编码的特定环境不起作用。幸运的是,它可以与这个一起使用)
\newenvironment{alignatz}{\alignat{99}}{\endalignat}
\catcode`*=11
\newenvironment{alignatz*}{\alignat*{99}}{\endalignat*}
\catcode`*=12
用法:
%! TEX program = pdflatex
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\newenvironment{alignatz}{\alignat{99}}{\endalignat}
\catcode`*=11
\newenvironment{alignatz*}{\alignat*{99}}{\endalignat*}
\catcode`*=12
\begin{alignatz}
a &= b \quad & c &= d \\
a &= b & c &= d
\end{alignatz}
\begin{alignatz*}
a &= b \quad & c &= d \\
a &= b & c &= d
\end{alignatz*}
\end{document}