Várias strings em um campo biblatex – múltiplas referências

Várias strings em um campo biblatex – múltiplas referências

Pelo que entendi, os campos biblatex eprintaceitam relateduma e apenas string/chave, embora eu queira que eles se refiram a dois ou mais itens/endereços.

Para dar um exemplo que pode deixar claro o que quero dizer (o exemplo precisa de três execuções: látex -> biber -> látex):

\begin{filecontents}{MyBib.bib}
@Article{Barney:Notes,
  author =   {Rachel Barney},
  title =    {Notes on Plato on the \mkbibemph{Kalon} and the Good},
  journaltitle = {Classical Philology},
  year =     2010,
  commentator =  {Paula Gottlieb},
  eprint =   {10.1086/657026, 10.1086/659326}, %the first number is
                                     % the article, the second one the
                                     % comment, which I want to appear in one entry
  eprinttype =   {jstor},
  volume =   105,
  number =   4,
  pages =    {363-77, 378-80} % the same as with eprint
  }

@Article{Derrida:Pharmacie1-1,
  author =   {Jacques Derrida},
  title =    {La pharmacie de Platon},
  journaltitle = {Tel Quel},
  year =     1968,
  volume =   32,
  pages =    {3-48}
}

@Article{Derrida:Pharmacie1-2,
  author =   {Jacques Derrida},
  title =    {La pharmacie de Platon},
  journaltitle = {Tel Quel},
  year =     1968,
  volume =   33,
  pages =    {18-59}
}

