
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 \thesubdefinition
Makro 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, \ref
für die vollständige Referenz und \shortref
fü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}
\zlabel
Beachten Sie, dass Sie zum Festlegen einer Bezeichnung für verwenden müssen \subdef
.