我正在嘗試使用包設置我的文檔chemmacros
,但它似乎與babel
這是 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}
當我刪除其中一個babel
或chemmacros
一切都工作正常。否則會出現錯誤:
LaTeX3: Command '\ch' already defined!
從文件chemformula.sty
作為參考,我XeTeX
在 MacOS 上使用。
答案1
\ch
定義為russian
.只需取消定義即可:
\usepackage[russian]{babel}
\let\ch\undefined
\usepackage{csquotes}
\usepackage{chemmacros}
答案2
將 MWE 煮沸後變成
\documentclass{article}
\usepackage[russian]{babel}
\usepackage{chemformula}
\begin{document}
\end{document}
這表示衝突發生在russian
和之間chemformula
。 Javier 已經展示了一種解決方案,如果您不需要定義ch
(russian
如果我必須從手冊和定義中猜測,則為餘弦函數的符號),您可以使用該解決方案。
但既然chemmacros
不必使用chemformula
還有另一種解決方案。它也可以使用mhchem
其化學式。所以這可能是個替代方案:
\documentclass{article}
\usepackage[russian]{babel}
\usepackage{chemmacros}
\usepackage[version=4]{mhchem}
\chemsetup{
formula = mhchem
}
\begin{document}
\end{document}
第三種方法是重新命名chemformula
的命令,因為chemmacros
僅使用內部命令(如果可用):
\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}
從那時起,化學命令chemformula
將作為 提供chem
。