Anotando imagem usando tikz; a decoração desaparece acima de determinada largura da imagem?

Anotando imagem usando tikz; a decoração desaparece acima de determinada largura da imagem?

Estou tentando anotar uma imagem usando tikz. De alguma forma, há algum comportamento que eu não entendo. Desenhei uma decoração no final da linha de anotação que não passa de um círculo. A decoração é definida por meio de um arquivo tikzset. Nada de especial até agora. Porém há algo que faz com que a decoração desapareça quando tento anotar fotos com uma determinada largura superior a 7cm. Aqui está um MWE (espero que mínimo) do que estou falando, testado no Overleaf:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}

\tikzset{
    o/.style={
        shorten >=#1,
        decoration = {
            markings,
            mark={
                at position 1
                with {
                    \draw circle [radius=#1];   
                }
            }   
        },
        postaction = decorate,
    },
    o/.default=2pt
}

\begin{document}
  \begin{tikzpicture}
    \node[anchor=south west,inner sep=0] (image) at (0,0,0){
        \includegraphics[width=7cm]{frog}   %%% works with a picture width of 7cm
    };
    \begin{scope}[x={(image.south east)},y={(image.north west)}]
      \draw[o,>=stealth,shorten <= 2mm, line width=0.5mm] (-0.25,1.25) node {Frog} to[out=-90] (0.41,0.6);
    \end{scope}
  \end{tikzpicture}

  \begin{tikzpicture}
    \node[anchor=south west,inner sep=0] (image) at (0,0,0){
      \includegraphics[width=8cm]{frog} %%% circle vanishes with a picture width of 8cm
    };
    \begin{scope}[x={(image.south east)},y={(image.north west)}]
      \draw[o,>=stealth,shorten <= 2mm, line width=0.5mm] (-0.25,1.25) node {Frog} to[out=-90] (0.41,0.6);
    \end{scope}
  \end{tikzpicture}
\end{document}

A primeira imagem tem uma largura de 7 cm. Lá o círculo no final do \drawainda está desenhado. Na segunda foto cuja largura está definida para 8cm (a única diferença) o círculo não é mais desenhado.

Eu realmente gostaria de entender por que isso acontece e como contornar/corrigir isso.

Responder1

Não consigo obter um círculo no final da linha em qualquer tamanho de imagem. Não examinei o porquê, mas escrevi um código novo, na minha opinião, muito mais simples para linhas, que apontava o sapo na imagem. Nele utilizo duas bibliotecas: arrows.metapara círculo no final da linha e positioningpara determinar as coordenadas da linha:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, positioning}

\tikzset{line/.style={-{Circle[open,length=#1]},shorten <= 2mm, line width=0.5mm},
         line/.default=5pt}

\begin{document}
  \begin{tikzpicture}
    \node[anchor=north west,inner sep=0] (image) at (0,0,0){
        \includegraphics[width=3cm]{example-image-a}};
    \coordinate[above left=0.25 and 1.25 of image]         (a);
    \coordinate[above left=0.25 and 1.25 of image.center]  (b);
    \draw[line] (a) node {Frog} to[out=-90] (b);
  \end{tikzpicture}

\bigskip
  \begin{tikzpicture}
    \node[anchor=north west,inner sep=0] (image) at (0,0,0){
      \includegraphics[width=8cm]{example-image-b}};
    \coordinate[above left=0.25 and 1.25 of image]         (a);
    \coordinate[above left=0.60 and 0.41 of image.center]   (b);
    \draw[line] (a) node {Frog} to[out=-90] (b);
  \end{tikzpicture}
\end{document}

que dá: insira a descrição da imagem aqui

informação relacionada