Conflito de pacote entre chemmacros e russo

Conflito de pacote entre chemmacros e russo

Estou tentando configurar meu documento com chemmacrospacote 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 babelou chemmacrostudo funciona bem. Caso contrário, há um erro:

LaTeX3: Command '\ch' already defined!De arquivochemformula.sty

Para referência, eu uso XeTeXno 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 russiane chemformula. Uma solução já foi mostrada por Javier que você pode usar se não precisar do chdefinido por russian(um símbolo para a função cosseno se eu tivesse que adivinhar no manual e na definição).

Mas como chemmacrosnão precisa usar chemformulaexiste outra solução. Também pode ser usado mhchemem 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 chemformulao comando de, pois chemmacrossó 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 chemformulaentão estaria disponível como chem.

informação relacionada