Biblatex: Parte antes que volumen

Biblatex: Parte antes que volumen

Necesito citar volúmenes de obras completas de filósofos clásicos, que a menudo vienen divididos en varias secciones (o partes), cada una de las cuales incluye varios volúmenes. A continuación se muestra un ejemplo con el formato correcto:

Wolff, Christian von (1962).Filosofía prima sive Ontología. Ed. Por Jean École.Obras de Gesammelte. Abteilung 2: Lateinische Schriften, Bd. 3. Hildesheim: Olms.

No puedo entender cómo indicarle a biblatex que produzca este resultado. Intenté usar los campos "parte" y "volumen" como en la referencia siguiente:

@Book{Wolff1962,
  Title                    = {Philosophia prima sive Ontologia},
  Author                   = {Wolff, Christian von},
  Editor                   = {Jean Ecole},
  Publisher                = {Olms},
  Address                  = {Hildesheim},
  Year                     = {1962},
  Part                     = {Abt. 2: Lateinische Schriften},
  Maintitle                = {Gesammelte Werke},
  Volume                   = {3},
  Language                 = {german}
}

Desafortunadamente, biblatex parece pensar que la parte está subordinada al volumen y produce un resultado muy diferente. Además, el título principal se imprime antes del título del libro. También me gustaría tener una abreviatura localizada (alemán) para Parte y Volumen para entradas como esta (el idioma del documento es inglés), y pensé que la etiqueta de idioma se encargaría de ello, pero aparentemente no. Aquí está el resultado:

Wolff, Christian von (1962).Obras de Gesammelte. vol. 3.2: Escrituras latinas:Filosofía prima sive Ontología. Ed. Por Jean École. Hildesheim: Olms.

Se agradecen sugerencias.

Editar: MWE con látex y babero (incluido) ref:

