組合使用子方程式和alignat時對齊不正確

組合使用子方程式和alignat時對齊不正確
\documentclass[a4paper, 12pt, fleqn]{book}
\usepackage[utf8,ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{siunitx}  
\usepackage[fleqn,centertags]{mathtools}
\begin{document}

This is ordinary text and below 3 blocks of equations. The first one without using subequations.
\begin{alignat}{2}
 &a     &&=b ~,\label{1a}\\[1ex]
 &alpha &&=beta~,\label{1b} \\[1ex]
 &c     &&=\frac{\num{72000}\cdot\num{50000}\,(1 - \num{0.30})}{\num{50000}\,(1 - \num{0.30}) -
           2\cdot\num{72000}\cdot\num{0.25}^2} = \SI{96923}{kN/m^2} \label{1c} \\[1ex]
 &cc    &&=\frac{\num{72000}\cdot\num{50000}\,(1 - \num{0.30})}{\num{50000}\,(1 - \num{0.30}) -
           2\cdot\num{72000}\cdot\num{0.25}^2} = \SI{96923.08}{kN/m^2} \label{1d}
\end{alignat}%
The second block uses the subequation environment.
{\allowdisplaybreaks [4]
\begin{subequations}\label{1}
%\noeqref{1a,1b,1c,1d}
\begin{alignat}{2}
 &a     &&=b ~,\label{1a}\\[1ex]
 &alpha &&=beta~,\label{1b} \\[1ex]
 &c     &&=\frac{\num{72000}\cdot\num{50000}\,(1 - \num{0.30})}{\num{50000}\,(1 - \num{0.30}) -
           2\cdot\num{72000}\cdot\num{0.25}^2} = \SI{96923}{kN/m^2} \label{1c} \\[1ex]
 &cc    &&=\frac{\num{72000}\cdot\num{50000}\,(1 - \num{0.30})}{\num{50000}\,(1 - \num{0.30}) -
           2\cdot\num{72000}\cdot\num{0.25}^2} = \SI{96923.08}{kN/m^2} \label{1d}
\end{alignat}
\end{subequations}}%
The alignment on the left side is fine in both cases. However, in the second case there is too much horizontal space left of the "=" sign. When the equation (5d) is removed, or if I reduce the length of (5d) by deleting one or more digits again, the alignment is fine, as can be seen below.
{\allowdisplaybreaks [4]
\begin{subequations}\label{1}
%\noeqref{1a,1b,1c,1d}
\begin{alignat}{2}
 &a     &&=b ~,\label{1a}\\[1ex]
 &alpha &&=beta~,\label{1b} \\[1ex]
 &c     &&=\frac{\num{72000}\cdot\num{50000}\,(1 - \num{0.30})}{\num{50000}\,(1 - \num{0.30}) -
           2\cdot\num{72000}\cdot\num{0.25}^2} = \SI{96923}{kN/m^2} \label{1c} \\[1ex]
 &cc    &&=\frac{\num{72000}\cdot\num{50000}\,(1 - \num{0.30})}{\num{50000}\,(1 - \num{0.30}) -
           2\cdot\num{72000}\cdot\num{0.25}^2} = \SI{96923}{kN/m^2} \label{1d}
\end{alignat}
\end{subequations}}
\end{document}   

這就是我得到的:

在此輸入影像描述

答案1

你真不走運。正如您所看到的,第二個顯示器中的標籤未對齊:amsmath在這種情況下可能應該做得更好,並且至少發出對齊太寬的警告。

由於您使用的是fleqn,因此您可以透過假裝長方程式實際上要短一些來解決問題。

\documentclass[a4paper, 12pt, fleqn]{book}
\usepackage[T1]{fontenc}
\usepackage{siunitx}  
\usepackage[fleqn,centertags]{mathtools}
\usepackage{amsmath}

\begin{document}

This is ordinary text and below 3 blocks of equations. The first one without using subequations.
\begin{alignat}{2}
 &a     &&=b ~,\label{1a}\\[1ex]
 &alpha &&=beta~,\label{1b} \\[1ex]
 &c     &&=\frac{\num{72000}\cdot\num{50000}\,(1 - \num{0.30})}{\num{50000}\,(1 - \num{0.30}) -
           2\cdot\num{72000}\cdot\num{0.25}^2} = \SI{96923}{kN/m^2} \label{1c} \\[1ex]
 &cc    &&=\frac{\num{72000}\cdot\num{50000}\,(1 - \num{0.30})}{\num{50000}\,(1 - \num{0.30}) -
           2\cdot\num{72000}\cdot\num{0.25}^2} = \SI{96923.08}{kN/m^2} \label{1d}
\end{alignat}
The second block uses the subequation environment.
\begin{subequations}\label{1}
\begin{alignat}{2}
 &a     &&=b ~,\label{x1a}\\[1ex]
 &alpha &&=beta~,\label{x1b} \\[1ex]
 &c     &&=\frac{\num{72000}\cdot\num{50000}\,(1 - \num{0.30})}{\num{50000}\,(1 - \num{0.30}) -
           2\cdot\num{72000}\cdot\num{0.25}^2} = \SI{96923}{kN/m^2} \label{x1c} \\[1ex]
 &cc    &&=\frac{\num{72000}\cdot\num{50000}\,(1 - \num{0.30})}{\num{50000}\,(1 - \num{0.30}) -
           2\cdot\num{72000}\cdot\num{0.25}^2} = \SI{96923.08}{kN/m^2}
           \hspace{-2em}
           \label{x1d}
\end{alignat}
\end{subequations}

\end{document}  
  1. \allowdisplaybreaks切勿在文件的最終版本中使用。您可以在編寫文件時在序言中使用它,但在最後顯示的分頁符號必須仔細選擇。

  2. 加載沒有意義ansinew。刪除inputenc通話。

  3. 為什麼左側要左對齊?

在此輸入影像描述

相關內容