TikZ - Estilo para flecha con decorador de punto medio

TikZ - Estilo para flecha con decorador de punto medio

Estoy creando una especie de diagrama conmutativo con diferentes tipos de flechas. Hasta ahora, he definido diferentes estilos de línea para mis diferentes tipos de mapa, como este:

\tikzstyle{map}=[->,>=stealth',semithick]
\tikzstyle{incmap}=[semithick, right hook-latex]
\tikzstyle{typemap}=[->,>=latex',thin, dashed]

De esta manera, declaro todos mis nodos en el diseño que quiero y luego puedo declarar mapas entre ellos fácilmente usando \draw[<style>]. Además, puedo cambiar fácilmente el estilo de un mapa (por ejemplo, de un mapa de inclusión a uno normal) si decido que no es el correcto.

Ahora, quiero crear un estilo de flecha para mapas parciales que parezca una flecha normal con un círculo en el punto medio (sin importar la longitud de la flecha). Sé que puedo hacer esto de uno en uno, pero me gustaría poder definirlo en un estilo, de manera similar a los demás. Para aclarar, las flechas deberían verse así:

-o->
--o-->
---o--->

¿Alguna sugerencia?

No estoy usando cdla biblioteca de TikZ, pero la he comprobado y no hay nada que solucione el problema.

¡Gracias de antemano!

EDITAR:Como se sugirió, agrego aquí el MWE con mi estado inicial.

\documentclass{standalone}
\usepackage{tikz}

\usetikzlibrary{arrows,positioning,shapes}

\begin{document}
\begin{tikzpicture}[on grid,node distance=20mm]

\tikzstyle{element}=[inner sep=2pt,minimum height=1.3em,font=\itshape]
\tikzstyle{label}=[auto,midway,font=\itshape,inner sep=2pt]
\tikzstyle{map}=[->,>=stealth',semithick]
\tikzstyle{incmap}=[semithick, left hook-latex]
\tikzstyle{typemap}=[->,>=latex',thin, dashed]

\node[element] (l)  []  {L};
\node[element] (i)  [right of=l]    {I};
\node[element] (r)  [right of=i]    {R};

\draw[map]      (l) to node [label,above]   (lm)    {l}     (i);
\draw[incmap]   (r) to node [label,above]   (rm)    {r}     (i);

\end{tikzpicture}
\end{document}

Respuesta1

El uso markingsfuncionó perfectamente. Así es como lo resolví:

\documentclass{standalone}
\usepackage{tikz}

\usetikzlibrary{arrows,positioning,shapes,decorations.markings}

\begin{document}
\begin{tikzpicture}[on grid,node distance=20mm,
  decoration={markings,mark=at position 0.5 with {\draw circle [radius=.4ex];}}]

\tikzset{element/.style={inner sep=2pt,minimum height=1.3em,font=\itshape}}
\tikzset{label/.style={auto,midway,font=\itshape,inner sep=2pt}}
\tikzset{map/.style={->,>=stealth',semithick}}
\tikzset{incmap/.style={semithick, left hook-latex}}
\tikzset{partmap/.style={->,>=latex,semithick,postaction={decorate}}}

\node[element] (l)  []  {L};
\node[element] (i)  [right of=l]    {I};
\node[element] (r)  [right of=i]    {R};

\draw[partmap]  (l) to node [label,above]   (lm)    {l}     (i);
\draw[incmap]   (r) to node [label,above]   (rm)    {r}     (i);

\end{tikzpicture}
\end{document}

¡Gracias nuevamente a las personas que respondieron!

información relacionada