Cambiare posizione campi in bibliografia

  • Creatore
    Topic
  • #95465
    Up
    0
    Down
    ::


    Buonasera, sono di nuovo bisognoso di aiuto!
    La rivista chiede per i saggi raccolti in un volume:

    Green A (2009). The central phobic position: with a model of the free-association method. In: Green A, editor. Resonance of suffering: countertransference in non-neurotic structures, p. 41–73. London: Karnac Books.

    E io ottengo:

    Green A (2009). “The central phobic position: with a model of the free-association method”. In: Resonance of suffering: countertransference in non-neurotic structures. Ed. by A Green. London: Karnac Books, p. 41–73.

    Già arrivare fin qui è stata dura…

    Comunque i problemi residui sono quattro:
    1) le virgolette che racchiudono il titolo del saggio sono di troppo;
    2) invece di “Ed. by A Green.” ci vuole “Green A, editor.”;
    3) l’editore deve apparire prima del titolo del libro;
    4) le pagine devo apparire dopo il titolo del libro e non alla fine.

    Qui sotto il preambolo per la bibliografia:
    `\usepackage[backend=biber, style=authoryear-ibid, firstinits=true,terseinits=true, uniquename=false, dashed=false, maxcitenames=2, maxbibnames=6, minbibnames=6, natbib, babel=hyphen]{biblatex}
    \DeclareFieldFormat[article]{title}{#1}
    \DeclareFieldFormat[article,incollection]{pages}{#1}
    \DeclareFieldFormat[incollection]{title}{#1}

    %toglie “in:” da incollection
    \renewbibmacro{in:}{\ifentrytype{incollection}{}{\printtext{\bibstring{in}\intitlepunct}}}

    % inverte nome e cognome dal secondo autore in poi
    \DeclareNameFormat{last-first}{
    \usebibmacro{name:last-first}{#1}{#4}{#5}{#7}%
    \usebibmacro{name:andothers}}
    \DeclareNameAlias{author}{last-first}
    \renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon}{\addcomma\addspace}}

    \DefineBibliographyStrings{english}{%
    pages={p.}
    }
    \DefineBibliographyStrings{italian}{%
    pages={p.}
    }

    % Replaces “and” with “,” in bibliography
    \AtBeginBibliography{
    \renewcommand*{\finalnamedelim}{%
    \ifnumgreater{\value{liststop}}{2}{}{}%
    \addcomma\space}%
    }

    %leva la virgola tra cognome e nome
    \renewcommand*{\revsdnamepunct}{}
    \renewbibmacro{in:}{\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}

    %corregge citeyearpar con citazioni a libri stesso anno
    \DeclareCiteCommand{\citeyearpar}[\mkbibparens]
    {\boolfalse{citetracker}%
    \boolfalse{pagetracker}%
    \usebibmacro{prenote}}
    {\printfield{year}\printfield{extrayear}}
    {\multicitedelim}
    {\usebibmacro{postnote}}`

    Qui la voce in questione:

    `@inbook{green2000central,
    Address = {London},
    Author = {Green, A.},
    Booktitle = {Resonance of suffering: countertransference in non-neurotic structures},
    Editor = {Green, A.},
    Hyphenation = {english},
    Pages = {41—73},
    Publisher = {Karnac Books},
    Title = {The central phobic position: with a model of the free-association method},
    Year = {2009}}`

    E questo per stampare la bibliografia:

    `\selectlanguage{english}
    \printbibliography
    \end{document}`

    Vi ringrazio per ogni possibile dritta.
    Alex

Visualizzazione 1 filone di risposte
  • Autore
    Risposte
    • #95466
      Up
      0
      Down
      ::


      Problema 1) risolto:
      \DeclareFieldFormat[inbook]{title}{#1}

      Problema 3) risolto:

      ` \newbibmacro*{ineditor+others}{%
      \ifboolexpr{ test \ifuseeditor and not test {\ifnameundef{editor}} }
      {\printnames{editor}%
      \setunit{\addcomma \addspace}%
      \usebibmacro{editor+othersstrg}%
      \clearname{editor}}
      {}}

      \renewbibmacro{in:}{%
      \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}%
      \usebibmacro{ineditor+others}%
      \newunit
      \clearname{editor}}`

      Per gli altri due brancolo nel buio.

    • #95467
      Up
      0
      Down
      ::


      Vi aggiorno dell’avanzamento, se può essere utile a qualcuno 🙂

      Problema 2) risolto con un semplice
      ` \DefineBibliographyStrings{english}{%
      editor = {editor},%
      issue = {\lowercase{i}ss\adddot},%
      }`
      E problema 4) con:
      `%sposta pagine inbook dopo titolo libro
      \usepackage{xpatch}
      \xpatchbibdriver{inbook}
      {\newunit\newblock
      \usebibmacro{chapter+pages}}
      {}
      {}{\typeout{failed to patch bibmacro incollection to remove page macro}}

      \xpatchbibdriver{inbook}
      {\usebibmacro{series+number}}
      {\usebibmacro{series+number}
      \newunit\newblock
      \usebibmacro{chapter+pages}}
      {}{\typeout{failed to patch bibmacro inbook to re-add page macro}}`
      LaTeX è una meraviglia. Alla prossima!

Visualizzazione 1 filone di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top