
Desejo dar menos peso às entradas @misc em minha bibliografia, movendo-as para o final, após publicações em conferências acadêmicas. Gosto da maneira como o abbrvnat apresenta os itens da bibliografia. Também estou usando o natbib para obter citações e compactação de números.
Por padrão, ele classifica as citações pelos nomes dos autores (o que é bom) e, quando nenhum nome do autor está disponível, parece estar usando outra coisa (título?) Como campo de classificação na bibliografia.
Qual a maneira mais fácil de enviar todas as referências @misc no final do documento, mantendo a ordem relativa?
Um documento de exemplo:
\documentclass[11pt]{article}
\usepackage[hyphens]{url}
\usepackage[numbers,sort&compress]{natbib}
\begin{document}
Articles: \cite{bogus, greenwade93}
Website: \cite{example}
\bibliographystyle{abbrvnat}
\bibliography{biblio}
\end{document}
\bibliographystyle{myabbrvnat}
\bibliography{biblio}
Exemplo de bibliografia:
@misc{example,
title = {{Example.org Home Page}},
howpublished = {\url{http://example.org/}},
note = {Accessed: June 2017.}
}
@article{bogus,
aurhor = {Bogus Redwade},
title = {A Bogus Article},
year = {1993},
}
@article{greenwade93,
author = {George D. Greenwade},
title = {The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})},
year = {1993},
journal = {TUGBoat},
volume = {14},
number = {3},
pages = {342--351}
}
Nesse exemplo, gostaria que o site fosse para o final da lista. Se houver vários sites, a ordem relativa deles deverá ser mantida.
Responder1
Dado que você deseja alterar o arquivo de bibliografia, você pode usar a \noopsort
solução alternativa bem conhecida (consultehttps://tex.stackexchange.com/search?q=noopsort) para classificar as entradas diversas após o resto. Como a classificação é realizada por autor, você também deve alterar o campo de título das entradas diversas para autor. Para esta solução você não precisa alterar o .bst
-file.
Exemplo:
@PREAMBLE{ {\providecommand{\noopsort}[1]{}} }
@misc{example,
author = {{\noopsort{zzz-example}}{Example.org Home Page}},
howpublished = {\url{http://example.org/}},
note = {Accessed: June 2017.}
}
Resultado:
Alternativamente, biblatex
seu uso pode ser feito sem alterar o arquivo bibliográfico, imprimindo seções de referência separadas com base no tipo. Adaptado dehttps://tex.stackexchange.com/a/6966:
\printbibliography[nottype=misc,title={References}]
\vspace{-6mm}
\printbibliography[heading=none,type=misc]
O pequeno problema aqui é que a segunda seção da bibliografia, mesmo sem título, ainda introduz algum espaço extra que precisa ser removido (por exemplo, com um negativo vspace
).
Responder2
Encontrei uma maneira, mas requer a edição do arquivo BST. O que parece um exagero. O arquivo bst parece ser responsável pela classificação.
Tentei primeiro mudar o que pensei ser a chave da entrada, por exemplo, mudar @misc{foo,...}
para, @misc{z-foo,...}
mas isso não teve nenhum efeito, então fui mais fundo.
Passo 1. Edite o arquivo bst
- copie abbrvnat.bst para o diretório do projeto (
$ cp /usr/share/texlive/texmf-dist/bibtex/bst/natbib/abbrvnat.bst ./myabbrtnat.bst
) No topo do arquivo, observe que diz: "Trabalhos com autores e anos idênticos são classificados por chave de citação, para preservar a sequência natural" Abbrvnat classifica primeiro por autores. O que provavelmente significa que classifica com a tupla:
(author(s), year, key)
.edite o arquivo copiado:
- Na
ENTRY
seção depois dekey
, adicione um novo campo chamadosortkey
em sua própria linha. - Existe uma função author.sort. Eu o modifiquei para lidar com o campo 'sortkey' para substituir o campo do autor:
- Na
(alguns tipos de citação não usam autor para classificação (por exemplo, classificação no editor), portanto, pode ser necessário replicar isso em outros lugares, dependendo da sua bibliografia)
FUNCTION {author.sort}
{ sortkey empty$
{ author empty$
{ key empty$
{ "to sort, need author or key in " cite$ * warning$
""
}
{ key sortify }
if$
}
{ author sort.format.names }
if$
}
{ sortkey sortify }
if$
}
Etapa 2. Use o BST modificado
No arquivo principal de látex: mude para
\bibliographystyle{myabbrvnat}
Para cada item bibliográfico cuja ordem necessita ser alterada, adicione um campo
sortkey
com o novo valor que deverá ser utilizado para determinar sua ordem.Eu acrescento "zz-" ao nome da entrada se quiser enviá-la por último.
No texto:
...
Website: F~\cite{example-f}, E~\cite{example-e}, A~\cite{example-a}
...
E bibliografia:
@misc{example-a,
sortkey = {axample}, % will go before others - starts with 'a'
title = {{Axample.org Home Page}},
howpublished = {\url{http://example.org/}},
}
@misc{example-e,
sortkey = {zzz-example}, % send to the back. prefix with 'zzz-'
title = {{Example.org Home Page}},
howpublished = {\url{http://example.org/}},
}
@misc{example-f,
sortkey = {zzz-fxample}, % send to the back. prefix with 'zzz-'
title = {{Fxample.org Home Page}},
howpublished = {\url{http://example.org/}},
}
Produz: