TikZ 标签内的等号 (=)

TikZ 标签内的等号 (=)

我试图使用 TikZ 图片中的等号作为内部 TikZ 图片的子标题来比较两幅图像。

这是我的代码:

\documentclass{report}

\usepackage{amsmath} 
\usepackage{mathtools}

\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usetikzlibrary{positioning}

\begin{document}

    \begin{tikzpicture}
        \coordinate (p1) at (0,0);
        \coordinate (p2) at (-3,0);

        \node[label=below:$\mathcal{L}(B)$] (left) 
        {
            \begin{tikzpicture}[framed,scale=0.56]
                \draw (p1) -- (p2);
            \end{tikzpicture}   
        };
        \node[label=below:$\mathcal{L}^*(B)\text{$=$}\mathcal{L}(D)$,right=of left]
        {
            \begin{tikzpicture}[framed,scale=0.56]
                \draw (p2) -- (p1);
            \end{tikzpicture}
        };
    \end{tikzpicture}

\end{document}

我的解决方法是使用\text{$=$}。如果使用普通等号代替,则会产生错误。我认为 TikZ 会将此等号识别为属性的键值对分隔符。有没有不使用这种解决方法来生成普通等号的正确方法?

答案1

正如已经指出的那样杰克=由 TikZ 检测到,它根据,和解析选项=

这有效:

\node[label=below:{$\mathcal{L}^*(B)=\mathcal{L}(D)$}]

以及该:

\node[label={below:$\mathcal{L}^*(B)=\mathcal{L}(D)$}]

如果您想:在标签中包含但不指定方向(此处below:),那么您也需要保护冒号:

\tikzset{label position=below}
\node[label=here's{:} a colon]

如果使用,(在 alabel和其他地方),也需要相同的支撑,例如:

\tikzset{nodes={draw, fill, font=\tiny}}

将宏定义\equal

\newcommand*{\equal}{=}

也隐藏了=解析器,但可能不是输入公式的首选方式。

\node[label=below:$\mathcal{L}^*(B)\equal\mathcal{L}(D)$]

至少间距是正确的,而不是\text{$=$}括号从解析器隐藏的解决方法。请注意,这{ }仍然\text会产生错误的间距,并且不是这里的选项。=$L{=}L$

答案2

对我来说,这很好用

\documentclass {standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
     for tree={l+=1cm} % increase level distance
        [ $X_n  \mapsto {\lim_{n=\infty} X_n=X^*} $
        [left[lleft $a+b$ ][lright]]
        [right[rleft][rright]]
      ]
 \end{forest}
\end{document}

诀窍是应用 {} 括号。

相关内容