使用 amsmath 时方程式未对齐

使用 amsmath 时方程式未对齐

我希望所有方程式都以相同的边距左对齐,即将第一个方程式向前移动或将另外两个方程式向后移动。 1

不过,后两个方程位于枚举包内:

\begin{align*}
\frac{4}{5} + \frac{3}{2}
\end{align*}
\begin{enumerate}
\item Find equivalent fractions with the same denominator:
\begin{align*}
\frac{4}{5} + \frac{3}{2}=\frac{8}{10} + \frac{15}{10}
\end{align*}
\item Add the numerators:
\begin{align*}
\frac{8}{10} + \frac{15}{10}=\frac{23}{10}
\end{align*}
\end{enumerate}

因此我不确定如何让它们排队,因为我相信枚举具有内置的自然缩进?

测试代码(必须使用 LuaLaTex 编译):

\documentclass[14pt,extrafontsizes]{memoir}
\usepackage[margin=10px, paperwidth=640px, paperheight=720px]{geometry}
\usepackage[fleqn]{amsmath}
\usepackage{multicol}
\usepackage{enumerate}
\usepackage{titlesec}
\usepackage{mathptmx}
\usepackage[T1]{fontenc}
\titleformat*{\section}{}

\begin{document}
\section*{\Huge \underline{Addition of Fractions}}
\LARGE
\begin{align*}
\frac{4}{5} + \frac{3}{2}
\end{align*}
\begin{enumerate}
\item Find equivalent fractions with the same denominator:
\begin{align*}
\frac{4}{5} + \frac{3}{2}=\frac{8}{10} + \frac{15}{10}
\end{align*}
\item Add the numerators:
\begin{align*}
\frac{8}{10} + \frac{15}{10}=\frac{23}{10}
\end{align*}
\end{enumerate}
\end{document}

答案1

是的,环境enumerate和其他添加了左右边距,因此方程式被移动到了右边。

至少对于内部使用环境的第一级此类环境list,以下示例将重置\mathindent以保持相同的位置:

\documentclass[fleqn]{article}
\usepackage{amsmath}

\usepackage{etoolbox}
\patchcmd\list{#2\relax}{%
  #2\relax
  \advance\mathindent-\leftmargin
}{}{}

\begin{document}
\begin{align*}
  \frac{4}{5} + \frac{3}{2}
\end{align*}
\begin{enumerate}
\item Find equivalent fractions with the same denominator:
  \begin{align*}
    \frac{4}{5} + \frac{3}{2}=\frac{8}{10} + \frac{15}{10}
  \end{align*}
\item Add the numerators:
  \begin{align*}
    \frac{8}{10} + \frac{15}{10}=\frac{23}{10}
  \end{align*}
\end{enumerate}
\end{document}

结果

评论:

  • 这个技巧不适用于更深的嵌套环境,因为\mathindent会变成负数,而且这些值似乎会被忽略。
  • 右边距保持不变。

答案2

您可以使用 AMS 类所使用的相同方法:

\documentclass{memoir}
\usepackage[fleqn]{amsmath}
\usepackage[T1]{fontenc}

\makeatletter
\def\fullwidthdisplay{\displayindent\z@ \displaywidth\columnwidth}
\edef\@tempa{\noexpand\fullwidthdisplay\the\everydisplay}
\everydisplay\expandafter{\@tempa}
\makeatother

\begin{document}
\section*{Addition of Fractions}
\begin{equation*}
\frac{4}{5} + \frac{3}{2}
\end{equation*}
\begin{enumerate}
\item Find equivalent fractions with the same denominator:
\begin{equation*}
\frac{4}{5} + \frac{3}{2}=\frac{8}{10} + \frac{15}{10}
\end{equation*}
\item Add the numerators:
\begin{equation*}
\frac{8}{10} + \frac{15}{10}=\frac{23}{10}
\end{equation*}
\end{enumerate}
\end{document}

在此处输入图片描述

笔记

  1. 该软件包与使用更改标题外观的功能titlesec不兼容memoirmemoir

  2. 下划线不是一种好的印刷手段

  3. 大字体不会增强可读性,反而会阻碍可读性。您已经有一个 14pt 的基本字体大小,这相当大。不要\LARGE在文档中使用裸字体。

  4. align应该用于多线方程组,而不是单个方程组,这equation是首选。

答案3

如果您想要对齐多个方程式,您需要:

  • 将它们全部放在同一个align*环境中
  • &在方程式中想要对齐的位置添加一个符号
  • \\在每行末尾添加一个符号

如果您只想获取图片上的内容,可以使用以下代码:

\begin{align*}
& \frac{4}{5} + \frac{3}{2} \\
\intertext{1. Find equivalent fractions with the same denominator:}
& \frac{4}{5} + \frac{3}{2}=\frac{8}{10} + \frac{15}{10} \\
\intertext{2. Add the numerators:}
& \frac{8}{10} + \frac{15}{10}=\frac{23}{10} \\
\end{align*}

并使用包fleqn的选项amsmath。但是,如果您想要更长的枚举,这不是最佳选择,因为它根本不是自动的!为了改变这一点,我发现可以align*在环境中有一个环境enumerate(只要第一个\item命令在\begin{align*}命令之前),但不能相反...

代码输出

笔记该输出是通过该fleqn选项获得的。

相关内容