
Я использую chemscheme
пакет, и для того, чтобы заменить нумерацию в схемах, которые есть в моем документе, мне нужно скомпилировать эти файлы eps с помощью latex, затем 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}
Обновление, возможное решение, но не совсем законченное
Из ответа Garbage Collector мне это пришло в голову. Я могу предоставить готовый список всех соединений в документе с помощью команды \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}