Jurabib Zitierweise anpassen

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


Benutzeravatar
domwass
TeX-Entwickler
TeX-Entwickler
Beiträge: 617
Registriert: Di 26. Aug 2008, 12:44
Kontaktdaten:

Beitrag von domwass »

Füge folgenden Code ein:
\DeclareNameFormat{labelname}{%
  \iffirstinits 
    {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} 
    {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}% 
  \usebibmacro{name:andothers}}
Außerdem müsste dein Code ein wenig aufgeräumt werden, da du mit
Leerzeichen nicht geizt, dafür aber mit \printtext und \setunit (Erklärung
dieser beiden Befehle in der biblatex-Anleitung, auch im zweiten Teil
meines DTK-Artikels).
K2P hat geschrieben:
%% cite:seenote umdefinieren 
\makeatletter 
\renewbibmacro*{cite:seenote}{% 
  \ifbool{cbx:parencitefoot} 
    {\addcomma\space\bibstring{seenote}\addnbspace% 
      \ifbool{cbx:pageref} 
      {\ifsamepage{\the\value{instcount}} 
        {\csuse{cbx@first@\thefield{entrykey}}} 
        {} 
        {\addcomma\space\bibstring{page}\addnbspace 
          \pageref{cbx@\csuse{cbx@first@\thefield{entrykey}}}}} 
      {} 
    } 
    % 
    { 
      \addcomma\space\bibstring{seenote}\addnbspace% 
      \ifbool{cbx:pageref} 
        {\ifsamepage{\the\value{instcount}} 
                    {\csuse{cbx@first@\thefield{entrykey}}} 
          {} 
          {\addcomma\space\bibstring{page}\addnbspace 
             \pageref{cbx@\csuse{cbx@first@\thefield{entrykey}}}}} 
        {} 
    } 
  } 
\makeatother 
Stattdessen:
\makeatletter 
\renewbibmacro*{cite:seenote}{% 
  \ifbool{cbx:parencitefoot} 
    {\printtext{%
       \setunit{\addcomma\space}%
       \bibstring{seenote}%
       \setunit{\addnbspace}}%
     \ifbool{cbx:pageref}
       {\ifsamepage{\the\value{instcount}} 
         {\csuse{cbx@first@\thefield{entrykey}}}
         {}%
      \printtext{%
        \setunit{\addcomma\space}%
        \bibstring{seenote}%
        \setunit{\addnbspace}%
        \pageref{cbx@\csuse{cbx@first@\thefield{entrykey}}}}}
      {}}
    {\printtext{%
       \setunit{\addcomma\space}%
       \bibstring{seenote}%
       \setunit{\addnbspace}}%
     \ifbool{cbx:pageref} 
       {\ifsamepage{\the\value{instcount}} 
          {\csuse{cbx@first@\thefield{entrykey}}}
          {}
        \printtext{%
          \setunit{\addcomma\space}%
          \bibstring{seenote}%
          \setunit{\addnbspace}%
          \pageref{cbx@\csuse{cbx@first@\thefield{entrykey}}}}}
       {}}} 
\makeatother 
Gruß,
Dominik.-

K2P
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 58
Registriert: Do 5. Aug 2010, 21:48
Wohnort: Heidelberg

Beitrag von K2P »

Hat funktioniert, vielen Dank.

Was meinst du denn damit mein Code müsste aufgeräumt werden? Es funktioniert doch.

Benutzeravatar
domwass
TeX-Entwickler
TeX-Entwickler
Beiträge: 617
Registriert: Di 26. Aug 2008, 12:44
Kontaktdaten:

Beitrag von domwass »

Zunächst waren einige überflüssige Leerzeichen vorhanden. Das kann zu
Problemen führen.

Außerdem hast Du einige Zeichensetzungsbefehle direkt ausgeben lassen,
was man bei biblatex aber nicht tun sollte, sondern immer nur im
Argument von \setunit bzw. \printtext. Der Grund ist, dass diese Befehle
nur dann ausgegeben werden, wenn das Makro vorher tatsächlich auch
eine Ausgabe erzeugt hat. Bei der direkten Ausgabe wird der Befehl
dagegen immer ausgegeben, was unerwünschte Effekte haben kann.

