chemmacros와 러시아어 사이의 패키지 충돌

chemmacros와 러시아어 사이의 패키지 충돌

내 문서를 패키지로 설정하려고 하는데 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

참고로 저는 XeTeXMacOS에서 사용하고 있습니다.

답변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.

관련 정보