パッケージを使用してドキュメントを設定しようとしています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
れた を必要としない場合に使用できる 1 つの解決策が Javier によって既に示されています(マニュアルと定義から推測すると、 はコサイン関数のシンボルです)。ch
russian
しかし、chemmacros
使用する必要がないので、別の解決策があります。化学式をchemformula
使用することもできます。したがって、これは代替案になる可能性があります。mhchem
\documentclass{article}
\usepackage[russian]{babel}
\usepackage{chemmacros}
\usepackage[version=4]{mhchem}
\chemsetup{
formula = mhchem
}
\begin{document}
\end{document}
3 番目の方法は、内部コマンドが使用可能な場合にのみ使用される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
。