Ich möchte eine eigene Nummerierung und deren Darstellung definieren.
Zum Beispiel,
Heute habe ich David (P1) auf dem Parkplatz getroffen. David war freundlich. Plötzlich fällt mir ein, dass er eine Freundin von mir war, Susan (P2). ...
Wenn ich den Text bearbeite, indem ich hinzufüge
Heute habe ich David (P1) auf dem Parkplatz getroffen. David war freundlich.David ist der Vater von John (P2). Plötzlich fällt mir ein, dass er ein Freund von mir war, Susan (P3). ...
Ich gehe davon aus, dass sich die Zahlen automatisch ändern.
Antwort1
Vielleicht so etwas?
\documentclass{article}
\newcounter{numerations}
\newcommand\nlabel[1]{%
\refstepcounter{numerations}%
\expandafter\xdef\csname REF#1\endcsname{\thenumerations}%
\expandafter\xdef\csname NUMERATIONS\thenumerations\endcsname{#1}%
#1 (P\thenumerations)%
}
\newcommand\nref[1]{#1 (P\csname REF#1\endcsname)}
\newcommand\numeration[1]{\csname NUMERATIONS#1\endcsname{} (P#1)}
\begin{document}
Today I have met \nlabel{David} in the parking. David was friendly.
\textit{David is the father of \nlabel{John}.} Suddenly I remember he was
a friend of mine \nlabel{Susan}...
I can recall the label for \nref{John}, \nref{David}, and or \nref{Susan}.
Or I can invoke them by number: \numeration{2}, \numeration{1}, and or
\numeration{3}.
\end{document}
Antwort2
Hier ist eine Version mit \nameref
- funktionierender (falls erforderlich) und automatischer Beschriftung durch Verwendung des optionalen Arguments, das sich auf den Namen der Person bezieht, während ein zusätzlicher \label
BefehlnachDas \newpersons
Makro bezieht sich auf die Nummer der Person (z. B. P1 usw.).
\documentclass{article}
\usepackage{xparse}
\newcounter{person}
\renewcommand{\theperson}{P\arabic{person}}
\makeatletter
\NewDocumentCommand{\newperson}{O{#2}m}{%
\protected@edef\@currentlabel{#1}%
% If hyperref is not loaded, \protected@edef\currentlabelname does no harm here
\protected@edef\@currentlabelname{#1}% for nameref.
\label{#2}%
\refstepcounter{person}%
#1~(\theperson)%
}
\makeatother
\usepackage{hyperref}
\begin{document}
Today I have met \newperson{David} in the parking. David was friendly.
\textit{\ref{David} is the father of \ref{John}.} Suddenly I remember he was
a friend of mine \newperson{Susan}\label{susansnumber}...
I can recall the label for \newperson{John}, \ref{David}, and or \nameref{Susan} or call them by a reference to the number with \ref{susansnumber}.
\end{document}
Antwort3
Das folgende Beispiel gibt \newperson{<name>}
den Namen gefolgt von einem erhöhten Zähler in der Form an (P<num>)
:
\documentclass{article}
\newcounter{person}
\newcommand{\newperson}[1]{%
\refstepcounter{person}%
#1~(P\theperson)}
\begin{document}
Today I have met David~(P1) in the parking. David was friendly.
David is the father of John~(P2). Suddenly I remember he was a friend of mine, Susan~(P3).
Today I have met \newperson{David} in the parking. David was friendly.
David is the father of \newperson{John}. Suddenly I remember he was a friend of mine, \newperson{Susan}.
\end{document}
Dies könnte erweitert werden, um ein -System zu verwenden \label
, \ref
das es ermöglicht, aus Konsistenzgründen auf bereits benannte (nicht neue) Personen zu verweisen. Hier ist eine solche Implementierung, die bereitstellt, \newperson[<tag>]{<name>}
auf die mit verwiesen werden kann \refperson{<tag>}
. Wenn kein <tag>
angegeben ist, <name>
wird verwendet:
\documentclass{article}
\newcounter{person}
\makeatletter
\newcommand{\newperson}[2][]{%
\refstepcounter{person}% New person added
\def\@currentlabel{#2}% Update label
\@currentlabel~(P\theperson)% Set person
% https://tex.stackexchange.com/a/53091/5764
\if\relax\detokenize{#1}\relax
\label{#2}%
\else
\label{#1}%
\fi
}
\makeatother
\newcommand{\refperson}[1]{\ref{#1}}%
\begin{document}
Today I have met Davidofilofsky~(P1) in the parking. Davidofilofsky was friendly.
Davidofilofsky is the father of John~(P2). Suddenly I remember he was a friend of mine, Susan~(P3).
Today I have met \newperson[david]{Davidofilofsky} in the parking. \refperson{david} was friendly.
\refperson{david} is the father of \newperson{John}. Suddenly I remember he was a friend of mine, \newperson{Susan}.
\end{document}