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 :lol:

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:

Bild

Die beiden Beispiele @Noch so einer:

Bild Bild

Ü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 :D

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