Por que diferenciar entre \cite e \cites?

Por que diferenciar entre \cite e \cites?

Existe alguma razão específica pela qual é necessário usar \citesfor more than one bibtex-keyem vez de \cite?

Considerando o seguinte MWE:

\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\let\cite\cites
\begin{document}
\cite[12]{westfahl:space}[e.g.][23]{angenendt}

\cites[12]{westfahl:space}[e.g.][23]{angenendt}
\printbibliography
\end{document}

Com \let\cite\citesnão tenho problemas em adicionar outro bibtex-keyao \cite-command, então não importa se eu esquecer o sin \citesfor multiple bibtex-keys.

Se salvar para fazer isso, não poderia ser um comportamento padrão de biblatex?

Responder1

É claro que esta é uma decisão de design e não podemos perguntar ao mantenedor original do pacote, já que ele não está mais ativo. Até onde eu sei, a separação entre o comando cite normal e o comando multicite (coms) está lá desde o início.

O comportamento do \citecomando biblatexcoincide em grande parte com o comportamento desse comando com outros pacotes. As versões multicite, entretanto, oferecem recursos adicionais que poucos (algum?) outros pacotes oferecem.

A sintaxe dos comandos multicite é totalmente compatível com a sintaxe dos comandos cite padrão. Portanto, \let\cite\citesnão apresentará mais problemas do que você teria se usasse \citesexclusivamente e nunca se permitisse usar \cite. (Lembre-se de \lettodos os comandos para suas contrapartes multicitadas, você não quer inconsistências.)

Eu desaconselho fortemente que o multicite seja a norma. O comportamento dos comandos cite e multicite no biblatex é tão conhecido e estabelecido que não deve ser alterado. Finalmente, os comandos multicite são muito mais sofisticados e complicados devido à sua estrutura de argumentos que é melhor usá-los apenas quando necessário e não como padrão.

A configuração necessária para o comando multi cite é obviamente um pouco mais complexa do que os comandos padrão. É por isso que definimos os comandos padrão primeiro e depois os comandos multicite no topo com

\DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim}

Presumo que uma das razões pelas quais a separação foi mantida é permitir definir primeiro um comando cite simples e depois finalizá-lo com uma estrutura multicite complicada. Isso permite uma abordagem em camadas.

A razão mais convincente para manter a separação entre os dois, entretanto, é que o comando multicite é muito mais complexo e frágil. A natureza do comando multicite determina que ele não conheça previamente o número de argumentos. Portanto, terá que procurar com antecedência coisas que pareçam argumentos. Mesmo que isso seja bastante robusto, há situações em que é preferível um comando mais estável que conheça seu número de argumentos.

Por exemplo

\cite[pre][post]{key} ["this"]

funciona, porque \citejá leu todo o seu argumento e sabe que esse ["this"]não pode ser o seu argumento. Mas em

\cites[pre][post]{key} ["this"]

\citesnão sabe que esse ["this"]não é um dos seus argumentos. Você precisa inserir um \relaxou \solicitar que ele pare de digitalizar: \cites[pre][post]{key}\ ["this"].

informação relacionada