goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 100009
Top-Poster: Johannes_B (5061)

Wir begrüßen unseren neuesten Benutzer IndianaJonas97.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

BibLaTex: Hrsg. falsch und firstfull

 

Marko
Forum-Anfänger
Forum-Anfänger

Beiträge: 13
Anmeldedatum: 14.06.09
Wohnort: Mainz
Version: MiKTeX 2.8
     Beitrag Verfasst am: 14.06.2009, 13:30     Titel: BibLaTex: Hrsg. falsch und firstfull
  Antworten mit Zitat      
Hallo,

ich benutze MikTeX 2.7 und BibLaTex 0.8d und habe ein Problem, wenn ich den Herausgeber anpassen möchte.

Ich verwende den Style "alphabetic" und bekomme ohne weitere Anpassung folgende Ausgabe bei einem fullcite:

Manuela Musterfrau. "Irgendein Buch\. In: Hg. von Manfred Mustermann. 2008

Wenn ich jetzt mittels
\DefineBibliographyStrings{german}{%
bytypeeditor = {hrsg.}
}
den Herausgeber anpassen möchte, bekomme ich

Manuela Musterfrau. "Irgendein Buch\. In: R von Manfred Mustermann. 2008

Von dem "Hrsg." ist also nur noch "R" geblieben. Das Problem habe ich erst seit der Umstellung auf die neueste BibLaTex-Version (zumindest ist es mir erst danach aufgefallen).

Hier mein Code:

Code

\documentclass{scrreprt}

\usepackage{filecontents}
\begin{filecontents}{literatur.bib}
@incollection{B1,
  author = {Manuela Musterfrau
},
  title = {Irgendein Buch},
  editor = {Manfred Mustermann},
  year = {2008}
}
\end{filecontents}

\usepackage[ngerman]{babel}
\usepackage[babel]{csquotes}

\usepackage[style=alphabetic]{biblatex}
\bibliography{literatur}

%Herausgeber anpassen
\DefineBibliographyStrings{german}{%
bytypeeditor = {hrsg.}
}

\begin{document}

Hier kommt die Referenz:

\fullcite{B1}

\printbibliography

\end{document}
 



Außerdem hätte ich gerne die "firstfull"-Funktionalität von "authortitle-dw" in meinem Style.

Ich habe dazu die cbx-Datei angepasst und verschiedene Sachen ausprobiert, z.B. mit

Code

