Paketkonflikt zwischen Chemmacros und Russisch

Paketkonflikt zwischen Chemmacros und Russisch

Ich versuche, mein Dokument mit Paket einzurichten chemmacros, und es scheint, als ob es einen Konflikt gibt mitbabel

Hier ist 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}

Wenn ich entweder babeloder entferne chemmacros, funktioniert alles einwandfrei. Andernfalls tritt ein Fehler auf:

LaTeX3: Command '\ch' already defined!aus Dateichemformula.sty

Als Referenz: Ich verwende es XeTeXunter MacOS.

Antwort1

\chwird definiert durch russian. Heben Sie einfach die Definition auf:

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

Antwort2

Wenn man das MWE reduziert, erhält man

\documentclass{article}

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

\begin{document}
\end{document}

was zeigt, dass der Konflikt zwischen russianund besteht. Javier hat bereits eine Lösung gezeigt, die Sie verwenden können, wenn Sie das durch definierte chemformulanicht benötigen (ein Symbol für die Kosinusfunktion, wenn ich anhand des Handbuchs und der Definition raten müsste).chrussian

Aber da chemmacroses nicht notwendig ist, chemformulagibt es eine andere Lösung. Man kann genauso gut mhchemseine chemischen Formeln verwenden. Das hier könnte also eine Alternative sein:

\documentclass{article}

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

\begin{document}

\end{document}

Eine dritte Möglichkeit wäre, chemformuladen Befehl umzubenennen, da chemmacrosder interne Befehl nur verwendet wird, wenn er verfügbar ist:

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

Der Chemiebefehl chemformulawäre ab dann als verfügbar chem.

verwandte Informationen