Você carrega um par de pacotes, e o segundo relata que um dos comandos definidos já está presente. Por exemplo, tanto
txfonts quanto amsmath definem um comando \iint
(e \iiint e assim por diante); então,
...
\usepackage{txfonts}
\usepackage{amsmath}
produz uma cadeia de mensagens de erro da forma:
! LaTeX Error: Command \iint already defined.
Or name \end... illegal, see p.192 of the manual.
Como regra geral, coisas que o amsmath define são bem definidas; porém, existe um bom motivo para usar a versão txfonts
do \iint — as fontes tx associadas tem um símbolo de integral duplo que não precisa ser “simulado” da maneira como o amsmath faz. No caso de você estar carregando vários pacotes de símbolos, cada um dos quais definindo um mesmo símbolo, é provavel que você tenha esse problema de forma acentuada (\euro é uma vítima comum).
Há casos semelhantes onde um pacote redefine o comando de outro, mas nenhum erro ocorre porque o pacote que está redefinindo não usa o
\newcommand. Geralmente, nesse caso, você só nota a mudança porque você presume a definição dada pelo primeiro pacote. Os pacotes
amsmath–txfonts são esse par;
txfonts não provoca erros.
Você pode lidar com o problema salvando e restaurando o comando. Programadores de macro talvez façam isso por eles mesmos; para o resto de nós, existe o pacote savesym. A sequência
\usepackage{savesym}
\usepackage{amsmath}
\savesymbol{iint}
\usepackage{txfonts}
\restoresymbol{TXF}{iint}
resolve, restaurando a versão amsmath do comando e fazendo a versão txfonts do comando disponível como
\TXFiint.
Não há muita documentação sobre o savesym : os únicos comandos são \savesymbol e \restoresymbol, como dito acima.
This question on the Web: http://latex.net.br/faq/FAQ-alreadydef.html
Do you have any question? Ask on: latex.net.br - we love qood questions!