Citas numeradas *y* con letras en LaTeX

Citas numeradas *y* con letras en LaTeX

Desde hace un tiempo, Wikipedia tiene un sistema de citas realmente bueno, donde múltiples instancias en las que se usa la misma referencia se indican como, por ejemplo, 1en el texto, pero están vinculadas desde la sección de bibliografía como 1a, 1betc.

Me pregunto si existe algún paquete que ofrezca esta misma funcionalidad en LaTeX. Solo pude encontrar biblatex y natbib, ninguno de los cuales tiene ese esquema de citas.

Bosquejo:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore[1] et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor[2] in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur[1]. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum[1].

[1 a,b,c] Lorem ipsum dolor sit amet

[2] Consectetur adipiscing elit, sed do eiusmod tempo

por lo que todos los 1 se vinculan a la misma línea, pero a partir de esa línea, cada uno de ellos está vinculado por una letra. Alternativamente, puede consultar la bibliografía y el estilo de cita deEste artículo.

Ayúdenme a obtener un MWE de esta funcionalidad basada en esta red troncal:

\documentclass{article}
\usepackage{filecontents}

\begin{filecontents}{jobname.bib}
@book{ref1,
title = {Book's title},
author = {Author, Some},
location = {The City},
publisher = {Publisher},
date = {2005},
}
@book{ref2,
title = {Book's title},
author = {A. U. Thor},
location = {The City},
publisher = {Publisher},
date = {2005},
}
\end{filecontents}

\usepackage[style=ieee,backend=bibtex]{biblatex}
\bibliography{jobname}

\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit\cite{ref1}, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat\cite{ref2}. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui\cite{ref1} officia deserunt mollit anim id est laborum.
\printbibliography
\end{document}

Respuesta1

Usando BibLateX

Es posible utilizarlo \AtEveryCiteKeypara insertar un ancla y guardar la referencia posterior en cada comando de cita. Luego puede utilizar las capacidades de formato de BibLateX para agregar una lista de referencias en algún lugar de las entradas de la bibliografía.

\documentclass{article}
\usepackage{filecontents}

\begin{filecontents}{jobname.bib}
@book{ref1,
title = {Book's title},
author = {Author, Some},
location = {The City},
publisher = {Publisher},
date = {2005},
}
@book{ref2,
title = {Book's title},
author = {A. U. Thor},
location = {The City},
publisher = {Publisher},
date = {2005},
}
\end{filecontents}

\usepackage[style=ieee,backend=bibtex]{biblatex}
\bibliography{jobname}

\usepackage[colorlinks]{hyperref} % If needed

\makeatletter
\newcounter{backref@bref}
\AtEveryCitekey{% Appends a target for hyperlink, and setups backref
    \stepcounter{backref@bref}%
        \ifhyperref{%
            \Hy@raisedlink{\hypertarget{bref.\thebackref@bref}{}}%
        }{}%
        \listcsxadd{bref@\abx@field@entrykey}{bref.\thebackref@bref}%
}
\AfterEndPreamble{% Needs to wait until hyperref is loaded
\DeclareFieldFormat{labelnumberwidth}{%
    \printtext[brackets]{#1% Label number
    \setcounter{backref@bref}{0}%
    \renewcommand*{\do}[1]{
        \stepcounter{backref@bref}%
        \ifhyperref{\hyperlink{##1}{\alph{backref@bref}}}%
        {\alph{backref@bref}}%
    }%
    \dolistcsloop{bref@\abx@field@entrykey}% List of back refs
    }%
}}
\makeatother

\begin{document}
Lorem ipsum sit amet, consectetur adipiscing elit\cite{ref1}, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat\cite{ref2}. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui\cite{ref1} officia deserunt mollit anim id est laborum.
\printbibliography
\end{document}

representación

Usando BibTeX y hyperref/backref

Aquí hay una manera de hacerlo, usando el hyperrefpaquete con la backrefopción. Simplemente imprime las referencias anteriores a,b,...incrementando un contador.

\makeatletter
\newcounter{backref@bref} %Define new counter
\long\def\hyper@letters@backref#1#2#3{ %Defines new backref printer
    \stepcounter{backref@bref}%
    \hyperlink{#3}{\alph{backref@bref}}% Shows backref@bref as a letter
}
\let\backrefxxx\hyper@letters@backref %Selects printer
\renewcommand{\backref}[1]{%
    \setcounter{backref@bref}{0} %Reset the counter at each ref
    [#1\ ]%
}
\makeatother

Para colocar la referencia posterior dentro de la etiqueta de referencia, como en Wikipedia, supongo que tendrías que conectarte a \bibitem.

Además, tenga en cuenta que este backrefpaquete está diseñado para imprimir los números de sección o página de las referencias anteriores, lo cual es mejor que ela,b.. numeración.especialmente si planea imprimir el documento.

información relacionada