@InBook{Derrida:Pharmacie2,
  title =    {La pharmacie de Platon},
  year =     1993,
  bookauthor =   {Jacques Derrida},
  author =   {Jacques Derrida},
  gender =   {sm},
  booktitle =    {La Diss{\'e}mination},
  bookauthor =   {Jacques Derrida},
  publisher =    {{\'E}dition Points},
  location =     {Paris},
  pages =    {77-213}, % perhaps: {77-148, 149-213}
  related =  {Derrida:Pharmacie1-1}, % both articles are reprinted in one book,
                   % the unity of the deconstructed separation, which might duly be called 
                          % the voice of the separated unification as voiced deconstruction
                          % of no-pposites
  related =      {Derrida:Pharmacie1-2},
  relatedstring ={Nachdruck von}
}
\end{filecontents}
\documentclass{scrartcl}
\usepackage{filecontents}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\input{ix-utf8enc.dfu}
\usepackage[english]{babel}
\usepackage{xpatch}
\usepackage[pdftex]{hyperref}
\usepackage{csquotes}
\usepackage[style=philosophy-modern, sorting=nyvt,
            backend=biber, citetracker=constrict,
            opcittracker=constrict, 
            idemtracker=constrict, relatedformat=parens, 
            autolang=hyphen, clearlang=true]{biblatex}
\addbibresource{MyBib.bib}
\begin{document}

\nocite{*}
\printbibliography
\end{document}

Se eu separar as duas chaves com uma vírgula no caso Derrida, obtenho a referência duas vezes, separadas por uma quebra de linha.

Responder1

Para crossrefacertar os dois, basta colocá-los no mesmo crossrefcampo. Para citar meu comentário acima

você terá que colocar as duas entradas relacionadas em um relatedcampo (separadas por vírgula, é claro), caso contrário o Biber pegará apenas a última ocorrência do campo e ignorará todas as anteriores (eu esperava um aviso do Biber, mas houve nenhum Você pode ver esse comportamento muito claramente se adicionar um segundo authorcampo (diferente) a uma entrada.)

@InBook{Derrida:Pharmacie2,
  title         = {La pharmacie de Platon},
  year          = 1993,
  bookauthor    = {Jacques Derrida},
  author        = {Jacques Derrida},
  gender        = {sm},
  booktitle     = {La Diss{\'e}mination},
  bookauthor    = {Jacques Derrida},
  publisher     = {{\'E}dition Points},
  location      = {Paris},
  pages         = {77-213}, % perhaps: {77-148, 149-213}
  related       = {Derrida:Pharmacie1-1,Derrida:Pharmacie1-2},
  relatedtype   = {reprintof},
  %relatedstring = {Nachdruck von}
}

Já que você escreveu relatedstring ={Nachdruck von}, relatedtype = {reprintof}parece adequado aqui.

Parece-me, porém, que a defaultmacro relacionada biblatex-philosophyestá um pouco confusa e reprintoftambém fica destroçada, então teremos que dizer biblatexo que fazer com ela:

\newbibmacro*{related:reprintof}[1]{%
  \entrydata*{#1}{%
    \usedriver
      {\ifnameundef{savedauthor}
         {\ifnameundef{savededitor}
            {}
            {\ifnamesequal{editor}{savededitor}
               {\clearname{editor}}
               {}}}
         {\ifnamesequal{author}{savedauthor}
            {\clearname{author}}
            {}}%
       \renewbibmacro*{related:init}{}%
       \DeclareNameAlias{sortname}{default}%
       \ifbibmacroundef{date+extrayear}
         {}
         {\renewbibmacro*{date+extrayear}{}%
          \renewbibmacro*{date}{\printdate}}%
       \renewbibmacro*{pageref}{}}
      {\thefield{entrytype}}}}

Se redefinirmos ainda mais o padrão related:defaultpara

\renewbibmacro*{related:default}[1]{%
  \entrydata*{#1}{%
    \usedriver
      {\renewcommand*{\labelnamepunct}{\addcolon\space}%
       \renewbibmacro*{author/translator+others}{\printnames{author}}%
       \iffieldsequal{savedjournaltitle}{journaltitle}%
         {\renewbibmacro*{journal}{\bibstring{ibidem}}%
          \ifboolexpr{test {\iffieldsequal{savedvolume}{volume}} and test {\iffieldsequal{savednumber}{number}}}
            {\renewbibmacro*{volume+number+eid}{}}
            {}%
         }
         {}
       \ifnameundef{savedauthor}
         {\ifnameundef{savededitor}
            {}
            {\ifnamesequal{editor}{savededitor}
               {\clearname{editor}}
               {}}}
         {\ifnamesequal{author}{savedauthor}
            {\clearname{author}}
            {}}%
       \renewbibmacro*{related:init}{}%
       \DeclareNameAlias{sortname}{default}%
       \ifbibmacroundef{date+extrayear}
         {}
         {\renewbibmacro*{date+extrayear}{}%
          \renewbibmacro*{date}{\printdate}}%
       \renewbibmacro*{pageref}{}}
      {\thefield{entrytype}}}}

Atualizar related:defaultagora imprime um ibidemaviso se o diário da entrada relacionada for igual ao diário da entrada pai.

E trate da Barney:Notesseguinte forma, observe que Gottlieb:responseé a dataonlye o relatedcampo de Barney:Notesreferência aGottlieb:response

@Article{Barney:Notes,
  author =   {Rachel Barney},
  title =    {Notes on Plato on the \mkbibemph{Kalon} and the Good},
  journaltitle = {Classical Philology},
  year =     2010,
  doi =   {10.1086/657026},
  volume =   105,
  number =   4,
  pages =    {363-377},
  related={Gottlieb:response},
  relatedstring = {Commentary:},
}

@Article{Gottlieb:response,
  author =   {Paula Gottlieb},
  title =    {Response to Barney},
  journaltitle = {Classical Philology},
  year =     2010,
  doi =   {10.1086/659326},
  volume =   105,
  number =   4,
  pages =    {378-380},
  options = {dataonly},
}

Podemos obter um resultado bastante desejável, eu acho.

MWE

\documentclass{scrartcl}
\usepackage{filecontents}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{xpatch}
\usepackage[pdftex]{hyperref}
\usepackage{csquotes}
\usepackage{filecontents}
\usepackage[style=philosophy-modern, sorting=nyvt,
            backend=biber, citetracker=constrict,
            opcittracker=constrict,
            idemtracker=constrict, relatedformat=parens,
            autolang=hyphen, clearlang=true]{biblatex}

\begin{filecontents*}{\jobname.bib}
@Article{Barney:Notes,
  author =   {Rachel Barney},
  title =    {Notes on Plato on the \mkbibemph{Kalon} and the Good},
  journaltitle = {Classical Philology},
  year =     2010,
  doi =   {10.1086/657026},
  volume =   105,
  number =   4,
  pages =    {363-377},
  related={Gottlieb:response},
  relatedstring = {Commentary:},
}

@Article{Gottlieb:response,
  author =   {Paula Gottlieb},
  title =    {Response to Barney},
  journaltitle = {Classical Philology},
  year =     2010,
  doi =   {10.1086/659326},
  volume =   105,
  number =   4,
  pages =    {378-380},
  options = {dataonly},
}


@Article{Derrida:Pharmacie1-1,
  author =   {Jacques Derrida},
  title =    {La pharmacie de Platon},
  journaltitle = {Tel Quel},
  year =     1968,
  volume =   32,
  pages =    {3-48}
}

@Article{Derrida:Pharmacie1-2,
  author =   {Jacques Derrida},
  title =    {La pharmacie de Platon},
  journaltitle = {Tel Quel},
  year =     1968,
  volume =   33,
  pages =    {18-59}
}

@InBook{Derrida:Pharmacie2,
  title =    {La pharmacie de Platon},
  year =     1993,
  bookauthor =   {Jacques Derrida},
  author =   {Jacques Derrida},
  gender =   {sm},
  booktitle =    {La Diss{\'e}mination},
  bookauthor =   {Jacques Derrida},
  publisher =    {{\'E}dition Points},
  location =     {Paris},
  pages =    {77-213}, % perhaps: {77-148, 149-213}
  related =  {Derrida:Pharmacie1-1,Derrida:Pharmacie1-2},
  relatedtype = {reprintof},
  %relatedstring ={Nachdruck von}
}
\end{filecontents*}

\newbibmacro*{related:reprintof}[1]{%
  \entrydata*{#1}{%
    \usedriver
      {\ifnameundef{savedauthor}
         {\ifnameundef{savededitor}
            {}
            {\ifnamesequal{editor}{savededitor}
               {\clearname{editor}}
               {}}}
         {\ifnamesequal{author}{savedauthor}
            {\clearname{author}}
            {}}%
       \renewbibmacro*{related:init}{}%
       \DeclareNameAlias{sortname}{default}%
       \ifbibmacroundef{date+extrayear}
         {}
         {\renewbibmacro*{date+extrayear}{}%
          \renewbibmacro*{date}{\printdate}}%
       \renewbibmacro*{pageref}{}}
      {\thefield{entrytype}}}}

\renewcommand*{\relateddelim}{\adddot\space}

%\renewbibmacro*{related:clearauthors}{}

\renewbibmacro*{related:default}[1]{%
  \entrydata*{#1}{%
    \usedriver
      {\renewcommand*{\labelnamepunct}{\addcolon\space}%
       \renewbibmacro*{author/translator+others}{\printnames{author}}%
       \iffieldsequal{savedjournaltitle}{journaltitle}%
         {\renewbibmacro*{journal}{\bibstring{ibidem}}%
          \ifboolexpr{test {\iffieldsequal{savedvolume}{volume}} and test {\iffieldsequal{savednumber}{number}}}
            {\renewbibmacro*{volume+number+eid}{}}
            {}%
         }
         {}
       \ifnameundef{savedauthor}
         {\ifnameundef{savededitor}
            {}
            {\ifnamesequal{editor}{savededitor}
               {\clearname{editor}}
               {}}}
         {\ifnamesequal{author}{savedauthor}
            {\clearname{author}}
            {}}%
       \renewbibmacro*{related:init}{}%
       \DeclareNameAlias{sortname}{default}%
       \ifbibmacroundef{date+extrayear}
         {}
         {\renewbibmacro*{date+extrayear}{}%
          \renewbibmacro*{date}{\printdate}}%
       \renewbibmacro*{pageref}{}}
      {\thefield{entrytype}}}}

\addbibresource{\jobname.bib}
\begin{document}

\nocite{*}
\printbibliography
\end{document}

insira a descrição da imagem aqui

As soluções aqui podem ser um tanto frágeis e podem falhar em outros casos de uso. Mas o tratamento padrão de entradas relacionadas philosophy-modernparece conter alguns bugs e redefinições astutas que tive que combater.

informação relacionada