하위 방정식 번호 매기기 수정

하위 방정식 번호 매기기 수정

현재 수학적 환경에서 번호 매기기를 재정의하고 있는데 subbequations.

다음과 같은 번호 매기기 시스템이 있었으면 좋겠습니다.

방정식. 1. (정규 방정식의 경우)

방정식. 1.A(하위방정식용)

내가 넣으면

\documentclass[12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[leqno]{amsmath}
\usepackage{unicode-math}
\usepackage{etoolbox}
\usepackage{unicode-math}

\makeatletter
    \renewcommand\theequation{%
        \@arabic\c@equation.%
    }

    \renewcommand\tagform@[1]{%
        \maketag@@@{%
        \textbf{\textsc{Eq}.~\ignorespaces#1\unskip}
    }%
}
\makeatother

\patchcmd\subequations
    {\def\theequation{\theparentequation\alph{equation}}}
    {\def\theequation{\theparentequation\protect\Alph{equation}}}
    {}
    {\FAIL}

\begin{document}
\begin{equation}
(a+b)^2 = a^2 + 2 a b + b^2
\label{eq1}
\end{equation}

Some text... \ref{eq1}

\begin{subequations}
    \begin{equation}
    f(x) = a x + b
    \end{equation}
    \begin{equation}
    g(x) = q x + s
    \end{equation}
    \begin{equation}
    h(x) = t x + b
    \end{equation}
\end{subequations}
\end{document}

나는 Eq. 1.A. 하지만 \ref{eq1}예를 들어 를 사용하면 1.대신에 1.

내가 넣으면

\renewcommand\theequation{%
    \@arabic\c@equation%
}
\renewcommand\tagform@[1]{%
    \maketag@@@{%
        \textbf{\textsc{Eq}.~\ignorespaces#1.\unskip}
    }%
}
\patchcmd\subequations % nouvelle numérotation pour les sous-équations
    {\def\theequation{\theparentequation\alph{equation}}}
    {\def\theequation{\theparentequation.\protect\Alph{equation}}}
    {}
    {\FAIL}

나는 문제가 없지만 \ref{eq1}가지고 있습니다 Eq. 1.A..

추가 정보:

@egreg 방정식에 번호를 매기기 위해 정의한 명령이지만 여기서는 Alph{}일을 단순화하기 위해 로 바꾸었고 제거하는 것을 잊어버렸습니다. 그 점을 알려주셔서 감사합니다.

@muzimuzhi 감사합니다! 그러나 그것은 내가 원하는 것이 아닙니다. 일반 방정식의 경우 방정식 번호 뒤에 점을 갖고 싶습니다.

따라서 올바른 번호 매기기는 다음과 같습니다.

방정식. 1.

방정식. 2.A

방정식. 2.B

방정식. 2.C

그러면 점이 생길 것입니다."."는 아라비아 숫자 뒤에 있지만 대문자 뒤에는 없습니다.

답변1

다음 예에서는 \p@equation내부에서 사용되는 이상한 정의를 제공합니다 \stepcounter{<counter>}. 더 우아한 해결책이 있을 수 있습니다.

\documentclass[12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[leqno]{amsmath}
\usepackage{etoolbox}
\usepackage{unicode-math}

\makeatletter
\renewcommand\theequation{%
  \@arabic\c@equation.%
}

\renewcommand\tagform@[1]{%
  \maketag@@@{%
    \textbf{\textsc{Eq}.~\ignorespaces#1\unskip}
  }%
}


\patchcmd\subequations
    {\def\theequation{\theparentequation\alph{equation}}}
    {\def\theequation{\theparentequation\Alph{equation}}}
    {}
    {\FAIL}

\def\p@equation#1{\expandafter\delete@trailing@dot\expanded{#1}.\@nil}
\def\delete@trailing@dot#1.#2.#3\@nil{\ifx\relax#2\relax#1\else#1.#2\fi}
\makeatother

\begin{document}

\begin{equation}
  (a+b)^2 = a^2 + 2 a b + b^2 \label{eq1}
\end{equation}

Some text... \ref{eq1} and \ref{eq2a}

\begin{subequations}
  \begin{align}
    f(x) = a x + b \label{eq2a}\\
    g(x) = q x + s \\
    h(x) = t x + b
  \end{align}
\end{subequations}

\end{document}

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

관련 정보