我想画一条死胡同forest
。edge={-X}
不行。
例子:
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{forest}
\usepackage{mathtools}
\begin{document}
\begin{forest}
[$
\begin{psmallmatrix}
0 & ? & ? & ? \\
? & 0 & ? & ? \\
? & ? & 0 & ? \\
? & ? & ? & 0 \\
\end{psmallmatrix}
$
[X] %[,edge(-X)]
[$\begin{psmallmatrix}
0 & 1 & ? & ? \\
1 & 0 & ? & ? \\
? & ? & 0 & ? \\
? & ? & ? & 0 \\
\end{psmallmatrix}$
]
]
\end{forest}
\end{document}
我想要这样的东西:
答案1
借助decorations.markings
库,您可以使用装饰来定义样式,以便轻松应用于所需的“死胡同”边缘。一个小例子(根据需要更改“x”标记的设置):
\documentclass[a4paper]{article}
\usepackage{forest}
\usepackage{mathtools}
\usetikzlibrary{decorations.markings}
\newsavebox\mybox
\savebox\mybox{%
\tikz{
\draw[thick] (-4pt,-4pt) -- (4pt,4pt);
\draw[thick] (-4pt,4pt) -- (4pt,-4pt);
}%
}
\tikzset{
deadend/.style={
decoration={
markings,
mark=at position 1 with \node {\usebox\mybox};
},
postaction=decorate
}
}
\begin{document}
\begin{forest}
[$
\begin{psmallmatrix}
0 & ? & ? & ? \\
? & 0 & ? & ? \\
? & ? & 0 & ? \\
? & ? & ? & 0 \\
\end{psmallmatrix}
$
[\mbox{},edge={deadend}]
[$\begin{psmallmatrix}
0 & 1 & ? & ? \\
1 & 0 & ? & ? \\
? & ? & 0 & ? \\
? & ? & ? & 0 \\
\end{psmallmatrix}$
]
]
\end{forest}
\end{document}
作为曼努埃尔已经注意到他的评论,如果“x”符号不需要直立,可以简单地使用库Rays
中的箭头arrows.meta
:
\documentclass[a4paper]{article}
\usepackage{forest}
\usepackage{mathtools}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{forest}
[$
\begin{psmallmatrix}
0 & ? & ? & ? \\
? & 0 & ? & ? \\
? & ? & 0 & ? \\
? & ? & ? & 0 \\
\end{psmallmatrix}
$
[\mbox{},edge={-{Rays[length=0.5cm,width=0.5cm,line width=1pt]}}]
[$\begin{psmallmatrix}
0 & 1 & ? & ? \\
1 & 0 & ? & ? \\
? & ? & 0 & ? \\
? & ? & ? & 0 \\
\end{psmallmatrix}$
]
]
\end{forest}
\end{document}