如何自動對方程組進行編號(並引用它們)

如何自動對方程組進行編號(並引用它們)

這個問題會自我回答,而且很簡單。有時,我們需要創建一個具有相同數字但具有不同內容(額外的計數器或其他東西)的方程組例如,我有方程(1)然後是(2),現在我想打開方程組( 3 (i)) , (3 (ii)),然後繼續(4)...然後定義(3 (iii)) ...等...

這必須與 amsmath 套件配合使用才能給出 (2.2 (i)) 等數字。

我沒有找到類似的東西,但可能我沒有使用適當的關鍵字。因此,如果重複,請通知我寫在那裡。創建答案...

為了弄清楚我想要什麼......是擁有方程組,而不必給出自訂標籤和更改方程式計數器的數量。

下一張照片顯示了所需的結果(二次方程組和橢圓方程組以及不在它們之間的方程組中):

在此輸入影像描述

PS:這個問題出自問題,但這只是我的一個誤解。他想要別的東西(我也會編輯這個主題答案的程式碼來回答這個問題)

答案1

我們可以定義一個新命令來執行此操作。命令是:

編輯:將 amsmath 套件加入您的序言中。

\makeatletter
\newcommand*\ifcounter[1]{%
  \ifcsname c@#1\endcsname%
    \expandafter\@firstoftwo%
  \else%
    \expandafter\@secondoftwo%
  \fi%
}%
\makeatother


\makeatletter
\newcommand\EqFamTag[2][roman]{%
\ifcounter{#2}{%
\expandafter\addtocounter{#2}{1}%
\xdef\temp{\csname #2 Eq\endcsname \space(\csname #1\endcsname{#2})}%
\global\expandafter\let\csname #2\arabic{#2}\endcsname\temp%
\tag{\temp}%
}{%
\global\expandafter\newcounter{#2}%
\expandafter\addtocounter{#2}{1}%
\xdef\temp{\theequation\space(\csname #1\endcsname{#2})}%
\xdef\eqonfamily{\theequation}%
\global\expandafter\let\csname #2 Eq\endcsname\eqonfamily%
\global\expandafter\let\csname #2\arabic{#2}\endcsname\temp%
\tag{\temp}%
\expandafter\addtocounter{equation}{1}
}%
}%
\makeatother

我在哪裡使用問題中@clemens的答案檢查計數器是否存在

要使用該命令,我們只需編寫(例如):

\begin{equation}
 x^2=3\EqFamTag{Parabolic}
\end{equation}

我們可以給出或不給出標籤...如果我們不給出標籤,我們仍然可以使用以下方式引用拋物線家族的成員:

(\csname Parabolic1\endcsname) 

對於第一個成員...或

(\csname Parabolic2\endcsname)

對於第二名成員等

該命令與 amsmath 包一起使用,我們可以有

\numberwithin{equation}{section}

或我們喜歡的任何東西。

我們可以在新的部分中繼續我們的家庭成員,但編號將記住第一個成員的部分和號碼。

最後,我們可以使用 \roman 編號之外的其他編號(例如大寫字母算術或任何乳膠支援的東西)來添加參數,例如

\begin{equation}
 {x^4}+\frac{3\cdot x^2}{10}+7=0\EqFamTag[Alph]{Quartic}
\end{equation}

相關內容