HELP! biblatex, mixing interfaces, xref: come fare?

  • Creatore
    Topic
  • #56239
    Up
    0
    Down
    ::


    Salve

    sono molto grato a chi mi aiuta a capire come realizzare le seguenti indicazioni, tratte dal manuale di biblatex, sezione 4.11.1:

    ++++++++++++++++++++++++++
    Another case in which mixing interfaces is helpful are styles using cross-references
    within the bibliography. For example, when printing an @incollection entry, the
    data inherited from the @collection parent entry would be replaced by a short
    pointer to the respective parent entry:

    [1] Audrey Author: Title of article. In: [2], pp. 134–165.
    [2] Edward Editor, ed.: Title of collection. Publisher: Location, 1995.

    One way to implement such cross-references within the bibliography is to think of
    them as citations which use the value of the xref or crossref field as the entry
    key. Here is an example:

    ` \ProvidesFile{example.bbx}[2007/06/09 v1.0 biblatex bibliography style]
    \DeclareCiteCommand{\bbx@xref}
    {}
    {…}% code for cross-references
    {}
    {}
    \DeclareBibliographyDriver{incollection}{%

    \iffieldundef{xref}
    {…}% code if no cross-reference
    {\bbx@xref{\thefield{xref}}}%

    }`

    When defining \bbx@xref, the precode , postcode , and sepcode arguments of
    \DeclareCiteCommand are left empty in the above example because they will not
    be used anyway. The cross-reference is printed by the loopcode of \bbx@xref. For
    further details on the xref field, refer to § 2.2.3 and to the hints in § 2.4.1. Also
    see the \iffieldxref, \iflistxref, and \ifnamexref tests in § 4.6.2. The above
    could also be implemented using the \entrydata command from § 4.4.1:

    ` \ProvidesFile{example.bbx}[2007/06/09 v1.0 biblatex bibliography style]
    \DeclareBibliographyDriver{incollection}{%

    \iffieldundef{xref}
    {…}% code if no cross-reference
    {\entrydata{\thefield{xref}}{%
    % code for cross-references

    }}%

    }`
    ***************************

    Le mie conoscenze di TeX sono minime, e non ho idea di come fare.

    Grazie assai
    mario

    ps non voglio ottenere l’effetto voluto inserendo un comando \cite nel record bibliografico

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #56240
      Up
      0
      Down
      ::


      allora

      trovato in philosophy-classic:
      `
      \DeclareCiteCommand{\bbx@crossref}
      {}%
      {\ifuseeditor{%\ifthenelse{\value{listtotal}=2}
      %{\printnames[][-\value{maxnamesincross}]{labelname}}
      %{\printnames[][-\value{minnamesincross}]{labelname}}
      \printnames{labelname}}
      {\usebibmacro{labeltitle}}
      \setunit*{\addspace}%
      \printtext{\usebibmacro{crossdate+extrayear}}}%
      {}%
      {}%`

      Inserito un analogo codice in philosophy-modern, con xref al posto di crossref, e – al primo test- sembra funzionare.
      Non sono sicuro che questo sia sufficiente.

      In ascolto
      grazie
      mario

    • #56241
      Up
      0
      Down
      ::

      ps non voglio ottenere l’effetto voluto inserendo un comando \cite nel record bibliografico

      Non sarebbe male se spiegassi quale sia l’effetto voluto. 🙂

      Ciao
      Enrico

    • #56242
      Up
      0
      Down
      ::

      Non sarebbe male se spiegassi quale sia l’effetto voluto.

      Quello del manuale, adattato al caso di philosophy-modern:

      se ho i record:

      `@Collection{Caio,
      editor = {Caio},
      title = {Titolo Coll},
      publisher = {Stampa},
      year = {2000}
      }

      @InCollection{Tizio,
      author = {Tizio},
      title = {Titolo Art},
      year = {2000},
      Xref = {Caio},
      }`

      voglio avere:

      Caio 2000, (a cura di) Titolo Coll, Stampa, 2000
      Tizio 2000, Titolo Art, in (Caio, 2000)

      chiaro?
      grazie
      mario

Visualizzazione 2 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top