我想制作一个双叉(或更多叉)下支架(或上支架)。具体来说,我想控制:
- 叉的数量。
- 通过指定它们应该‘指向’等式中的哪些字符来确定叉的位置。
- 手柄的位置(以及下支架的标签)。
- 底架颜色及其标签
下面是我迄今为止获得的最接近结果的 MWE,用于字符串下方的双叉下括号nanbn
(在方程环境中),其叉应指向和a
,b
并标记为e
。它使用 tikz 中的基本树结构。
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc}
\tikzset{grow'=up}
\tikzset{level distance={16pt}}
\tikzset{edge from parent/.style={draw,edge from parent path={(\tikzparentnode.north)-- +(0pt,2pt)-| (\tikzchildnode)}}}
\newcommand{\twopf}[6]{%
\begin{tikzpicture}
\node {$#1$}
child {node {$#2$} edge from parent[draw=none]}
child {node {$#3$}}
child {node {$#4$} edge from parent[draw=none]}
child {node {$#5$}}
child {node {$#6$} edge from parent[draw=none]};
\end{tikzpicture}
}
\begin{document}
\begin{equation}
\twopf{e}{n}{a}{n}{b}{n}
\end{equation}
\begin{equation}
nanbn
\end{equation}
\end{document}
在输出中,Eq (1) 是我的尝试,而 Eq (2) 是我希望下括号上方的字符如何出现(即它们之间没有空格)。
剩下的问题是命令参数之间的等式 (1) 中出现空格\twopf
。在我的方法中,这似乎是由于“兄弟距离”的值造成的,即两个相邻兄弟叶子中心之间的距离。我研究过几个关于这个问题的问题,但未能成功控制这个参数以获得所需的效果。
我将非常感激任何指点,因为我花了很长时间却毫无进展。
答案1
我建议您使用\tikzmark
来标记您想要参考的点,然后单独进行绘制。这样您就可以将文本与您想要的下括号分开:
代码:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc,decorations.pathreplacing}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
\newcommand*{\TickLength}{1.0ex}%
\begin{document}
\begin{equation}
n \tikzmark{Mark A Left} a \tikzmark{Mark N Left}n\tikzmark{Mark N Right} b\tikzmark{Mark B Right} n
\end{equation}
\begin{tikzpicture}[overlay,remember picture, red, thick]
\draw (Mark A Left.south)
-- ++(0,-\TickLength)
-| (Mark B Right.south);
\draw ($(Mark N Left.south)!0.5!(Mark N Right.south)+(0,-\TickLength)$)
-- ++(0,-\TickLength) node [below, blue] {$e$};
\end{tikzpicture}%
\end{document}