PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : backref für Referenzen auf labels



iMax
17-02-2008, 12:35
Hallo,

ich baue gerade meine Diplomarbeit und habe unter anderem ein Kapitel mit mehreren Anforderungen, welche im folgenden Text bearbeitet werden.

Für jede Anforderung habe ich ein Label (\label{a1}) gesetzt damit ich im weiteren Text immer wenn ich mich auf diese Anforderung beziehe eine Referenz in Klammern anhängen kann (\ref{a1}).

Jetzt würde ich gerne in der Anforderungsliste nach jeder Anforderung in Klammern anzeigen lassen, auf welchen Seiten diese bearbeitet wurde, etwa so:

Anforderung1 (Seite 11, 15, 48)
...
Anforderung2 (Seite 34, 50, 69)
...
...

Beim Literaturverzeichnis ist sowas ja mit backref möglich. Gibt es so eine ähnliche Funktion für einfache \label{...} auch? oder wie schreibe ich eine solche Funktion selbst, bzw. hat jmd von euch sowas schonmal geschrieben? ;)

Vielen Dank im Voraus!
Gruß,
Max

Lebowski
17-02-2008, 13:46
\pageref{a1} liefert die Seite

iMax
17-02-2008, 14:03
Hallo nochmal,

\pageref{a1} liefert die Seite des \label{a1}.

ich möchte aber alle Seiten angeben auf denen \ref{a1} steht.

Gruß,
Max

Lebowski
17-02-2008, 14:38
Ok,
dann habe ich dich missverstanden.
Mir würden da spontan zwei Möglichkeiten einfallen, entweder du setzt hinter das \ref erneut ein label, z.B. \label{a1_r} und sammelst dann alle mit \pageref.
Wenn die gesuchten Seitenzahlen alle auf einer Seite stehen sollen, kannst du evtl mit \index{} ein für deine Verhältnisse angepasstes Stichwortverzeichnis zusammenbasteln, die Möglichkeiten, die dies Paket liefert, findest du hier: http://www.ku-eichstaett.de/urz/schriften/makeidx.pdf

iMax
18-02-2008, 01:15
Hi,

ich habe es jetzt folgendermaßen gelöst:



\newcounter{refRqs}

\newcounter{loop}
\setcounter{loop}{1}
\newcommand{\forloop}[2]{%
\ifthenelse{\arabic{loop}<#1}
{#2%
\addtocounter{loop}{1}%
\forloop{#1}{#2}%
}{\setcounter{loop}{1}}%
}%
\newcounter{dummy}

% Anforderungsnummern
\newcommand{\rqNr}[1]{
\vspace{0.5cm}
\hypertarget{#1}{\textbf{RQ\_\ifthenelse{#1 < 10}{00}{\ifthenelse{#1 < 100}{0}{}}#1}}
\scriptsize
\setcounter{dummy}{0}%
\forloop{100}%
{\ifthenelse{\pageref{rqRef_#1_\arabic{loop}}>0}%
{\ifthenelse{\arabic{dummy}>0}{, }{(}\setcounter{dummy}{\value{loop}}\pageref{rqRef _#1_\arabic{loop}}}%
{}}%
\ifthenelse{\arabic{dummy}>0}{)}{}%
\normalsize
\vspace{0.25cm}\\
}

% Verweis auf Anforderungsnummern
\newcommand{\refRqNr}[1]{\hyperlink{#1}{RQ\_\ifthenelse{#1 < 10}{00}{\ifthenelse{#1 < 100}{0}{}}#1}\label{rqRef_#1_\arabic{refRqs}}\step counter{refRqs}}


mit \rqNr{1} wird dann eine Anforderungsnummer erstellt und mit \refRqNr{1} darauf verwiesen.

Ist sicher etwas unübersichtlich, aber falls mal jemand ein ähnliches Problem hat kann er ja evtl was damit anfangen...

Gruß,
Max