.png)
答え1
これは、フィールドをクリアするだけで実行できますextradate
。この解決策は特定のユースケースでは機能しますが、他の状況では予期しない結果につながる可能性があることに注意してください。この場合、moeweによるソリューションより堅牢です。議論についてはコメントを参照してください。
\begin{filecontents}{\jobname.bib}
@book{Chomsky1986,
Address = {Cambridge Mass.},
Author = {Noam Chomsky},
Publisher = {{MIT} Press},
Title = {Barriers},
Year = {1986}}
@book{Chomsky1986b,
Address = {New York},
Author = {Noam Chomsky},
Publisher = {Praeger},
Title = {Knowledge of Language: its nature, origin and use},
Year = {1986}}
\end{filecontents}
\documentclass{article}
\usepackage[
citestyle=verbose-ibid,
bibstyle=authoryear-ibid,
]
{biblatex}
\addbibresource{\jobname.bib}
\DeclareFieldFormat{extradate}{}
\begin{document}
\autocite{Chomsky1986b,Chomsky1986}
\printbibliography
\end{document}
答え2
空のフィールド形式でフィールドを抑制するのはあまり好きではないので、関連するコマンドを直接再定義するソリューションを次に示します。
\documentclass{article}
\usepackage[
citestyle=verbose-ibid,
bibstyle=authoryear-ibid,
]{biblatex}
\renewbibmacro*{date+extradate}{%
\iffieldundef{labelyear}
{}
{\printtext[parens]{\printdate}}}
\renewbibmacro*{bbx:ifmergeddate}[2]{#1}%
\addbibresource{biblatex-examples.bib}
\begin{document}
\autocite{knuth:ct:b,knuth:ct:c}
\printbibliography
\end{document}
labeldate
少し控えめなアプローチでは、以下のように再定義するだけで痕跡が残りますdate+extradate
(bbx:ifmergeddate
変更なし)。
\renewbibmacro*{date+extradate}{%
\iffieldundef{labelyear}
{}
{\printtext[parens]{%
\iflabeldateisdate
{\printdate}
{\printlabeldate}}}}%
余分な日付を削除する別の、しかしより直接的な方法は、
\DeclareFieldInputHandler{extradate}{\def\NewValue{}}