\end{align*} 不在数学环境中

\end{align*} 不在数学环境中

由于我对 LaTeX 还不熟悉,所以希望有人能帮助我。使用 apa6 文档格式,导入 amsmath,我尝试编译以下代码:

\[\text{A} = B * \text{log}\frac{C}{D} \\
\text{where} \begin{align*}
 & C = \text{lorem} \\
 & D = \text{ipsum}
end{align*}\]

这将引发以下错误: Texmaker 中的错误

有人能告诉我如何解决这个问题或者为什么会发生这种情况吗?

答案1

您可能正在寻找aligned环境:

示例输出

\documentclass{apa6}

\usepackage{amsmath}

\begin{document}

\[
  \mathrm{A} = B * \log\frac{C}{D}, \qquad
  \text{where}\quad
  \begin{aligned}
    C &= \text{lorem} \\
    D &= \text{ipsum}
 \end{aligned}
\]

\begin{gather*}
  \mathrm{A} = B * \log\frac{C}{D}, \\
  \text{where}\quad
  \begin{aligned}[t]
    C &= \text{lorem} \\
    D &= \text{ipsum}
 \end{aligned}
\end{gather*}

\end{document}

align*是一个用来代替的顶级数学环境\[...\]

请注意,\[...\]不接受换行命令\\(至少它没有效果),所以如果您想在单独的行上使用条件gather*(如我的第二个示例)或align*

此外你还应该

  • 用于\log日志运算符
  • 用来\mathrm{A}获得直立A

部分原因是\text字体会根据周围的文本改变,而您不希望这种情况发生在数学中。

我也强烈怀疑你不想有*乘法符号,而应该只是B \log ...。但那是你的风格问题。

答案2

由于您无法align*在内部使用,\[....\]您可能需要使用array环境,这样您的代码看起来将如下所示:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

  \[A = B * \log\frac{C}{D}, \qquad
  \text{ where } \begin{array}{ll}
                   C &= \text{lorem} \\
                   D &= \text{ipsum}
                 \end{array}
  \]

\end{document}

得出的结果为:

在此处输入图片描述

就我个人而言,我会省略*并写成A = B\log\frac{C}{D}。特别是,我使用过:

  • \log代替\text{log}
  • A而不是\text{A}(因为它A是数学的一部分,而不是文本)
  • \qquad在等式和之间留出一些空间where

并且通常最好将对齐字符放在&等号之前而不是整个等式之前。

另一个选择是使用cases环境:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

  \[A = B * \log\frac{C}{D}, \qquad
  \text{ where } \begin{cases}
                   C = \text{lorem} \\
                   D = \text{ipsum}
                 \end{cases}
  \]

\end{document}

给予

在此处输入图片描述

正如 Bernard 在评论中指出的那样,最好不要在案例环境中使用对齐。

最后,提问时最好给出完整的最小工作示例。MWE 应该以\documentclass命令开头,包含最简短的前言,然后\begin{document}...\end{document}。代码应该可以编译,并且尽可能小,以演示您的问题。添加 MWE 可以澄清您的问题,使人们更容易帮助您。

相关内容