PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bild mit xy-pic und \xyimport beschriften



s3bber
09-02-2012, 17:03
Hallo,

ich möchte ein Bild das als .pdf vorliegt, in meine Arbeit einbinden und mithilfe von LaTeX beschriften. Ich verwende PDFLaTeX.
Dabei bin ich auf xy gestoßen.

Und hierzu hätte ich dann auch ein paar Fragen:

1) Ist xy ein gutes Paket dafür oder sollte man dann doch lieber TikZ bzw. PSTricks verwenden wenn man schon vorhandene Grafiken (.eps, .png, .pdf, etc) in LaTeX oder PDFLaTeX beschriften möchte.

2)Wie bekommt man einen Zeilenumbrauch so hin, dass die Wörter linksbündig sind? In dem Minibsp. betrifft das Zeile 10 bis 13.

3) Die Umrandung/Teilung in Zeile 19 bis 24 habe ich durch trial and error hinbekommen. Leider ist mir nicht ganz klar warum ich z.B. {}, vor {\ar@{-}(x,y)} schreiben muss. Wenn ich das nicht mache ist die Linie weg. Also wie ist die einfachste schreibweise für eine Line bzw. Pfeil von (xA,yA) nach (xE,yE)?

Vielen Dank!



\documentclass{scrbook}
\usepackage[import,pdf,all]{xy}
\usepackage{graphicx}
\usepackage[nice]{nicefrac}

\begin{document}

\begin{xy}
\xyimport(1,1){\includegraphics[height=0.4\textheight]{tpf-twolens}}
(.15,.10)*+[F]{\txt<1cm>{NIR pump pulse}},
(.20,.35)*+[B]{\txt{horizontal\\polarization NIR}},
(.80,1)*{\txt{vertical\\polarization THz}},
(.35,.52)*++[B]{\txt{pulse\\front}},{\ar(.230,.67)},{\ar(.15,.5)} ,{\ar(.75,.70)},
(.1,.85)*{\txt{grating}},
(.5,1)*{\txt{lens}},{\ar(.35,.93)},{\ar(.65,.93)},
(.5,.63)*{\nicefrac{\lambda}{2}},
(.9,.69)*{\txt{sLN}},
(.95,.85)*{\txt{THz}},
(0,0)*{\ar@{-}(1,0)},
(1,0)*{},{\ar@{-}(1,1)},
(1,1)*{},{\ar@{-}(0,1)},
(0,1)*{},{\ar@{-}(0,0)},
(0,.5)*{},{\ar@{-}(1,.5)},
(.5,0)*{},{\ar@{-}(.5,1)},
\end{xy}

\end{document}

bobmalaria
09-02-2012, 17:14
hi,

dafuer gibt es eigentlich das overpic paket.



\usepackage{overpic}
.
.
.
\begin{overpic}[grid,tics=10]{bild.pdf}
\put (x,y) {Text}
\end{overpic}


nach dem ersten kompilieren wird durch die optionen grid und tics ein gitter auf dem bild erzeugt. hier kannst du dir dann die koordinaten ungefaehr ablesen und dann mit dem \put befehl text einfuegen. willst du das der text eine bestimmte zeilenlaenge hat, kannst du eine parbox verwenden


\put (3,10) {\parbox{3cm}{text text text}}

fuer letzteres kann man nateurlich auch einen befehl basteln der die eingabe vereinfacht.

willst du viele grafische dinge umsetzen, dann ist sicher tikz die richtige loesung. vor allem weil dein bild ein pdf ist. da wuerde pstricks nicht 'out of the box' funktionieren.

es ist allerdings auch recht einfach eine vektor-software wie inkscape (http://inkscape.org/) zu verwenden um pfeile usw einzuzeichen und dann den text als latex code zu exportieren. letzteres nutze ich recht oft weil es mir zu lange dauert die koordinanten usw. fuer die pfeile zu berechen/hinzufummeln.

der workflow ist grob:

1) pdf in inkscape importieren (vektor charater wird erhalten)
2) pfeile einzeichen und mit text beschriften (schriftart egal)
3) datei ->speichern unter
4) dateityp pdf auswaehlen
5) im dialog text als latex exportieren auswaehlen
6) die resultierende tex datei mit \input im dokument einbinden.
fertig.





