如何為 tikz 中的某些箭頭賦予形狀以繪製包含箭頭?
我讀過類似的問題如何排版包含箭頭?給出了答案,但答案並沒有真正使用 TikZ,我確實需要它來產生漂亮的大圖表。
例如,在此圖中(取自 這裡),我希望 A 包含在 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); }
答案1
對於交換圖,我建議使用tikz-cd
包裹;它用於TikZ
促進交換圖的繪製(它有自己的專為圖表設計的箭頭庫,並且您正在尋找的箭頭已經內建);一個包含所請求內容的小範例(以及其他一些範例僅用於說明):
\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}
您可以使用arrows
from 的庫TikZ
,例如,要使用-latex
from 的樣式TikZ
,您可以說
\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}
上面的程式碼更改了所有圖表的提示箭頭樣式,但您可以僅為某些箭頭選擇 -latex 箭頭提示(也許並不真正希望在同一個圖表上有兩個不同的箭頭提示):
\arrow[hookrightarrow,-latex]{d}{\eta_1}
答案2
您可以使用庫中的right hook-latex
, 或right hook->
箭頭(取決於另一側所需的箭頭類型)arrows
:
代碼:
\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}