この質問は\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}}}}