Anwenden von pgfkeys in einem xparse-Befehl für referenzierte und personalisierte tags und labels
`Anschlussfrage zu: https://tex.stackexchange.com/questions/491625/amsmath-how-can-i-use-the-equation-numbering-and-label-manually-and-anywhere` <br>
`Anschlussfrage zu: https://texwelt.de/wissen/fragen/24809/befehl-mit-mehreren-optionalen-argumenten` <br>
`Auch hier gefragt: https://tex.stackexchange.com/questions/491646/amsmath-how-to-make-inline-tags-with-and-without-labels`
___
[![alt text][1]][1]
Ich will einen Befehl `\tagx` erstellen, der in der normalen Verwendung die nächste folgende Gleichungsnummer erzeugt, z.B. `(1.2)` (und zwar inline, d.h. an beliebigem Ort, z.B. in einem array).
- Allerdings soll der Befehl die optionale Möglichkeit haben, ein Label zu setzen <br>
`\tagx[label=eq:foo] .... \eqref{eq:foo}` <br>
- oder auch die optionale Möglichkeit, für einen eigenen Namen (z.B. `(***)` statt `(1.2)`) <br>
`\tagx[name=***]` <br>
- oder eben beides `\tagx[name=***, label=eq:foo]`
Aber das Anwenden von pgfkeys in dem Befehl von @egreg (hier label-Angabe Pflichtargument!)
\usepackage{xparse}
% \tagx[shown text, optional]{label-name}
\makeatletter
\NewDocumentCommand{\tagx}{om}{%
\IfNoValueTF{#1}
{% normal equation number
\refstepcounter{equation}(\theequation)\label{#2}%
}
{% personal tag
(#1)\def\@currentlabel{#1}\label{#2}%
}%
}
\makeatother
doch schwieriger als ich dachte.
Was muss ich tun?
**Unvollständiges MWE: <br>
(mit `LaTeX Warning: Label multiply defined`)**
\documentclass[12pt]{scrreprt}
\usepackage{amsmath, amsfonts, amssymb}
% Ein pgfkey
\pgfkeys{/tagx/.cd,
label/.initial={\def\@currentlabel{#1}\label{#2}},
name/.initial={}
}
\usepackage{xparse}
% \tagx[shown text, optional]{label-name}
\makeatletter
\NewDocumentCommand{\tagx}{om}{%
\IfNoValueTF{#1}
{% normal equation number
\refstepcounter{equation}(\theequation)\label{#2}%
}
{% personal tag
(#1)\def\@currentlabel{#1}\label{#2}%
}%
}
\makeatother
\usepackage[colorlinks=true]{hyperref} % for highlighting
\begin{document}
\chapter{First Chapter}
An equation for counting:
\begin{equation}
a+b=c\label{eq:bar1}
\end{equation}
\bigskip
This is an inline-tag \tagx{foo1}, it is also labeled \eqref{foo1}.
This is a personalized inline-tag \tagx[***]{foo2}, it is also labeled \eqref{foo2}.
\bigskip
This is an inline-tag \tagx{}, it is \emph{not} labeled.
This is a personalized inline-tag \tagx[***]{}, it is \emph{not} labeled.
\bigskip
An another equation:
\begin{equation}
1+1=2\label{eq:bar2}
\end{equation}
\end{document}
[![alt text][1]][1]
[1]: https://texwelt.de/wissen/upfiles/55555555_367.png