PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verweis auf komplettes Bibtex-Verzeichnis



peterd86
06-06-2008, 07:46
Hallo,

ich habe ein Problem in Latex und hoffe, dass mir jemand helfen kann.
Ich möchte im Latex-Dokument auf mein Bibliotheksverzeichnis verweisen.
Ich möchte nicht auf ein Element des Bilbiotheksverzeichnisses mit \cite verweisen, sondern dabei soltle es sich auf ein Verweis
zum Bibliotheksverzeichniskapitels handel.
Da das Kapitel von Bibtex erstellt wird kann ich das Problem nicht mit \label{} lösen.
Kennen Sie einen Lösungsweg?
Ich wäre für einen Tipp dankbar.

Viele Grüße,

Peter

edico
06-06-2008, 10:23
Du must Dir Anker stricken:

...
Wie im \hyperlink{Literaturverzeichnis}{Literaturverzeich nis}, S. \pageref{lit}, gelistet, ...
...
\bibliography{literatur}\label{lit}
\hypertarget{Literaturverzeichnis}{Literaturverzei chnis}

edico

peterd86
06-06-2008, 11:42
Danke, aber das funktioniert alles nicht so wie ich es will.
Ich möchte, dass der Kapitelname (bei mir: "Anhang B") als Verweisname angegeben wird.
Wenn ich "\bibliography{referenzen}\hypertarget{B}{B}" schreibe, dann hüpft er nicht an den Anfang, sondern an die dritte und letzte Seite meines bibliothekverzeichnisses.
Pageref funktioniert ganz gut, aber leider liefert pageraf die Seitenzahl und nicht den Kapitelnamen.
Eine Anker mit Label{lit} und ein Veweis mit "\bibliography{referenzen}\ref{lit}" liefert Kapitel A.2 als Ausgabe, was ja nicht stimmt weil im Inhaltsverzeichnis steht ja Kapitel Anhang B drin.
Die falsche Kapitelausgabe A.2 liegt daran, dass das Bibtex-Verzeichnis mittels einen Makro erstellt wird.
Deswegen möchte ich hier im Forum fragen, ob jemand für mich eine sinnvolle Lösung kennt.

edico
06-06-2008, 15:18
Deine Anforderungen haben sich nachhaltig geändert und sind mehr denn je unklar. Keiner kennt z.B. Dein Macro. Der o.g. Vorschlag ist sehr wohl 'sinnvoll', sieht im Rahmen eines kleinen Beispiels - etwas modifiziert wegen des neu eingebrachten Anhangs (in das ein Literaturverzeichnis IMO nicht hineingehört - das nur nebenbei), aber nicht Deinem Dokument entsprechend, weil ich meine Glaskugel gerade im Kühlschank liegen habe - so aus:

\documentclass[paper=a5,pagesize,bibtotoc,10pt]{scrartcl}
\usepackage[german]{babel}
\usepackage[latin1]{inputenc}
\usepackage[colorlinks,citecolor=blue,breaklinks=true]{hyperref}

\begin{document}

\tableofcontents

\newpage
\section{hypertarget + pageref}
Wie im
\hyperlink{Literaturverzeichnis}{Literaturverzeich nis},
Anhang \ref{sec:anhang2},
S. \pageref{lit}, gelistet, ...

\newpage
\appendix
\section{Anhang1}
blabla
\newpage
\section{Anhang2}\label{sec:anhang2}
\nocite{*}
\hypertarget{Literaturverzeichnis}{}
\begin{thebibliography}{999}\label{lit}
\bibitem{fooi} erster, recht kurzer Eintrag
\bibitem{bari} zweiter
\bibitem{fooii} erster, recht kurzer Eintrag
\bibitem{barii} zweiter
\bibitem{fooiii} erster, recht kurzer Eintrag
\bibitem{bariii} zweiter
\bibitem{fooiv} erster, recht kurzer Eintrag
\bibitem{bariv} zweiter
\bibitem{foov} erster, recht kurzer Eintrag
\bibitem{barv} zweiter
\bibitem{foovi} erster, recht kurzer Eintrag
\bibitem{barvi} zweiter
\bibitem{foovii} erster, recht kurzer Eintrag
\bibitem{barvii} zweiter
\bibitem{fooviii} erster, recht kurzer Eintrag
\bibitem{barviii} zweiter
\bibitem{fooix} erster, recht kurzer Eintrag
\bibitem{barix} zweiter
\bibitem{foox} erster, recht kurzer Eintrag
\bibitem{barx} zweiter
\end{thebibliography}

\end{document}

... und alle drei Referenzen laufen exakt.

Ein Minimalbeispiel ist immer hilfreich.

edico

peterd86
08-06-2008, 10:24
Also, irgendwie scheint es mir, dass wir uns missverstehen.

Alss: ich habe eine Datei mit dem Namen referenzen.bib. Darin sind die Bibtex-Einträge drin. z.B.:
%-----------------------------------------------
@book{wolf:c_von_a_bis_z,
author={{Jürgen Wolf}},
title={{C von A bis Z. Das umfassende Handbuch für Linux, Unix und Windows}},
publisher= {Galileo Press},
isbn={3898426432},
month={Januar},
year={2006},
language={Deutsch}
}
%-----------------------------------------------

dann habe ich meine hauptdatei, welche ungefähr so aussieht:
%-----------------------------------------------
\input{kapitel/header}
\begin{document}
...

\begin{appendix} % Hier beginnt der Anhang

\input{Kapitel/anhang_a}

% Literaturverzeichnis
\bibliographystyle{plain}
\bibliography{referenzen}
\printindex
\thispagestyle{fancy}
\end{appendix}
\end{document}
%-----------------------------------------------
Nun möchte ich innerhalb des Dokumentes auf das Kapitel "Anhang B", welches das Inhalsvrerzeichnis beinhaltet referenzieren. Wenn ich es mit \label{lab} und \ref{lab} mache, dann wird nicht "Anhang B", wie es im Inhalsverzeichnis auch steht, sondern "Anahang A.2" ausgegeben.
Da, dass Literaturverzeichnis-Kapitel mit der Funktion "\bibliography{referenzen}" erstellt wird kann ich kein label direkt an das Verzeichnis setzen.
Eine mögliche Lösung wäre in der abbrv.bst eine Funktion zu modifizieren.
Diese Lösung halte ich aber für sehr un-elegant.
Deswegen frage ich hier im Forum, ob du oder jemand anders nicht eine bessere Idee hat.

peterd86
08-06-2008, 14:25
eine lösung ist:

\makeatletter
\newcommand{\thebibpreamble}{}
\renewenvironment{thebibliography}[1]
{\chapter{\bibname}%
\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bi bname}%
% START MOD
\thebibpreamble%
\flushleft%
% END MOD
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
\makeatother

....
% Literaturverzeichnis
\renewcommand{\thebibpreamble}
{
\label{referenzen}
}
\bibliographystyle{plain}
\bibliography{referenzen}
\printindex
\thispagestyle{fancy}