我想要一个tikz
图表,上面有一个箭头连接文本和数学部分。我有以下代码,但一旦“数学”处于数学环境中(即:),它就不起作用了$Math$
:
\documentclass[10pt]{beamer}
\usetheme[progressbar=frametitle]{metropolis}
\usepackage{appendixnumberbeamer}
\usepackage{booktabs}
\usepackage[scale=2]{ccicons}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usepackage{xspace}
\newcommand{\themename}{\textbf{\textsc{metropolis}}\xspace}
\usepackage{tikz}
\usepackage{adjustbox}
\usetikzlibrary{calc}
\usetikzlibrary{patterns}
\usetikzlibrary{matrix,decorations.pathreplacing}
\usetikzlibrary{arrows,positioning}
\title{title}
\author{Author}
\date{}
\begin{document}
\begin{frame}{Frame Title}
\begin{tikzpicture}
[->,>=stealth',shorten >=1pt,auto,node distance=3cm,
,main node/.style={font=\sffamily\small\bfseries}]
\node[main node] (Text) {Text};
\node[main node,above=.5cm of Text] ($Math$) {$Math$};
\path[]
(Text) edge node [] {\rotatebox[origin=cc]{90}{}} ($Math$);
\end{tikzpicture}
\end{frame}
\end{document}
答案1
节点的名称和节点的内容是独立的实体,它们不必是相同的文本。我建议不要在节点名称中使用任何特殊字符,例如
\node[main node,above=.5cm of Text] (Math) {$Math$};
代替
\node[main node,above=.5cm of Text] ($Math$) {$Math$};
另外,请注意,加载calc
库时会激活($ ... $)
坐标计算的语法,这可能与此处的失败有关。例如,如果您这样做
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node (Text) {Text};
\node ($Math$) at (2,0) {$Math$};
%\draw (Text) -- ($Math$);
\end{tikzpicture}
\end{document}
这个特定的例子有效,但是如果你取消注释它\draw
就会失败,因为 TikZ 试图在节点上使用该calc
库$Math$
。