Ändern Sie das \eqref-Format mit \RenewDocumentCommand (oder auf andere Weise).

Ändern Sie das \eqref-Format mit \RenewDocumentCommand (oder auf andere Weise).

Dies ist eine Fortsetzung einer Antwort in: Wie gibt man „Siehe Gleichung (n)“ richtig ein?

\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}

Diese Antwort erfüllt die meisten meiner Wünsche, aber ich möchte sie so ändern, dass

 \eqref[]{eqlable} 

kann auch die Form annehmen

\eqref[][]{eqlabel} 

damit der Text sowohl vor als auch nach der Gleichungsnummer in den Klammern hinzugefügt werden kann. Außerdem möchte ich die „Gleichung“ nicht dort haben, da ich dies bereits im gesamten Dokument geschrieben habe (wenn ich keine Klammern brauche) und das Hinzufügen dies verdoppelt. Wenn ich dies oben lösche, endet es mit einem seltsamen Leerzeichen.

Das Definieren eines neuen Befehls würde auch funktionieren – und ich habe andere Antworten dazu gesehen –, aber ich weiß nicht, wie ich sie bearbeiten kann, damit der Text davor und danach funktioniert.

edit: Ich hätte gerne, dass die zweite Option ungefähr so ​​aussieht

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

und zu erzeugen (Gleichung 1.1: Terme 1 und 2). Die Klammern werden bereits automatisch hinzugefügt, wenn ich [] als Option eingebe.

und für

Equation~\eqref{eqlabel} 

um Gleichung (1.1) zu erhalten. Dies funktioniert bereits

jede Möglichkeit, die Terme zu erhalten: 1 und 2 nach der Zahl in der Klammer wäre in Ordnung. Ich kann die Schreibweise der Gleichung ändern, damit sie mit dem übereinstimmt, was funktioniert

Antwort1

Ich denke, es funktioniert wie gewünscht :)

Bildbeschreibung hier eingeben

\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}

verwandte Informationen