![modificar a renderização de \citet*](https://rvso.com/image/353029/modificar%20a%20renderiza%C3%A7%C3%A3o%20de%20%5Ccitet*.png)
Gostaria de alterar a renderização \citet*
usando um tamanho de fonte menor e uma determinada cor.
O MWE abaixo funciona para a versão sem estrela \citet
e produz
\documentclass{article}
\usepackage{filecontents}
\usepackage{natbib}
\usepackage{color}
\let\oldcitet=\citet
\renewcommand{\citet}[1]{{\footnotesize\textcolor[rgb]{.8, .1, .4}{\oldcitet{#1}}}}
\begin{filecontents}{refs.bib}
@book{ref,
title = {title},
author = {john and abi and fein},
location = {here},
publisher = {publisher},
year = {2017},
}
\end{filecontents}
\begin{document}
\citet{ref}
\citet*{ref}
\bibliography{refs.bib}
\bibliographystyle{plainnat}
\end{document}
A redefinição de \citet
quebra a de sua versão estrelada. Alguma sugestão sobre como consertar isto?
Responder1
Para acomodar a versão com estrela em sua configuração, você precisa condicionar o uso de *
algo como:
\let\oldcitet=\citet
\makeatletter
\renewcommand{\citet}{\@ifstar\newcitetstar\newcitet}
\newcommand{\newcitet}[1]{{\footnotesize\textcolor[rgb]{.8, .1, .4}{\oldcitet{#1}}}}
\newcommand{\newcitetstar}[1]{{\footnotesize\textcolor[rgb]{.8, .1, .4}{\oldcitet*{#1}}}}
\makeatother
Existem maneiras mais fáceis de negociar outras opções também, como argumentos opcionais (por exemplo). Para uma abordagem mais geral, eu considerariaxparse
.