![仅需要对某些 eps 文件进行 Latex 编译,其余文件需要预编译为 pdf 或 png](https://linux22.com/image/254767/%E4%BB%85%E9%9C%80%E8%A6%81%E5%AF%B9%E6%9F%90%E4%BA%9B%20%E2%80%8B%E2%80%8Beps%20%E6%96%87%E4%BB%B6%E8%BF%9B%E8%A1%8C%20Latex%20%E7%BC%96%E8%AF%91%EF%BC%8C%E5%85%B6%E4%BD%99%E6%96%87%E4%BB%B6%E9%9C%80%E8%A6%81%E9%A2%84%E7%BC%96%E8%AF%91%E4%B8%BA%20pdf%20%E6%88%96%20png.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 文件
据我记得,原则上,在文本和方案或图形中对化合物进行编号时,chemscheme
我chemnum
会做同样的事情,所以上述问题中所说的内容也应该适用于你的情况。
我已经使用pdfLatex
eps 和 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}