Zur Illustration ein Beispiel, in dem ich zur Veranschaulichung den Trenner
zwischen title und subtitle (subtitlepunct) in einen Doppelpunkt geändert
habe. Würde man nun im bibmacro »title« den subtitlepunct direkt
ausgeben und nicht als Argument von \setunit, dann würde der
Doppelpunkt auch dann erscheinen, wenn es gar keinen subtitle gibt. Das
ist natürlich ein ungewollter Nebeneffekt, und deshalb sollte man sämtliche
Befehle, die Zeichensetzung ausgeben, immer in das Argument von
\setunit packen, und sämtliche Befehle, die Text ausgeben (z.B.
\bibstring), immer in das Argument von \printtext packen. Im Code in
meinem vorigen Posting habe ich lediglich zur Vereinfachung mehrere
Befehle, die hintereinander gesetzt werden sollten, in das Argument eines
\printtext-Befehls geschrieben.
\documentclass[ngerman]{scrartcl}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@BOOK{book,
  author = {Buchautor, Hans-Wilhelm},
  title = {Irgendein Buch},
  address = {Buch am Wald},
  year = {2000}
}
@BOOK{book2,
  author = {Buchautor, Bernhard},
  title = {Ein anderes Buch},
	subtitle = {Mit einem Untertitel},
  address = {Buch am Wald},
  year = {2001}
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel,csquotes}

\usepackage[
  style=authortitle
]{biblatex}
\bibliography{\jobname}

\renewcommand{\subtitlepunct}{\addcolon\space}

\renewbibmacro*{title}{%
  \ifboolexpr{
    test {\iffieldundef{title}}
    and
    test {\iffieldundef{subtitle}}
  }
    {}
    {\printtext[title]{%
       \printfield[titlecase]{title}%
% die folgende Zeile ist falsch und dient nur zu Demonstrationszwecken
       \subtitlepunct%
% richtig wäre die folgende Zeile:
       %\setunit{\subtitlepunct}%
       \printfield[titlecase]{subtitle}}%
     \newunit}%
  \printfield{titleaddon}}
	
\begin{document}
\cite{book,book2}

\printbibliography
\end{document}
Gruß,
Dominik.-

K2P
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 58
Registriert: Do 5. Aug 2010, 21:48
Wohnort: Heidelberg

Beitrag von K2P »

Hallo,

ich traue mich ja schon fast nicht mehr zu schreiben, aber mir ist gerade erst aufgefallen, dass durch den Code von Domminik jetzt die Reihenfolge der Namen bei der Erstzitierung vertauscht ist.
Jetzt kommt erst Vorname, Nachname.
Bei den Wiederholungszitaten ist es richtig... Name, Vorname

Mittlerweile sieht mein Code wie folgt aus:
\RequirePackage{filecontents} 
\begin{filecontents}{\jobname.bib} 
@book{Beyhs2002, 
   Author = {Oliver Beyhs}, 
   Publisher = {Frankfurt am Main}, 
    year = {2002}, 
   Title = {Impairment of assets nach International accounting standards}} 

