Authoryear-ibid에서 접미사 제거 예: (2011a)

Authoryear-ibid에서 접미사 제거 예: (2011a)

다음 그림에서 볼 수 있듯이 Authoryear-ibid 인용 연도의 접미사를 제거하는 데 어려움을 겪고 있습니다.

인용 이미지

이것은 내가 biblatex에 사용하는 코드입니다.

\usepackage[
    citestyle=verbose-ibid, 
    bibstyle=authoryear-ibid, 
    backend=biber]
    {biblatex}

나는 이 접미사가 분명히 에 의해 제어 가능해야 한다는 것을 알고 있지만 labeldateparts분명히 효과가 없습니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변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}

커누스, 도널드 E. (1986). 컴퓨터 및 조판. Vol. B: TeX: 프로그램. 매사추세츠주 레딩: Addison-Wesley.//— (1986). 컴퓨터 및 조판. Vol. C: METAFONTbook입니다. 매사추세츠주 레딩: 애디슨-웨슬리.

약간 덜 공격적인 접근 방식은 다음과 같이 labeldate재정의하고 변경하지 않고 그대로 두면 여전히 흔적을 남깁니다 .date+extradatebbx:ifmergeddate

\renewbibmacro*{date+extradate}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
       \iflabeldateisdate
         {\printdate}
         {\printlabeldate}}}}%

추가 날짜를 삭제하는 다르지만 더 직접적인 방법은 다음과 같습니다.

\DeclareFieldInputHandler{extradate}{\def\NewValue{}}

관련 정보