如何以简单的方式在 tikz 图中将任意文本用作节点名称?

如何以简单的方式在 tikz 图中将任意文本用作节点名称?

我想使用 tikz graph 绘制函数调用关系图。但我对 C 编程语言中的函数名称感到困惑,因为函数名称中允许使用下划线。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs}
\usepackage{shortvrb}
\MakeShortVerb{\|}

\begin{document}
|func_one()| calls |func_two()|:

\tikz \graph {
    "|func_one()|" -> "|func_two()|";
};
\end{document}

对于上面的例子,TeX 抱怨

Missing $ inserted. }

有没有一种简单的方法可以让 C 函数名称成为 tikz 图节点的名称,而无需对函数名称进行太多处理?就我而言,调用图中会有许多函数,每个名称可能包含多个下划线。唉。

提前致谢。

答案1

您可以\catcode\_=11在图片前使用,或者如果您乐意使用\scantokens,您可以尝试使用键使用自定义排版机/tikz/graphs/typeset

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs}
\def\typesetter{{\catcode`\_=11
\ttfamily\expandafter\scantokens\expandafter{\tikzgraphnodetext}}}
\begin{document}
\tikz\graph [typeset=\typesetter, grow down] {
  "func_one()" -> "func_two()";
};
\end{document} 

在此处输入图片描述

相关内容