节点偏移量 - 节点周围的 psbrace

节点偏移量 - 节点周围的 psbrace

我已经在问题中问过了使用 pstree/pstricks 描述带有下支撑的树叶如何使用下支撑。现在我想使用\Tfan而不是\Tf,但角度技巧似乎不起作用(我也不太明白它为什么与 一起使用\Tf)。我必须将 附加psbrace在节点的中心,但要稍微偏移一点 -psbrace应该长一点。

Herbert Voß 提供了解决方案邮件列表帖子,不幸的是,我不明白那里使用的方法,无法将它们应用于我的问题。他建议基本上有两种方法。

一种是用\rnode{A}{$a$}来代替\rnode[bc]{A}{$a$\vphantom{gt}}。但我无法让它按预期在水平空间中工作。

第二种方法是将psbracenot 连接到(A)but (!\psGetNodeCenter{A} A.x A.y .2 sub)。这叫什么名字?!whatever它的语法是怎样的?我该如何采用这种方法?

最小示例的输出

\documentclass[english]{article}

\usepackage{pst-plot}
\usepackage{pstricks}
\usepackage{pst-node}
\usepackage{pst-tree}
\usepackage{pstricks-add}

\usepackage{babel}
\begin{document}
    \begin{pspicture}(1,-5)
    \pstree[levelsep=50pt,treesep=12pt]{\Tcircle{ }} {
        \skiplevel { 
          \Tf[name=firstleaf]{}
          \Tf{}
          {\psset{linestyle=none}  \Tr{$\cdots$} }
          \Tf[name=lastleaf]{}
        }

        \tspace{1.5cm}

        \pstree{\Tr{ }}{\Tfan[name=firstantree]}
        {\psset{linestyle=none}  \Tr{$\cdots$} }
        \pstree{\Tr{ }}{\Tfan[name=lastantree]}
    }
    \psbrace*[ref=tC,rot=90,nodesep=5pt]([angle=-165]firstleaf)([angle=-15]lastleaf){leaves} 

    \psbrace*[rot=90,ref=tC,nodesep=5pt,nodesepA=-5pt](firstantree)(lastantree){subrees}

    \end{pspicture}
\end{document}

答案1

使用

\psbrace*[rot=90,ref=tC,nodesep=5pt,nodesepA=-5pt]%
  ([Xnodesep=-1.5em]firstantree)([Xnodesep=1.5em]lastantree){subrees}

答案2

下面的答案也许应该是一条评论,但它太大了。

你为什么不在邮件列表中问这个问题?pstricks接受不同类型的坐标输入。通常你使用(x,y),但你也可以使用其他输入方法,如(! x y )

下面是一小部分集合:

  • (x,y)-- 正常笛卡尔输入
  • (r;a)-- r=半径; a=角度 -- 极坐标
  • (! x y)-- 后记符号。此处将在后记级别计算坐标
  • (* x {f(x)})-- 使用函数计算与 x 坐标相关的 y 坐标
  • (Nodename)-- 使用定义的节点
  • ( x1,y1 | x2,y2 )使用第一组的 x 坐标和第二组的 y 坐标。可以进行更复杂的计算。

文档中还展示了许多其他可能性。不过我不想在这里展示所有内容。

该命令\psGetNodeCenter接受一个强制参数,即节点。该命令接受节点并允许分别处理 x 和 y 坐标。此命令仅在 PostScript 中有效,因此您必须使用坐标形式(! x y)。语法本身遵循逆波兰表示法。示例:将两个数字相加作为 x 坐标,将一个数字相加作为 y 坐标

(! 2.2 3.4 add 5)

这相当于x=2.2+3.4=5.6y=5,所以最后一点是 (5.6,5)

相关内容