Verweise auf Teile einer Grafik, verweissensetive Grafiken

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Verweise auf Teile einer Grafik, verweissensetive Grafiken

von a.grahn » Fr 15. Jan 2010, 14:40

Flo75 hat geschrieben:Grundsätzlich will ich eigentlich zwei Dinge erreichen:

a) der Leser klickt auf einen Verweis im Text und springt an die entsprechende Stelle in einer Grafik. D.h. ist der Zoom z.B. auf 1000% gestellt, ist eben nur der entsprechende Teil der Grafik zu sehen.

b) der Leser klickt auf den Bereich in der Grafik (z.B. in einem Blockschaltbild) und springt damit zur entsprechenden Textstelle (z.B. die Erklärung des Blocks)

Flo
Also, ich habe da mal was vorbereitet: `zoomtest.tex'. Es hat zwar eine Weile gedauert, aber es kommt ganz ohne JavaScript aus.

Die Anweisungen zwischen den langen Kommentarzeilen `%%%%%...' definieren 3 Befehle:
\marklowerleft{<label>}
markiert die linke untere Ecke des Bildausschnitts,
\markupperright{<label>}
entsprechend dessen rechte obere Ecke. Beide Befehle erwarten einen beliebigen String <label> als Argument, um dem Bildausschnitt einen eindeutigen Namen zu geben. Der so definierte Bildausschnitt bildet das Sprungziel eines Links im Text, welcher mit
\zoomto{<label>}{<Linktext>}
eingebettet wird.

Klickt man auf den <Linktext>, wird der vereinbarte Bildausschnitt soweit vergrößert, dass er noch ins Ausgabefenster des PDF-Betrachters passt.

Klickt man dann auf den vergrößerten Bildausschnitt, springt der PDF-Betrachter wieder zurück in den Text. Der Zoomfaktor wird dabei soweit zurückgesetzt, dass die Seitenbreite des Dokuments in das Ausgabefenster passt.

Im Beispiel habe ich \marklowerleft und \markupperright mit Hilfe der `overpic'-Umgebung auf einem eingebundenen Bild platziert. Die Option `grid' der overpic-Umgebung erleichtert das Auffinden der Eckpunktskoordinaten. Man kann \marklowerleft und \markupperright natürlich auch innerhalb einer tikzpicture-Umgebung verwenden.

Das ganze habe ich im AdobeReader getestet. Andere Betrachter sollten aber auch funktionieren.

Wichtig: Man muss `pdflatex' mindestens zwei Mal laufen lassen, damit die Referenzen aufgelöst werden.

Die Bilddatei `tiger.pdf' sowie das übersetzte Beispiel `zoomtest.pdf' und dessen Quelltext sind angehängt.

Alexander

