모든 저자가 표시된 사용자 정의 biblatex 인용 스타일 정의

모든 저자가 표시된 사용자 정의 biblatex 인용 스타일 정의

내 텍스트에 대한 사용자 정의 인용 스타일을 정의하려고 합니다. MWE는 다음과 같습니다

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

위의 코드는 여기에 이미지 설명을 입력하세요 이제 위와는 달리 첫 번째 저자와 et al이 아닌 모든 저자가 표시되기를 원합니다. Biblatex 문서에 따르면 printname은 모든 인수를 인쇄해야 하지만 내 코드에는 인쇄되지 않습니다. 나는 내 맞춤 인용 형식을 정의하는 방식이 최선이 아닐 수도 있다는 것을 알고 있습니다. 이는 Biblatex 매뉴얼을 보고 스스로 관리할 수 있는 한입니다. 따라서 귀하의 수정으로 인해 위의 인용 스타일 코드가 너무 많이 변경되지 않는다면 감사하겠습니다.

답변1

스타일 은 다음 옵션과 함께 biblatex-phys로드됩니다 .biblatex

maxnames=999, maxcitenames=2

maxcitenames따라서 로드할 때 의 값을 재정의하면 됩니다 biblatex. 및 maxnames을 모두 설정하는 옵션을 사용할 수 있습니다 .maxcitenamesmaxbibnames

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

매크로 에서 직접 이름 수를 설정하려면 \citelong를 사용할 수 있습니다 \printnames[][-\value{listtotal}]{author}.

또한 구두점을 더욱 강력하게 만들기 위해 매크로를 약간 정리했습니다.

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

관련 정보