@article{Baetge2001, 
   Author = {J{\"o}rg Baetge and Henning Z\"ulch}, 
   Journal = {BFuP}, 
   Pages = {543-562}, 
   Title = {Fair Value Accounting}, 
   Volume = {53}, 
   Year = {2001}} 
\end{filecontents} 

\documentclass[a4paper,12pt,openany,oneside,pointlessnumbers]{scrreprt} 
\usepackage[T1]{fontenc} 
\usepackage[latin9]{inputenc} 
\usepackage[ngerman]{babel} 
\usepackage[a4paper]{geometry} 
\usepackage{csquotes} 
\usepackage[style=footnote-dw,namefont=italic,firstnamefont=italic,nopublisher=false]{biblatex} 

  
\bibliography{\jobname} 

\DeclareNameFormat{labelname}{% 
  \iffirstinits 
    {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} 
    {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}% 
  \usebibmacro{name:andothers}}

\renewcommand{\jourvolstring}{\addcomma\space} 
\renewcommand{\publisherdatepunct}{\addspace} 

\DefineBibliographyStrings{ngerman}{% 
  seenote = {a.\,a.\,O\adddot} 
} 

%% cite:seenote umdefinieren 
\makeatletter 
\renewbibmacro*{cite:seenote}{% 
  \ifbool{cbx:parencitefoot} 
    {\printtext{% 
       \setunit{\addcomma\space}% 
       \bibstring{seenote}% 
       \setunit{\addnbspace}}% 
     \ifbool{cbx:pageref} 
       {\ifsamepage{\the\value{instcount}} 
         {\csuse{cbx@first@\thefield{entrykey}}} 
         {}% 
      \printtext{% 
        \setunit{\addcomma\space}% 
        \bibstring{seenote}% 
        \setunit{\addnbspace}% 
        \pageref{cbx@\csuse{cbx@first@\thefield{entrykey}}}}} 
      {}} 
    {\printtext{% 
       \setunit{\addcomma\space}% 
       \bibstring{seenote}% 
       \setunit{\addnbspace}}% 
     \ifbool{cbx:pageref} 
       {\ifsamepage{\the\value{instcount}} 
          {\csuse{cbx@first@\thefield{entrykey}}} 
          {} 
        \printtext{% 
          \setunit{\addcomma\space}% 
          \bibstring{seenote}% 
          \setunit{\addnbspace}% 
          \pageref{cbx@\csuse{cbx@first@\thefield{entrykey}}}}} 
       {}}} 
\makeatother 

\begin{document} 

Zitat Buch\cite[S.23]{Beyhs2002} 

Zitat Artikel\cite[S.545]{Baetge2001} 

2. Zitat Buch\cite[S.28]{Beyhs2002} 

2. Zitat Artikel\cite[S.35]{Baetge2001} 


\end{document}

Mechanicus
Forum-Guru
Forum-Guru
Beiträge: 322
Registriert: Mi 8. Okt 2008, 18:41
Wohnort: Hamburg

Beitrag von Mechanicus »

K2P hat geschrieben:ich traue mich ja schon fast nicht mehr zu schreiben,
wenn du meinen Code auch ausprobierst, dann geht es :D :lol:
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Beyhs2002,
   Author = {Oliver Beyhs},
   Publisher = {Frankfurt am Main},
    year = {2002},
   Title = {Impairment of assets nach International accounting standards}}

@article{Baetge2001,
   Author = {J{"o}rg Baetge and Henning Z"ulch},
   Journal = {BFuP},
   Pages = {543-562},
   Title = {Fair Value Accounting},
   Volume = {53},
   Year = {2001}}
\end{filecontents}

\documentclass[a4paper,12pt,openany,oneside,pointlessnumbers]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[a4paper]{geometry}
\usepackage{csquotes}
\usepackage[style=footnote-dw,namefont=italic,firstnamefont=italic,nopublisher=false]{biblatex}

 
\bibliography{\jobname}
\DeclareNameFormat{default}{%
  \iffirstinits
    {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
    {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%
  \usebibmacro{name:andothers}}
  
\DeclareNameFormat{labelname}{%
  \iffirstinits
    {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
    {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%
  \usebibmacro{name:andothers}}

\renewcommand{\jourvolstring}{\addcomma\space}
\renewcommand{\publisherdatepunct}{\addspace}

\DefineBibliographyStrings{ngerman}{%
  seenote = {a.\,a.\,O\adddot}
}

%% cite:seenote umdefinieren
\makeatletter
\renewbibmacro*{cite:seenote}{%
  \ifbool{cbx:parencitefoot}
    {\printtext{%
       \setunit{\addcomma\space}%
       \bibstring{seenote}%
       \setunit{\addnbspace}}%
     \ifbool{cbx:pageref}
       {\ifsamepage{\the\value{instcount}}
         {\csuse{cbx@first@\thefield{entrykey}}}
         {}%
      \printtext{%
        \setunit{\addcomma\space}%
        \bibstring{seenote}%
        \setunit{\addnbspace}%
        \pageref{cbx@\csuse{cbx@first@\thefield{entrykey}}}}}
      {}}
    {\printtext{%
       \setunit{\addcomma\space}%
       \bibstring{seenote}%
       \setunit{\addnbspace}}%
     \ifbool{cbx:pageref}
       {\ifsamepage{\the\value{instcount}}
          {\csuse{cbx@first@\thefield{entrykey}}}
          {}
        \printtext{%
          \setunit{\addcomma\space}%
          \bibstring{seenote}%
          \setunit{\addnbspace}%
          \pageref{cbx@\csuse{cbx@first@\thefield{entrykey}}}}}
       {}}}
\makeatother

\begin{document}

Zitat Buch\cite[S.23]{Beyhs2002}

Zitat Artikel\cite[S.545]{Baetge2001}

2. Zitat Buch\cite[S.28]{Beyhs2002}

2. Zitat Artikel\cite[S.35]{Baetge2001}


\end{document}
Gruß
Marco
Personalführung ist die Kunst der Vorgesetzten den Untergebenen so schnell über den Tisch zu ziehen, dass er die Reibungshitze als Nestwärme empfindet.

K2P
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 58
Registriert: Do 5. Aug 2010, 21:48
Wohnort: Heidelberg

Beitrag von K2P »

Dankeschön!

Ich habe auch schon labelname gegen default getauscht, wusste aber nicht dass man beides nehmen muss.

Super wie schnell hier reagiert wird!

K2P
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 58
Registriert: Do 5. Aug 2010, 21:48
Wohnort: Heidelberg

Beitrag von K2P »

Hallo, ich habe noch zwei kleine Fragen bezüglich meinen Zitiereinstellungen.

Habe dafür einen neuen Thread eröffnet um die Übersichtlichkeit zu erhöhen.

Vielleicht habt ihr ja einen Vorschlag für mein Problem.

Mehr unter http://www.golatex.de/publisher-nicht-k ... t5436.html

Antworten