PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [jurabib] Neues Problem nach dem Ändern zu numnames #99



Barghest
05-09-2008, 10:58
Hallo,

dank der Forensuche habe ich bereits herausgefunden, wie ich im Letarturverzeichnis das "et al." verhindern kann.

Ich habe also nun eine angepasste myjureco.bst, in der alle numnames #3 > in numnames #99 > geändert wurden. Auch in der Präambel steht nun



\makeatletter
\def\jb@use@fullcite{%
\jbauthorfont{\jb@@author}\normalfont{\jbhowsepbef oretitle}\jb@@fulltitle}%
\makeatother


das Problem, das nun auftaucht ist Folgendes:

Wenn ich im Text (\cite[S]{Werk mit mehr als 3 Autoren}) angebe, erhalte ich ( Autor et al., S. x). Wie man sieht, wird nun ein Leerzeichen nach der Klammer/vor dem cite eingefügt. Das ist aber nicht der Fall, bei Werken mit weniger als 3 Autoren.

Ich hoffe, Ihr könnt mir helfen.

Danke schonmal

Barghest

edico
05-09-2008, 16:20
Kann ich nicht verifizerien. Allerdings weiss ich natürlich nicht, was Du in Deinem myjureco.bst definiert hast. Ich habe es mit jureco mal laufen lassen.

Solange Du kein Minimalbeispiel anbietest, lässt dsich aus der Ferne kein gezielter Hinweis abgeben.

edico

Barghest
06-09-2008, 14:45
Hallo,

hier mal ein Auszug aus meiner Datei. Folgende Beobachtung habe ich gemacht: Der Fehler tritt nur auf, wenn zwei Werke zitiert werden, die mit et al. abgekürzt werden. Kommentiert man eine der beiden Zeilen aus, stimmt alles.



