Estou tentando configurar meu documento com chemmacros
pacote e parece que há conflito combabel
Aqui está o MWE:
\documentclass[12pt, a4paper, final]{extarticle}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Times New Roman}
\newfontfamily\cyrillicfont{Times New Roman}
\usepackage[russian]{babel}
\usepackage{csquotes}
\usepackage{chemmacros}
\begin{document}
Just some text
\end{document}
Quando eu removo um babel
ou chemmacros
tudo funciona bem. Caso contrário, há um erro:
LaTeX3: Command '\ch' already defined!
De arquivochemformula.sty
Para referência, eu uso XeTeX
no MacOS.
Responder1
\ch
é definido por russian
. Apenas indefina:
\usepackage[russian]{babel}
\let\ch\undefined
\usepackage{csquotes}
\usepackage{chemmacros}
Responder2
Resumindo o MWE, torna-se
\documentclass{article}
\usepackage[russian]{babel}
\usepackage{chemformula}
\begin{document}
\end{document}
o que mostra que o conflito é entre russian
e chemformula
. Uma solução já foi mostrada por Javier que você pode usar se não precisar do ch
definido por russian
(um símbolo para a função cosseno se eu tivesse que adivinhar no manual e na definição).
Mas como chemmacros
não precisa usar chemformula
existe outra solução. Também pode ser usado mhchem
em suas fórmulas químicas. Então esta pode ser uma alternativa:
\documentclass{article}
\usepackage[russian]{babel}
\usepackage{chemmacros}
\usepackage[version=4]{mhchem}
\chemsetup{
formula = mhchem
}
\begin{document}
\end{document}
Uma terceira maneira seria renomear chemformula
o comando de, pois chemmacros
só usa o comando interno se disponível:
\documentclass{article}
\usepackage{chemformula}
\ExplSyntaxOn
\NewDocumentCommand \chem { O{}m }
{ \chemformula_ch:nn {#1} {#2} }
\cs_undefine:N \ch
\ExplSyntaxOff
\usepackage[russian]{babel}
\usepackage{chemmacros}
\begin{document}
\end{document}
O comando de química a partir de chemformula
então estaria disponível como chem
.