Biblatex 참고문헌의 첫 번째 저자의 성을 굵은 글씨로 표시합니다.

Biblatex 참고문헌의 첫 번째 저자의 성을 굵은 글씨로 표시합니다.

저는 이곳에 처음 왔으니 양해해 주시기 바랍니다. 나는~의제1저자만참고문헌을 굵은 글씨로 표시합니다. 즉, MWE에서는 참고문헌의 "Fox"만(인용은 제외) 굵은 글씨로 표시하고 싶습니다.

MWE:

\documentclass[a4paper,twoside,hidelinks]{article}
\usepackage[backend=biber,
        natbib=true,
        uniquename=false,
        uniquelist=false,
        firstinits=true,
        style=authoryear,
        sorting=nyt,
        maxcitenames=2,
        minbibnames=1,
        maxbibnames=100,
        block=none]{biblatex}

\bibliography{sample.bib}
\begin{document}
   Here is some sample text \parencite{Fox2011}.
\printbibliography
\end{document}

\RequirePackage{filecontents}
\begin{filecontents}{sample.bib}
   @ARTICLE{Fox2011,
   author = {Peter Fox and Richard Rabbit and Franc Bird},
      title = {Animals are the better humans},
      journal = {Horse and Hound},
      year = {2011},
      volume = {10},
      pages = {11--15}
}
\end{filecontents}

답변1

우리는 하나를 재정의합니다 bibmacro. 변경 사항은 실제로 매우 작습니다. \mkbibbold.

\renewbibmacro*{name:last-first}[4]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#3#1}%
     \usebibmacro{name:hook}{#3#1}%
     \ifblank{#3}{}{%
       \ifcapital
         {\mkbibbold{\mkbibnameprefix{\MakeCapital{#3}}\isdot}}
         {\mkbibbold{\mkbibnameprefix{#3}\isdot}}%
       \ifpunctmark{'}{}{\bibnamedelimc}}%
     \mkbibbold{\mkbibnamelast{#1}\isdot}%
     \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
     \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamefirst{#2}\isdot}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibbold{\mkbibnamelast{#1}\isdot}%
     \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}%
     \ifblank{#2#3}{}{\revsdnamepunct}%
     \ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}%
     \ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}

여기에 이미지 설명을 입력하세요

답변2

나는 이것이 전용 이름 형식을 사용하는 것이 가장 좋다고 생각합니다.

\mkbibnamefamily이름에 대해서만 성을 인쇄하는 매크로를 재정의한 다음 이를 복원하려는 아이디어입니다 .

기본적으로 authoryear를 사용하므로 family-given/given-family를 정의합니다 family-given/given-family-bf.

\DeclareNameFormat{family-given/given-family}{%
  \ifnumequal{\value{listcount}}{1}
    {\renewcommand*{\mkbibnamefamily}[1]{\mkbibbold{##1}}%
     \ifgiveninits
       {\usebibmacro{name:family-given}
         {\namepartfamily}
         {\namepartgiveni}
         {\namepartprefix}
         {\namepartsuffix}}
       {\usebibmacro{name:family-given}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}}%
     \ifboolexpe{%
       test {\ifdefvoid\namepartgiven}
       and
       test {\ifdefvoid\namepartprefix}}
       {}
       {\usebibmacro{name:revsdelim}}}
    {\renewcommand*{\mkbibnamefamily}[1]{##1}%
     \ifgiveninits
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiveni}
         {\namepartprefix}
         {\namepartsuffix}}
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}}}%
  \usebibmacro{name:andothers}}

다음의 모든 이름을 선호하는 경우family-given

\DeclareNameFormat{family-given-fb}{%
  \ifnumequal{\value{listcount}}{1}
    {\renewcommand*{\mkbibnamefamily}[1]{\mkbibbold{##1}}}
    {\renewcommand*{\mkbibnamefamily}[1]{##1}}%
  \ifgiveninits
    {\usebibmacro{name:family-given}
      {\namepartfamily}
      {\namepartgiveni}
      {\namepartprefix}
      {\namepartsuffix}}
    {\usebibmacro{name:family-given}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}}%
  \usebibmacro{name:andothers}}

또는given-family

\DeclareNameFormat{given-family-fb}{%
  \ifnumequal{\value{listcount}}{1}
    {\renewcommand*{\mkbibnamefamily}[1]{\mkbibbold{##1}}}
    {\renewcommand*{\mkbibnamefamily}[1]{##1}}%
  \ifgiveninits
    {\usebibmacro{name:given-family}
      {\namepartfamily}
      {\namepartgiveni}
      {\namepartprefix}
      {\namepartsuffix}}
    {\usebibmacro{name:given-family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}}%
  \usebibmacro{name:andothers}}

그런 다음 위의 형식 중 하나를 통해 사용하세요 \DeclareNameAlias{sortname}{format}. 예를 들어

\DeclareNameAlias{sortname}{family-given-fb}

MWE

\documentclass{article}
\usepackage[backend=biber, style=authoryear]{biblatex}

\DeclareNameAlias{sortname}{family-given-fb}
\DeclareNameFormat{family-given-fb}{%
  \ifnumequal{\value{listcount}}{1}
    {\renewcommand*{\mkbibnamefamily}[1]{\mkbibbold{##1}}}
    {\renewcommand*{\mkbibnamefamily}[1]{##1}}%
  \ifgiveninits
    {\usebibmacro{name:family-given}
      {\namepartfamily}
      {\namepartgiveni}
      {\namepartprefix}
      {\namepartsuffix}}
    {\usebibmacro{name:family-given}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}}%
  \usebibmacro{name:andothers}}

\bibliography{biblatex-examples.bib}

\begin{document}
   Here is some sample text \parencite{baez/article}.

  \printbibliography
\end{document}

여기에 이미지 설명을 입력하세요

3.3 이상 으로 편집되었으며 biblatex이전 버전은 편집 기록에서 찾을 수 있습니다. 덧붙여서, \mkbibnamefamily이름이 그룹화되어야 하므로 향후 버전(예: > 3.11)에서는 의 이전 정의를 복원할 필요가 없습니다.https://github.com/plk/biblatex/pull/731.

관련 정보