방정식 사용자 정의 수평 정렬 및 각 행에 번호 매기기

방정식 사용자 정의 수평 정렬 및 각 행에 번호 매기기

내가 아는 대로 "align"에는 오른쪽-왼쪽-오른쪽-왼쪽-... 고정된 수평 정렬이 있으며 이 정렬을 변경할 수 없습니다. 따라서 방정식을 맞춤 수평 정렬(예: 오른쪽-가운데-가운데-왼쪽)으로 정렬하려면 "equation" 또는 "gather", "array", "arraycolsep"("align"과 같은 간격 "="의 경우)을 사용할 수 있습니다. ) 및 "displaystyle"("frac" 또는 "lim"의 적절한 처리용)입니다.

예를 들어,

\newcommand{\argmax}{\operatornamewithlimits{arg\,max}}
...
\begin{gather}
\arraycolsep=1.4pt\def\arraystretch{2.2}
\begin{array}{rccl}
p_{\mathrm{MLE}}(x) & = & \displaystyle \max_{m} &P(X = x | \theta = m) \\
m_{\mathrm{MLE}}(x) & = & \displaystyle \argmax_{m} &P(X = x | \theta = m)
\end{array}
\end{gather}

아래에서 생산됩니다.

여기에 이미지 설명을 입력하세요

그러나 여기에는 번호 매기기 레이블이 하나만 있습니다. 각 행의 숫자를 분할할 수는 없습니다. "align"을 사용하고 "\,", "\phantom{}", "\quad" 또는 "\qquad"를 사용하여 수동으로 간격을 조정하는 것은 잘못된 선택일 수 있습니다.

이 경우 각 행에 대해 서로 다른 숫자에 레이블을 지정하는 방법은 무엇입니까?

답변1

여러분이 패키지를 사용하고 있으므로 amsmath해당 패키지의 지시문을 사용하여 두 개의 새로운 "연산자" 인 및 \DeclareMathOperator*를 생성합니다. 여기서 후자는 너비가 ""인 상자 중앙에 "max"라는 단어를 표시합니다 . 또한 환경 대신 환경, 환경 대신 환경 , .\argmax\midmaxarg maxsplitarrayequationgather\mid\

각 행에 개별적으로 번호를 지정해야 하는 경우 중첩된 / 환경 align대신 환경 을 사용하세요 .equationsplit

여기에 이미지 설명을 입력하세요

\documentclass{article}
\usepackage{amsmath}
%% Create two new math opertors: \argmax and \midmax
\DeclareMathOperator*{\argmax}{arg\,max}
\newlength\mylen
\settowidth\mylen{arg\,max}
\DeclareMathOperator*{\midmax}{\parbox{\mylen}{\centering\upshape max}} % center-set "max"
\begin{document}

%% Single equation number for both rows:
\begin{equation}
\begin{split}
p_{\mathrm{MLE}}(x) &= \midmax_{m} P(X = x \mid \theta = m) \\
m_{\mathrm{MLE}}(x) &= \argmax_{m} P(X = x \mid \theta = m)
\end{split}
\end{equation}

% Separate equation numbers, one per row:
\begin{align}
p_{\mathrm{MLE}}(x) &= \midmax_{m} P(X = x \mid \theta = m) \\
m_{\mathrm{MLE}}(x) &= \argmax_{m} P(X = x \mid \theta = m)
\end{align}
\end{document} 

관련 정보