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}

답변해주신 분들께 다시 한 번 감사드립니다!

관련 정보