Definición de estilo de cita biblatex personalizado con todos los autores mostrados

Definición de estilo de cita biblatex personalizado con todos los autores mostrados

Estoy intentando definir un estilo de cita personalizado para mi texto. Un MWE es el siguiente

\documentclass{report}

\usepackage[backend=biber,sorting=none,style=phys, biblabel=brackets,pageranges=false,chaptertitle=false]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{xxx1.bib}
@article{key1,
  author = {Author, A. and Author, B. and Author, C.},
  title = {paper title},
  journal = {journal name},
  volume = {50}, 
  issue = {4},              
  pages = {15},
  year = {2019}
}
\end{filecontents}

\addbibresource{xxx1.bib}

\DeclareCiteCommand{\citelong}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {
   [%   
   \ifciteindex
     {\indexfield{indextitle}}
     {}%
     \printnames{author},
     \printfield[citetitle]{labeltitle},
     \textit{\printfield[citefield]{journaltitle}}
     \textbf{\printfield[citefield]{volume}},
     \iffieldundef{pages}{% NEW
       \printfield{number}%
     }{% NEW
       \printfield{pages}
     }
     (\printfield[citefield]{year})%
   ]%
  } 
  {\multicitedelim}
  {\usebibmacro{postnote}}

\begin{document}    
They went to the beach and met with a mermaid \citelong{key1}.    
\printbibliography    
\end{document}

El código anterior produce ingrese la descripción de la imagen aquí Ahora, a diferencia del anterior, quiero que se muestren todos los autores, no solo el primero seguido de et al. La documentación de Biblatex dice que printnames debería imprimir todos sus argumentos, pero no es así en mi código. Sé que la forma en que defino mi formato de cita personalizado puede no ser la mejor, hasta donde puedo hacerlo por mi cuenta consultando el manual de biblatex. Por lo tanto, le agradezco que su modificación no cambie demasiado el código de estilo de cita anterior.

Respuesta1

El biblatex-physestilo se carga biblatexcon estas opciones:

maxnames=999, maxcitenames=2

Entonces solo necesitas anular el valor de maxcitenamescuando cargas biblatex. Puedes usar la maxnamesopción que establece ambos maxcitenamesy maxbibnames.

\usepackage[sorting=none,style=phys, maxnames=999, biblabel=brackets, pageranges=false, chaptertitle=false]{biblatex}

Para establecer la cantidad de nombres directamente en su \citelongmacro, puede usar \printnames[][-\value{listtotal}]{author}.

También he ordenado un poco tu macro para que la puntuación sea más sólida.

\DeclareFieldFormat{citejournaltitle}{\mkbibemph{#1}}

\DeclareCiteCommand{\citelong}[\mkbibbrackets]
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexfield{indextitle}}
     {}%
   \printnames[][-\value{listtotal}]{author}%
   \newunit
   \printfield[citetitle]{labeltitle}%
   \newunit
   \printfield[citejournaltitle]{journaltitle}%
   \setunit*{\addspace}%
   \printfield{volume}%
   \newunit
   \iffieldundef{pages}
     {\printfield{number}}
     {\printfield{pages}}%
   \setunit{\addspace}%
   \printtext[parens]{\usebibmacro{date}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

información relacionada