Pruebe el siguiente MWE:
%!TEX TS-program = lualatexmk
\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage[backend=biber,style=authortitle-comp,abbreviate=false]{biblatex}
\usepackage{biblatex-bookinarticle}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{plato:complete,
Author = {Plato},
Editor = {John M. Cooper},
Keywords = {Primary Source},
Location = {Indianapolis},
Publisher = {Hacket Publishing Company},
Title = {Complete Works},
Year = {1997}}
@bookinbook{plato:dialogue,
Author = {Plato},
Crossref = {plato:complete},
Pages = {156--191},
Title = {Dialogue},
Titleaddon = {\bibstring{bytranslator} Donald J. Zeyl}}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
These are the complete works: \cite{plato:complete}. They contain the following text: \cite{plato:dialogue}.
\printbibliography
\end{document}
Da este resultado:
¿Es este resultado realmente intencional? Es decir, ¿realmente queremos el nombre "Platón"?nopara imprimirse nuevamente antes de "Trabajos completos" en la entrada de bibliografía del diálogo? ¿No debería ser mejor así:
Respuesta1
El valor predeterminado es no imprimir el bookauthor
si coincide con el author
(ver biblatex.def
)
\newbibmacro*{bybookauthor}{%
\ifnamesequal{author}{bookauthor}
{}
{\printnames{bookauthor}}}
Solo agrega
\renewbibmacro*{bybookauthor}{\printnames{bookauthor}}
a su preámbulo y bookauthor
siempre se mostrará.