Plainnat 참고문헌 스타일을 사용하여 첫 번째 저자가 동일한 경우 참고문헌을 알파벳순으로 정렬합니다.

Plainnat 참고문헌 스타일을 사용하여 첫 번째 저자가 동일한 경우 참고문헌을 알파벳순으로 정렬합니다.

라이오넬 호와 동료들이 쓴 글이 많아요. natbib패키지와 스타일을 사용합니다 plainnat. 편집할 때 참고문헌이 두 번째 저자의 성을 기준으로 정렬되지 않습니다. 어떻게 해결할 수 있나요?

\documentclass[10pt,a4paper]{article}
\usepackage[top=1cm,bottom=1cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[comma,authoryear,round,sort]{natbib}
\bibliographystyle{plainnat}
\setcitestyle{citesep={;},yysep={;}}
\begin{filecontents*}{\jobname.bib}
@Article{Ho2012,
  author   = {Ho, Lionel and Dreyfus, J. and Boyer, J. and Lowe, T. and Bustamante, H. and Duker, P. and Meli, T. and Newcombe, G.},
  title    = {Fate of...},
  year     = {2012},
}

@Article{Ho2007,
  author   = {Ho, Lionel and Hoefel, D. and Saint, C. P. and Newcombe, Gayle},
  title    = {Isolation...},
  year     = {2007},}

@Article{Ho2008,
  author  = {Ho, Lionel and Slyman, Najwa and Kaeding, Uwe and Newcombe, Gayle},
  title   = {Optimizing...},
  year    = {2008},}
\end{filecontents*}
\begin{document} 
\citep{Ho2012,Ho2007,Ho2008}
\bibliography{\jobname}
\end{document}

결과:

여기에 이미지 설명을 입력하세요

sort옵션 을 지워봤는데

\usepackage[comma,authoryear,round]{natbib}

하지만 결과는 똑같아

답변1

문제에 대한 빠른 수정은 다음 코드를 따라 진행될 수 있습니다.

% start of bib file
@preamble{ " \providecommand{\noopsort[1]{}} " }
@Article{Ho2012,
  author   = {Ho, Lionel and Dreyfus, J. and Boyer, J. and Lowe, T. and Bustamante, H. and Duker, P. and Meli, T. and Newcombe, G.},
  title    = {Fate of...},
  year     = {\noopsort{c}2012},}
@Article{Ho2007,
  author   = {Ho, Lionel and Hoefel, D. and Saint, C. P. and Newcombe, Gayle},
  title    = {Isolation...},
  year     = {\noopsort{a}2007},}
@Article{Ho2008,
  author  = {Ho, Lionel and Slyman, Najwa and Kaeding, Uwe and Newcombe, Gayle},
  title   = {Optimizing...},
  year    = {\noopsort{b}2008},}
% bib file continues...

LaTeX에 관한 한 매크로 \noopsort는 아무 작업도 수행하지 않지만 BibTeX 작업 중에는 역할을 수행합니다. 기본적으로 BibTeX는 "a2007", "b2008" 및 "c2012"로 제공된 연도 필드가 있는 3개의 항목을 "인식"합니다. 어떻게 정렬되는지 추측해 보세요. "a", "b" 및 "c" 입자는 LaTeX의 후속 처리 중에 "사라집니다".


모든 작성자의 성에 따라 자동으로 정렬이 수행되도록 하는 보다 철저한 수정 방법에는 파일 수정(복사본)이 포함됩니다 plainnat.bst. 다음과 같이 진행하는 것이 좋습니다.

  • TeX 배포판에서 파일을 찾으세요 plainnat.bst. chicago.bst(왜 chicago.bst냐고 물을 수도 있겠네요. 모든 저자의 성을 기준으로 정렬을 우연히 수행하는 턱받이 스타일이기 때문입니다.) 를 복사하고 plainnat.bst복사본을 호출합니다 plainnat-mod.bst.TeX 배포판의 원본 파일을 직접 편집하지 마십시오.

  • 파일을 열고 텍스트 편집기에서 엽니 plainnat-mod.bst다 . chicago.bsttex 파일을 편집하는 데 사용하는 프로그램은 제대로 작동합니다.

  • 파일 plainnat-mod.bst및 에서 chicago.bst라는 함수를 찾습니다 sort.format.names. (이 파일의 복사본에서 함수는 각각 1207행과 1407행에서 시작됩니다.)

  • 파일에서 plainnat-mod.bst함수의 29개 라인(1207~1235)을 모두 삭제합니다 sort.format.names. 함수의 21개 라인(1407~1427)을 모두 복사하여 방금 여러 라인을 삭제한 위치에 sort.format.names붙여 넣습니다.chicago.bstplainnat-mod.bst

  • 파일을 닫고 chicago.bst파일을 저장한 후 닫습니다 plainnat-mod.bst. 후자의 파일을 기본 tex 파일이 있는 디렉터리나 BibTeX에서 검색한 디렉터리에 저장하세요. 후자의 옵션을 선택하는 경우 TeX 배포판의 파일 이름 데이터베이스를 적절하게 업데이트하십시오.

  • 기본 tex 파일에서 명령 \bibliographystyle{plainnat-mod}\bibliographystyle{plainnat}. 그런 다음 전체 재컴파일 주기(latex, bibtex 및 latex를 두 번 더)를 수행하여 모든 변경 사항을 완전히 전파합니다.

즐거운 BibTeXing을 즐겨보세요!

관련 정보