PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \psfrag und eps



fabsch
22-08-2007, 17:58
Hallo liebe mrunixer,

ich habe mal wieder ein Problem mit dem guten alten psfrag. Es funktioniert manchmal ein anderes mal wieder nicht.
Spezieller:

Ich ersetze mit folgendem Code den Text in einer figure:

\begin{figure}[hbtp]
\psfrag{yref}{$y_{ref}$}
\psfrag{y}{$y$}
\psfrag{e}{$e$}
\psfrag{xhat}{$\hat{x}$}
\psfrag{uref}{$u_{ref}$}
\psfrag{xref}{$x_{ref}$}
\includegraphics[width=12cm]{./fig/images/scheme_feedforwardtracking2.eps}
\caption{Tracking controller}
\label{fig:tracking_opportunities}
\end{figure}
Das Ergebnis ist verwirrend die einzelnen Buchstaben werden ersetzt eine Zeichenkette jedoch nicht. Soll heißen y wird ersetzt mit $y$. yref wird nicht mit $y_{ref}$ ersetzt.
Öffne ich das Eps mit einem Editor bekomme ich


%%IncludeResource: font TimesNewRomanPSMT
/PRNFWM+TimesNewRomanPSMT*1
[45{/.notdef}rp /hyphen 51{/.notdef}rp /a 3{/.notdef}rp /e /f 11{/.notdef}rp
/r 2{/.notdef}rp /u 3{/.notdef}rp /y 101{/.notdef}rp /germandbls 28{/.notdef}rp
/udieresis 3{/.notdef}rp]
PRNFWM+TimesNewRomanPSMT nf
PRNFWM+TimesNewRomanPSMT*1 [18 0 0 -18 0 0 ]msf
15.3418 124.3 mo
(yref)
[9 5.99414 7.98926 0 ]xsh
236.009 121.633 mo
(e)sh
566.009 125.633 mo
(\374\337\374)
[9 9 0 ]xsh
480.009 14.9668 mo
(uref)
[9 5.99414 7.98926 0 ]xsh
804.009 124.967 mo
(y)sh
96.6753 203.633 mo
(a)sh
wenn ich nach yref suche. Alle nicht ersetzten Zeichenketten sind in dem eps enthalten. Es liegt also meines Erachtens nicht an einem Problem des Eps! Oder ist es ein illustrator Cs3 Problem. Die Grafik wurde mit AI3 erstellt und als EPS AI3 abgespeichert.

Kann mir hier jemand weiterhelfen. Ich bin für jeden Tipp dankbar solange nutze ich a-z. :(

Vielen Dank und viele Grüße

fabsch

PS: Ich habe eine andere Grafik mit CS2 kreiiert. Bei dieser hatte ich zuerst auch Probleme, dann hat es aber funktioniert und im aktuellen Zustand ersetze ich in diesem Bild komplette Zeichenketten. Also kann es irgendwie auch nicht an den eingebundenen Paketen liegen. Ich verstehe die Welt nicht mehr....

Gonse
22-08-2007, 18:49
Hallo,

hatte ich auch schon. Lösche mal die gekennzeichneten Stellen.



%%IncludeResource: font TimesNewRomanPSMT
/PRNFWM+TimesNewRomanPSMT*1
[45{/.notdef}rp /hyphen 51{/.notdef}rp /a 3{/.notdef}rp /e /f 11{/.notdef}rp
/r 2{/.notdef}rp /u 3{/.notdef}rp /y 101{/.notdef}rp /germandbls 28{/.notdef}rp
/udieresis 3{/.notdef}rp]
PRNFWM+TimesNewRomanPSMT nf
PRNFWM+TimesNewRomanPSMT*1 [18 0 0 -18 0 0 ]msf
15.3418 124.3 mo
(yref)
[9 5.99414 7.98926 0 ]xsh
236.009 121.633 mo
(e)sh
566.009 125.633 mo
(\374\337\374)
[9 9 0 ]xsh
480.009 14.9668 mo
(uref)
[9 5.99414 7.98926 0 ]xsh
804.009 124.967 mo
(y)sh
96.6753 203.633 mo
(a)sh

Ich hatte auch mal ein Matalb-Skript geschrieben. Nur die Einstellungen zu Beginn müsstest du anpassen.



graphicsextension='eps';
findstring_end=']xS';
findstring_start=')[';
replacestring=')S';

d=dir;

for j=1:length(d),

dotidx=findstr(d(j).name,'.');
extension=d(j).name(dotidx+1:end);

if ~strcmp(extension,graphicsextension),
continue; %keine gesuchte Datei -> Schleife fortsetzen
end

epsinput_name=d(j).name;
epsoutput_name=[d(j).name(1:dotidx-1),'edit',d(j).name(dotidx:end)];

file = textread(epsinput_name,'%s','delimiter','\n');
fid = fopen(epsoutput_name,'w');

z=0;
for i=1:length(file),

idx2=findstr(file{i},findstring_end);

if ~isempty(idx2),
idx1=findstr(file{i},findstring_start);
text1=file{i}(1:idx1-1);
text2=file{i}(idx2+length(findstring_end):end);

file{i}=[text1 replacestring text2];
z=z+1;
end

fprintf(fid,'%s\n',file{i});
end

fclose(fid);

if z==0,
delete(epsoutput_name)
end

disp([num2str(z),' Ersetzung(en) vorgenommen.'])
end


Gruß,
'Stefan

fabsch
22-08-2007, 23:14
Hi Stefan,

vielen Dank für deinen Input. Mit dem Löschen dieser Elemente funktioniert es.
Interessant. Hast du herausgefunden ob es sich um ein Illustrator Problem handelt? Oder woher das Problem generell kommt?

Vielen Dank noch einmal und viele Grüße

fabsch

IMPORTANT EDIT EDIT EDIT:
Aufgrund einer Verwechslung dachte ich dass das Problem behoben sei. Jedoch zeigt mir Latex nur eine leere Figure. Illustrator öffnet das Eps nicht mehr, ich scheine durch das löschen die Struktur zerstört zu haben.

topspam
02-01-2008, 20:31
Hallo zusammen,

@fabsch: konntest du das Problem irgendwie lösen?
Ich habe genau das selbe Problem, ich kann eine einzeichen Lange Zeichenkette ersetzen, aber keinen String... Ich benutze Illustrator CS3.



Unfortunately, some drawing packages display text by sending each character individually to a show command. In other words, if you use the drawing tool to put the string “test” in your figure, it will do something like this:
(t) show (e) show (s) show (t) show

Quelle: http://www.tug.org/teTeX/tetex-texmfdist/doc/latex/psfrag/pfgguide.ps