Como especificar a chave alfa da bibliografia sem modificar o arquivo .bst ou usar BibLaTeX

Como especificar a chave alfa da bibliografia sem modificar o arquivo .bst ou usar BibLaTeX

Como você diz ao LaTeX qual chave alfa deve fornecer uma entrada bibliográfica sem modificar o .bstarquivo?

Exemplo: quero uma entrada com

author = {no one 910 (StackOverflow User 118593)}

para aparecer como [StO17], em vez de [noSU17].


Arquivo tex de trabalho:

\documentclass{article}

\begin{document}
Hereby I cite \cite{myself}.

\bibliographystyle{alpha}
\bibliography{bibliography}
\end{document}

bibliografia.bib:

@misc{myself,
  author = {no one 910 (StackOverflow User 118593)},
  title = {{StackOverflow Answer}},
  howpublished = "https://stackoverflow.com",
  year = {2017}
}

Saída:

chave de babador feia

Responder1

Isso seria muito fácil com biblatex:

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{myself,
    shorthand = {StO17},
  author = {no one 910 (StackOverflow User 118593)},
  title = {{StackOverflow Answer}},
  howpublished = "https://stackoverflow.com",
  year = {2017}
}
\end{filecontents*}

\usepackage[style=alphabetic]{biblatex}
\addbibresource{\jobname.bib}

\begin{document}
Hereby I cite \cite{myself}.

\printbibliography
\end{document}

insira a descrição da imagem aqui

Responder2

Como ninguém quer fazer as coisas da maneira correta, aqui está um truque:

  1. Isto funciona apenas com Autores que não contenham uma palavra que comece com letra minúscula
  2. Anexe \Bibkeyhack StOao seu autor, sendo StO a chave.

Definição de comando:(Isso é tudo!)

\newcommand{\Bibkeyhack}[3]{}

Se você quiser chaves com comprimento diferente, substitua 3 pelo seu comprimento.
Para 1. existe uma solução alternativa:

\newcommand{\SmallHack}[1]{\lowercase{#1}}

Observe que ambos os comandos começam em letras maiúsculas, portanto a regra 1. não é violada.

Exemplo de trabalho:

author = {\SmallHack No \SmallHack One 910 (StackOverflow User 118593)\Bibkeyhack StO}

O que resultará em [StO17]: ninguém 910. Prova de imagem: hackear bibkey

Importante: Se você colocar um espaço entre )e \Bibkeyhack, o resultado ficará assim:

hack feio do bibkey


Arquivo tex completo:

\documentclass{article}

\newcommand{\SmallHack}[1]{\lowercase{#1}}
\newcommand{\Bibkeyhack}[3]{}
\begin{document}
Hereby I cite \cite{myself}.

\bibliographystyle{alpha}
\bibliography{bibliography}
\end{document}

bibliografia.bib:

@misc{myself,
  author = {\SmallHack No \SmallHack One 910 (StackOverflow User 118593)\Bibkeyhack StO},
  title = {{StackOverflow Answer}},
  howpublished = "https://stackoverflow.com",
  year = {2017}
}

Saída:

melhor chave de babador

informação relacionada