我想使用 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}