
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, 1
en el texto, pero están vinculadas desde la sección de bibliografía como 1a
, 1b
etc.
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 \AtEveryCiteKey
para 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}
Usando BibTeX y hyperref
/backref
Aquí hay una manera de hacerlo, usando el hyperref
paquete con la backref
opció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 backref
paquete 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.