
Já há algum tempo, a Wikipédia tem um sistema de citações muito bom, onde múltiplas instâncias onde a mesma referência é usada são indicadas como, digamos, 1
no texto, mas são vinculadas a partir da seção bibliográfica como 1a
,,, 1b
etc.
Gostaria de saber se existe algum pacote que ofereça essa mesma funcionalidade no LaTeX. Só consegui encontrar o biblatex e o natbib, nenhum dos quais possui esse esquema de citação.
Brincar:
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 comodo 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
em que todos os 1 estão vinculados à mesma linha, mas a partir dessa linha, cada um deles está vinculado por uma letra. Alternativamente, você pode consultar a bibliografia e o estilo de citação deEste artigo.
Por favor, ajude-me a obter um MWE desta funcionalidade com base neste backbone:
\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}
Responder1
Usando BibLateX
É possível \AtEveryCiteKey
inserir uma âncora e salvar o backref a cada comando de citação. Então você pode usar os recursos de formatação do BibLateX para anexar uma lista de referências anteriores em algum lugar nas entradas da bibliografia.
\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 e hyperref
/backref
Aqui está uma maneira de fazer isso, usando o hyperref
pacote com a backref
opção. Ele simplesmente imprime os backrefs a,b,...
incrementando um 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 o backref dentro do rótulo de referência, como na Wikipedia, acho que você teria que se conectar ao arquivo \bibitem
.
Além disso, observe que este backref
pacote foi projetado para imprimir os números das seções ou páginas das referências anteriores, o que é melhor do que a a,b..
numeração,especialmente se você planeja imprimir o documento.