gruss

s3bber
09-02-2012, 18:18
Das overpic paket ist natürlich sehr schön.

Und die Funktion PDF+LaTeX. Text in PDF weglassen ... hatte ich zwar schon gesehen, aber nicht wirklich beachtet. Direkt als LaTeX mit PSTricks-Makros würde ich speichern wenn ich nicht PDFLaTeX verwenden würde?

Damit hätte ich dann die Pfeile an die richtige Stelle von etwa dort wo dann der Text später stehen soll.
Nur wie krieg ich den Text jetzt noch darein? overpic + input funktioniert nicht ?!



\begin{overpic}{tpf-twolens-text.pdf_tex}
\end{overpic}

bobmalaria
09-02-2012, 19:12
hi,

wenn du den weg ueber inkscape gehst, dann bracuhst du overpic nicht mehr. da habe ich mich vielleicht unklar ausgedrueckt.

wenn du in inkscape das pdf exportierst, dann klicke auf die entsprechende box um text als latex-text zu exportieren (ich habe die version 0.48)

http://www.mrunix.de/forums/attachment.php?attachmentid=5030&stc=1&d=1328810821

das einzige was nicht funktioniert, oder was ich nciht richtig hinbekommen habe ist, einen zeilenumbruch zu erzeugen. wenn ich das brauche gehe ich in die pdf_tex datei und suche einen eintrag

z.b.


\put(-0.0004017,0.09015498){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash
Symmetry plane 1}}%

und fuege eine parbox selbst ein


\put(-0.0004017,0.09015498){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{
\parbox{3cm}{Symmetry\\ plane 1}}}}%

jetzt kann man sich natuerlich streiten darueber wieviel zeit das braucht, aber ich denke, dass ich die pfeile sehr schnell in inkscape realisiert habe und dann fuer die wenigen 2-zeiler in meinen grafiken der extra aufwand lohnt. eventuell muss man an den koordinaten noch etwas drehen.

ein entsprechendes feature waehre in inkscape schone, aber man kann nicht immer alles haben :)

eingebunden wird dann nur ueber

\begin{figure}
\input{datei.pdf_tex}
\end{figure}

s3bber
09-02-2012, 19:40
HI,

danke, das hilft mir schon mal weiter. Und du hast dich schon richtig ausgedrückt, ich hab nur nicht richtig gelesen


2) pfeile einzeichen und mit text beschriften (schriftart egal)

Aber mich würde trotzdem noch interesieren wie man eine Linie von einem zum anderen Punkt zeichnet.


3) Die Umrandung/Teilung in Zeile 19 bis 24 habe ich durch trial and error hinbekommen. Leider ist mir nicht ganz klar warum ich z.B. {}, vor {\ar@{-}(x,y)} schreiben muss. Wenn ich das nicht mache ist die Linie weg. Also wie ist die einfachste schreibweise für eine Line bzw. Pfeil von (xA,yA) nach (xE,yE)?

Z.B. wird so nur die erste Linie gezeichnet


(0,0)*{\ar@{-}(1,0)},
(0,1)*{\ar@{-}(1,1)},

und so beide


(0,0)*{\ar@{-}(1,0)},
(0,1)*{},{\ar@{-}(1,1)},

bobmalaria
10-02-2012, 13:22
hi,

ich habe dein bild nicht und somit ist dein beispiel und deine erklaerungen recht schlecht nachzuvollziehen.
meiner meinung nach bracuhst du xy pic ueberhaupt nicht mehr wenn du inkscape verwendest. eine mischung von beidem halte ich nicht fuer sinnvoll.

gruss

s3bber
10-02-2012, 14:28
HI,

ich meinte das ganze jetzt ehr akademisch. Irgendein Bild auf dem ich Pfeile / Strich zeichnen möchte. Aber belassen wir es dabei.
Danke für deine Hilfe.

Gruß