\DeclareBibliographyOption{firstfull}[true]{%
  \csuse{bool#1}{cbx:firstfull}}

\newbibmacro*{cite}{%
  \global\boolfalse{cbx:herename}%
  \global\boolfalse{cbx:loccit}%
  \global\let\cbx@tempa\empty
  \ifbool{cbx:firstfull}
    {\ifciteseen
      {\usebibmacro{cite:normal
}}
      {\usebibmacro{cite:firstfull}}}
    {\usebibmacro{cite:normal}}}
 

und den darauf folgenden Zeilen. Geändert hat das an der Ausgabe nichts, ich hatte das Gefühl, dass BibLaTeX in die Zeilen von "\newbibmacro*{cite}" gar nicht reingeht. "firstfull=true" war gesetzt, ich habe es auch ohne den Parameter versucht und die Variable komplett rausgenommen.

Gibt es hier vielleicht schon eine einfache Lösung? Gesucht habe ich danach auch schon, aber ohne Erfolg.

Vielen Dank schonmal für die Hilfe und noch einen schönen Sonntag,
Marko
Private Nachricht senden Benutzer-Profile anzeigen

domwass
TeX-Entwickler
TeX-Entwickler


Beiträge: 621
Anmeldedatum: 26.08.08
Wohnort: ---
Version: MacTeX 2011 / LyX 2.0.3 / TeXShop 2.4.3
     Beitrag Verfasst am: 15.06.2009, 09:08     Titel: Re: BibLaTex: Hrsg. falsch und firstfull
  Antworten mit Zitat      
Marko hat Folgendes geschrieben:
Ich verwende den Style "alphabetic" und bekomme ohne weitere Anpassung folgende Ausgabe bei einem fullcite:

Manuela Musterfrau. "Irgendein Buch\. In: Hg. von Manfred Mustermann. 2008


Da fehlt ein Buchtitel, deshalb kommt der Herausgeber direkt nach dem 'in'. Mit folgendem Minimalbeispiel geht's:
Code

\documentclass{scrreprt}

\usepackage{filecontents}
\begin{filecontents}{literatur.bib}
@incollection{B1,
  author = {Manuela Musterfrau
},
  title = {Ein Beitrag},
  booktitle = {Irgendein Buch},
  editor = {Manfred Mustermann},
  year = {2008}
}
\end{filecontents}

\usepackage[ngerman]{babel}
\usepackage[babel]{csquotes}

\usepackage[style=alphabetic]{biblatex}
\bibliography{literatur}

\begin{document}

\fullcite{B1}
\printbibliography

\end{document}
 


Zitat:
Wenn ich jetzt mittels
\DefineBibliographyStrings{german}{%
bytypeeditor = {hrsg.}
}
den Herausgeber anpassen möchte, bekomme ich

Manuela Musterfrau. "Irgendein Buch\. In: R von Manfred Mustermann. 2008

Von dem "Hrsg." ist also nur noch "R" geblieben. Das Problem habe ich erst seit der Umstellung auf die neueste BibLaTex-Version (zumindest ist es mir erst danach aufgefallen).

Erstell am besten einen Bug-Report auf der Sourceforge-Seite von biblatex.

Zitat:
Außerdem hätte ich gerne die "firstfull"-Funktionalität von "authortitle-dw" in meinem Style.

Dazu ein paar Bemerkungen:

  1. Hast du auch einen neuen bool-Schalter 'cbx:firstfull' angelegt?
  2. cbx:herename solltest du herausnehmen (wenn du es nicht anderweitig benötigst).
  3. Du musst natürlich \renewbibmacro verwenden, da das bibmacro 'cite' schon definiert ist - bzw.: Falls du keine Fehlermeldung bekommen hast, spricht viel dafür, dass das bibmacro bei alphabetic anders heißt und dein neues bibmacro damit gar nicht verwendet wird. Sieh in alphabetic.cbx nach, wie die Zitierung dort aufgebaut ist.

Erstell am besten ein vollständiges Minimalbeispiel mit allen deinen Änderungen, dann kann man besser nachvollziehen, woran es liegen könnte.

Gruß,
Dominik.-
_________________

goLaTeX-Knigge | Minimalbeispiel | FAQs etc.
biblatex-Doku auf Deutsch
biblatex-Stile | »Bibliographien erstellen mit biblatex« (DTK-Artikel)
Private Nachricht senden Benutzer-Profile anzeigen

lockstep
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2009, 20:42     Titel: Re: BibLaTex: Hrsg. falsch und firstfull
  Antworten mit Zitat      
Marko hat Folgendes geschrieben:

Wenn ich jetzt mittels
\DefineBibliographyStrings{german}{%
bytypeeditor = {hrsg.}
}
den Herausgeber anpassen möchte, bekomme ich

Manuela Musterfrau. "Irgendein Buch\. In: R von Manfred Mustermann. 2008

Von dem "Hrsg." ist also nur noch "R" geblieben. Das Problem habe ich erst seit der Umstellung auf die neueste BibLaTex-Version (zumindest ist es mir erst danach aufgefallen).


Ungetesteter Lösungsvorschlag: Da du das babel-Paket mit der Option ngerman einbindest, solltest du bei \DefineBibliographyStrings ebenfalls mit ngerman statt mit german arbeiten (biblatex 0.8d scheint diesbezüglich heikler geworden zu sein).

Marko
Forum-Anfänger
Forum-Anfänger

Beiträge: 13
Anmeldedatum: 14.06.09
Wohnort: Mainz
Version: MiKTeX 2.8
     Beitrag Verfasst am: 16.06.2009, 05:48     Titel: Re: BibLaTex: Hrsg. falsch und firstfull
  Antworten mit Zitat      
lockstep hat Folgendes geschrieben:

Ungetesteter Lösungsvorschlag: Da du das babel-Paket mit der Option ngerman einbindest, solltest du bei \DefineBibliographyStrings ebenfalls mit ngerman statt mit german arbeiten (biblatex 0.8d scheint diesbezüglich heikler geworden zu sein).

Danke, das war es!

Komisch ist aber trotzdem, dass ich bisher den Herausgeber von "german" angepasst habe und die Ausgabe bei "ngerman" mit verändert (und auch noch falsch) wurde. Ich werde dafür wie Dominik vorgeschlagen hat einen Bug-Report auf der Sourceforge-Seite von biblatex einstellen.
Private Nachricht senden Benutzer-Profile anzeigen

Marko
Forum-Anfänger
Forum-Anfänger

Beiträge: 13
Anmeldedatum: 14.06.09
Wohnort: Mainz
Version: MiKTeX 2.8
     Beitrag Verfasst am: 16.06.2009, 06:00     Titel:
  Antworten mit Zitat      
domwass hat Folgendes geschrieben:
Falls du keine Fehlermeldung bekommen hast, spricht viel dafür, dass das bibmacro bei alphabetic anders heißt und dein neues bibmacro damit gar nicht verwendet wird. Sieh in alphabetic.cbx nach, wie die Zitierung dort aufgebaut ist.

Danke für den Tipp, das hat mir weitergeholfen! Bei "alphabetic" ist \cite mit \DeclareCiteCommand definiert und nicht als Bibmacro.

Edit: Heute morgen hatte ich noch Probleme mit Zeilenumbruch und zusätzlichen ";". Diese konnte ich beheben, da hatte ich Fehler bei der Klammersetzung.


Was jetzt noch unschön ist, ist eine zusätzliche schließende Klammer "]" am Ende von \fullcite.

Das Ergbenis des ersten Cite ist:

Manuela Musterfrau. "Ein Beitrag". In: Irgendein Buch. Hrsg. von Manfred Mustermann. 2. Aufl. 2008]

Beim zweiten stimmt alles:
[Mus08]

Code

\documentclass{scrreprt}

\usepackage{filecontents}
\begin{filecontents}{literatur.bib}
@incollection{B1,
  author = {Manuela Musterfrau
},
  title = {Ein Beitrag},
  booktitle = {Irgendein Buch},
  editor = {Manfred Mustermann},
  edition = {2},
  year = {2008}
}
\end{filecontents}

\usepackage[ngerman]{babel}
\usepackage[babel]{csquotes}

\usepackage[style=alphabetic]{biblatex}
\bibliography{literatur}

\DefineBibliographyStrings{ngerman}{%
bytypeeditor = {hrsg.}
}

\ExecuteBibliographyOptions{
  citetracker=true
}

\DeclareCiteCommand{\cite}
   {\usebibmacro{prenote}\ifciteseen{\bibleftbracket}{}}%precode
   {\ifciteseen
         {\usebibmacro{citeindex
}%
          \printtext[bibhyperref]{%
            \printfield{labelalpha}%
            \printfield{extraalpha}}}
         {\usedriver
           {\DeclareNameAlias{sortname
}{default}}
           {\thefield{entrytype}}}}%loopcode
   {\multicitedelim}%sepcode
   {\usebibmacro{postnote}\ifciteseen{\bibrightbracket}{}}%postcode

\begin{document}
Erster Verweis auf B1\\
\cite{B1}

Zweiter Verweis auf B1\\
\cite{B1}
\end{document}
 


Meine Vermutung ist, dass das "\ifciteseen" nach dem "prenote" auf true gesetzt wird und bei dem "postnote" dann die rechte Klammer ausgibt.

Stimmt meine Vermutung oder liegt der Fehler woanders? Gibt es eine Lösung für das Problem?

Viele Grüße,
Marko
Private Nachricht senden Benutzer-Profile anzeigen

Marko
Forum-Anfänger
Forum-Anfänger

Beiträge: 13
Anmeldedatum: 14.06.09
Wohnort: Mainz
Version: MiKTeX 2.8
     Beitrag Verfasst am: 16.06.2009, 20:14     Titel:
  Antworten mit Zitat      
Hallo zusammen,

mein Problem konnte ich beheben. Bei meinem letzten Minimalbeispiel muss lediglich der DeclareCiteCommand{\cite}-Block durch den neuen Block unten ersetzt werden, außerdem kommt ein \newbool dazu. Im Precode-Teil prüfe ich, ob citeseen true oder false ist und speichere mir das Ergebnis in "cbx:citeseen" ab.

Das Ergebnis ist jetzt also das gewünschte Very Happy

Wenn jemand eine bessere Lösung oder Fehler findet oder irgendwelche Gefahren bzw. Schönheitsfehler sieht, einfach melden!

Viele Grüße und nochmals danke,
Marko

Code

\newbool{cbx:citeseen}

\DeclareCiteCommand{\cite}
   {\ifciteseen{\booltrue{cbx:citeseen}}{\boolfalse{cbx:citeseen}}
         \usebibmacro{prenote}\ifbool{cbx:citeseen}{\bibleftbracket}{}}%precode
   {\ifbool{cbx:citeseen}
         {\usebibmacro{citeindex}%
          \printtext[bibhyperref]{%
            \printfield{labelalpha}%
            \printfield{extraalpha}}}
         {\usedriver
           {\DeclareNameAlias{sortname
}{default}}
           {\thefield{entrytype}}}}%loopcode
   {\multicitedelim}%sepcode
   {\usebibmacro{postnote}\ifbool{cbx:citeseen}{\bibrightbracket}{}}%postcode
 
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2019 goLaTeX.de