\documentclass[11pt,a4paper,onesidel]{scrartcl} %appendixprefix
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{jurabib}
\jurabibsetup{
authorformat=year, %abbrv: abgekürzte Vornamen
commabeforerest,
titleformat=colonsep,
pages=format,
ibidem=strict,
titleformat=noreplace,
see,
citefull=all
bibformat=raggedright
}
\AddTo\bibsgerman{%
\renewcommand*{\ibidemname}{ebd.}
\renewcommand*{\ibidemmidname}{ebd.}
}
%\usepackage[pdftex]{hyperref} %Zitate und Inhaltsverzeichnis verlinken
%\setcounter{section}{-1} %durch diesen Befehl erhält die Einleitung die Kapitelnummer 0
\jbdotafterbibentry %Setzt einen Punkt am Ende eines jeden Bibliographie-Eintrages.
\renewcommand*{\jbcitationyearformat}[1]{#1} %keine Klammern um die Jahreszahl bei Zitaten
\renewcommand*{\bibbtsep}{In:} %bei "incollection" wird nach dem "In" ein Doppelpunkt eingefügt
\renewcommand*{\bibbdsep}{} %vor dem Datum steht kein Komma
\renewcommand*{\biblnfont}{\textit} %Kapitälchen für den Nachnamen des Autors
\renewcommand*{\bibelnfont}{\textit}%Kapitälchen für den Nachnamen des Editors
\renewcommand*{\bibefnfont}{\textit}%Kapitälchen für den Vornamen des Editors
\renewcommand*{\bibfnfont}{\textit}%Kapitälchen für den Vornamen des Autors
\renewcommand*{\bibjtsep}{In: } %bei Artikeln kommt vor die Zeitschrift ein In:
\biburlfont{same}
\renewcommand*{\biburlprefix}{({}Online verfügbar unter: }
\renewcommand*{\biburlsuffix}{{}}



\makeatletter
\def\jb@use@fullcite{%
\jbauthorfont{\jb@@author}\normalfont{\jbhowsepbef oretitle}\jb@@fulltitle}%
\makeatother

\begin{document}

Text (\cite[vgl.][]{Kuc08}).

noch mehr Text (\cite[vgl.][]{Kuc07b}).

\bibliography{minimal}
\bibliographystyle{myjureco}
\end{document}


In der myjureco ist wirklich nur das numnames verändert, das habe ich mit vimdiff nachgeprüft.

Die bib und bst habe ich angehängt.

Danke!

edico
06-09-2008, 16:50
Dein bib-file hat (einen?) Fehler; wo musst Du mal selbst schauen.
Das angehängte MB läuft 'in jeder Form' durch: Dein File mit anderer bib:



\begin{filecontents*}{lit.bib}
@ARTICLE{bslp,
author = {Barbaree, H. E. and Seto, M. C. and Langton, C. M. and
Peacock, E. J.},
title = {Evaluation the predictive accuracy of six risk assessment
instruments for adult sex offenders},
journal = {Criminal Justice and Behavior},
year = {2001},
volume = {28},
pages = {490-521},
owner = {Dawn},
timestamp = {2006.03.02},
}

@ARTICLE{dtlm,
author = {Dittrich, W. H. and Troscianko, T. and Lea, S. and Morgan, D.},
title = {Perception of motion from dynamic point-light displays represented
in dance},
journal = {Perception},
year = {1996},
volume = {25},
pages = {727-738},
owner = {Dawn},
timestamp = {2006.03.03},
}

@INPROCEEDINGS{mather,
author = {Mather, G. and Murdoch, L.},
title = {Gender discrimination in biological motion displays based on
dynamic cues},
booktitle = {Proceedings of the Royal Society of London},
year = {1994},
number = {258},
series = {B},
pages = {273-279},
owner = {Dawn},
timestamp = {2006.02.17},
}

@INBOOK{mcgovern,
chapter = {The assessment of sexual offenders},
pages = {35-66},
title = {Treating the sexual offender},
publisher = {Sage Publications.},
year = {1991},
editor = {Maletzky, B. M.},
author = {McGovern, K. B.},
address = {Newbury Park, California},
owner = {Dawn},
timestamp = {2006.04.10},
}
\end{filecontents*}
%%
\documentclass[paper=a5,pagesize,10pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{jurabib}

\jurabibsetup{
authorformat=year, %abbrv: abgekürzte Vornamen
commabeforerest,
titleformat=colonsep,
pages=format,
ibidem=strict,
titleformat=noreplace,
see,
citefull=all
bibformat=raggedright
}
\AddTo\bibsgerman{%
\renewcommand*{\ibidemname}{ebd.}
\renewcommand*{\ibidemmidname}{ebd.}
}
%\usepackage[pdftex]{hyperref} %Zitate und Inhaltsverzeichnis verlinken
%\setcounter{section}{-1} %durch diesen Befehl erhält die Einleitung die Kapitelnummer 0
\jbdotafterbibentry %Setzt einen Punkt am Ende eines jeden Bibliographie-Eintrages.
\renewcommand*{\jbcitationyearformat}[1]{#1} %keine Klammern um die Jahreszahl bei Zitaten
\renewcommand*{\bibbtsep}{In:} %bei "incollection" wird nach dem "In" ein Doppelpunkt eingefügt
\renewcommand*{\bibbdsep}{} %vor dem Datum steht kein Komma
\renewcommand*{\biblnfont}{\textit} %Kapitälchen für den Nachnamen des Autors
\renewcommand*{\bibelnfont}{\textit}%Kapitälchen für den Nachnamen des Editors
\renewcommand*{\bibefnfont}{\textit}%Kapitälchen für den Vornamen des Editors
\renewcommand*{\bibfnfont}{\textit}%Kapitälchen für den Vornamen des Autors
\renewcommand*{\bibjtsep}{In: } %bei Artikeln kommt vor die Zeitschrift ein In:
\biburlfont{same}
\renewcommand*{\biburlprefix}{({}Online verfügbar unter: }
\renewcommand*{\biburlsuffix}{{}}

\makeatletter
\def\jb@use@fullcite{%
\jbauthorfont{\jb@@author}\normalfont{\jbhowsepbef oretitle}\jb@@fulltitle}%
\makeatother

\usepackage[pagebackref=true]{hyperref}

\begin{document}

%Text (\cite[vgl.][]{Kuc08}).\par
%noch mehr Text (\cite[vgl.][]{Kuc07b}).

Text (\cite[S.10]{dtlm}) \quad \cite{bslp}

\bibliographystyle{myjureco}% jureco jurabib
\bibliography{lit}%{minimal}

\end{document}


edico

Barghest
07-09-2008, 10:13
Hallo edico,

danke schonmal für Deine Hilfe.

Für jurabib stimmt tatsächlich etwas nicht:


Package jurabib Warning: Multiple use of `et. al.' for the author(s)
(jurabib) of `Kuc07b'
(jurabib) detected, printing the title to
(jurabib) avoid ambiguity on input line 46.


Package jurabib Warning: *** `Kuc07b' *** on input line 46
(jurabib) is an ambiguous citation! Because you are using
(jurabib) `titleformat=noreplace', the title field can't
(jurabib) be used to replace the missing shorttitle.


Package jurabib Warning: Multiple use of `et. al.' for the author(s)
(jurabib) of `Kuc08'
(jurabib) detected, printing the title to
(jurabib) avoid ambiguity on input line 48.


Package jurabib Warning: *** `Kuc08' *** on input line 48
(jurabib) is an ambiguous citation! Because you are using
(jurabib) `titleformat=noreplace', the title field can't
(jurabib) be used to replace the missing shorttitle.


Das Problem ist aber, dass es doch eigentlich keine Uneindeutigkeiten geben kann, da beide Werke unterschiedliche Jahre haben:


@BOOK{Kuc07b,
title = {{Q}ualitative {E}valuation. {D}er {E}instieg in die {P}raxis},
publisher = {VS Verlag für Sozialwissenschaften},
year = {2007},
author = {Kuckartz, Udo and Dresing, Thorsten and Rädiker, Stefan and Stefer,
Claus},
address = {Wiesbaden}
}


@BOOK{Kuc08,
title = {Evaluation online. Internetgestützte Befragung in der Praxis},
publisher = {VS},
year = {2008},
author = {Kuckartz, Udo and Ebert, Thomas and Rädiker, Stefan and Stefer, Claus},
address = {Wiesbaden},
timestamp = {2008.09.04}
}


Mit /cite* habe ich es auch versucht, leider ohne Erfolg und auch möchte ich keinen Titel in der Ausgabe haben, da es ja durch die Jahreszahl völlig klar ist, welches Werk gemeint ist.

MfG

Barghest

\edit: So, habe eine Quick and Dirty Lösung gefunden:

Ich habe einfach bei beiden Werken
shortauthor = {Kuckartz et al.}, eingefügt.

Oder gibt es eine "schönere" Lösung?

edico
07-09-2008, 11:08
eine Quick and Dirty Lösung

ist es an sich nicht; denn 'the shorttitle will be used now to avoid ambiguous citations'.
Allerdings kann ich nicht erkennen, warum in diesem Fall es 'notwendig' wird, da alle 'mandatory entry types' @book eingegeben sind ...
Die Hauptsache es läuft jetzt ;-)

edico

jotbe
07-09-2008, 11:34
Zur Entfernung des überzähligen Leerzeichens:
Suche in jurabib.sty nach



avoid ambiguity}


und setze ein "%" ans Ende der Zeile:



avoid ambiguity}%


Diese Warnung kannst Du entweder einfach ignorieren, da Du ja 'authorformat=year' benutzt. Oder Du änderst die ganze Warnung so ab, dass sie nicht erscheint, wenn 'authorformat=year' aktiv ist:

vorher:



\@ifundefined{jb@fm@\@citeb}{}{%
\ifthenelse{\equal{\jb@@mult@switch}{0}}{%
\@ifundefined{jb@fmmess@\@citeb}{% only one message per entry
\global\@namedef{jb@fmmess@\@citeb}{}%
\jb@package@warning{\jb@pkg@name}{%
Multiple use of `et. al.' for the author(s)\MessageBreak
of `#3' \MessageBreak
detected, printing the title to\MessageBreak
avoid ambiguity}%
}{}%
}{\relax}%
\jb@do@if@multiple@bibetal% the things to do if true
}%


nachher:



\@ifundefined{jb@fm@\@citeb}{}{%
\ifjb@author@year\else % <<<<<<<<<<
\ifthenelse{\equal{\jb@@mult@switch}{0}}{%
\@ifundefined{jb@fmmess@\@citeb}{% only one message per entry
\global\@namedef{jb@fmmess@\@citeb}{}%
\jb@package@warning{\jb@pkg@name}{%
Multiple use of `et. al.' for the author(s)\MessageBreak
of `#3' \MessageBreak
detected, printing the title to\MessageBreak
avoid ambiguity}%
}{}%
}{\relax}%
\fi % <<<<<<<<<<
\jb@do@if@multiple@bibetal% the things to do if true
}%



"citefull=all" solltest Du rausnehmen, da es ja offenbar dem widerspricht, was Du eigentlich willst.


jb