abntex / biblatex-abnt

:books: Estilo para BibLaTeX compatível com as normas da ABNT
126 stars 27 forks source link

Problema com (sugestão para) o \textcite* #46

Open paulequilibrio opened 5 years ago

paulequilibrio commented 5 years ago

Olá, primeiramente muito obrigado pelo excelente trabalho!

Estou migrando do bibtex (usando o pacote abntex2cite) para o biblatex (usando o estilo abnt) e, infelizmente, não consegui encontrar um equivalente ao comando \citeauthoronline.

O mais próximo que consegui encontrar foi o comando \textcite*, entretanto ele também imprime o ano.

Minha dúvida (sugestão) é se seria possível alterar o comando \textcite* para imprimir apenas o nome do autor no mesmo formato em que está atualmente, apenas sem o ano, pois ao que me parece não existe nenhum comando que ofereça essa possibilidade.

Assim, ainda seria possível obter o formato atual do \textcite* usando (caso a sugestão seja aceita): \textcite*{chave}, \citeyear*{chave}.

Uma outra vantagem, ao meu ver, além de dar mais flexibilidade, é ficar consistente com o comportamento do \citetitle* que imprime o título sem o ano, pois o \citetitle inclui o ano, assim como o \textcite.

Espero ter sido claro. Novamente, muito obrigado pelo excelente trabalho!

dbmrq commented 5 years ago

Uhm… experimente o \citeauthor*. Só não sei se ele imprime o nome em maiúsculas… nesse caso, você pode tentar redefini-lo assim:

\DeclareCiteCommand*{\citeauthor}%
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}%
  {\ifciteindex%
     {\indexnames{labelname}}%
     {}%
   \printtext[bibhyperref]{\printnames[textlabelname]{labelname}}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}%

Não testei, mas acho que deve funcionar. Caso contrário, envie um exemplo mínimo e reabra a issue que eu dou uma olhada. E se der certo você pode abrir uma PR se quiser; acho que é uma mudança que faz sentido.

Edit: Se der certo e você quiser fazer uma PR, a mudança é nessa linha aqui: https://github.com/abntex/biblatex-abnt/blob/320b2c9c14226b3e3ce34f683652328ec4137e77/latex/cbx/abnt.cbx#L741

Eu só acrescentei o formato [textlabelname], que é o do \textcite, pra formatar o nome nesse caso.

paulequilibrio commented 5 years ago

Olá @dbmrq !

Muito obrigado por sua resposta mas, infelizmente, sua sugestão não funcionou. O resultado foi o mesmo: o nome do autor em maiúsculas.

Aqui vai um exemplo não tão mínimo:

\documentclass{report}
\usepackage[style=abnt,ittitles]{biblatex}
\usepackage{geometry}
\usepackage{booktabs}
\usepackage{bbding}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
  @book{TELFORD1990,
    author    = {William Murray Telford and Lloyd Philip Geldart and Robert Edward Sheriff},
    title     = {Applied geophysics},
    edition   = {2},
    address   = {Cambridge},
    publisher = {Cambridge University Press},
    year      = {1990}
  }
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
  \begin{table}[ht]
    \caption{Estilo \texttt{abnt}}
    \vspace{1em}
    \begin{tabular}{lll}
      \toprule
      COMANDO & SAÍDA ATUAL & SUGERIDA \\ \midrule
      \verb+\cite{TELFORD1990}+       & \cite{TELFORD1990}        & \CheckmarkBold    \\ \midrule
      \verb+\cite*{TELFORD1990}+      & \cite*{TELFORD1990}       & ---               \\ \midrule
      \verb+\citetitle{TELFORD1990}+  & \citetitle{TELFORD1990}   & \CheckmarkBold    \\ \midrule
      \verb+\citetitle*{TELFORD1990}+ & \citetitle*{TELFORD1990}  & Applied geophysics\\ \midrule
      \verb+\citeyear{TELFORD1990}+   & \citeyear{TELFORD1990}    & \CheckmarkBold    \\ \midrule
      \verb+\citeyear*{TELFORD1990}+  & \citeyear*{TELFORD1990}   & \CheckmarkBold    \\ \midrule
      \verb+\citeauthor{TELFORD1990}+ & \citeauthor{TELFORD1990}  & \CheckmarkBold    \\ \midrule
      \verb+\citeauthor*{TELFORD1990}+& \citeauthor*{TELFORD1990} & \CheckmarkBold    \\ \midrule
      \verb+\textcite{TELFORD1990}+   & \textcite{TELFORD1990}    & \CheckmarkBold    \\ \midrule
      \verb+\textcite*{TELFORD1990}+  & \textcite*{TELFORD1990}   & Telford, Geldart e Sheriff \\
      \bottomrule
    \end{tabular}
  \end{table}
\end{document}

Se me indicar o caminho onde fazer essa(s) alteração(ões) posso fazer um PR, sim.

Muito obrigado pelo excelente trabalho e pela resposta rápida! Ah, como foi você que fechou a issue, eu não consigo reabri-la. Só os colaboradores do repositório podem.

dbmrq commented 5 years ago

Ah, sinto muito. Obrigado pelo exemplo, vou dar uma olhada assim que possível!

douglasrizzo commented 3 years ago

Olá. Eu abri um issue há um tempo atrás com o mesmo pedido https://github.com/abntex/biblatex-abnt/issues/38. Eu precisava de um comando que expunha os nomes dos autores em "caixa normal" (sem estarem em maiúsculas). No meu problema específico, eu queria isso para compôr um comando de citação mais complexo e o @dbmrq criou este comando mais complexo para mim, que é o \textcite*.

Talvez, possamos ver o que o \textcite* faz e criar um outro comando, equivalente ao \citeauthoronline* do bibtex.