Latex 带tikz的树和宏

Latex 带tikz的树和宏,latex,tikz,pgf,Latex,Tikz,Pgf,我试图用宏来构建我的树,但是我没有得到我想要的结果。下面是一个简单的例子: \documentclass{article} \usepackage{tikz} \usetikzlibrary{trees} \newcommand{\LeafNode}[1]{% child {node {#1}} } \newcommand{\InnerNode}[3]{% child {node {#3} #1 #2 } } \begi

我试图用宏来构建我的树,但是我没有得到我想要的结果。下面是一个简单的例子:

\documentclass{article} \usepackage{tikz} \usetikzlibrary{trees} \newcommand{\LeafNode}[1]{% child {node {#1}} } \newcommand{\InnerNode}[3]{% child {node {#3} #1 #2 } } \begin{document} \begin{tikzpicture} \node (A) {A} \LeafNode{B} \LeafNode{C} ; \end{tikzpicture}% \hspace{2cm}% \begin{tikzpicture} \node (A) {A} \InnerNode{\LeafNode{D}}{\LeafNode{E}}{B} \LeafNode{C} ; \end{tikzpicture} \end{document} \documentclass{article} \usepackage{tikz} \usetikzlibrary{trees} \新命令{\LeafNode}[1]{% 子{node{1} } \新命令{\InnerNode}[3]{% 子节点{3} #1 #2 } } \开始{document} \开始{tikzpicture} \节点(A){A} \叶节点{B} \叶节点{C} ; \结束{tikzpicture}% \hspace{2cm}% \开始{tikzpicture} \节点(A){A} \InnerNode{\LeafNode{D}{\LeafNode{E}}{B} \叶节点{C} ; \结束{tikzpicture} \结束{document} 我预计这将产生两棵树:

A A / \ / \ B C B C / \ D E A / \ / \ B C B C / \ D E 但我得到了:

A | A B | | B D | | C C A. | A B | | B-D | | 丙 我是错过了什么还是没有办法

顺便说一句,如果我省略根节点上的标签,我会得到一个PGF错误:

! Package pgf Error: No shape named is known. ! 程序包pgf错误:未知名为的形状。
--Tsf

这不是对您问题的直接回答,但您可以查看。它为创建树提供了一种更简单的语法。

似乎LaTeX隐式地将\newcommand的输出分组。那么,结果呢,

\begin{tikzpicture}
 \node (A) {A}
    \LeafNode{B}
    \LeafNode{C}
 ;
\end{tikzpicture}
与此相同:

 \begin{tikzpicture}
 \node (A) {A}
   {child {node {B}}}
   {child {node {C}}}
 ;
\end{tikzpicture}
TikZ扫描显式“子”关键字,当它隐藏在命令或块中时找不到它


我不知道如何解决这个问题,但我看不出你的宏让语法变得更简单。

没错,但我已经有很多使用纯tikz的材料,不想混合这两种样式。谢谢Tsf