
Encontrei esta resposta para uma pergunta muito semelhante:BibTeX: Como reduzir longas listas de autores para “Firstauthor et al.”?
No entanto, a solução proposta não funcionou para mim. Tenho um estilo fornecido pela editora que, ao mesmo tempo, explica que os autores de referência devem ser truncados após o terceiro autor (seguido de et al)
no arquivo encontrei { namesleft #1 >
e alterei conforme as instruções da resposta, mas não funcionou. Pode me ajudar?
{ 'bibinfo :=
duplicate$ empty$ 'skip$ {
's :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{vv~}{ll}{ f{}}{ jj}"
format.name$
remove.dots
bibinfo bibinfo.check
't :=
nameptr #1 >
% {
% namesleft #1 >
nameptr #1 >
{
nameptr #3
#1 + =
numnames #5
> and
{ "others" 't :=
#1 'namesleft := }
'skip$
if$
namesleft #1 >
{ ", " * t * }
{
"," *
s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
t "others" =
{
" " * bbl.etal *
}
{ " " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
} if$
} ```
Responder1
O OP indicou em um comentário que usa o spbasic
estilo de bibliografia fornecido pela Springer.
Para obter a formatação desejada – para mostrar os nomes de todos os autores se uma entrada tiverno máximo 4autores, mas para mostrar os três primeiros autores seguidos apenas de "et al." se a entrada tivermais de 4autores - sugiro que você proceda da seguinte forma.
Faça uma cópia
spbasic.bst
e chame a cópia, digamos,spbasic85.bst
.Abra o arquivo
spbasic85.bst
em um editor de texto. O programa que você usa para editar arquivos tex funcionará bem.Localize a função
format.names
. (Na minha cópia do arquivo bst, a função começa na linha 455.)Nesta função, localize as 2 linhas a seguir:
nameptr #1 > {
Imediatamente após essas duas linhas e, portanto, antes da linha que diz
namesleft #1 >
, insira as seguintes 8 linhas de código:nameptr #3 #1 + = numnames #4 > and { "others" 't := #1 'namesleft := } 'skip$ if$
Salve o arquivo
spbasic85.bst
na pasta que contém o arquivo tex principal ou em uma pasta pesquisada pelo BibTeX. Se você selecionar a última opção, certifique-se de aplicar também uma atualização adequada ao banco de dados de nomes de arquivos da sua distribuição TeX. (Se você não tem certeza de que entendeu a frase anterior, sugiro fortemente que você selecione a opção 1...)Em seu arquivo tex principal, altere
\bibliographystyle{spbasic}
e\bibliographystyle{spbasic85}
execute um ciclo completo de recompilação - LaTeX, BibTeX e LaTeX mais duas vezes - para propagar todas as alterações.
Um MWE completo:
\documentclass{article}
\begin{filecontents}[overwrite]{mybib.bib}
@misc{abc,author="A and B and C",title="X",year=3000}
@misc{abcd,author="A and B and C and D",title="Y",year=3001}
@misc{abcde,author="A and B and C and D and E",title="Z",year=3002}
\end{filecontents}
\usepackage[authoryear]{natbib}
\bibliographystyle{spbasic85}
\begin{document}
\cite{abc}, \cite{abcd}, \cite{abcde}
\bibliography{mybib}
\end{document}