我在 tikz 中沿弧线显示文本,并且希望该文本包含度数符号(摄氏度)。但是,pdflatex 似乎挂在我的代码上。
我已将问题简化为 MWE,并且它重现了。我在 Ubuntu Linux 上使用 texstudio 和 texlive 工作。
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{tikz}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\path[ postaction={ decorate },
decoration={
text along path,
text={|\small\color{black}|Temperature: 0 to 100 \textdegree C},
text align = {center},
raise = -8pt
}
]
(-0.5 * 0.5in * 3.26, -0.866025404 * 0.5in * 3.26)
arc(240:-60:0.5in * 3.26);
\end{tikzpicture}
\end{document}
有人知道哪里出了问题吗?我该如何解决这个问题?
答案1
来自 tikzdecorations.text
库手册:
文本中的每个字符都排版在单独的 \hbox 中。这意味着如果您想要字距调整或连字等花哨的东西,您将不得不手动注释组内装饰文本中的字符。
您需要将命令放在一个组中
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{tikz}
\usetikzlibrary{decorations.text}
\usepackage{gensymb}
\begin{document}
\begin{tikzpicture}
\path[postaction={decorate},
decoration={
text along path,
text={|\small\color{black}|Temperature: 0 to 100 {\textdegree} C},
text align = {center},
raise = -8pt
}
]
(-0.5 * 0.5in * 3.26, -0.866025404 * 0.5in * 3.26)
arc(240:-60:0.5in * 3.26);
\end{tikzpicture}
\end{document}
答案2
特殊内容如\textdegree
应成对出现{...}
。但我建议使用\SI{0}{\degree}
etc. 而不是\textdegree C
。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{siunitx}
\usepackage{tikz}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\path[ postaction={ decorate },
decoration={
text along path,
text={|\small\color{black}|Temperature: {\SI{0}{\degree}} to {\SI{100}{\degree}}},
text align = {center},
raise = -8pt
}
]
(-0.5 * 0.5in * 3.26, -0.866025404 * 0.5in * 3.26)
arc(240:-60:0.5in * 3.26);
\end{tikzpicture}
\end{document}