achemso + chemmacros 不兼容

achemso + chemmacros 不兼容

achemso和包的组合chemmacros曾经可以工作,但现在我已经升级到 Ubuntu 14.04(我相信是 TeXLive 2013),并且得到了以下结果:

\documentclass{achemso}
\usepackage{chemmacros}
\title{Title}
\begin{document}
\end{document}

这因错误而停止:

ABD: EveryShipout initializing macros

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! LaTeX error: "kernel/command-already-defined"
! 
! Control sequence \latin already defined.
! 
! See the LaTeX3 documentation for further information.
! 
! For immediate help type H <return>.
!...............................................  

l.5 \begin{document}

使用article或不加载都可以解决这个问题。我下载了和chemmacros的最新版本,但问题仍然一样。我还需要做其他事情吗?achemsochemmacros

答案1

achemso和都chemmacros定义\latin:ACS 通常不会将拉丁语短语变成斜体,但他们的一些期刊却这样做,因此允许在这里使用语义标记似乎是合理的(这是在 v3.8 中添加的,achemso以支持ACS纳米)。achemso和都chemmacros试图通过在“文档开头”钩子中执行其定义来避免现有命令出现问题,但由于它们都尝试相同的操作,因此无法避免冲突。因此,您需要禁用其中一个定义,例如

\documentclass{achemso}
\AtBeginDocument{\let\latin\relax}
\usepackage{chemmacros}
\title{Title}
\begin{document}
\end{document}

然后会使用其中chemmacros一个。当然,接下来您需要正确设置它,以便在大多数 ACS 期刊中使用直立文本。

相关内容