如何在 TikZ 中为 DWT 制作图表?

如何在 TikZ 中为 DWT 制作图表?

我想使用 overleaf 中的 tikz-cd 包制作类似下图的图表。 在此处输入图片描述

我可以这样做:

\documentclass[a4paper, 12pt, twoside]{article}
% ------------ Packages ------------ %
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[top=2cm, bottom=2cm, left=2.5cm, right=2.5cm]{geometry}
\usepackage{amssymb}
\usepackage{amsmath}    
\usepackage{mathtools}  
\usepackage{tikz-cd}    
% --------------------------------------
\begin{document}    
\begin{tikzcd}[cramped, column sep=tiny]
1 \arrow[to=d21, dashed]& 1 \arrow[to=d21, dashed]\\
&|[alias=d21]| 0\\
\end{tikzcd}
\end{document}

在此处输入图片描述

但无法集中化。那么,我该如何在 LaTeX 中做到这一点?我想添加另一个这样的列:

\documentclass[a4paper, 12pt, twoside]{article}
% ------------ Packages ------------ %
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[top=2cm, bottom=2cm, left=2.5cm, right=2.5cm]{geometry}
\usepackage{amssymb}
\usepackage{amsmath}    
\usepackage{mathtools}  
\usepackage{tikz-cd}    
% --------------------------------------
\begin{document}
\begin{tikzcd}
1  \arrow[to=d21, dashed] && 1 \arrow[to=d21, dashed]\\
&|[alias=d21]| 0\\
\end{tikzcd}
\end{document}

在此处输入图片描述

但如果我需要添加其他行,那么这将适得其反。

此外,我无法插入系数 y_i、d_2、c_2、...、c_0。

问题:

  1. 我怎样才能将系数 y_i、d_2、c_2、...、d_0、c_0 放在右边?
  2. 我怎样才能像第一个图形那样自动对齐线条?

如果需要使用另一个包,也没有问题。

观察:虚线箭头表示减法,实线箭头表示加法。

答案1

我认为tikz-cd这是错误的工具。我建议改用forest

在此处输入图片描述

\documentclass{article}

\usepackage{forest}

\begin{document}

\begin{forest}
for tree={inner sep=1pt,
    grow'=north, s sep=10mm,
    math content,
    edge={densely dashed,<-},
    if n children=1{for children={no edge}}{},
    if level<=1{no edge}{if n children=2{for children={tikz={\draw[->]()--(!uu);}}}{}}
}
[
[42
    [6
        [18
            [14
                [2
                    [0[1][1]]
                ]
                [16
                    [2[7][9]]
                ]
            ]
        ]
        [24
            [4
                [10
                    [6[2][8]]
                ]
                [14
                    [-2[8][6]]
                ]
            ]
        ]
    ]
]
[c_0[d_0[c_1[d_1[c_2[d_2[y_i]]]]]]]
]
\end{forest}

\end{document}

相关内容