.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{}}