
Ich verwende das chemscheme
Paket und um die Nummerierung in diesen Schemata in meinem Dokument zu ersetzen, muss ich diese EPS-Dateien mit Latex, dann mit dvips und schließlich mit ps2pdf kompilieren.
Ich habe jedoch eine sehr große Anzahl von Bildern (über 100, und es werden immer mehr), die sich problemlos als PNG-Datei oder als vorkompilierte PDF-Datei verwenden lassen. Da ich für die chemscheme
Nummerierung eine Latex-Kompilierung benötige, müssen alle PNG- oder PDF-Bilder im EPS-Format vorliegen, was die Kompilierungszeit um satte 2-3 Minuten verlängert.
Gibt es für diese Art von Situation eine Lösung?
Ich habe hier einige Lösungen zu Paketen wie standalone
und gelesen externalize
, muss jedoch zugeben, dass ich nicht ganz verstehe, wie diese Lösungen anzuwenden sind oder ob sie auf diese Situation überhaupt zutreffen.
Ich dachte, ich sollte noch hinzufügen, dass die Kompilierung meiner Latex-Datei ohne diese zusätzlichen Bilder etwa 30 Sekunden dauert, mit den Bildern beträgt die Kompilierungszeit nun fast 4 Minuten :(
Hier ist ein Beispiel, wie das chemscheme
Paket funktioniert (es ist als Teil des chemstyle
Pakets enthalten). Die Datei „reaction.eps“ kann unter dem folgenden Link heruntergeladen werden. Die Zip-Datei enthält auch, wie das PNG aussieht, wenn Sie es allein vorkompilieren (diese TMP-Tags werden während des Konvertierungsprozesses ersetzt). Die Nummerierungsbefehle \CNlabel
und \CNlabelsub
sind über das gesamte Dokument verteilt und erhöhen Zähler im Zusammenhang mit der zusammengesetzten Nummerierung, die beim Ersetzen der TMP
Tags in den Bildern verwendet wird. Allerdings verwenden nur eine Handvoll meiner Bilder diese TMP-Tags und erfordern diese bestimmte Kompilierung. Der Rest ist nicht TMP
enthalten und kann problemlos extern kompiliert werden. Um die richtige Nummerierung zu erhalten, latex
muss zweimal ausgeführt werden, bevor aufgerufen wird dvips
.
eps- und pdf-Dateien: http://www.filedropper.com/reaktion_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}
Update, mögliche Lösung, aber noch nicht ganz fertig
\CNlabelnoref
Aus der Antwort von Garbage Collector ist es mir tatsächlich eingefallen. Ich kann mit einem Befehl und eine vorgefertigte Liste aller Verbindungen im Dokument bereitstellen \CNlabelsubnoref
. Das habe ich getan, und unten sehen Sie ein MWE mit dem Standalone-Paket. Allerdings erhalte ich jetzt eine Fehlermeldung, eine ganze Liste von Fehlern, die bei der \begin{figure}
Zeile beginnen, wobei die erste lautet:
LaTeX-Fehler: Irgendetwas stimmt nicht – möglicherweise fehlt ein \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}
Antwort1
Kompilieren Sie alle diagram.tex
Dateien mit, um latex-dvips-pspdf
zu erhalten diagram.pdf
.
% diagram.tex
\documentclass[border=0pt]{standalone}
\usepackage{chemscheme}
\begin{document}
% do your drawing
\end{document}
diagram.pdf
Importieren Sie die und andere PNG-, JPG- und PDF-Bilder aus Ihrer Haupteingabedatei mit \includegraphics
. Kompilieren Sie die Haupteingabedatei mit pdflatex
.
Antwort2
Sie können die temporären Texthalter auch ersetzen pdfLatex
, wenn Sie verwenden. Siehe zum Beispiel diese Frage:Chemnum/PS-Frag mit EPS-Dateien und PNG-Dateien
So wie ich mich erinnere, chemscheme
mache chemnum
ich im Prinzip dasselbe, wenn es um die Nummerierung von Verbindungen im Text und in Schemata oder Abbildungen geht, sodass das, was in der oben genannten Frage gesagt wurde, auch in Ihrem Fall gelten sollte.
Ich verwende es pdfLatex
seit einiger Zeit mit EPS- und PNG-Abbildungen und es funktioniert gut, wenn Sie die Schriftgröße nicht drastisch ändern.
Hier ist das MWE aus dem obigen Link, das jedoch chemnum
stattdessen verwendet:
\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}