這個問題是關於\edcite
命令的已創建作者:David Purton (@DavidPurton),後來更新了biblatex-chicago
與的選項保持一致short
。
如果可能的話,我想進一步更新該\edcite
命令,以便當它應該生成簡短形式時(無論是因為重複引用還是因為short
選擇了該選項),它首先檢查是否存在非空shorteditor
字段,如果所以使用它,如果不僅那麼預設為\printnames[given-family]{editor}
.
微量元素:
\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}}}}