Cómo especificar la clave alfa de bibliografía sin modificar el archivo .bst o usar BibLaTeX

Cómo especificar la clave alfa de bibliografía sin modificar el archivo .bst o usar BibLaTeX

¿Cómo le dices a LaTeX qué tecla alfa debe dar una entrada de bibliografía sin modificar el .bstarchivo?

Ejemplo: quiero una entrada con

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

aparezca como [StO17], en lugar de [noSU17].


Archivo tex de trabajo:

\documentclass{article}

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

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

bibliografía.bib:

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

Producción:

fea llave del babero

Respuesta1

Esto sería muy fácil con 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}

ingrese la descripción de la imagen aquí

Respuesta2

Como nadie quiere hacer las cosas de la manera correcta, aquí tienes un truco:

  1. Esto funciona sólo con autores que no contienen una palabra que comience con una letra minúscula.
  2. Adjunte \Bibkeyhack StOa su autor, siendo StO la clave.

Definición del comando:(¡Eso es todo!)

\newcommand{\Bibkeyhack}[3]{}

Si desea llaves con una longitud diferente, reemplace 3 con su longitud.
Para 1. hay una solución alternativa:

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

Observe que ambos comandos comienzan en mayúsculas, por lo que no se viola la regla 1.

Ejemplo de trabajo:

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

Lo que resultará en [StO17]: nadie 910. Prueba de imagen: truco de bibkey

Importante: Si pones un espacio entre )y \Bibkeyhack, el resultado se verá así:

truco feo de bibkey


Archivo 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}

bibliografía.bib:

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

Producción:

mejor llave de babero

información relacionada