![如何在 TikZ 文本弧内渲染数学(或 PNG)?](https://linux22.com/image/406423/%E5%A6%82%E4%BD%95%E5%9C%A8%20TikZ%20%E6%96%87%E6%9C%AC%E5%BC%A7%E5%86%85%E6%B8%B2%E6%9F%93%E6%95%B0%E5%AD%A6%EF%BC%88%E6%88%96%20PNG%EF%BC%89%EF%BC%9F.png)
我试图将“六角点”符号放入文本弧中tikz
,但没有成功。
这是我的尝试:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.text}
\usepackage{graphicx}
\usepackage{amsmath,amssymb}
\newcommand{\hexdot}{$\therefore\atop\because$}
\begin{document}
\begin{tikzpicture}
\node (myfirstpic) at (0,0) {\includegraphics{round_test_image.png}};
\node (One) at (-5,0) {};
\node (Two) at (5,0) {};
\def\myshift#1{\raisebox{-2.5ex}}
\draw [-,thick,black!0,postaction={decorate,decoration={text along path,text align=center,text={|\myshift|B\hexdot{} O\hexdot{} T\hexdot{} T\hexdot{} O\hexdot{} M\hexdot{} T\hexdot{} E\hexdot{} X\hexdot{} T\hexdot{}}}}] (One) to [bend right=45] (Two);
\def\myshift#1{\raisebox{1ex}}
\draw [-,thick,black!0,postaction={decorate,decoration={text along path,text align=center,text={|\myshift|T\hexdot{} O\hexdot{} P\hexdot{} T\hexdot{} E\hexdot{} X\hexdot{} T\hexdot{}}}}] (One) to [bend left=45] (Two);
\end{tikzpicture}
\end{document}
我可以将\hexdot
或添加\hexdot{}
到节点标签或文档中的其他位置,并使其正确显示。但是,如果我将其放在底部文本弧或上部文本弧中,文档在尝试渲染时会永远挂起。如果我在没有任何\hexdot{}
符号的情况下编写弧,它就可以正常工作。
我也尝试使用 .png 版本的 hexdot 字符,但这也不起作用,因为渲染也会无限期挂起。
任何帮助都将不胜感激!非常感谢。
答案1
您需要将数学内容括在括号中。(此外,您可能希望使用\genfrac
或 之类的东西来代替\atop
。此答案也适用于您的宏。)
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.text}
\usepackage{graphicx}
\usepackage{amsmath,amssymb}
\newcommand{\hexdot}{$\genfrac{}{}{0pt}{}{\therefore}{\because}$}
\begin{document}
\begin{tikzpicture}
\node (myfirstpic) at (0,0) {\includegraphics{example-image-a.png}};
\node (One) at (-5,0) {};
\node (Two) at (5,0) {};
\def\myshift#1{\raisebox{-2.5ex}}
\draw [-,thick,black!0,postaction={decorate,decoration={text along path,text align=center,text={|\myshift|B{\hexdot} O{\hexdot} T{\hexdot} T{\hexdot} O{\hexdot} M{\hexdot} T{\hexdot} E{\hexdot} X{\hexdot} T{\hexdot}}}}] (One) to [bend right=45] (Two);
\def\myshift#1{\raisebox{1ex}}
\draw [-,thick,black!0,postaction={decorate,decoration={text along path,text align=center,text={|\myshift|T{\hexdot} O{\hexdot} P{\hexdot} T{\hexdot} E{\hexdot} X{\hexdot} T{\hexdot}}}}] (One) to [bend left=45] (Two);
\end{tikzpicture}
\end{document}
由于我没有您的 png 图像,因此我使用大多数 TeX 安装中包含的图像。