PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BibEntry und NatBib (bibliographystyle NatDIN)



slowfox
07-04-2010, 15:38
Ich verwende bislang NatBib mit dem Bibliographystyle NatDIN. Nun muss ich leider ein paar Literaturstellen im Text vollständig aufführen. Dies würde ich gerne automatisieren, und so habe ich gesucht und BibEntry gefunden. Leider versteht sich BibEntry jedoch nicht mit dem Style NatDIN, ich erhalte folgende Fehlermeldung:


! Undefined control sequence.
<argument> \dinatlabel
{Name 2010{\natexlab {a}}} \textsc {Name}, Given: \ne...
l.31 \item \bibentry{given}

Mein Minimalbesipiel:

\begin{filecontents}{testBibEntry.bib}
@Book{given,
author = "Given Name",
title = "Creative Title",
publisher = "Self Publishing",
year = 2010
}

@Book{nick,
author = "Nick Name",
title = "The Truth of my Name",
publisher = "Alter Ego",
year = 2010
}
\end{filecontents}


\documentclass{article}

\usepackage{natbib}
% \bibliographystyle{abbrvnat} % LÄUFT
\bibliographystyle{natdin} % LÄUFT NICHT :-(
\usepackage{bibentry}
\nobibliography*

\begin{document}

\section{Inline Bibtex Entry}

\begin{itemize}
\item \bibentry{given}
\end{itemize}

\section{Cited References}
\citet{nick}, \citep{nick}

\bibliography{testBibEntry}

\end{document}

Verwende ich einen anderen Biblopgraphystyle, beispielsweise abbrvnat, dann läufts, aber ich habe mich inzwischen an NatDIN gewöhnt. Auf dem Gebiet BibTeX habe ich leider so gut wie keine Ahnung.

Hat jemand eine Idee, wie ich BibEntry und NatDIN zu Freunden machen kann, oder muss ich doch den Bibliographystyle wechseln? Besten Dank schon mal!

voss
07-04-2010, 16:39
Ich verwende bislang NatBib mit dem Bibliographystyle NatDIN. Nun muss ich leider ein paar Literaturstellen im Text vollständig aufführen. Dies würde ich gerne automatisieren, und so habe ich gesucht und BibEntry gefunden. Leider versteht sich BibEntry jedoch nicht mit dem Style NatDIN, ich erhalte folgende Fehlermeldung:

[CODE]! Undefined control sequence.
<argument> \dinatlabel
{Name 2010{\natexlab {a}}} \textsc {Name}, Given:
Verwende ich einen anderen Biblopgraphystyle, beispielsweise abbrvnat, dann läufts, aber ich habe mich inzwischen an NatDIN gewöhnt. Auf dem Gebiet BibTeX habe ich leider so gut wie keine Ahnung.

Hat jemand eine Idee, wie ich BibEntry und NatDIN zu Freunden machen kann, oder muss ich doch den Bibliographystyle wechseln?


\begin{filecontents}{testBibEntry.bib}
@Book{given,
author = "Given Name",
title = "Creative Title",
publisher = "Self Publishing",
year = 2010
}

@Book{nick,
author = "Nick Name",
title = "The Truth of my Name",
publisher = "Alter Ego",
year = 2010
}
\end{filecontents}


\documentclass{article}

\usepackage{bibentry}
\nobibliography*
\usepackage{natbib}
\providecommand\dinatlabel[1]{}
\begin{document}

\section{Inline Bibtex Entry}

\begin{itemize}
\item \bibentry{given}
\end{itemize}

\section{Cited References}
\citet{nick}, \citep{nick}

\bibliographystyle{natdin}
\let\dinatlabel\relax
\bibliography{testBibEntry}

\end{document}

Herbert

slowfox
08-04-2010, 07:26
Danke Herbert, für die schnelle Antwort.

Leider habe ich nun ein weiteres Problem. Ich verwende auch das Hyperref Paket, das sich nicht mit BibEntry versteht. Ich erhalte folgende Fehlermeldung:


\AtBegShi@Output ...ipout \box \AtBeginShipoutBox
\fi \fi
l.41 \end{document}
]
Package atveryend Info: Empty hook `AfterLastShipout' on input line 41.

Diese Unverträglichkeit scheint kein neues Problem sein, ich habe beispielsweise von Heiko Oberdieck aus dem Jahre 2004 einen Workaround gefunden.


\makeatletter
\let\saved@bibitem\@bibitem
\makeatother

\usepackage{bibentry}
\usepackage{hyperref}

\begin{document}

\begingroup
\makeatletter
\let\@bibitem\saved@bibitem
\nobibliography{database}
\endgroup

Leider weiß ich weder, ob dieser tatsächlich auch das aktuelle Problem löst, noch wie ich ihn auf mein Problem anwende, da ich statt \nobibliography{} ja die Variante \nobibliography* verwende.

Und wiedereinmal muss ich um Hilfe bitten. Evtl. ist es doch die bessere Idee, die drei dutzend Literaturstellen im Text manuell einzugeben...

voss
08-04-2010, 07:56
Danke Herbert, für die schnelle Antwort. Doch leider verursacht deine Lösung ein neues Problem:

Nun wird die durch BibEntry zitierte Quelle leider bei mir im Text nicht mehr angezeigt, es erscheint nur ein leerer Listenpunkt.

so sieht es bei mir aus ...

Herbert

slowfox
08-04-2010, 08:01
Hi Herbert, du hast schneller geantwortet als ich denken konnte. Ich habe Blödsinn geschrieben! Jetzt ist mein Posting aktualisiert, und zeigt, was ich eigentlich fragen wollte. Sorry!

voss
08-04-2010, 08:15
Hi Herbert, du hast schneller geantwortet als ich denken konnte. Ich habe Blödsinn geschrieben! Jetzt ist mein Posting aktualisiert, und zeigt, was ich eigentlich fragen wollte. Sorry!


\documentclass{article}

\makeatletter
\let\saved@bibitem\@bibitem
\makeatother
\usepackage{bibentry}
\nobibliography*
\usepackage{natbib}
\providecommand\dinatlabel[1]{}
\usepackage{hyperref}

\begin{document}

\section{Inline Bibtex Entry}

\begingroup
\makeatletter\let\@bibitem\saved@bibitem\makeatoth er
\begin{itemize}
\item \bibentry{given}
\end{itemize}
\endgroup

\section{Cited References}
\citet{nick}, \citep{nick}


\begingroup
\makeatletter
\let\dinatlabel\relax
\let\@bibitem\saved@bibitem
\bibliographystyle{natdin}
\bibliography{testBibEntry}
\endgroup



\end{document}


Herbert
Herbert

slowfox
08-04-2010, 08:30
Jetzt läuft es durch, aber ich erhalte trotzdem noch immer nachfolgende Warnung, die bei mir (WinEdt, MikTeX, AdobeAcrobatPro) dazu führt, dass Adobe nach dem Latex-Lauf das fertige Dokument nicht automatisch öffnet. Hast Du dafür vielleicht auch noch eine Idee? Danke!


\AtBegShi@Output ...ipout \box \AtBeginShipoutBox
\fi \fi
l.35 \end{document}
]

voss
08-04-2010, 12:29
Jetzt läuft es durch, aber ich erhalte trotzdem noch immer nachfolgende Warnung, die bei mir (WinEdt, MikTeX, AdobeAcrobatPro) dazu führt, dass Adobe nach dem Latex-Lauf das fertige Dokument nicht automatisch öffnet. Hast Du dafür vielleicht auch noch eine Idee? Danke!


\AtBegShi@Output ...ipout \box \AtBeginShipoutBox
\fi \fi
l.35 \end{document}
]

das ist nur eine Warnung wegen des doppelt vergebenen Ankers für
die eine Literaturstelle. hyperref kommt deswegen ins Trudeln ...

Herbert