Meu estilo de citação preferido biblatex
é o numeric-comp
estilo com a autocite=superscript
opção. No entanto, ocasionalmente preciso me referir a uma referência específica no texto e, portanto, gostaria de mudar para algo como authoryear
neste caso.
Usar \textcite
apenas nega a opção sobrescrito. É possível escrever uma nova função que me permita misturar os dois estilos de citação?
MWE:
\documentclass{report}
\begin{filecontents}{example.bib}
@article {Example_article,
AUTHOR = {Author, A. B.},
TITLE = {A example paper},
JOURNAL = {Example journal},
VOLUME = {1},
YEAR = {2018},
NUMBER = {1},
PAGES = {1-100}}
\end{filecontents}
\usepackage[style=numeric-comp,
autocite=superscript,
backend=biber
]{biblatex}
\addbibresource{example.bib}
\begin{document}
I normally cite like this \autocite{Example_article} which is great but sometimes I want to do this \textcite{Example_article} but it doesn't seem to to work.
\end{document}
Isso produz:
Normalmente cito assim 1, o que é ótimo, mas às vezes quero fazer este Autor [1], mas parece que não funciona.
quando o que eu gostaria é:
Normalmente cito assim 1, o que é ótimo, mas às vezes quero fazer isso Autor (2018) mas parece que não funciona.
preferencialmente apenas um autor et al. (ano) é listado quando há vários autores.
Responder1
Em geral, é melhor definir um novo comando via \DeclareCiteCommand
em vez de agrupar vários \cite...
comandos em um arquivo \newcommand
. Embora você possa não ver os benefícios para seu caso de uso específico, é uma boa ideia evitar maus hábitos. A \newcommand
abordagem pode dar errado, especialmente em casos com notas anteriores e posteriores ou se você quiser citar várias fontes ao mesmo tempo.
\documentclass{report}
\usepackage[style=numeric-comp,
minbibnames=3,
maxbibnames=5,
maxcitenames=2,
mincitenames=1,
autocite=superscript,
backend=biber,
labeldateparts,
]{biblatex}
\usepackage{hyperref}
\newbibmacro{aycite}{%
\printtext[bibhyperref]{%
\printnames{labelname}%
\setunit{\addspace}%
\printtext[parens]{%
\ifnumequal{\value{citecount}}{1}
{\usebibmacro{prenote}}
{}%
\printlabeldate
\setunit{\addsemicolon\space}%
\printtext{ref\adddot}%
\setunit{\addspace}%
\printfield{labelprefix}%
\printfield{labelnumber}%
\ifnumequal{\value{citecount}}{\value{citetotal}}
{\usebibmacro{postnote}}
{}}}}
\DeclareCiteCommand{\aycite}
{}
{\usebibmacro{citeindex}%
\usebibmacro{aycite}}
{\multicitedelim}
{}
\addbibresource{biblatex-examples.bib}
\begin{document}
How about this where \aycite{sigfridsson} discus a topic.
How about this where \aycite[cf.][1]{sigfridsson} discuss a topic.
How about this where \aycite{sigfridsson,worman} discuss a topic.
\printbibliography
\end{document}
Responder2
Encontrei uma resposta que considero satisfatória. No processo, essas duas perguntas foram úteis:Questão 1eQuestão 2
Devo também dizer que concordo com os comentários de @cfr sobre rótulos de referência, mas isso não estava em minha mente, já que costumo usar o hyperref
pacote para que citações e referências sejam vinculadas. Normalmente, apenas clico nas citações em vez de usá-las como chaves em uma tabela de referência. Assim, incorporei os rótulos em minha solução.
Isto é o que eu tenho:
\documentclass{report}
\begin{filecontents}{example.bib}
@article {Example_article,
AUTHOR = {Author, A. B.},
TITLE = {A example paper},
JOURNAL = {Example journal},
VOLUME = {1},
YEAR = {2018},
NUMBER = {1},
PAGES = {1-100}}
\end{filecontents}
\usepackage[style=numeric-comp,
minbibnames=3,
maxbibnames=5,
maxcitenames=2,
mincitenames=1,
autocite=superscript,
backend=biber
]{biblatex}
\usepackage{hyperref}
\DeclareCiteCommand{\tabcite}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}%
\usebibmacro{postnote}}
\addbibresource{example.bib}
\newcommand{\citelink}[2]{\hyperlink{cite.\therefsection @#1}{\citeauthor{#1} (\citeyear{#1}; ref. \tabcite{#1})}}
\begin{document}
How about this where \citelink{Example_article}{} discusses a topic.
\printbibliography
\end{document}
que produz:
Que tal isto onde o Autor (2018; ref. 1) discute um tópico.
que leva à referência bibliográfica apropriada.