Algumas vezes fui alertado contra o uso cleveref
porque ele faz alterações fundamentais em alguns dos comandos básicos do LaTeX, como \label
. Esta preocupação é justificada e quais são os problemas de carregá-la? Existem boas razõesnãopara usá-lo?
Responder1
Como funciona o smartef
Cleveref aumenta o \label
comando para gravar algumas informações adicionais no .aux
arquivo. Esta parte não é particularmente invasiva, pois mantém \label
intacta a implementação original e todas as funções padrão que dependem dela ainda funcionarão (por exemplo, o \ref
comando normal). O segundo comando aumentado é \refstepcounter
: novamente, a funcionalidade original está sendo preservada e isso não deve causar problemas.
Quase todos os pacotes de melhoria de funcionalidade redefinem os comandos padrão de alguma forma (por exemplo, modificando listas, seções, equações...). Todas as outras funcionalidades (ou seja, o \cref
comando) estão sendo tratadas em funções totalmente separadas.
Problemas potenciais
Quase todos os problemas vêm do uso do \refstepcounter
comando - ou melhor, da falta de seu uso. Todos os pacotes que o utilizam funcionarão com inteligência pronta para uso. Para quem não tem, existem duas opções:
- Cleveref tem suporte integrado para este pacote e tudo funcionará bem.
- Cleveref não tem suporte e seu uso
\cref{label}
produzirá uma saída incorreta (incorreto significa um rótulo ausente e um número potencialmente incorreto). Isso causará avisos, mas ainda será compilado. Agora você tem duas opções:- Use o
\ref
comando normal. Isso sempre funcionará. - Envie um e-mail para Toby Cubitt e peça para ele adicionar suporte para o pacote.
- Use o
Se você quiser ter uma ideia dos problemas que as pessoas enfrentam com a inteligência, basta navegarhttps://tex.stackexchange.com/questions/tagged/cleveref!
Os pacotes Cleveref e breqn não funcionam bem juntoseFazendo o refcheck funcionar com o smartefsão alguns problemas típicos que você pode encontrar.
Por último, a documentação do intelligentef tem uma seção sobre poor mans cleveref
- quando você precisa enviar seu código-fonte LaTeX para outra pessoa, e essa pessoa não tem o intelligentef instalado. Acho que isso pode ter sido um problema nos primeiros dias deste pacote, mas tem sido um pacote padrão para todas as principais distribuições tex há provavelmente 5 anos - então é improvável que isso seja um problema.
Por que você deve usar o smartef
Porque é inteligente e realmente simplifica suas referências cruzadas. Eu gostaria de indicar a vocêDiferença entre ref, variref e intelligentef. Decisão para uma tese,Pacotes de referência cruzada: quais usar, quais conflitos?eComo obter referências mais completas.