我正在尝试做一些看似相对简单的事情,但我无法让它发挥作用。基本上,我希望我的数学模式数组中的一列是文本,所以我尝试使用预处理和后处理,>{}
就像<{}
这样
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
\begin{array}{{>{\text\bgroup}c<{\egroup}}@{:}c@{=}c}
a & x^2 & x^2 \\
b & y^2 & y^2 \\
c & z^2 & z^2
\end{array}
\end{align}
\end{document}
这会导致“数组参数中的非法字符”错误。正确的做法是什么?
答案1
你已经接近了。在下面修改后的示例中,我使用环境array
并定义一个特殊列类型L
',它自动处于文本模式。这样做的原因是因为l
、c
和r
在环境中自动处于数学模式array
。
注意第二个列间说明符:符号前后的花括号@{{}={}}
用于通知 TeX,符号将被视为所谓的对象。如果这听起来有点神秘:、和对象前后的空格量各不相同。让 TeX 将符号视为对象(即使它出现在非方程式设置中)的一种简单方法是使用(空的)数学“原子”对其进行前后固定,即。{}
=
=
mathrel
mathord
mathbin
mathrel
=
mathrel
{}
还要注意,没有必要使用环境,align
因为示例中实际上只有一个“方程式”。
\documentclass{article}
\usepackage{array,amsmath}
\newcolumntype{L}{>$l<$}
\begin{document}
\begin{equation*}
\begin{array}{L@{\quad}c@{{}={}}c}
some text: & x^2 & x^2 \\
more thoughts: & y^2 & y^2 \\
really deep thoughts: & z^2 & z^2
\end{array}
\end{equation*}
\end{document}