中文括号导致“chemmacros”工作不正常?

中文括号导致“chemmacros”工作不正常?

\ch命令在chemmacros封装后可以正常工作,但如果命令后面有中文括号,则\ch前面的符号会失真,在它们之间加一个空格可以解决,但是什么原因呢?

请用西拉特克斯引擎

\documentclass{article}
\usepackage{chemmacros,ctex}
\begin{document}
\ch{^{34}SO2}\par
\isotope*{34,S}\ch{O2}(Chinese bracket)\par
\isotope*{34,S}\ch{O2} (Chinese bracket)
\end{document}

在此处输入图片描述

答案1

我认为该\interchartoks功能进入场景并做了一些奇怪的事情。

似乎可以解决该问题的技巧如下。

\documentclass{article}
\usepackage{chemmacros,ctex}

\AtBeginDocument{%
  \NewCommandCopy\origch\ch
  \RenewDocumentCommand{\ch}{O{}m}{\origch[#1]{#2}\kern0pt\relax}%
}

\begin{document}

\origch{O2}(Chinese bracket)% bad

\ch{O2}(Chinese bracket)% OK

\end{document}

应该引起chemmacros和的维护者注意的事情ctex

在此处输入图片描述

相关内容