biblatex-chicago에서 사용 가능한 경우 \edcite에서 shorteditor를 사용하도록 만드는 방법

biblatex-chicago에서 사용 가능한 경우 \edcite에서 shorteditor를 사용하도록 만드는 방법

이 질문은 \edcite명령 에 관한 것입니다.만들어진작성자: David Purton(@DavidPurton), 나중에업데이트했어요biblatex-chicago의 옵션 과 일치해야 합니다 short.

\edcite가능하다면 짧은 형식을 생성해야 할 때(반복된 인용으로 인해 또는 옵션이 short선택되어 있기 때문에) 먼저 비어 있지 않은 shorteditor필드가 있는지 여부를 확인하도록 명령 을 추가로 업데이트하고 싶습니다. 그래서 그것을 사용하고 그렇지 않은 경우 기본값은 \printnames[given-family]{editor}.

MWE:

\documentclass{article}

\usepackage[notes,short]{biblatex-chicago}

\begin{filecontents*}{\jobname.bib}
@book{basil:hex:mendieta.rudberg1997,
    Address = {Berlin},
    Author = {Basil of Caesarea},
    Editor = {Emmanuel Amand de Mendieta and Rudberg, Stig Y.},
    Publisher = {Akademie Verlag},
    Shortauthor = {Basil},
    Shorteditor = {Mend./Rud.},
    Title = {Homilien zum Hexaemeron},
    Year = {1997}}
\end{filecontents*}
\addbibresource{\jobname.bib}

\newbibmacro*{edcite}{%
  \ifboolexpr{
    test {\ifciteibid}
    and
    not test {\iffirstonpage}
  }
    {\usebibmacro{cite:ibid}}
    {\ifboolexpr{
      test {\ifciteseen}
      or
      togl {cms@allshort}
     }
       {\printnames[labelname]{editor}}
       {\printnames[given-family]{editor}%
        \newcunit
        \usebibmacro{cpubl+loc+year}}}}

\DeclareCiteCommand{\edcite}
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{edcite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}

\DeclareMultiCiteCommand{\edcites}{\edcite}{\multicitedelim}
\newrobustcmd*{\edvolcite}{\volcitecmd\edcite}
\newrobustcmd*{\edvolcites}{\volcitecmd\edcites}

\begin{document}
\edcite{basil:hex:mendieta.rudberg1997}
\end{document}

현재 출력:

멘디에타와 루드베리

원하는 출력:

Mend./Rud.

답변1

가장 간단한 해결책은 edcite매크로를 조정하여 필드의 존재 여부를 테스트하는 것입니다 shorteditor.

\newbibmacro*{edcite}{%
  \ifboolexpr{
    test {\ifciteibid}
    and
    not test {\iffirstonpage}
  }
    {\usebibmacro{cite:ibid}}
    {\ifboolexpr{
      test {\ifciteseen}
      or
      togl {cms@allshort}
     }
       {\ifnameundef{shorteditor}
          {\printnames[labelname]{editor}}
          {\printnames[labelname]{shorteditor}}}
       {\printnames[given-family]{editor}%
        \newcunit
        \usebibmacro{cpubl+loc+year}}}}

관련 정보