仅需要对某些 ​​eps 文件进行 Latex 编译,其余文件需要预编译为 pdf 或 png

仅需要对某些 ​​eps 文件进行 Latex 编译,其余文件需要预编译为 pdf 或 png

我正在使用该chemscheme软件包,为了替换我文档中这些方案的编号,我需要先用 latex 编译这些 eps 文件,然后用 dvips,最后用 ps2pdf 编译。

但是,我有大量图像(超过 100 张,并且只会增加),它们完全可以用作它们所在的 png 或预编译的 pdf 文件。由于我需要 latex 编译来进行编号chemscheme,因此所有这些 png 或 pdf 图像都需要采用 eps 格式,这会将编译时间增加 2-3 分钟。

对于这种情况有没有什么解决办法呢?

我已经在这里阅读了一些有关诸如standalone和之类的软件包的解决方案externalize,但我承认并不完全了解如何应用这些解决方案,或者它们是否适用于这种情况。

我想补充一点,如果没有这些额外的图像,我的 latex 文件可以在大约 30 秒内编译完成,而有了这些图像,编译时间现在几乎需要 4 分钟 :(

下面是一个说明该chemscheme软件包如何工作的示例(它包含在软件包中)chemstyle。文件“reaction.eps”可以在以下链接下载。zip 文件还包含 png 的外观(如果您单独对其进行预编译,这些 TMP 标签将在转换过程中被替换)。编号命令\CNlabel\CNlabelsub散布在整个文档中,它们会增加与复合编号相关的计数器,复合编号用于替换TMP图像内的标签。但是,只有少数我的图像使用这些 tmp 标签并需要这种特定的编译。其余的没有TMP包含,可以毫无问题地从外部进行编译。为了获得正确的编号,latex必须在调用之前运行两次dvips

eps 和 pdf 文件: http://www.filedropper.com/reaction_1

\documentclass{article}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage{bpchem}
\usepackage[tracking=bpchem]{chemstyle}


\begin{document}

I am a document about methanol (\CNlabelsub{alcohol}{Me}), and the related alcohol isoamyl %
alcohol (\CNlabelsub{alcohol}{isoamy}).  \CNlabelsub{alcohol}{Me} can be converted to an alkyl %
halide with \BPChem{HCl} to give chloromethane (\CNlabel{MeCl}, \ref{sch:reaction}).
\begin{scheme}
\caption{I am a scheme}\label{sch:reaction}
\schemerefsub{alcohol}{Me}
\schemerefsub{alcohol}{isoamy}
\schemeref{MeCl}
\includegraphics{reaction}
\end{scheme}

\end{document}

更新,可能的解决方案,但尚未完全完成

从垃圾收集器的回答中,我确实想到了这一点。我可以使用命令\CNlabelnoref和提供文档中所有化合物的预制列表\CNlabelsubnoref。我已经这样做了,下面是使用独立包的 MWE。但是,我现在收到一个错误,从该行开始的整个错误列表\begin{figure},第一个是

LaTeX 错误:出现问题 - 也许缺少 \item。

\documentclass[border=0pt]{standalone}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage{bpchem}
\usepackage[journal=rsc,tracking=bpchem]{chemstyle}
\renewcommand*{\schemerefformat}{\small\fontfamily{cmr}}
\newcommand{\chemdrawgraphic}[1]{\includegraphics[scale=1]{#1}}
\setcounter{BPCno}{200}
\CNlabelsubnoref{alcohol}{Me}
\CNlabelsubnoref{alcohol}{isoamy}
\CNlabelnoref{MeCl}
\begin{document}
\begin{figure}
    \schemerefsub{alcohol}{Me}
    \schemerefsub{alcohol}{isoamy}
    \schemeref{MeCl}
    \chemdrawgraphic{reaction}
\end{figure}
\end{document}

答案1

编译每个diagram.tex文件以latex-dvips-pspdf获得diagram.pdf

% diagram.tex
\documentclass[border=0pt]{standalone}
\usepackage{chemscheme}
\begin{document}
% do your drawing
\end{document}

从主输入文件中,使用 导入diagram.pdf和其他 PNG、JPG、PDF 图像\includegraphics。使用 编译主输入文件pdflatex

答案2

您可以在使用时替换临时文本框pdfLatex。例如,请参阅此问题:Chemnum/PS-Frag 包含 EPS 文件和 PNG 文件

据我记得,原则上,在文本和方案或图形中对化合物进行编号时,chemschemechemnum会做同样的事情,所以上述问题中所说的内容也应该适用于你的情况。

我已经使用pdfLatexeps 和 png 图形一段时间了,如果不大幅改变字体大小,它就可以正常工作。

这里我使用了上面链接中的 MWE,但是它使用的chemnum是:

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc} % Modern font encoding
%\usepackage{pstool}
\usepackage{psfrag}
\usepackage[crop=off]{auto-pst-pdf} % Use EPS graphics with pdfLaTeX
\usepackage{booktabs} % Better table layouts
\usepackage[journal=rsc]{chemstyle} % Of course!
\usepackage{geometry} % Easy page layout
\usepackage{lmodern} % Use Latin Modern fonts
\usepackage[version=3]{mhchem} % Formula subscripts using \ce{}
\usepackage{xkeyval}
\usepackage{pst-pdf}
\usepackage{ifplatform}

\begin{document}
Test Test
\begin{figure} %% eps
\centering
\psfrag{goldhydrid}{test}
\includegraphics[scale=1.0]{./someeps}
\caption{A Caption}
\label{fig:someeps}
\end{figure}

\begin{figure} %% pngfile
\centering
\psfrag{goldhydrid}{test}
\includegraphics[scale=1.0]{./pngfile}
\caption{A Caption}
\label{fig:pngfile}
\end{figure}

\end{document}

相关内容