Für das Problem mit overpic müsste ich schon ein komplettes Minimalbeispiel von Dir haben, sonst kann ich der Sache nicht nachgehen.
Bei dem folgenden Test hab ich das Pferd anders herum aufgezäumt, damit ich ein und dieselbe Testdatei unterschiedlich skaliert verwenden kann. Nebenbei erspare ich mir so, \ScaleIfNeeded / \ScaleIfNeededHeight nachzustellen.
Auf \hyperlink hab ich auch verzichtet, ohne passenden \hypertarget-Aufruf seh ich da eh kein Licht im Tunnel. Letzten Endes geht es ja nur darum, innerhalb einer Box eine andere Box wiederzufinden. Genau das kannst Du mit dem zuvor angegebenen Link erreichen: dort wird das Bild in einer Box (skaliert oder eben auch nicht) gespeichert und davon dann die Breite ermittelt.
Hier eine ähnliche Möglichkeit:
Code:
\documentclass[a4paper]{article}
\usepackage{tikz}
\begin{filecontents}{\jobname-tb.tex}
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\fill[blue!60] (0,0) rectangle (5,3);
\draw (3,0.5) rectangle (4.5,1.2);
\end{tikzpicture}
\end{document}
\end{filecontents}
\newsavebox\bildbox
\newlength\bildbreite
\newcommand*\test[1]{%
% erstmal die Abbildung in eine Box packen:
\sbox\bildbox{\includegraphics[width=#1]{\jobname-tb}}%
% dann die Breite der Box bestimmen:
\setlength\bildbreite{\wd\bildbox}%
% dann kann's auch schon los gehen:
\begin{tikzpicture}
% ich habe outer sep auf Null gesetzt, damit die linke untere Bildecke auf dem Bezugspunkt (0,0) liegt und nicht um je halbe Linienbreite nach oben und rechts verschoben wird:
\node[anchor = south west,inner sep=0, outer sep=0] at (0, 0) (image) {\usebox\bildbox};
% Startpunkt der inneren Box ist hier 3/5 der Bildbreite und 0.5/3 der Bildhöhe
% da die Bildhöhe hier im Verhältnis 3:5 zur Bildbreite steht,
% lässt sich y auch als 3/5 * 0.5/3 der Bildbreite ausdrücken, also
\draw[red] (0.6\bildbreite,0.1\bildbreite)%
% die Breite der inneren Box ist 1.5/5 der Bildbreite (30%),
% die Höhe der inneren Box ist 0.7/3 * 3/5 der Bildbreite (14%)
-- +(0.3\bildbreite,0.14\bildbreite);
% zur Kontrolle ein Kreuz durch (0,0):
\draw[blue, very thin] (-0.1,-0.1) -- (0.1,0.1) (-0.1,0.1) -- (0.1,-0.1);
\end{tikzpicture}
}
\begin{document}
\test{1cm}
\test{5cm}
\test{9cm}
\end{document}
Sieht vllt etwas seltsam aus, weil ich hier die Bildbreite vorgebe, aber den Teil änderst Du ja eh wieder zu
Code:
\sbox\bildbox{\includegraphics[width=\ScaleIfNeeded,height=\ScaleIfNeededHeight,keepaspectratio]{auto.pdf}}
Alternativ ließe sich vermutlich auch die calc-Bibliothek von tikz dazu herkriegen, das Gewünschte zu erreichen.
BTW: figure- als auch center-Umgebungen fügen vertikale Abstände ein, d.h. Du verdoppelst den vertikalen Abstand durch Verwendung der center-Umgebung innerhalb einer figure-Umgebung.
VG
Lesezeichen