Text in .eps-Datei ersetzen

Tabellen und Grafiken erstellen und anordnen


lisa7147
Forum-Anfänger
Forum-Anfänger
Beiträge: 29
Registriert: Mi 16. Sep 2015, 10:28

Text in .eps-Datei ersetzen

Beitrag 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}
Dateianhänge
Benzen1.eps
(13.28 KiB) 382-mal heruntergeladen

lisa7147
Forum-Anfänger
Forum-Anfänger
Beiträge: 29
Registriert: Mi 16. Sep 2015, 10:28

Beitrag von lisa7147 »

Hat keiner eine Idee? Bei Unklarheiten einfach nachfragen :)

Noch so einer

Beitrag 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.

lisa7147
Forum-Anfänger
Forum-Anfänger
Beiträge: 29
Registriert: Mi 16. Sep 2015, 10:28

Beitrag 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 :)

saputello
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 98
Registriert: Do 15. Jan 2015, 08:49

Beitrag 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.
Dateianhänge
Beispiel @lisa7147 mit falschen Klammern bei \psfrag
Beispiel @lisa7147 mit falschen Klammern bei \psfrag
test2.png (1.63 KiB) 2629 mal betrachtet
1. Beispiel @Noch so einer
1. Beispiel @Noch so einer
test3.png (1.59 KiB) 2633 mal betrachtet
2. Beispiel @Noch so einer
2. Beispiel @Noch so einer
test4.png (1.4 KiB) 2621 mal betrachtet
Zuletzt geändert von saputello am Fr 18. Sep 2015, 10:54, insgesamt 2-mal geändert.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag 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
Clemens
Paketauthor

lisa7147
Forum-Anfänger
Forum-Anfänger
Beiträge: 29
Registriert: Mi 16. Sep 2015, 10:28

Beitrag 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

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag 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
Clemens
Paketauthor

Antworten