TikZ - Стиль для стрелки с декоратором средней точки

TikZ - Стиль для стрелки с декоратором средней точки

Я создаю своего рода коммутативную диаграмму с разными типами стрелок. До сих пор я определял разные стили линий для разных типов карт, например:

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

Таким образом, я объявляю все мои узлы в нужном мне макете, а затем могу легко объявлять карты между ними, используя \draw[<style>]. Кроме того, я могу легко переключить стиль карты (например, с карты включения на обычную), если решу, что она неверна.

Теперь я хочу создать стиль стрелки для частичных карт, который выглядит как обычная стрелка с кругом в середине (независимо от длины стрелки). Я знаю, что могу сделать это по одному, но я хотел бы иметь возможность определить это в стиле, аналогично другим. Для ясности, стрелки должны выглядеть так:

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

Какие-либо предложения?

Я не использую библиотеку TikZ cd, но я проверил ее, и нет ничего, что могло бы решить проблему.

Заранее спасибо!

РЕДАКТИРОВАТЬ:Как и предлагалось, я добавляю сюда MWE с моим первоначальным статусом.

\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}

решение1

Использование markingsсработало отлично. Вот как я решил эту проблему:

\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}

Еще раз спасибо всем, кто ответил!

Связанный контент