新手生活:让manim运行tikz的持续困难

2024-05-23 15:49:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我观看了关于如何让manim使用tikz的视频,并跟踪了几个线程来解决问题,但似乎没有任何帮助

我修改了tex_template.tex以包含必要的包,并将文档类更改为“preview,dvisvgm”

我还修改了tex_file_writing.py以包括

"--libgs='/usr/local/Cellar/ghostscript/9.26_1/lib/libgs.dylib'"

在dvi_to_svg部分

尽管如此,我仍然得到:异常:转换为dvi时出现Latex错误。当你想跑的时候

from manimlib.imports import *

class OutFit(Scene):
     def construct(self):

         TreeDiagram = TexMobject(r"""
            \begin{tikzpicture}[level distance=5em, level 1/.style={sibling distance=5cm},
  level 2/.style={sibling distance=2.5cm}, level 3/.style={sibling distance=1cm},
  every node/.style = {shape=rectangle, rounded corners,
    draw, align=center,
    top color=white, bottom color=blue!20}]]
 \node  {Start}
    child { node {$s_1$} 
        child { node {$p_1$}
        child { node{$f_1$}}
        child {node{$f_2$}}}
    child { node {$p_2$}
        child { node{$f_1$}}
        child {node{$f_2$}}}}
    child { node {$s_2$} 
        child { node {$p_1$}
        child {node {$f_1$}}
        child {node {$f_2$}}}
    child { node {$p_2$}
        child {node {$f_1$}}
        child {node {$f_2$}}}}
    child { node {$s_3$}
        child { node {$p_1$}
        child {node {$f_1$}}
        child {node {$f_2$}}}
    child { node {$p_2$}
        child {node {$f_1$}}
        child {node {$f_2$}}}};

\end{tikzpicture}""")

        self.play(Write(TreeDiagram))

非常感谢您的帮助


Tags: selfnodechildstylelevelcolordistancetex
1条回答
网友
1楼 · 发布于 2024-05-23 15:49:04

为什么用TexMobject代替TextMobject?提问前请多加注意。您还需要manimlib/tex_template.tex文件中包含的tikz包

无论如何,不建议这样做,因为您正在滥用LaTeX函数,最好也是最优化的方法是创建一个类来生成您想要的树,但是这个类您必须自己编程,因为它不存在Manim中包含的类似这样的类,这并不难

class OutFit(Scene):
    def construct(self):

        tree_diagram = TextMobject(r"""
            \begin{tikzpicture}[level distance=5em, level 1/.style={sibling distance=5cm},
  level 2/.style={sibling distance=2.5cm}, level 3/.style={sibling distance=1cm}]
 \node  {Start}
    child { node {$s_1$} 
        child { node {$p_1$}
        child { node{$f_1$}}
        child {node{$f_2$}}}
    child { node {$p_2$}
        child { node{$f_1$}}
        child {node{$f_2$}}}}
    child { node {$s_2$} 
        child { node {$p_1$}
        child {node {$f_1$}}
        child {node {$f_2$}}}
    child { node {$p_2$}
        child {node {$f_1$}}
        child {node {$f_2$}}}}
    child { node {$s_3$}
        child { node {$p_1$}
        child {node {$f_1$}}
        child {node {$f_2$}}}
    child { node {$p_2$}
        child {node {$f_1$}}
        child {node {$f_2$}}}};

\end{tikzpicture}""",stroke_width=1,fill_opacity=0)
        
        tree_diagram.set_width(FRAME_WIDTH-1)

        self.play(Write(tree_diagram))

enter image description here

相关问题 更多 >