ClevereEF-Typreferenzierung zum Schreiben von Constraint(s)

ClevereEF-Typreferenzierung zum Schreiben von Constraint(s)

\cref{eq15,eq16,eq17,eq18}produziert Eqs. (15) to (18).

ConstraintEinige der Gleichungen möchte ich als / constraint/ Constraints/ schreiben, constraintsabhängig von der Position der Referenz und der Anzahl der Referenzen. Ähnlich wie bei \cref/ \Creferkennt es automatisch die Anzahl der Referenzen und erzeugt entsprechende Nummern. Außerdem möchte ich \creffür Gleichungen keine Änderungen vornehmen.

Möglich? Irgendeine Hilfe/Idee?

MWE:

\documentclass{article}
\usepackage{amsmath}
\usepackage[colorlinks,allcolors=red]{hyperref}
\usepackage{cleveref}

\begin{document}
\begin{equation}\label{eq1}
    a+b<2
\end{equation}
\begin{equation}\label{eq4}
    a+b<2
\end{equation}
\begin{equation}\label{eq3}
    a+b<2
\end{equation}
\begin{equation}\label{eq2}
    a+b<2
\end{equation}

\Cref{eq1} should display Equation and \cref{eq1} should display Eq. i.e., normal behaviour of cref. I don't want to change this.

Need some kind of newcommand/macro/package so that I can write constraints (2) to (4). 

%Ex:
%\newref{eq2} = constraint (4)
%\Newref{eq2} = Constraint (4)
%\newref{eq3,eq2,eq4} = constraints (2) to (4)
%\Newref{eq3,eq2,eq4} = Constraints (2) to (4)
%\newref{eq2,eq3} = constraints (3) and (4)
%\Newref{eq2,eq3} = constraints (3) and (4)

\end{document}

Antwort1

Sie können Ihr Formatierungsziel erreichen, indem Sie constraintfür den equationZähler einen „Alias“ namens definieren. Beachten Sie die Form der \labelAnweisung für equationUmgebungen: \label[constraint]{eq|x|}, wobei xin steht {2,3,4}. Die Verwendung eines optionalen Arguments weist darauf hin, cleverefeinen anderen Bezeichnungsnamen als den Standardnamen zu verwenden.

Weitere Informationen zur cleveref"Alias"-Funktion von finden Sie in Abschnitt 6 derBenutzerhandbuch des Pakets, „Überschreiben des Querverweistyps“.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{amsmath}
\usepackage[colorlinks,allcolors=red]{hyperref}

\usepackage{cleveref}
\crefalias{constraint}{equation}
\crefname{constraint}{constraint}{constraints}
\Crefname{constraint}{Constraint}{Constraints}
\creflabelformat{constraint}{#2{\upshape(#1)}#3} 

\begin{document}
\begin{equation}\label{eq1} a+b=2 \end{equation}
\begin{equation}\label[constraint]{eq2} a+b<2 \end{equation}
\begin{equation}\label[constraint]{eq3} a+b>2 \end{equation}
\begin{equation}\label[constraint]{eq4} a+b\ne2 \end{equation}

\Cref{eq1}; \cref{eq1}.

\Cref{eq2,eq4,eq3}; \cref{eq2,eq4,eq3}.
\end{document}

Antwort2

Diese Lösung hängt von der Definition eines neuen Befehls zur Verwendung von \cref/ ab \Cref, dervorübergehendändert ihre Definition, wenn eine Gleichung querverwiesen wird. So kann die Gleichung jederzeit entweder anhand ihrer ursprünglichen Bezeichnungsdefinition oder anhand einer zusätzlichen Bezeichnung querverwiesen werden (ohne die ursprüngliche/ursprüngliche Bezeichnung zu entfernen). Beide Bezeichnungen können jederzeit in beliebiger Reihenfolge für dieselbe Gleichung verwendet werden.

Der neue Befehl kann beispielsweise \ccrefwie folgt definiert werden

\newcommand*\ccref[1]{\crefname{equation}{constraint}{constraints}\Crefname{equation}{Constraint}{Constraints}\cref{#1}\crefname{equation}{eq.}{eqs.} \Crefname{equation}{Eq.}{Eqs.}}

und ebenso für die Definition der Großbuchstaben\CCref

Nachfolgend finden Sie Beispiele für alle möglichen Fälle bei der Verwendung von zwei Etiketten eq./eqs./Eq./Eqs.undconstraint/constraints/Constraint/Constraints

Bildbeschreibung hier eingeben

Der vollständige Code

\documentclass{article}
\usepackage{amsmath}
\usepackage[colorlinks,allcolors=red]{hyperref}
\usepackage{cleveref}
\crefname{equation}{eq.}{eqs.} % Initial definition of \cref
\Crefname{equation}{Eq.}{Eqs.} % Initial definition of \Cref
%
\newcommand*\ccref[1]{\crefname{equation}{constraint}{constraints}\Crefname{equation}{Constraint}{Constraints}\cref{#1}\crefname{equation}{eq.}{eqs.} \Crefname{equation}{Eq.}{Eqs.}}
\newcommand*\CCref[1]{\crefname{equation}{constraint}{constraints}\Crefname{equation}{Constraint}{Constraints}\Cref{#1}\crefname{equation}{eq.}{eqs.} \Crefname{equation}{Eq.}{Eqs.}}
%
\begin{document}
%
\section{Equations}
    \begin{equation}\label{eq1}
        a+b<2
    \end{equation}
    \begin{equation}\label{eq2}
        a+b<2
    \end{equation}
    \begin{equation}\label{eq3}
        a+b<2
    \end{equation}
    \begin{equation}\label{eq4}
        a+b<2
    \end{equation}

\section{Test single equation}
    \begin{tabular}{l l }
        Command & Output \\
        \hline
    \verb|\cref{eq1}| &  \cref{eq1} \\
    \verb|\Cref{eq1}| &  \Cref{eq1} \\
    \verb|\ccref{eq1}| & \ccref{eq1} \\
    \verb|\CCref{eq1}| &  \CCref{eq1}  \\
    \end{tabular}

\section{Test many equation}

\begin{tabular}{l l }
    Command & Output \\
    \hline
    \verb|\cref{eq1,eq2}| &  \cref{eq1,eq2} \\
    \verb|\Cref{eq1,eq2}| &  \Cref{eq1,eq2} \\
    \verb|\Cref{eq1,eq2,eq4}| &  \Cref{eq1,eq2,eq4} \\
    \verb|\ccref{eq1,eq2}| & \ccref{eq1,eq2} \\
    \verb|\CCref{eq1,eq2}| &  \CCref{eq1,eq2}  \\
    \verb|\CCref{eq1,eq2,eq4}| &  \CCref{eq1,eq2,eq4}  \\
\end{tabular}

\section{Test range of equations}
    \begin{tabular}{l l }
    Command & Output \\
    \hline
    \verb|\cref{eq1,eq2,eq3,eq4}| &  \cref{eq1,eq2,eq3,eq4} \\
    \verb|\Cref{eq1,eq2,eq3,eq4}| &  \Cref{eq1,eq2,eq3,eq4} \\
    \verb|\ccref{eq1,eq2,eq3,eq4}| & \ccref{eq1,eq2,eq3,eq4} \\
    \verb|\CCref{eq1,eq2,eq3,eq4}| &  \CCref{eq1,eq2,eq3,eq4}  \\
\end{tabular}
\end{document}

verwandte Informationen