\RenewDocumentCommand (または他の方法) を使用して \eqref 形式を変更します

\RenewDocumentCommand (または他の方法) を使用して \eqref 形式を変更します

これは以下の回答の続きです: 「式(n)を参照」と入力する正しい方法は何ですか?

\documentclass[12pt]{report}   

\usepackage[UKenglish]{babel}
\usepackage{graphicx} 
\usepackage{epstopdf}    
\usepackage{gensymb}
\usepackage{amssymb}
\usepackage{stmaryrd}
\usepackage{amsmath}  
\usepackage{siunitx}
\usepackage{placeins}
\usepackage{letltxmacro}


\LetLtxMacro{\oldeqref}{\eqref}
\RenewDocumentCommand\eqref{D<>{Equation}om}{%
\IfNoValueTF{#2}
{#1~\oldeqref{#3}}
{(#2 #1~\textup{\ref{#3}})}%
}

\begin{document}

\begin{equation}
\label{eq:test}
x=2y;
\end{equation}%

what this looks like:

this is Equation~\eqref{eq:test}

this is \eqref[Equation]{eq:test}

%this is \eqref[Equation][: terms 1 and 2]{eq:test}



\end{document}

この回答は私がやりたいことのほとんどをカバーしていますが、次のように変更したいと思います。

 \eqref[]{eqlable} 

次のような形式もとれる

\eqref[][]{eqlabel} 

括弧内の数式番号の前後両方に書き込みを追加できるようにします。また、すでに文書全体に「数式」を記述しているため (括弧が不要な場合)、これを追加すると重複するため、ここには「数式」を含めないようにします。上からこれを削除すると、奇妙なスペースができてしまいます。

新しいコマンドを定義することも機能します。また、これに基づいた他の回答も見たことがありますが、前後のテキストを機能させるためにそれらのいずれかを編集する方法がわかりません。

編集: 2番目のオプションは次のようになります

   \eqref[Equation][: terms 1 and 2]{eqlabel}

そして、(式 1.1: 項 1 と 2) を生成します。オプションとして [] を入力すると、括弧は自動的に追加されます。

そして

Equation~\eqref{eqlabel} 

式(1.1)を生成する。これはすでに機能している

括弧内の数字の後に1と2の項を取得する方法があれば問題ありません。方程式の書き方を変更して、うまくいくようにすることができます。

答え1

ご希望通りに動作していると思います:)

ここに画像の説明を入力してください

\documentclass[12pt]{report}   

\usepackage[UKenglish]{babel}
\usepackage{graphicx} 
\usepackage{epstopdf}    
\usepackage{gensymb}
\usepackage{amssymb}
\usepackage{stmaryrd}
\usepackage{amsmath}  
\usepackage{siunitx}
\usepackage{placeins}
\usepackage{letltxmacro}


%\LetLtxMacro{\oldeqref}{\eqref}
% As Christian Hupfer noted, there is no need to use \LetLtxMacro here. Although there is no harm is using it (https://tex.stackexchange.com/questions/88001/when-to-use-letltxmacro)
\let\oldeqref\eqref
\RenewDocumentCommand\eqref{oom}{%
\IfNoValueTF{#2}{\def\eqafter{}}{\def\eqafter{#2}}%
\IfNoValueTF{#1}
{\oldeqref{#3}}
{(#1 \textup{\ref{#3}}\eqafter)}%
}

\begin{document}

\begin{equation}
\label{eq:test}
x=2y;
\end{equation}%

what this looks like:

this is Equation~\eqref{eq:test}

this is \eqref[Equation]{eq:test}

this is \eqref[Equation][: terms 1 and 2]{eq:test}

\end{document}

関連情報