Mehrere \the...-Formate für einen einzelnen Zähler?

Mehrere \the...-Formate für einen einzelnen Zähler?

Angenommen, ich habe eine Definition ( \arabic), die eine kleine Liste von Unterdefinitionen ( \alph) enthält. Manchmal möchte ich vollständige Querverweise verwenden (2.3a,2.3b, ...). Aber manchmal, wenn die Hauptdefinition aus dem Kontext klar wird, möchte ich kurze Querverweise verwenden (A,B, ..).

Ich kann aber nur ein \thesubdefinitionMakro definieren. Meine Frage ist also: Gibt es eine empfohlene Methode, um mehr als eine Formatierung an einen einzigen Zähler (also einen \label) zu binden? Im „Benutzercode“ stelle ich mir vor, \reffür die vollständige Referenz und \shortreffür die Kurzreferenz Folgendes zu verwenden:

\newcounter{subdefinition}[definition]
\def\subdef#1{\refstepcounter{subdefinition}(\alph{subdefinition}) #1}

...

\begin{definition} \label{def}
    Bla bla technical stuff:
    \subdef{simple axiom}\label{simple}, 
    \subdef{complex axiom}\label{complex}.
    Note that axiom~\shortref{complex} is more complex than axiom~\shortref{simple}.
\end{definition}

We will focus mostly on axiom~\shortref{complex}).  % axiom b

...

Recall that axiom~\ref{complex} is very complex.  % axiom 2.3b

Ich könnte wahrscheinlich etwas hacken, aber vielleicht gibt es dafür ein Paket?

Antwort1

Sie können Folgendes verwenden zref:

\documentclass{article}
\usepackage{amsthm}
\usepackage[user]{zref}

\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\newcounter{subdefinition}[definition]

\makeatletter
\zref@newprop{subdef}{}
\zref@newprop{fulldef}{}
\zref@addprop{main}{subdef}
\zref@addprop{main}{fulldef}

\newcommand\subdef[1]{%
  \refstepcounter{subdefinition}%
  \zref@setcurrent{subdef}{\alph{subdefinition}}%
  \zref@setcurrent{fulldef}{\thedefinition\alph{subdefinition}}%
  (\alph{subdefinition})~#1%
}
\newcommand{\shortref}[1]{\zref[subdef]{#1}}
\newcommand{\fullref}[1]{\zref[fulldef]{#1}}
\makeatother

\begin{document}

\section{A definition}

\begin{definition} \label{def}
Bla bla technical stuff:
\subdef{simple axiom}\zlabel{simple}, 
\subdef{complex axiom}\zlabel{complex}.
Note that axiom~\shortref{complex} is more complex than axiom~\shortref{simple}.
\end{definition}

\section{A reference}

We will focus mostly on axiom~\fullref{complex}.

\end{document}

\zlabelBeachten Sie, dass Sie zum Festlegen einer Bezeichnung für verwenden müssen \subdef.

Bildbeschreibung hier eingeben

verwandte Informationen