![achemso + chemmacros 不兼容](https://linux22.com/image/296650/achemso%20%2B%20chemmacros%20%E4%B8%8D%E5%85%BC%E5%AE%B9.png)
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
的最新版本,但问题仍然一样。我还需要做其他事情吗?achemso
chemmacros
答案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 期刊中使用直立文本。