biblatex-chicago で shorteditor が利用可能な場合、\edcite で shorteditor を使用する方法

biblatex-chicago で shorteditor が利用可能な場合、\edcite で shorteditor を使用する方法

この質問は\edciteコマンドに関するものです作成したデビッド・パートン(@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}

現在の出力:

メンディエタとルドバーグ

望ましい出力:

修繕/修復

答え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}}}}

関連情報