如何在案例环境中使用多重对齐?我尝试使用 alignat、align* ...,但它们似乎在方程环境中不起作用。
\begin{equation}
\label{eq:13}
\begin{aligned}
W_{ij} = \begin{cases}
tf_{ij} \times \log \left( \frac{N}{n_i} \right) &if\quad &AW_i = 0\\
AW_i \times tf_{ij} \times \log \left( N/ n_i \right) &if\quad 0<&AW_i<1\\
\left(1 + \log \left( AW_i \right) \right) \times tf_{ij} \times \log
\left(\frac{N}{n_i} \right) &if\quad &AW_i \geq 1
\end{cases}
\end{aligned}
\end{equation}
当我插入第二个 & 时,对于每种情况它都会返回错误!
答案1
基本上,&
每行只使用一个符号。如果这是我的文档,我会坚持使用环境右侧列的默认布局cases
,即材料的左对齐。当然,您不能使用环境aligned
来实现您的格式化目标。
另外两条注释:(i) 尽量少用\left
和\right
。(ii) 尽量保持符号的一致性。有时,使用\frac{N}{n_i}
,而有时写成N/n_i
。在当前上下文中,我将使用后者,即内联分数符号。
还请注意,我将tf_{ij}
代码中的所有 实例都更改为\mathit{tf}_{\!ij}
,这既是为了使 的外观更加简洁tf
,也是为了将下标项“贴近”其基数。如果您有很多 实例tf_{ij}
,您可能需要创建一个简写宏,例如 ,\newcommand\tfij{\mathit{tf}_{\!ij}}
然后将tf_{ij}
文档中的所有 实例替换为\tfij
。
\documentclass{article}
\usepackage{amsmath} % for 'cases' env. and '\text' macro
\begin{document}
\begin{equation}
\label{eq:13}
W_{ij} =
\begin{cases}
\mathit{tf}_{\!ij} \times \log(N/n_i)
& \text{if $AW_i = 0$}\\
AW_i \times \mathit{tf}_{\!ij} \times \log(N/n_i)
& \text{if $0<AW_i<1$}\\
(1 + \log AW_i) \times \mathit{tf}_{\!ij} \times \log(N/n_i)
& \text{if $AW_i \geq 1$}
\end{cases}
\end{equation}
\end{document}
附录:对于手头的情况(双关语),在改变布局方面,您可能需要考虑的是将材料右对齐第一的环境栏cases
。
\documentclass{article}
\usepackage{amsmath} % for 'cases' env. and '\text' macro
\newcommand\tfij{\mathit{tf}_{\!ij}}
\begin{document}
\begin{equation}
\label{eq:13a}
W_{ij} =
\begin{cases}
\hfill \tfij \times \log(N/n_i)
& \text{if $AW_i = 0$}\\
\hfill AW_i \times \tfij \times \log(N/n_i)
& \text{if $0<AW_i<1$}\\
(1 + \log AW_i) \times \tfij \times \log(N/n_i)
& \text{if $AW_i \geq 1$}
\end{cases}
\end{equation}
\end{document}
第二附录,以解决 OP 的后续评论:为了实现环境第二列中材料所需的特殊对齐cases
,我建议您使用\phantom
第 1 行和第 3 行中的语句。
\documentclass{article}
\usepackage{amsmath} % for 'cases' env. and '\text' macro
\newcommand\tfij{\mathit{tf}_{\!ij}}
\begin{document}
\begin{equation}
\label{eq:13aa}
W_{ij} =
\begin{cases}
\hfill \tfij \times \log(N/n_i)
& \text{if $\phantom{0<{}}AW_i = 0$}\\
\hfill AW_i \times \tfij \times \log(N/n_i)
& \text{if $0<AW_i<1$}\\
(1 + \log AW_i) \times \tfij \times \log(N/n_i)
& \text{if $\phantom{0<{}}AW_i \geq 1$}
\end{cases}
\end{equation}
\end{document}
答案2
由于cases
amsmath 定义的环境基本上只是
\left\lbrace
\array{@{}l@{\quad}l@{}}%
...
\endarray \right.
array
使用具有您想要的任何列和对齐方式的明确环境并不是什么难事。
\begin{equation}
\label{eq:13}
W_{ij} = \left\lbrace\,
\begin{array}{@{}r@{\quad}l@{}l@{}}
tf_{ij} \times \log (N/n_i) &\text{if}\quad &AW_i = 0\\
AW_i \times tf_{ij} \times \log (N/n_i) &\text{if}\quad 0<{}&AW_i<1\\
\bigl(1 + \log(AW_i) \bigr) \times tf_{ij} \times \log
(N/n_i) &\text{if}\quad &AW_i \geq 1
\end{array}
\right.
\end{equation}
注意,0<{}&
以使二元关系间距正确。我按照@Mico 的建议使用了右对齐,但假设tf
和AW
是乘积,而不是单个变量。