Et Al 없음. apalike 및 natbib을 사용하는 세 명의 저자
내가 사용 \bibliographystyle{apalike}
과 \usepackage{natbib}
함께. One et al이 아닌 One, Two, Three (1234) 가 필요합니다 . (1234) 에 대한 기본적 \citet
및 \citep
-not \citet*
나 \citep*
. 내가 사용하려고 \usepackage{biblatex}
다음 이 게시물 있지만, 유사한 문제가 발생 bibhang 이미 정의 문제 . 다음 MWE를 사용하여 어떻게 할 수 있습니까?
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{apalike}
\begin{document}
\citet{asdf}
\bibliography{asdf}
\end{document}
@article{asdf,
title={asdf},
author={One, One and Two, Two and Three, Three},
journal={asdf},
volume={1},
number={1},
pages={1--2},
year={1234}
}
답변
apalike
'네이티브' natbib
스타일 중 하나가 아닙니다 . 의 natbib
모든 natbib
기능을 지원하지 않고 훨씬 오래 되었습니다 (예 : 별표 표시된 명령 \citet*
및을 지원하지 않음 \citep*
).
.bst
파일 을 편집하여 원하는 출력을 얻을 수 있습니다 .
apalike.bst
컴퓨터에서 찾습니다 .kpsewhich apalike.bst
명령 줄 / 터미널 에 입력하여 이를 수행 할 수 있습니다 . 또는 CTAN에서 파일 사본을 얻으십시오.http://mirrors.ctan.org/biblio/bibtex/base/apalike.bstTeX가 찾을 수있는 위치에 파일을 복사합니다. 문서 디렉토리는 괜찮습니다. 또한보십시오https://texfaq.org/FAQ-inst-wlcf
파일 이름을로 변경합니다 (파일을 수정하는 경우
apalike-three.bst
라이센스에apalike.bst
따라 이름을 변경해야 함).FUNCTION {format.lab.names}
(ll. 841-587)을 찾아 전체 함수 정의를 다음으로 바꿉니다.FUNCTION {format.lab.names} { 's := s #1 "{vv~}{ll}" format.name$ s num.names$ duplicate$ duplicate$ #3 > { pop$ pop$ " et~al." * } { #2 < 'pop$ { #2 = { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " et~al." * } { " and " * s #2 "{vv~}{ll}" format.name$ * } if$ } { ", " * s #2 "{vv~}{ll}" format.name$ * s #3 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " et~al." * } { ", and " * s #3 "{vv~}{ll}" format.name$ * } if$} if$ } if$ } if$ }
FUNCTION {calc.label}
(ll. 896-912)를 찾아 전체 함수 정의를 다음으로 바꿉니다.FUNCTION {calc.label} { type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.label % apalike ignores organization 'author.key.label % for labeling and sorting if$ } if$ "(" % these three lines are * % for apalike, which year field.or.null purify$ #-1 #4 substring$ % uses all four digits * ")" * 'label := }
이 변경은
natbib
이름 목록의 잘못된 구문 분석 을 방지하기 위해 필요 합니다.이름, 현재 날짜 및 변경 사항에 대한 간단한 설명이 포함 된 주석을 파일 상단에 추가합니다.
문서에서
\bibliographystyle{apalike-three}
대신 사용하십시오\bibliographystyle{apalike}
.
1 ~ 5 단계의 대안으로 다음 위치에서 패치 된 파일 버전을 얻을 수 있습니다. https://gist.github.com/moewew/e3d3ed6ebc93b5e05d6394813f5ad3e5
그때
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{apalike-three}
\begin{filecontents}{\jobname.bib}
@article{asdf3,
title = {asdf},
author = {One, One and Two, Two and Three, Three},
journal = {asdf},
volume = {1},
number = {1},
pages = {1--2},
year = {1234},
}
@article{asdf2,
title = {asdf},
author = {One, One and Two, Two},
journal = {asdf},
volume = {1},
number = {1},
pages = {1--2},
year = {1234},
}
@article{asdf1,
title = {asdf},
author = {One, One},
journal = {asdf},
volume = {1},
number = {1},
pages = {1--2},
year = {1234},
}
@article{asdf4,
title = {asdf},
author = {One, One and Two, Two and Three, Three and Four, Four},
journal = {asdf},
volume = {1},
number = {1},
pages = {1--2},
year = {1234},
}
\end{filecontents}
\begin{document}
\citet{asdf1}
\citet{asdf2}
\citet{asdf3}
\citet{asdf4}
\bibliography{\jobname}
\end{document}
준다
