Anzeige:
Ergebnis 1 bis 5 von 5

Thema: mycite-Befehl im multibib-Usepackage

  1. #1
    barbarelle77
    Gast

    Question mycite-Befehl im multibib-Usepackage

    Hi folks

    Weiss jemand, wie ich den mycite-Befehl beim multibib-usepackage anwenden muss, wenn ich mehrere Unterkapitel im Literaturverzeichnis haben möchte?

    Hier ein Minimalbeispiel. Ich denke, sowohl die Frage wie auch die Antwort ist relativ simpel, nur leider komm ich nicht drauf...

    \documentclass[smallheadings,headsepline,12pt,a4paper,oneside]{scrbook}
    \usepackage[T1]{fontenc}
    \usepackage[ngerman]{babel}
    \usepackage[utf8x]{inputenc}
    \usepackage{graphicx}
    \usepackage{url}
    \usepackage[paper=a4paper,left=20mm,right=20mm,top=40mm,bottom =20mm]{geometry}
    \pagestyle{headings}
    \usepackage[authorformat=year,superscriptedition=year,titlefor mat=italic,titleformat=commasep]{jurabib}

    \jurabibsetup{dotafter=bibentry}
    \newcommand{\mycite}[3][]{
    \renewcommand{\jbcitationyearformat}[1]{##1}
    (\ifthenelse{\equal{.}{#1.}}{}{#1 }\citeauthor{#3}
    \citefield{year}{#3}\ifthenelse{\equal{.}{#2.}}{}{ : #2})}

    \renewcommand*{\bibelnfont}{}
    \renewcommand*{\bibefnfont}{}
    \renewcommand*{\bibbtsep}{in: }
    \renewcommand*{\bibjtsep}{in: }
    \renewcommand*{\bibtfont}{\textit}
    \renewcommand*{\bibapifont}{\textit}
    \renewcommand*{\bibatsep}{, }
    \renewcommand*{\bibbdsep}{}
    \renewcommand*{\bibaldelim}{(}
    \renewcommand*{\bibardelim}{)}
    \newcommand*{\punkte}{\dots\unkern}

    \usepackage{hyperref}

    \clubpenalty = 1000
    \widowpenalty = 1000

    \usepackage{multibib}
    \newcites{z}{Zeitungsartikel}


    \begin{document}

    \bibliographystyle{jureco}
    \bibliography{Forschungsarbeit.bib}
    \renewcommand{\bibname}{Zeitungsartikel}
    \bibliographystylez{jureco}
    \bibliographyz{ForschungsarbeitArtikel.bib}


    \end{document}

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Hallo und Herzlich Willkommen
    nutze bitte zur Codedarstellung die gleichnamige Umgebung hier im Board (auch zu erreichen über das `#'-Symbol (nicht die Taste) bei der Beitragserstellung)
    Zitat Zitat von barbarelle77 Beitrag anzeigen
    Weiss jemand, wie ich den mycite-Befehl beim multibib-usepackage anwenden muss, wenn ich mehrere Unterkapitel im Literaturverzeichnis haben möchte?
    multibibs \newcites-Befehl deklariert eine Reihe an neuen Befehlen, bei \newcites{z}{...} u.a. Dinge wie \citez oder -- in Verbindung mit jurabib auch \citeauthorz; welche Befehle erzeugt werden, kannst Du Dir mit
    Code:
    \makeatletter
    \show\@mb@citenamelist
    \makeatother
    (südlich von jurabib und multibib) selbst anzeigen lassen, füge jedem Namen gedanklich einfach ein `z' hinzu (oder was auch immer Du dem \newcites als ersten Parameter übergibst), naturgemäß gehört `mycite' nicht dazu.
    Nun könntest Du dabeigehen, diesen \@mb@citenamelist um `mycite' zu erweitern, etwa
    Code:
    \makeatletter
    \edef\@mb@citenamelist{mycite,\@mb@citenamelist}
    \makeatother
    (südlich von jurabib und multibib)
    Das hätte allerdings den Haken, daß innerhalb des so erzeugten \mycitez \citeauthor, nicht etwa \citeauthorz aufgerufen würde (so es auch der bessere Ansatz sein mag) ...
    Code:
    \documentclass{scrbook}
    \usepackage[T1]{fontenc}
    \usepackage[ngerman]{babel}
    \usepackage[utf8x]{inputenc}
    \usepackage{filecontents}
    \begin{filecontents}{ForschungsarbeitArtikel.bib}
    @article{foo,
      author={Silie, Peter},
      title={Vom Minimalbeispiel zum fertigen Projekt},
      journal={Der kleine {\TeX}niker},
      volume={41},
      number={795},
      pages={25-37},
      year={2010}
    }
    \end{filecontents}
    \begin{filecontents}{Forschungsarbeit.bib}
    @book{bar,
      author={Silie, Peter},
      title={Minimalbeispiel f{\"u}r Dummies},
      pages={1125-1127},
      publisher={Null Acht Fuffzehn},
      address={Hamburg},
      year={2010}
    }
    \end{filecontents}
    
    \usepackage[authorformat=year,superscriptedition=year,titlefor mat=italic,titleformat=commasep]{jurabib}
    \usepackage{multibib}
    \usepackage{hyperref}
    
    \newcites{z}{Zeitungsartikel}
    \newcommand*\mycite[3][]{%
    \renewcommand{\jbcitationyearformat}[1]{##1}%
    (\ifthenelse{\equal{.}{#1.}}{}{#1 }\citeauthor{#3}
    \citefield{year}{#3}\ifthenelse{\equal{.}{#2.}}{}{ : #2})%
    }
    \newcommand*\mycitez[3][]{%<--diesen befehl _nach_ \newcites{z}{...} definieren
      \renewcommand{\jbcitationyearformat}[1]{##1}%
      (\ifthenelse{\equal{.}{#1.}}{}{#1 }\citeauthorz{#3}
      \citefieldz{year}{#3}\ifthenelse{\equal{.}{#2.}}{}{ : #2})%
    }
    \begin{document}
    bla \mycite{Par2}{bar}
    blubb \mycitez{P2}{foo}
    \bibliographystyle{jureco}
    \bibliography{Forschungsarbeit.bib}
    \renewcommand{\bibname}{Zeitungsartikel}
    \bibliographystylez{jureco}
    \bibliographyz{ForschungsarbeitArtikel.bib}
    \end{document}
    d.h. wenn es denn wirklich Unterkapitel sein sollen, vllt so etwas wie
    Code:
    \addchap*{\bibname}
    \begingroup
      \let\chapter\section
      \renewcommand*\bibname{Literatur}%
      \bibliographystyle{jureco}%
      \bibliography{Forschungsarbeit.bib}
      \renewcommand*\bibname{Zeitungsartikel}%
      \bibliographystylez{jureco}%
      \bibliographyz{ForschungsarbeitArtikel.bib}
    \endgroup
    an passender Stelle.

    Und schau Dir bitte an, was ein Minimalbeispiel ist, definierte Befehle wie
    Zitat Zitat von barbarelle77 Beitrag anzeigen
    \newcommand*{\punkte}{\dots\unkern}
    die dann nicht benutzt werden, hindern eher, als daß sie helfen.
    BTW: wozu definierst Du \jbcitationyearformat innerhalb \mycite um und nicht außerhalb? Benötigst Du in Deinem Text auch die Originaldefinition von \jbcitationyearformat?

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    barbarelle77
    Gast
    Thanks a lot!
    Bemerkungen wegen Codedarstellung und Minimalbeispiel nehm ich mir zu Herzen...

    Zum BTW: nur weil ich LateX anwende, heisst das noch lange nicht, dass ich verstehe, was ich mache;-).
    Ich brauche \jbcitationyearformat meines Wissens nicht in der Originaldefinition. Würde das heissen, dass ich den \mycite-Befehl gar nicht brauche?

    (Sorry, meine Fragen sind echt ziemlich basic, aber ich hab halt meine Präambel und alles von einem Kollegen mit copy-paste eingefügt und jetzt merke ich, dass ich s doch selber verstehen muss/will...)

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von barbarelle77 Beitrag anzeigen
    Zum BTW: nur weil ich LateX anwende, heisst das noch lange nicht, dass ich verstehe, was ich mache;-).
    das Gefühl kenn ich
    Zitat Zitat von barbarelle77 Beitrag anzeigen
    Ich brauche \jbcitationyearformat meines Wissens nicht in der Originaldefinition. Würde das heissen, dass ich den \mycite-Befehl gar nicht brauche?
    Nö, ich hab mich nur gefragt, wozu Du \jbcitationyearformat innerhalb Deines \mycite-Befehls umdefinierst. Mit Aufruf des ersten \mycite wird \jbcitationyearformat entsprechend umdefiniert und gilt fortan bis Dokumentende, so dieser \mycite nicht innerhalb einer Gruppe aufgerufen wurde (dann gilt afaik diese Definition halt nur bis zum Ende der Gruppe).
    Ein Folgeaufruf von \mycite (innerhalb dieser Gruppe, und sei diese Gruppe `document') würde mit erneuter Redefinition von \jbcitationyearformat nur unnötigen Ballast bedeuten (der Befehl ist ja schon umdefiniert).
    Wenn Du \jbcitationyearformat nur in dieser von Dir definierten Form benötigst, täte es auch ein
    Code:
    \renewcommand{\jbcitationyearformat}[1]{#1}
    in Deiner Präambel; innerhalb der Definition von \mycite, \mycitez (und wie sie alle heißen mögen) könntest Du auf die, hmm, interne Redifinition von eben \jbcitationyearformat verzichten (bei gleichem Ergebnis).
    Zitat Zitat von barbarelle77 Beitrag anzeigen
    (Sorry, meine Fragen sind echt ziemlich basic, aber ich hab halt meine Präambel und alles von einem Kollegen mit copy-paste eingefügt und jetzt merke ich, dass ich s doch selber verstehen muss/will...)
    Hmm, ganz so `basic' scheint mir zumindest Deine letzte Frage nicht gewesen zu sein, sonst hättest Du imho bereits eine Antwort erhalten;-)
    Das mag aber auch damit zusammenhängen, daß heutzutage fast ausschließlich biblatex empfohlen wird -- vllt ist das ja auch was für Dich.

    BTW: für Grundlegendes vllt etwas Lesestoff

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  5. #5
    barbarelle77
    Gast
    Nun hab ich endlich etwas Zeit, mich wieder dahinterzuklemmen und mich um die formalen Dinge zu kümmern.

    Werd deinen indirekten Rat befolgen und biblatex runterladen. Dann reden wir wenigsten alle vom Gleichen und vielleicht erübrigt sich damit mein Problem von alleine

    Merci für die Hilfe!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •