¿Cómo personalizar la numeración bibtex en un documento?

¿Cómo personalizar la numeración bibtex en un documento?

Tengo un documento LaTeX simple que tiene algunas referencias BibTeX:

\documentclass[12pt]{article}
\begin{document}
 
\section{First section}
 
This document is an example of \texttt{thebibliography} environment using 
in bibliography management. Three items are cited: \textit{The \LaTeX\ Companion} 
book \cite{latexcompanion}, the Einstein journal paper \cite{einstein}, and the 
Donald Knuth's website \cite{knuthwebsite}. The \LaTeX\ related items are
\cite{latexcompanion,knuthwebsite}. 
 
\medskip
\bibliographystyle{unsrt}
\bibliography{sample}
 
\end{document}

El resultado de esto es el siguiente.

ingrese la descripción de la imagen aquí

Me gustaría cambiar la numeración de la referencia en el texto y en la sección de Referencias con algún conjunto de números específicos de mi elección. ¿Cómo puedo hacer esto?

Digamos que me gustaría tener algo como esto:

1 Primera sección

Este documento es un ejemplo del entorno bibliográfico utilizado en la gestión de bibliografía. Se citan tres artículos: el libro LATEX Companion [11], el artículo de la revista Einstein [22] y el sitio web de Donald Knuth [33]. Los elementos relacionados con LATEX son [11, 33].

Referencias

[11] Michel Goossens, Frank Mittelbach y Alexander Samarin. El compañero de LATEX. Addison-Wesley, Reading, Massachusetts, 1993.

[22] Albert Einstein. Zur Elektrodynamik bewegter Korper. (Alemán) [Sobre la electrodinámica de los cuerpos en movimiento]. Annalen der Physik, 322(10):891{921, 1905.

[33] Donald Knuth. Knuth: Computadoras y tipografía.

¿Puedo hacer esto con LaTeX y BibTeX?

Respuesta1

Primero puedes preparar tu bibliografía de la forma habitual. Luego puede configurar los números que prefiera de la forma que se muestra a continuación, agregando el código entre %%STARTy %%END.

El filecontentsentorno se utiliza sólo para el ejemplo, utilice su propia base de datos.

\begin{filecontents}{\jobname.bib}
@book{Knuth1984texbook,
    Author = {Knuth, D.E.},
    Title = {The \TeX book, volume A of Computers and typesetting},
    Publisher = {Addison-Wesley},
    Year = {1984},
}
@book{Chomsky1957,
    Address = {The Hague},
    Author = {Noam Chomsky},
    Publisher = {Mouton},
    Title = {Syntactic Structures},
    Year = {1957},
}
@book{Chomsky1965,
    Address = {Cambridge Mass.},
    Author = {Noam Chomsky},
    Publisher = {MIT Press},
    Title = {Aspects of the Theory of Syntax},
    Year = {1965},
}
\end{filecontents}

\documentclass{article}
\usepackage{xpatch} % also loads expl3

%%START
\makeatletter
\xpatchcmd{\@bibitem}
  {\item}
  {\item[\@biblabel{\changekey{#1}}]}
  {}{}
\xpatchcmd{\@bibitem}
  {\the\value{\@listctr}}
  {\changekey{#1}}
  {}{}
\makeatother

\ExplSyntaxOn
\cs_new:Npn \changekey #1
 {
  \str_case:nVF {#1} \g_changekey_list_tl { ?? }
 }
\cs_new_protected:Npn \setchangekey #1 #2
 {
  \tl_gput_right:Nn \g_changekey_list_tl { {#1}{#2} }
 }
\tl_new:N \g_changekey_list_tl
\cs_generate_variant:Nn \str_case:nnF { nV }
\ExplSyntaxOff

\setchangekey{Knuth1984texbook}{9}
\setchangekey{Chomsky1957}{3}
\setchangekey{Chomsky1965}{7}
%%END

\begin{document}
\section{First section}

This document is an example of \texttt{thebibliography} environment using 
 bibliography management. Three items are cited: \emph{Syntactic Structures} 
book \cite{Chomsky1957}, \emph{Aspects} \cite{Chomsky1965}, and  
Donald Knuth's \TeX book \cite{Knuth1984texbook}.

\bibliographystyle{plain}
\bibliography{\jobname}

\end{document}

ingrese la descripción de la imagen aquí

Usé los mismos datos que Alan Munn solo por pereza.

Respuesta2

Aquí hay una versión de la solución que sugerí para comenzar. Dado el uso limitado de esto, probablemente no valga la pena hacer que la solución sea más sofisticada. La sintaxis básica de una referencia es:

\mycite{<number>}{<bib-key>}

Si desea hacer referencia a una cita ya utilizada (introducida con \mycite), simplemente puede utilizar \ref{<bib=key}.

Luego introduce los elementos de la bibliografía real utilizando \mybibpara cada elemento. Estos aparecerán con el número que usaste en el \mycitecomando y aparecerán en el orden en que los ingresaste en el itemizeentorno.

\begin{filecontents}{\jobname.bib}

@book{Knuth1984texbook,
    Author = {Knuth, D.E.},
    Title = {The TEXbook, volume A of Computers and typesetting},
    Year = {1984}}

@book{Chomsky1957,
    Address = {The Hague},
    Author = {Noam Chomsky},
    Publisher = {Mouton},
    Title = {Syntactic Structures},
    Year = {1957}}

@book{Chomsky1965,
    Address = {Cambridge Mass.},
    Author = {Noam Chomsky},
    Publisher = {{MIT} Press},
    Title = {Aspects of the Theory of Syntax},
    Year = {1965}}
\end{filecontents}
\documentclass[12pt]{article}
\usepackage{natbib}
\usepackage{calc}
\usepackage{etoolbox}
\usepackage{bibentry}
\usepackage{enumitem}
\SetLabelAlign{bibright}{\hss\llap{[#1]}}
\newcounter{mynum}
\newcommand\mycite[2]{[#1]\setcounter{mynum}{0}\addtocounter{mynum}{#1-1}\refstepcounter{mynum}\label{#2}}
\newcommand\mybib[1]{\item[\ref{#1}]\bibentry{#1}}

\begin{document}
\section{First section}

This document is an example of \texttt{thebibliography} environment using 
 bibliography management. Three items are cited: \emph{Syntactic Structures} 
book \mycite{6}{Chomsky1957}, \emph{Aspects} \mycite{4}{Chomsky1965}, and  
Donald Knuth's TeXBook \mycite{10}{Knuth1984texbook}. The Linguistics related items are
[\ref{Chomsky1965},\ref{Chomsky1957}].
\medskip
\bibliographystyle{unsrtnat}
\nobibliography{\jobname}
\begin{itemize}[labelwidth=!,labelsep=1em,align=bibright]
\mybib{Chomsky1957}
\mybib{Chomsky1965}
\mybib{Knuth1984texbook}
\end{itemize}
\end{document}

salida de código

Respuesta3

Después de leer sus comentarios, creo que hay una manera mucho más fácil: existe el paquete nice xcite, que le permitirá importar citas de su otro documento y no necesita preocuparse por los números (el siguiente ejemplo supone que el otro documento es llamado document.tex):

\documentclass{article}

\usepackage{xcite}
\externalcitedocument{document}

\begin{document}

\cite{knuth}


\end{document}

Respuesta4

Dado que la pregunta es realmente sobre el uso de etiquetas personalizadas para las entradas de la base de datos bib, me gustaría agregar que existe una forma estándar de hacerlo con Biblatex. Simplemente use el campo de datostaquigrafía, que anulará la taquigrafía estándar solo para esa entrada en la base de datos. Puse algunas letras en el siguiente ejemplo de trabajo mínimo, pero por supuesto puedes poner números o lo que quieras.

\begin{filecontents}{thebib.bib}
@article{Boll,
author = {Boll, Grodan},
title = {Frogs now and then},
year = 1995,
journal = {Allers},
volume = 3,
shorthand = {FN\&T}
}
\end{filecontents}
\documentclass{article}
\usepackage{biblatex}
\addbibresource{thebib.bib}
\begin{document}
Frogs are common, see also \cite{Boll}.
\printbibliography
\end{document}

Esto da la salida Captura de pantalla del archivo PDF

información relacionada