von iTob » Sa 28. Apr 2012, 17:58
Du kannst diese Definition einfach in dein Dokument übernehmen. Nur musst du das Paket ifthen laden (weil \ifthenelse verwendet wird) und du musst die Definition zwischen \makeatletter und \makeatother einschließen, weil in den Befehlsnahmen das @ verwendet wird.
Nachtrag: das \if@dorunners muss auch raus. Ich vermute, das bezieht sich auf eine Option der Klasse, die du ja nicht verwendest. Also:
\newcounter{runner}
\renewcommand{\therunner}{\arabic{runner}}
\newcommand*{\rn}[2][]{%
\refstepcounter{runner}%
#2%
\marginpar[\hfill{\bfseries\therunner}]{{\bfseries\therunner}\hfill}%
\ifthenelse{\equal{#1}{\@empty}}%
{}% nix
%else
{\label{#1}}%
}
(Ungetestet, da kein Minimalbeispiel)
Nachtrag 2: Die \protected@edef-Zeile kann auch raus, wenn man statt \stepcounter \refstepcounter benutzt, so wie die TeX-Entwickler sich das gedacht haben …
PS: Bitte verwende das nächste mal den CODE-Button!
Du kannst diese Definition einfach in dein Dokument übernehmen. Nur musst du das Paket ifthen laden (weil \ifthenelse verwendet wird) und du musst die Definition zwischen \makeatletter und \makeatother einschließen, weil in den Befehlsnahmen das @ verwendet wird.
Nachtrag: das \if@dorunners muss auch raus. Ich vermute, das bezieht sich auf eine Option der Klasse, die du ja nicht verwendest. Also:
[code]\newcounter{runner}
\renewcommand{\therunner}{\arabic{runner}}
\newcommand*{\rn}[2][]{%
\refstepcounter{runner}%
#2%
\marginpar[\hfill{\bfseries\therunner}]{{\bfseries\therunner}\hfill}%
\ifthenelse{\equal{#1}{\@empty}}%
{}% nix
%else
{\label{#1}}%
}[/code]
(Ungetestet, da kein Minimalbeispiel)
Nachtrag 2: Die \protected@edef-Zeile kann auch raus, wenn man statt \stepcounter \refstepcounter benutzt, so wie die TeX-Entwickler sich das gedacht haben …
PS: Bitte verwende das nächste mal den CODE-Button!