\documentclass{article}
\usepackage[german,english]{babel}
\usepackage[backend=biber,natbib=true, indexing=cite, citestyle=authoryear-ibid, bibstyle=authoryear-ibid, sorting=nyt, indexing=cite]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Book{Wolff1962,
  Title                    = {Philosophia prima sive Ontologia},
  Author                   = {Wolff, Christian von},
  Editor                   = {Jean Ecole},
  Publisher                = {Olms},
  Year                     = {1962},

  Address                  = {Hildesheim},
  Language                 = {German},
  Volume                   = {3},

  Maintitle                = {Gesammelte Werke},
  Owner                    = {stefano},
  Part                     = {2: Lateinische Schriften}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
A citation of a multi-part work: \cite{Wolff1962}
\printbibliography
\end{document}

Edición final: MWE modificado incorporando y modificando ligeramente la solución de Carols:

\documentclass{article}
\usepackage[german,english]{babel}
\usepackage[backend=biber,natbib=true, indexing=cite, citestyle=authoryear-ibid, bibstyle=authoryear-ibid, sorting=nyt, indexing=cite,autolang=other,language=autobib]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@BookInGesamm{Wolff1962,
  Title                    = {Philosophia prima sive Ontologia},
  Author                   = {Wolff, Christian von},
  Editor                   = {Jean Ecole},
  Publisher                = {Olms},
  Year                     = {1962},    
  Address                  = {Hildesheim},
  langid                   = {german},
  Volume                   = {3},

  Maintitle                = {Gesammelte Werke},
  Part                     = {2: Lateinische Schriften}
}

@Inbook{Pogliano2011,
  Title                    = {At the Periphery of the Rising Empire: The Case of Italy (1945-1968)},
  Author                   = {Claudio Pogliano},
  Editor                   = {Stefano Franchi and Francesco Bianchini},
  Pages                    = {119-147},
  Publisher                = {Rodopi},
  Year                     = {2011},   
  Address                  = {Amsterdam},    
  Booktitle                = {The Search for a Theory of Cognition: Early Mechanisms and New Ideas}
} 
\end{filecontents}
\addbibresource{\jobname.bib}
\DeclareFieldFormat[BookInGesamm]{title}{{\mkbibemph{#1}}}

 \DeclareBibliographyDriver{bookingesamm}{%
   \usebibmacro{bibindex}%
   \usebibmacro{begentry}%
   \usebibmacro{author/translator+others}%
   \setunit{\labelnamepunct}\newblock
   \usebibmacro{title}%
   \newunit
   \usebibmacro{byeditor+others}%
   \newunit\newblock
   \usebibmacro{byauthor}%
   \newunit\newblock
   \usebibmacro{bybookauthor}%
   \newunit\newblock
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   %\printlist{language}%
   \newunit\newblock
   \printfield{edition}%
   \newunit
   \iffieldundef{maintitle}
     {\printfield{volume}%
      \printfield{part}}
     {}%
   \newunit
   \printfield{volumes}%
   \newunit\newblock
   \usebibmacro{series+number}%
   \newunit\newblock
   \printfield{note}%
   \newunit\newblock
   \usebibmacro{publisher+location+date}%
   \newunit\newblock
   \usebibmacro{chapter+pages}%
   \newunit\newblock
   \iftoggle{bbx:isbn}
     {\printfield{isbn}}
     {}%
   \newunit\newblock
   \usebibmacro{doi+eprint+url}%
   \newunit\newblock
   \usebibmacro{addendum+pubstate}%
   \setunit{\bibpagerefpunct}\newblock
   \usebibmacro{pageref}%
   \newunit\newblock
   \iftoggle{bbx:related}
     {\usebibmacro{related:init}%
      \usebibmacro{related}}
     {}%
   \usebibmacro{finentry}}


 \newbibmacro*{maintitle+booktitle}{%
   \iffieldundef{maintitle}
     {}
     {\usebibmacro{maintitle}%
      \newunit\newblock
      \iffieldundef{volume}
        {}
        {\printfield[default]{part}%
         \setunit{\addcomma\space}
        \printfield{volume}}}%
   \usebibmacro{booktitle}%
   \newunit}

 \begin{document}
     A citation of a multi-part work: \cite{Wolff1962} and a citation of a real inbook ref: \cite{Pogliano2011}
    \printbibliography
  \end{document}

Respuesta1

Creo que es mejor que uses inbook. Para utilizar otro idioma en una entrada de la bibliografía es necesario agregar a la entrada el langidy en las opciones bibltex poner autolang=othery language=autobib.

Modifiqué el inbookpara obtener el pedido que necesitas. Pero puedes modificar el bookcontrolador si crees que es mejor.

\documentclass{article}
\begin{filecontents}{wolff.bib}
@inBook{Wolff1962,
  Title                    = {Philosophia prima sive Ontologia},
  Author                   = {Wolff, Christian von},
  Editor                   = {Jean Ecole},
  Publisher                = {Olms},
  Address                  = {Hildesheim},
  Year                     = {1962},
  Part                     = {Abt. 2: Lateinische Schriften},
  Maintitle                = {Gesammelte Werke},
  Volume                   = {3},
  langid                   = {german}
}
\end{filecontents}
 \usepackage[german,english]{babel}
 \usepackage[backend=biber,natbib=true, indexing=cite, citestyle=authoryear-ibid, bibstyle=authoryear-ibid, sorting=nyt, indexing=cite,autolang=other,language=autobib]{biblatex}
 \addbibresource{wolff.bib}

\DeclareFieldFormat[inbook]{title}{{\mkbibemph{#1}}}

\DeclareBibliographyDriver{inbook}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bybookauthor}%
  \newunit\newblock
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  %\printlist{language}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}


\newbibmacro*{maintitle+booktitle}{%
  \iffieldundef{maintitle}
    {}
    {\usebibmacro{maintitle}%
     \newunit\newblock
     \iffieldundef{volume}
       {}
       {\printfield[default]{part}%
        \setunit{\addcomma\space}
       \printfield{volume}}}%
  \usebibmacro{booktitle}%
  \newunit}

\begin{document}
\cite{Wolff1962}

\printbibliography

\end{document}

ingrese la descripción de la imagen aquí

EDITAR

Es posible que la edición final dé un problema, porque en mi respuesta anterior se redefinió la maintitle+booktitlemacro (la respuesta tiene un error, es mejor usarla \renewbibmacroy no \newbibmacroporque la macro ya esté definida) y la maintitle+booktitlemacro se usa con incollectiony inprocedingstambién. Luego, los cambios afectan a los demás controladores (es decir, el orden en los campos volumey part).

Puede utilizar el inbookcon el germany otros idiomas al mismo tiempo. Sólo es necesario agregar un lógico que si langides german: hacer algo macro, en caso contrario: hacer otro macro. Debajo de un MWE con dos inbookentradas. A en germanel otro en english.

\documentclass{article}
\begin{filecontents}{wolff.bib}
@inBook{Wolff1962,
  Title                    = {Philosophia prima sive Ontologia},
  Author                   = {Wolff, Christian von},
  Editor                   = {Jean Ecole},
  Publisher                = {Olms},
  Address                  = {Hildesheim},
  Year                     = {1962},
  Part                     = {Abt. 2: Lateinische Schriften},
  Maintitle                = {Gesammelte Werke},
  Volume                   = {3},
  langid                   = {german}
}

@inBook{other1999,
  Title                    = {The title in english},
  Author                   = {Last, Name},
  Editor                   = {Editor Name},
  Publisher                = {Springer},
  Address                  = {New York},
  Year                     = {1999},
  Part                     = {1},
  Maintitle                = {The Maintitle},
  Volume                   = {3},
}

\end{filecontents}
 \usepackage[german,english]{babel}
 \usepackage[backend=biber,natbib=true, indexing=cite, citestyle=authoryear-ibid, bibstyle=authoryear-ibid, sorting=nyt, indexing=cite,autolang=other,language=autobib]{biblatex}
 \addbibresource{wolff.bib}

\DeclareFieldFormat[inbook]{title}{%
\iffieldequalstr{langid}{german}{\mkbibemph{#1}}{\mkbibquote{#1}}}

\newbibmacro*{inbookgerman}{%
   \usebibmacro{byeditor+others}%
   \newunit\newblock
   \usebibmacro{byauthor}%
   \newunit\newblock
   \usebibmacro{bybookauthor}%
   \newunit\newblock
   \usebibmacro{maintitle+booktitle/german}%
   \newunit\newblock
   \printlist{language}%
}

\newbibmacro*{inbookother}{%
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{bybookauthor}%
  \newunit\newblock
  \usebibmacro{maintitle+booktitle}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
}

\newbibmacro*{maintitle+booktitle/german}{%
  \iffieldundef{maintitle}
    {}
    {\usebibmacro{maintitle}%
     \newunit\newblock
     \iffieldundef{volume}
       {}
       {\printfield[default]{part}%
        \setunit{\addcomma\space}
       \printfield{volume}}}%
  \usebibmacro{booktitle}%
  \newunit}


\DeclareBibliographyDriver{inbook}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \iffieldequalstr{langid}{german}{\usebibmacro{inbookgerman}}{\usebibmacro{inbookother}}
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}


\begin{document}
\cite{Wolff1962}
\cite{other1999}

\printbibliography

\end{document}

ingrese la descripción de la imagen aquí

información relacionada