Seite 1 von 1
Text in .eps-Datei ersetzen
Verfasst: Do 17. Sep 2015, 11:26
von lisa7147
Hallo,
da ich für meine BA viele chemische Verbindungen aufzähle und diese mit \cmpd labele, will ich diese Label auch in meinen Reaktionen, die ich mit ChemDraw zeichne verwenden. Durch \cmpd passen sich die Labels ja an, wenn ich Verbindungen hinzufüge oder lösche. Das soll dann auch so in den Reaktionen sein, damit ich die nicht immer wieder ändern muss (und vllt irgendwann den Überblick verliere).
Ich habe auch schon viel recherchiert, aber nichts gefunden
Ich hoffe, jemand von euch kann mir bei meinem Problem helfen
Mein Minimalbeispiel:
\documentclass[
parskip,
12pt,
headsepline,plainheadsepline,
toc=listof,
headheight=17.99446pt
]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{psfrag, graphicx}
\usepackage{float}
\usepackage{amsmath, amssymb, textcomp, chemnum }
\usepackage{chemscheme}
\usepackage[ngerman]{chemmacros}
\usepackage{hyperref}
\usepackage[ngerman]{cleveref}
\begin{document}
Benzen \cmpd{benzen}
\begin{scheme}[H]
\psfrag[T]{\cmpd{benzen}}
\includegraphics[scale=1]{Benzen1.eps}
\end{scheme}
\end{document}
Verfasst: Fr 18. Sep 2015, 08:20
von lisa7147
Hat keiner eine Idee? Bei Unklarheiten einfach nachfragen

Verfasst: Fr 18. Sep 2015, 09:48
von Noch so einer
Ich verstehe nicht ganz, was Dein Problem ist. Du kannst doch mit \psfrag beliebig ersetzen, beispielsweise:
\documentclass[
parskip,
12pt,
headsepline,plainheadsepline,
toc=listof,
headheight=17.99446pt
]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{psfrag, graphicx}
\usepackage{float}
\usepackage{amsmath, amssymb, textcomp, chemnum }
\usepackage{chemscheme}
\usepackage[ngerman]{chemmacros}
\usepackage{hyperref}
\usepackage[ngerman]{cleveref}
\begin{document}
Benzen \cmpd{benzen}
\begin{scheme}[H]
\psfrag{T}{Benzen \cmpd{benzen}}
\includegraphics[scale=1]{Benzen1.eps}
\end{scheme}
\end{document}
oder
\documentclass[
parskip,
12pt,
headsepline,plainheadsepline,
toc=listof,
headheight=17.99446pt
]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{psfrag, graphicx}
\usepackage{float}
\usepackage{amsmath, amssymb, textcomp, chemnum }
\usepackage{chemscheme}
\usepackage[ngerman]{chemmacros}
\usepackage{hyperref}
\usepackage[ngerman]{cleveref}
\begin{document}
Benzen \cmpd{benzen}
\begin{scheme}[H]
\psfrag{T}{\cmpd{benzen}}
\includegraphics[scale=1]{Benzen1.eps}
\end{scheme}
\end{document}
Je nachdem, was Du haben willst. Natürlich musst Du dabei die richtigen Klammern verwenden, sonst wird es nicht. Siehe auch die [d]psfrag[/d]-Anleitung.
Verfasst: Fr 18. Sep 2015, 10:08
von lisa7147
Also, wenn ich sowohl mein Beispiel als auch deinen beiden so wie sie sind kompiliere (auch mehrmals) wird der Text der .eps-Datei (in meinem Fall nur "T" als Platzhalter) nicht durch das zuvor für mein Benzen vergebenes Label (hier "1") ersetzt, sondern er Text bleibt einfach.
Ich habe das Bild mit ChemDraw erstellt (Struktur gezeichnet, einfach ein Text-Feld darunter und als eps-Datei exportiert).
Ist irgendwas an meinem Code falsch, oder liegt das an der Bild-Datei?
Ich hoffe, jetzt ist es klarer

Verfasst: Fr 18. Sep 2015, 10:48
von saputello
Du verwendest vermutlich pdflatex.
psfrag funktioniert nur auf dem Weg latex → DVI → dvips → PS und optional anschließend noch pstopdf/ps2pdf → PDF.
Dein eigenes Beispiel ergibt auf dem Weg:
Die beiden Beispiele @Noch so einer:
Übrigens ist das korrekte Vorgehen bei Verwendung von [d]psfrag[/d] auch in der bereits von @Noch so einer verlinken Anleitung erklärt. Dort ist unter Abschnitt 2 erklärt, dass man entweder
dvips oder dvipsone verwenden sollte. Das geht nur, wenn man den DVI-Weg beschreitet.
Verfasst: Fr 18. Sep 2015, 10:51
von cgnieder
Ich verstehe nicht, weshalb Du psfrag direkt verwendest, wo doch chemnum einen Befehl genau dafür bereitstellt, nämlich \replacecmpd?
Wenn Du willst, dass psfrag (oder \replacecmpd, das seinerseits psfrag verwendet) mit pdflatex funktioniert, brauchst Du
\usepackage[runs=2]{auto-pst-pdf}
und musst mit shell-escape compilieren.
% arara: pdflatex: { shell: on }
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
% benötigt mit pdflatex damit psfrag seine Arbeit machen kann -- muss mit
% shell-escape kompiliert werden:
\usepackage[runs=2]{auto-pst-pdf}
\usepackage{chemnum}
% chemmacros erkennt die Sprache selbst
\usepackage{chemmacros}
% für neueres und älteres chemmacros
\providecommand\IfChemCompatibilityTF[4]{#4}
\IfChemCompatibilityTF{>=}{5.}{
\usechemmodule{scheme}
}{
\usepackage{chemscheme}
}
\begin{document}
Benzen \cmpd{benzen}
\begin{scheme}
\replacecmpd[tag=T]{benzen}
\includegraphics[scale=1]{Benzen1.eps}
\end{scheme}
\end{document}
Grüße
Verfasst: Mo 21. Sep 2015, 09:26
von lisa7147
Das mit -shell-escape bei PDFLaTeX hat nicht funktioniert, aber ich habe die "Schnell Übersetzen"-Funktion eingestellt auf: LaTeX - dvips - ps2pdf - PDF anzeigen und so funktioniert dann alles

Verfasst: Mo 28. Sep 2015, 01:27
von cgnieder
lisa7147 hat geschrieben:Das mit -shell-escape bei PDFLaTeX hat nicht funktioniert
Was genau hat denn da nicht funktioniert. In der Tat funktioniert das in der Regel nämlich sehr gut. So habe ich mein Beispiel damit getestet, bevor ich's gepostet habe, auch die Doku von
chemnum kompiliere ich damit problemlos.
Grüße