Flecha de inclusión en TikZ

Flecha de inclusión en TikZ

¿Cómo puedo darle forma a alguna flecha en tikz, para dibujar la flecha de inclusión?

Leí una pregunta similar¿Cómo componer la flecha de inclusión?con la respuesta dada, pero la respuesta realmente no usaba TikZ, que realmente necesito para producir diagramas grandes y bonitos.

Por ejemplo, en este diagrama (tomado de aquí), quiero, digamos, que A se incluya en A' :

\matrix (m) [matrix of math nodes, row sep=3em, column sep=3em]
{ 0 & A  & B  & C  & 0 \\
  0 & A' & B' & C' & 0 \\ };
 { [start chain] \chainin (m-1-1);
\chainin (m-1-2);
{ [start branch=A] \chainin (m-2-2)
    [join={node[right,labeled] {\eta_1}}];}
\chainin (m-1-3) [join={node[above,labeled] {\varphi}}];
{ [start branch=B] \chainin (m-2-3)
    [join={node[right,labeled] {\eta_2}}];}
\chainin (m-1-4) [join={node[above,labeled] {\psi}}];
{ [start branch=C] \chainin (m-2-4)
    [join={node[right,labeled] {\eta_3}}];}
\chainin (m-1-5); }
 { [start chain] \chainin (m-2-1);
\chainin (m-2-2);
\chainin (m-2-3) [join={node[above,labeled] {\varphi'}}];
\chainin (m-2-4) [join={node[above,labeled] {\psi'}}];
\chainin (m-2-5); }

Respuesta1

Para diagramas conmutativos sugiero usar eltikz-cdpaquete; se utiliza TikZpara facilitar el dibujo de diagramas conmutativos (tiene su propia biblioteca de flechas diseñada para diagramas y la flecha que buscas ya está incorporada); un pequeño ejemplo con la inclusión solicitada (y algunos otros solo a modo ilustrativo):

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
0 \arrow[hookrightarrow]{r} 
  & A\arrow[hookrightarrow]{r}{\varphi}\arrow[hookrightarrow]{d}{\eta_1} 
  & B\arrow{r}{\psi}\arrow{d}{\eta_2} 
  & C\arrow{r}\arrow{d}{\eta_3} 
  & 0 \\
0 \arrow[hookrightarrow]{r} 
  & A'\arrow[hookrightarrow]{r}[swap]{\varphi'} 
  & B'\arrow{r}[swap]{\psi'} 
  & C'\arrow{r}
  & 0 
\end{tikzcd}
\end{document}

ingrese la descripción de la imagen aquí

Puedes usar la arrowsbiblioteca de TikZ, así que, por ejemplo, para usar el -latexestilo de TikZ, puedes decir

\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{arrows}

\tikzset{
commutative diagrams/.cd,
arrow style=tikz,
diagrams={>=latex}}

\begin{document}


\begin{tikzcd}
0 \arrow[hookrightarrow]{r} 
  & A\arrow[hookrightarrow]{r}{\varphi}\arrow[hookrightarrow]{d}{\eta_1} 
  & B\arrow{r}{\psi}\arrow{d}{\eta_2} 
  & C\arrow{r}\arrow{d}{\eta_3} 
  & 0 \\
0 \arrow[hookrightarrow]{r} 
  & A'\arrow[hookrightarrow]{r}[swap]{\varphi'} 
  & B'\arrow{r}[swap]{\psi'} 
  & C'\arrow{r}
  & 0 
\end{tikzcd}
\end{document}

ingrese la descripción de la imagen aquí

El código anterior cambia el estilo de la flecha de punta para todos los diagramas, pero puede seleccionar la punta de flecha -latex solo para algunas flechas (quizás no sea realmente deseable tener dos puntas de flecha diferentes en el mismo diagrama):

\arrow[hookrightarrow,-latex]{d}{\eta_1}

Respuesta2

Puedes usar la flecha right hook-latexo right hook->(dependiendo del tipo de flecha que quieras en el otro lado) de la arrowsbiblioteca:

ingrese la descripción de la imagen aquí

Código:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}
  \draw [ultra thick, right hook-latex, red] (0, 0) -- (3, 0);     
  \draw [ultra thick, right hook->,    blue] (0,-1) -- (3,-1);
\end{tikzpicture}
\end{document}

información relacionada