tikz: poner una marca en una línea recta

tikz: poner una marca en una línea recta

colocar una marca en un punto específico a lo largo del caminoSe analiza cómo colocar una marca en un camino complicado, pero, no obstante, colocar una marca en una línea recta simple es difícil.

Lo intento:

\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
  \coordinate (A) at (0, 0);
  \coordinate (B) at (1, 3);
  \draw (A) -- (B);
  \path [
    postaction={decorate},
    decoration={
      markings,
      mark = at position {0.1\dimexpr\pgfdecoratedpathlength\relax} with {fill = red circle (0.5cm)}
    }
  ] (A) -- (B) ;
\end{tikzpicture}
\end{document}

en la salida

ingrese la descripción de la imagen aquí

la marca no se ve por ninguna parte.

¿Qué está mal y cómo solucionarlo?

Respuesta1

El mismo resultado lo puedes obtener sin decorations.markings:

\documentclass[tikz, border=1cm]{standalone}

\begin{document}
\begin{tikzpicture}
  \coordinate (A) at (0, 0);
  \coordinate (B) at (1, 3);
\draw  (A) -- (B) node[pos=0.1, circle,fill=red,inner sep=1.5pt] {};
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

No estoy seguro de dónde obtuviste esa sintaxis para la marca, necesitas

mark = at position 0.1 with {\fill [red] circle (0.5cm);}

Como mencionó el gato de Schrödinger en un comentario, no necesitas ninguno \pgfdecorationpathlengthen absoluto, un número se interpreta como una distancia fraccionaria a lo largo del camino. (Si desea utilizar \pgfdirectionpathlength, 0.1*\pgfdecoratedpathlengthes suficiente, no es \dimexprnecesario). Y la marca real debe ser una ruta adecuada.

\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
  \coordinate (A) at (0, 0);
  \coordinate (B) at (1, 3);
  \draw (A) -- (B);
  \path [
    postaction={decorate},
    decoration={
      markings,
      mark = at position 0.1 with {\fill [red] circle [radius=0.1cm];}
    }
  ] (A) -- (B) ;
\end{tikzpicture}
\end{document}

información relacionada