尝试从 ChemDraw 中对化合物进行编号

尝试从 ChemDraw 中对化合物进行编号

我是 LaTeX 的新手,已经尝试解决这个问题几个小时了。

大家好 - 我是 LaTeX 的新手,已经尝试解决这个问题几个小时了。

我正在尝试将 ChemDraw 中制作的化合物(我已将其导出为 .eps 文件)传输到 LaTeX 中。我的理想目标是让 LaTeX 在输入所有化合物时自动对其进行编号(即,如果我在所有其他化合物之前添加一种化合物,则所有化合物都会自动重新编号)。

到目前为止,我甚至无法将一个临时标签转换为数字“1”。见下文:

\begin{figure}

\begin{center}

\replacecmpd{TMPA}

    \includegraphics[scale=0.7]{Diagrams/"Taxol, Numbered".eps}

        \caption{Taxol}

\end{center}

\end{figure}

以下是输出

EPS文件在此:https://drive.google.com/open?id=1BWAuTo6YzSeLVQRIQaf4gzG5k5uw84qY

ChemDraw版本:16.0.1.4 (61)

我对 chemnum、chemfig 和 chemscheme 感到非常困惑,到目前为止还无法对它们中的任何一个取得任何进展 - 请帮忙!

谢谢你的时间!

答案1

我已经有几年没有尝试过这个了,但我使用了 Joseph Wright 的chemstyle包以及auto-pst-pdf自动编号结构的包。基本上,你会将你的结构导出为 .eps 格式TMP1,并TMP2使用 、 等占位符,然后将你的图片插入环境中scheme,为每个分子指定一个代码/标签/标签/等。然后,在排版时将占位符转换为数字。你还可以使用内联文本引用分子编号\compound{<your compound label>}。在摆弄和修改旧代码后,这个例子更好地说明了这一点:

\documentclass{minimal} 
\usepackage[crop=off,runs=2]{auto-pst-pdf}
\usepackage{chemstyle}

\begin{document}

\begin{scheme}[h] 
\centering
    \schemeref[TMP1]{msoc2c6f13}
    \schemeref[TMP2]{imc2c6f13}
        \includegraphics[scale=1]{pfaim}
    \caption{a chemscheme}
    \label{sch:pfaim}
\end{scheme}%

Mesylate \compound{msoc2c6f13} was converted to the N-fluoroalkylated imidazole \compound{imc2c6f13}.

\end{document}

这将给你这个结果: chemscheme 示例 不过,有一些注意事项您必须注意:

  • 您将需要允许 shell 转义(即,来自您的代码的数据传出并进入您的排版程序,更多解释在这里:什么是 \immediate 和 \write18 以及如何使用它们?) 来auto-pst-pdf处理你的TMP标签。根据你的排版习惯,你可能希望全部您的文档或仅少数文档。您应该能够从排版程序或文档中允许它(例如,如果您使用 arara)。
  • 如果您需要编号中的某些特定顺序,则需要按该顺序声明化合物,使用\compound*{...}(例如在某一节的开头)。
  • 从 2016 年到现在的某个时候,auto-pst-pdf默认选择此crop选项;这会导致转换后的 .eps 被裁剪,并且在我的测试案例中,会丢失部分结构。因此crop=off选择此选项。

要了解更多详细信息,您还应该阅读 Joseph Wright 的chemstyle手册,其中充满了有用的技巧。

相关内容