Mi estilo de cita preferido biblatex
es el numeric-comp
estilo con la autocite=superscript
opción. Sin embargo, ocasionalmente necesito hacer referencia a una referencia específica en el texto y, por lo tanto, me gustaría cambiar a algo como authoryear
en este caso.
Usar \textcite
simplemente niega la opción de superíndice. ¿Es posible escribir una nueva función que me permita mezclar los dos estilos de cita?
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}
Esto produce:
Normalmente cito así 1, lo cual es genial, pero a veces quiero hacer este Autor [1] pero no parece funcionar.
cuando lo que me gustaría es:
Normalmente cito así 1, lo cual es genial, pero a veces quiero hacer este Autor (2018) pero no parece funcionar.
preferiblemente solo un autor et al. (año) aparece cuando hay varios autores.
Respuesta1
En general, es una mejor idea definir un nuevo comando en \DeclareCiteCommand
lugar de agrupar varios \cite...
comandos en un archivo \newcommand
. Si bien es posible que no vea los beneficios para su caso de uso particular, es una buena idea evitar los malos hábitos. El \newcommand
enfoque puede salir mal, especialmente en casos con notas previas y posteriores o si desea citar varias fuentes a la vez.
\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}
Respuesta2
He llegado a una respuesta que creo que es satisfactoria. En el proceso estas dos preguntas fueron útiles:Pregunta 1yPregunta 2
También debo decir que estoy de acuerdo con los comentarios de @cfr sobre las etiquetas de referencia, pero esto no estaba en mi mente ya que normalmente uso el hyperref
paquete para que las citas y las referencias estén vinculadas. Por lo general, simplemente hago clic en las citas en lugar de usarlas como claves en una tabla de referencia. Por tanto, he incorporado las etiquetas a mi solución.
Esto es lo que tengo:
\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 produce:
¿Qué tal esto donde el Autor (2018; ref. 1) analiza un tema?
que enlaza con la referencia bibliográfica adecuada.