TikzPicture 错误:缺少插入 $

TikzPicture 错误:缺少插入 $

我的代码在另一台计算机上可以运行,但在另一台计算机上却出现错误:

Missing $ inserted. };

这是 .tex :

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}[grow=right]
\node {}
  child [sibling distance=20ex] { node {T}
    child [sibling distance=10ex] { node {T}
      child [sibling distance=5ex]
        { node [anchor=west] { T $\cdots$ (T,T,T)\; $p = \frac{1}{8}$ } }
      child [sibling distance=5ex]
        { node [anchor=west] { H $\cdots$ (T,T,H)\; $p = \frac{1}{8}$ } }
    }
    child [sibling distance=10ex] { node {H}
      child [sibling distance=5ex]
        { node [anchor=west] { T $\cdots$ (T,H,T)\; $p = \frac{1}{8}$ } }
      child [sibling distance=5ex]
        { node [anchor=west] { H $\cdots$ (T,H,H)\; $p = \frac{1}{8}$ } }
    }
  }
  child [sibling distance=20ex] { node {H}
    child [sibling distance=10ex] { node {T}
      child [sibling distance=5ex]
        { node [anchor=west] { T $\cdots$ (H,T,T)\; $p = \frac{1}{8}$ } }
      child [sibling distance=5ex]
        { node [anchor=west] { H $\cdots$ (H,T,H)\; $p = \frac{1}{8}$ } }
    }
    child [sibling distance=10ex] { node {H}
      child [sibling distance=5ex]
        { node [anchor=west] { T $\cdots$ (H,H,T)\; $p = \frac{1}{8}$ } }
      child [sibling distance=5ex]
        { node [anchor=west] { H $\cdots$ (H,H,H)\; $p = \frac{1}{8}$ } }
    }
  };
\end{tikzpicture}

\end{document}

我从 Julia 中的 TikzPictures 包中获取了此信息,用于创建概率结果图。但它在 Julia 或 LaTeX 中均无法使用。

这个 tex 代码有什么问题?在另一台计算机上它可以正常工作。

答案1

罪魁祸首最有可能是\;在文本模式下使用的。

ltnews32“间距命令从 amsmath 移至内核”,此更改发生在 2020-10 年,因此我猜您的 LaTeX 安装比这更旧。\usepackage{amsmath}在序言中使用,以使您的代码在旧安装上运行。

答案2

编辑:
大部分都是主题,因为您的 MWE 使用最新版本的 MiKTeX 进行编译,运行良好。

然而,

  • sibling distance我会把对s 和节点anchor设置的所有决定都移到tikzpicture选项中,
  • 删除\;括号中的术语与概率值之间的额外距离。它们对这些距离的贡献不大,但可能在较旧的 LaTeX 安装中(如@Skillmon 在其评论中指出的那样)造成问题。
  • 如果由于某些原因,这个距离很重要,并且您无法升级 LaTeX 安装,请移至\;数学环境。例如:
{ node {T $\cdots$ (H,H,T) $\;p=\frac{1}{8}$ } }

通过这种改变,树的代码变得更短并且树仍然看起来很漂亮:

\documentclass[tikz]{standalone}

\begin{document}
    \begin{tikzpicture}[
every node/.style = {anchor=west},
level 1/.style = {sibling distance=20ex},
level 2/.style = {sibling distance=10ex},
level 3/.style = {sibling distance=5ex},
grow=right
                        ]
\node {}
  child { node {T}
    child  { node {T}
      child { node { T $\cdots$ (T,T,T)  $p = \frac{1}{8}$ } }
      child { node { H $\cdots$ (T,T,H)  $p = \frac{1}{8}$ } }
            }
    child  { node {H}
      child { node { T $\cdots$ (T,H,T)  $p = \frac{1}{8}$ } }
      child { node { H $\cdots$ (T,H,H)  $p = \frac{1}{8}$ } }
            }
        }
  child { node {H}
    child  { node {T}
      child { node { T $\cdots$ (H,T,T)  $p = \frac{1}{8}$ } }
      child { node { H $\cdots$ (H,T,H)  $p = \frac{1}{8}$ } }
            }
    child  { node {H}
      child { node { T $\cdots$ (H,H,T) $p = \frac{1}{8}$ } }
      child { node { H $\cdots$ (H,H,H) $p = \frac{1}{8}$ } }
            }
         };
\end{tikzpicture}
\end{document}

在此处输入图片描述

不过,我更愿意使用forest包来绘制这棵树。它是一个功能强大的
专门用于绘制树的包。它的代码语法可以编写非常简洁明了的代码:

\documentclass[margin=3mm]{standalone}
\usepackage{forest}

\begin{document}
    \begin{forest}
for tree = {
   inner sep = 2pt,
child anchor = west,
       grow  = east,
       l sep = 7 mm,
       s sep = 4 mm,
 where level = 2{s sep=0mm}{}  % insert different `s sep`
                               % at level 2, which then appear
                               % after each second node in the
                               % end of the tree
            }
[   
    [T
        [T
            [{T $\cdots$ (T,T,T)  $p = \frac{1}{8}$}]
            [{H $\cdots$ (T,T,H)  $p = \frac{1}{8}$}]
        ]
        [H 
            [{T $\cdots$ (T,H,T)  $p = \frac{1}{8}$}]
            [{H $\cdots$ (T,H,H)  $p = \frac{1}{8}$}]
        ]
    ]
    [H
        [T
            [{T $\cdots$ (H,T,T)  $p = \frac{1}{8}$}]
            [{H $\cdots$ (H,T,H)  $p = \frac{1}{8}$}]
        ]
        [H
            [{T $\cdots$ (H,H,T) $p = \frac{1}{8}$}]
            [{H $\cdots$ (H,H,H) $p = \frac{1}{8}$}]
        ]
    ]
];
\end{forest}
\end{document}

在此处输入图片描述

相关内容