zoomtest.tex:
\documentclass{article}
\usepackage[abs]{overpic}
\usepackage[pdfstartview=FitH]{hyperref}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\makeatletter
\InputIfFileExists{\jobname.zom}{}{}
\newwrite\zoomdat
\immediate\openout\zoomdat=\jobname.zom
\def\marklowerleft#1{%
  \pdfsavepos%
  \write\zoomdat{%
    \string\expandafter\string\def\string\csname\space #1.llx\string\endcsname{%
      \the\pdflastxpos}%
    \string\expandafter\string\def\string\csname\space #1.lly\string\endcsname{%
      \the\pdflastypos}%
  }%
  \ifcsname  #1.llx\endcsname\ifcsname  #1.urx\endcsname%
  \pdfdest name {#1.to} fitr width \numexpr
    \csname #1.urx\endcsname-\csname #1.llx\endcsname\relax sp height \numexpr
    \csname #1.ury\endcsname-\csname #1.lly\endcsname\relax sp
  \immediate\pdfannot width \numexpr
    \csname #1.urx\endcsname-\csname #1.llx\endcsname\relax sp height \numexpr
    \csname #1.ury\endcsname-\csname #1.lly\endcsname\relax sp {%
      /Subtype/Link/H/N/Dest (#1.back)
      /Border [0 0 0]
  }% 
  \fi\fi% 
}
\def\markupperright#1{%
  \pdfsavepos% 
  \write\zoomdat{%
    \string\expandafter\string\def\string\csname\space #1.urx\string\endcsname{%
      \the\pdflastxpos}%
    \string\expandafter\string\def\string\csname\space #1.ury\string\endcsname{%
      \the\pdflastypos}%
  }%
}
\def\zoomto#1#2{%
  \leavevmode%
  \raisebox{\baselineskip}[0pt][0pt]{\pdfdest name {#1.back} fith}%
  \pdfstartlink user {%
    /Subtype /Link
    /Border [\@pdfborder]%
    /C [\@linkbordercolor]%
    /H/N%
    /Dest (#1.to)%
  }\strut#2%
  \pdfendlink%
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

Das \zoomto{auge}{Auge} des Tigers.

\begin{center}
\begin{overpic}[grid,scale=0.5,unit=1bp]{tiger.pdf}
  \put(110,180){\marklowerleft{auge}}
  \put(140,200){\markupperright{auge}}
\end{overpic}
\end{center}

\end{document}
Dateianhänge
tiger.pdf
Bilddatei
(33.61 KiB) 342-mal heruntergeladen
zoomtest.pdf
Fertig übersetztes Beispiel.
(43.42 KiB) 454-mal heruntergeladen
zoomtest.tex
Quelltext des Beispiels.
(1.89 KiB) 543-mal heruntergeladen

von Flo75 » Mi 13. Jan 2010, 16:35

Nixverstehn hat geschrieben:Das geht bei mir nicht. Wenn ich auf einen Verweise im Text klicke, dann ändert der Adobe Reader immer den Zoom-Faktor, so dass die Grafik, in die der Link verweist, komplett zu sehen ist.
Also der Effekt tritt bei mir mit der Lösung von bloodworks nicht auf.

von Flo75 » Mi 13. Jan 2010, 16:32

Grandios! :-)

Also bis jetzt funktioniert es. Der Zoom sollte durch das Folgen des Links nicht verändert werden, das war wohl ein Missverständnis.

Vielen Dank!
Flo

von Nixverstehn » Mi 13. Jan 2010, 16:00

Flo75 hat geschrieben:a) der Leser klickt auf einen Verweis im Text und springt an die entsprechende Stelle in einer Grafik. D.h. ist der Zoom z.B. auf 1000% gestellt, ist eben nur der entsprechende Teil der Grafik zu sehen.
Das geht bei mir nicht. Wenn ich auf einen Verweise im Text klicke, dann ändert der Adobe Reader immer den Zoom-Faktor, so dass die Grafik, in die der Link verweist, komplett zu sehen ist.

von bloodworks » Mi 13. Jan 2010, 15:52

\documentclass{scrbook} 
\usepackage[ngerman]{babel} 
\usepackage[T1]{fontenc} 
\usepackage{lmodern}
\usepackage[latin1]{inputenc} 
%Standardheader

\usepackage{tikz} % zum zeichnen

\usepackage{graphicx} % zum Bilder einfügen

\usepackage{hyperref} % Für pdflinks etc...


\begin{document}
% Dokumentenkörper
TEXT  \hyperlink{linkname}{ich bin ein link} TEXT



\begin{figure}
\begin{tikzpicture}
\node at (0,-3){\hypertarget{linkname}{ hallo}};
\node at (0,0) [inner sep=0pt, text width=\linewidth] {\includegraphics[width=\textwidth]{bild.jpg}};
\end{tikzpicture}
\caption{ich bin einfach nur ein text } 
\end{figure}
\end{document}
So: mal ne ganz schnelle Lösung mit hyperref Paket.
Damit kannst du zu einer beliebigen Stelle springen. Das Bild überlagert die node mit dem target. Vorsicht: zumindest bei meinem Betrachter stellt er das Ziel ganz oben an den Rand des Betrachters. DH die node kann nicht immer unbedingt unter dem Tatsächlichen Ziel auf dem Bild liegen. -> Ausprobieren. Das mit dem Zoom geht imho nur mit JavaSkript, aber das würde ich wirklich nit empfehlen, da unschön und vorallem ärgerst du die Leser, wenn die Zoomeinstellung des Viewers sich immer verstellt. grz

PS: das ist sicher nicht die eleganteste Lösung aber sicher ne schnelle...

von Flo75 » Mi 13. Jan 2010, 14:29

Grundsätzlich will ich eigentlich zwei Dinge erreichen:

a) der Leser klickt auf einen Verweis im Text und springt an die entsprechende Stelle in einer Grafik. D.h. ist der Zoom z.B. auf 1000% gestellt, ist eben nur der entsprechende Teil der Grafik zu sehen.

b) der Leser klickt auf den Bereich in der Grafik (z.B. in einem Blockschaltbild) und springt damit zur entsprechenden Textstelle (z.B. die Erklärung des Blocks)

Flo

von Gast » Mi 13. Jan 2010, 13:16

Wie soll denn so ein Verweis aussehen oder was soll er bewirken? Soll er den PDF-Betrachter dazu bringen, den vereinbarten Bildausschnitt vergrößert darzustellen?

Alexander

Verweise auf Teile einer Grafik, verweissensetive Grafiken

von Flo75 » Di 12. Jan 2010, 16:03

Hallo beisammen,

kennt jemand ein Paket oder eine andere Möglichkeit, um in einem Latexdokument (Ziel pdf) auf einen Teil einer Grafik zu Verweisen?

Vielleicht gibt es ja auch die Möglichkeit, auf ein unsichtbares (z.b. vom Bild überlagertes) Objekt zu verweisen?

viele Grüße,
Flo

Nach oben