Como alterar a ordem de classificação para colocar referências de URL on-line no final da bibliografia?

Como alterar a ordem de classificação para colocar referências de URL on-line no final da bibliografia?

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.

captura de tela

Responder1

Dado que você deseja alterar o arquivo de bibliografia, você pode usar a \noopsortsoluçã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:

insira a descrição da imagem aqui

Alternativamente, biblatexseu 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

  1. copie abbrvnat.bst para o diretório do projeto ( $ cp /usr/share/texlive/texmf-dist/bibtex/bst/natbib/abbrvnat.bst ./myabbrtnat.bst)
  2. 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).

  3. edite o arquivo copiado:

    1. Na ENTRYseção depois de key, adicione um novo campo chamado sortkeyem sua própria linha.
    2. Existe uma função author.sort. Eu o modifiquei para lidar com o campo 'sortkey' para substituir o campo do autor:

(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

  1. No arquivo principal de látex: mude para\bibliographystyle{myabbrvnat}

  2. Para cada item bibliográfico cuja ordem necessita ser alterada, adicione um campo sortkeycom 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:

resultado

informação relacionada