由于某种原因,一些应该将数学方程式居中的环境并没有这样做,我也无法手动将它们左对齐或居中。我正在使用and,每当我在or环境mathtools
中编写方程式时,它们都会自动刷新到右侧。我尝试使用Instead(和许多其他格式化花招),但它并没有解决问题。我做错了什么?align
align*
flalign
编辑:
\documentclass[hidelinks,article]{abntex2}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}
\usepackage{mathtools}
\usepackage{amsfonts}
\begin{document}
\subsection{Algoritmo recursivo para o primeiro problema}
Como proposta de algoritmo recursivo \textbf{sem} recursão na cauda para a computação do MDC de dois números, foi elaborado o seguinte método:
\begin{align}
{N \times N \implies N} \\
MDC(m,n)=1, se mindiv(m,n)=0 \\
\mathit{MDC(m,n)=mindiv(m,n)\times MDC \left(\dfrac{m}{mindiv(m,n)},\dfrac{n}{mindiv(m,n)}\right), se \hspace{2pt} mindiv\left(m,n\right)\in\mathbb{N}} \\
\mathit{mindiv(m,n): N \times N \implies N} \\
\mathit{mindiv(m,n)=min\left\{d\in\mathbb{N} \vert mod(m,d)=0 \wedge mod(n,d)=0 \wedge d\neq1 \right\}}
\end{align}
\end{document}
答案1
我使用了 OP 的 MWE,并添加了具有“正确”设置的环境align
。这稍微改善了情况,但我认为中间的方程太宽了。flalign
&
在我看来,函数名称应该用\DeclareMathOperator
命令来排版,而不是用,但是......你知道;-)\mathit
\documentclass[hidelinks,article]{abntex2}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}
\usepackage{mathtools}
\usepackage{amsfonts}
\begin{document}
\subsection{Algoritmo recursivo para o primeiro problema}
Como proposta de algoritmo recursivo \textbf{sem} recursão na cauda para a computação do MDC de dois números, foi elaborado o seguinte método:
Original version
\begin{align}
{N \times N \implies N} \\
MDC(m,n)=1, se mindiv(m,n)=0 \\
\mathit{MDC(m,n)=mindiv(m,n)\times MDC \left(\dfrac{m}{mindiv(m,n)},\dfrac{n}{mindiv(m,n)}\right), se \hspace{2pt} mindiv\left(m,n\right)\in\mathbb{N}} \\
\mathit{mindiv(m,n): N \times N \implies N} \\
\mathit{mindiv(m,n)=min\left\{d\in\mathbb{N} \vert mod(m,d)=0 \wedge mod(n,d)=0 \wedge d\neq1 \right\}}
\end{align}
Align
\begin{align}
N \times N &\implies N \\
\mathit{MDC(m,n)}&=1, \textit{se\;mindiv(m,n)}=0 \\
\mathit{MDC(m,n)}&=\mathit{mindiv(m,n)\times MDC \left(\dfrac{m}{mindiv(m,n)},\dfrac{n}{mindiv(m,n)}\right)}, &\mathit{se\;mindiv}\left(m,n\right)\in\mathbb{N} \\
\mathit{mindiv(m,n)} &: N \times N \implies N \\
\mathit{mindiv(m,n)} &=\mathit{min\left\{d\in\mathbb{N} \vert mod(m,d)=0 \wedge mod(n,d)=0 \wedge d\neq1 \right\}}
\end{align}
flalign
\begin{flalign}
N \times N &\implies N \\
\mathit{MDC(m,n)}&=1, \textit{se\;mindiv(m,n)}=0 \\
\mathit{MDC(m,n)}&=\mathit{mindiv(m,n)\times MDC \left(\dfrac{m}{mindiv(m,n)},\dfrac{n}{mindiv(m,n)}\right)}, &\mathit{se\;mindiv}\left(m,n\right)\in\mathbb{N} \\
\mathit{mindiv(m,n)} &: N \times N \implies N \\
\mathit{mindiv(m,n)} &=\mathit{min\left\{d\in\mathbb{N} \vert mod(m,d)=0 \wedge mod(n,d)=0 \wedge d\neq1 \right\}}
\end{flalign}
\end{document}
答案2
由于您没有使用任何对齐点(&
),并且鉴于五个方程式似乎没有提供应该插入对齐点的明显位置,因此您最好使用环境gather
而不是环境align
。
另外,我会小心地定义诸如mindiv
“数学运算符”之类的术语,并使用直立(“罗马”)字母排版字符串“MDC”。考虑使用\mid
而不是|
以获得垂直条周围的正确排版间距,并使用\colon
而不是:
,同样是出于间距原因。
\documentclass[hidelinks,article]{abntex2}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amsfonts}
\DeclareMathOperator{\mindiv}{mindiv}
\let\mod\relax % redefine "\mod"
\DeclareMathOperator{\mod}{mod}
\newcommand{\MDC}{\mathrm{MDC}}
\begin{document}
\subsection{Algoritmo recursivo para o primeiro problema}
Como proposta de algoritmo recursivo \textbf{sem} recursão na cauda
para a computação do MDC de dois números, foi elaborado o seguinte método:
\begin{gather}
{N \times N \implies N} \\
\MDC(m,n)=1, \text{ se $\mindiv(m,n)=0$} \\
\MDC(m,n)=\mindiv(m,n)\times \MDC
\left(\dfrac{m}{\mindiv(m,n)},\dfrac{n}{\mindiv(m,n)}\right),
\text{ se $\mindiv(m,n)\in\mathbb{N}$} \\
\mindiv(m,n)\colon N \times N \implies N \\
\mindiv(m,n)=\min \{\, d\in\mathbb{N} \mid
\mod(m,d)=0 \wedge
\mod(n,d)=0 \wedge d\neq1 \,\}
\end{gather}
\end{document}