PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Counter durch Referenz auf Counter setzen



mr duke
11-07-2009, 19:43
Hallo,


ich benutze folgenden Code, um einen Counter während eines Latex-Laufs zu speichern (so wie das bei bspw. Verweisen auf Kapitel automatisch passiert), um es im nächsten Lauf durch einen \ref{}-Befehl zu setzen.


\newcommand{\sichermich}[2]{\addtocounter{#1}{-1}\refstepcounter{#1}\label{#2}}

Das funktioniert auch prima, wenn ich die Referenz nur als Text verwenden will, aber ich möchte gerne den Counter aus der Referenz wiederherstellen und auf die Zahl selbst zugreifen.

Geht das? (Hoffe, ich habe mich klar ausgedrückt, bin kein Latex-Profi...)


Grüße

Lukas

u_fischer
12-07-2009, 12:40
Du kannst lokal \thecounter so Umdefinieren, dass \label eine Nummer speichert. Da beim ersten Durchlauf ein Label undefiniert ist, solltest du refcount benutzen, um den Wert auszulesen.


\documentclass{article}
\usepackage{refcount}
%als Test, damit \thesection keine Nummer ist
\renewcommand\thesection{Sec\arabic{section}}%

\newcommand{\sichermich}[2]{%
\begingroup
\expandafter\def\csname the#1\endcsname{\number\csname c@#1\endcsname}%
\addtocounter{#1}{-1}\refstepcounter{#1}\label{#2}%
\endgroup}
\begin{document}

\section{a}\label{sub1a}
\sichermich{section}{sub1b}
\section{b}

\section{c}
\setcounterref{section}{sub1b}

\section{d}
\end{document}


Ulrike Fischer

sommerfee
12-07-2009, 13:04
Ansonsten lohnt vielleicht auch ein Blick auf das zref-Paket (ist Bestandteil des Oberdiek-Bundles), damit kann man Zähler etc. individuell in der AUX-Datei sichern und im Quelltext darauf zugreifen.

Liebe Grüße,
Axel

mr duke
12-07-2009, 13:16
Vielen Dank, Ulrike! Das klappt prima.


Grüße

Lukas

mr duke
12-07-2009, 13:17
Auch Dir danke, Axel, hatte Deine Antwort ganz übersehen. Ich werde mir das Paket mal anschauen...