Definir estilo de citação biblatex personalizado com todos os autores exibidos

Definir estilo de citação biblatex personalizado com todos os autores exibidos

Estou tentando definir um estilo de citação personalizado para meu texto. Um MWE é o seguinte

\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}

O código acima produz insira a descrição da imagem aqui Agora, ao contrário do acima, quero que todos os autores sejam exibidos e não apenas o primeiro seguido de et al. A documentação do Biblatex diz que printnames deve imprimir todos os seus argumentos, mas isso não acontece no meu código. Eu sei que a maneira como defino meu formato de citação personalizado pode não ser a melhor, isso é tudo que posso fazer sozinho olhando o manual do biblatex. Portanto, agradeço se sua modificação não alterar muito o código de estilo de citação acima.

Responder1

O biblatex-physestilo é carregado biblatexcom estas opções:

maxnames=999, maxcitenames=2

Então você só precisa substituir o valor de maxcitenamesquando você carrega o arquivo biblatex. Você pode simplesmente usar a maxnamesopção que define maxcitenamese maxbibnames.

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

Para definir o número de nomes diretamente na sua \citelongmacro, você pode usar \printnames[][-\value{listtotal}]{author}.

Também arrumei um pouco sua macro para que a pontuação fique mais robusta.

\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}}

informação relacionada