案例环境中的多重对齐

案例环境中的多重对齐

如何在案例环境中使用多重对齐?我尝试使用 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

由于casesamsmath 定义的环境基本上只是

\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 的建议使用了右对齐,但假设tfAW是乘积,而不是单个变量。

相关内容