Conflicto de paquetes entre chemmacros y ruso

Conflicto de paquetes entre chemmacros y ruso

Estoy intentando configurar mi documento con chemmacrosel paquete y parece que tiene un conflicto conbabel

Aquí está 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}

Cuando elimino cualquiera babelde los dos, chemmacrostodo funciona bien. De lo contrario hay un error:

LaTeX3: Command '\ch' already defined!desde el archivochemformula.sty

Como referencia, lo uso XeTeXen MacOS.

Respuesta1

\ches definido por russian. Simplemente anulelo:

\usepackage[russian]{babel}
\let\ch\undefined
\usepackage{csquotes}
\usepackage{chemmacros}

Respuesta2

Al reducir el MWE se convierte en

\documentclass{article}

\usepackage[russian]{babel}
\usepackage{chemformula}

\begin{document}
\end{document}

lo que demuestra que el conflicto es entre russiany chemformula. Javier ya muestra una solución que puedes usar si no necesitas la chdefinida por russian(un símbolo para la función coseno si tuviera que adivinar del manual y la definición).

Pero como chemmacrosno hay que usarlo chemformulahay otra solución. También se puede utilizar mhchempor sus fórmulas químicas. Entonces esta podría ser una alternativa:

\documentclass{article}

\usepackage[russian]{babel}
\usepackage{chemmacros}
\usepackage[version=4]{mhchem}
\chemsetup{
  formula = mhchem
}

\begin{document}

\end{document}

Una tercera forma sería cambiar el nombre chemformuladel comando ya que chemmacrossolo usa el comando interno si está disponible:

\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}

El comando de química a partir de chemformulaentonces estaría disponible como chem.

información relacionada