TikZ 路径装饰:如何包含度数符号

TikZ 路径装饰:如何包含度数符号

我习惯在 LaTeX 中使用度数符号,并且知道创建度数符号的大部分方法。但是,我无法在文本装饰中使用度数符号。在下面的例子中,我仅包含度数符号来说明我的问题:

\path [decorate,decoration={text along path,raise=-2.4ex,text align={left indent=1.1cm},
text={|\sffamily\normalsize\color{MediumBlue}|D U S K~~~at latitude 31.5°N}}]
plot[smooth,tension=0.5] coordinates{   <list of coordinates>   };

(抱歉,这不是正确的 MWE,而只是一个省略了坐标的 tikz 命令。)

错误信息如下。源文件和 TeX 文件是 UTF-8 编码(根据 Notepad++)。我还附上了声明\usepackage[utf8]{inputenc}

在此处输入图片描述

更新:

这是请求的 MWE...

\documentclass[a4paper,portrait]{minimal}
\usepackage{tikz}
\usetikzlibrary{spath3}
\usetikzlibrary{decorations.text}   % to print text on a curve
\begin{document}
\begin{tikzpicture}
\path[spath/save=test] plot[smooth,tension=0.5] coordinates{(0,1.1) (2,0.8) (4,1.0) (6,0.5) (8,0.7)};
\draw [spath/use=test];
\path [decorate,decoration={text along path,raise=-2.4ex,text align={left indent=1.1cm},
text={|\sffamily\normalsize\color{blue}|D U S K~~~at latitude 51.5°N}}]
plot[smooth,tension=0.5] coordinates{(0,1.1) (2,0.8) (4,1.0) (6,0.5) (8,0.7)};
\end{tikzpicture}
\end{document}

感谢您Qrrbrbirlbel提供正确的答案,我将在下面发布。

答案1

感谢Qrrbrbirlbel谁的评论是正确的。更正后的 MWE 为:

\documentclass[a4paper,portrait]{minimal}
\usepackage{tikz}
\usetikzlibrary{spath3}
\usetikzlibrary{decorations.text}   % to print text on a curve
\begin{document}
\begin{tikzpicture}
\path[spath/save=test] plot[smooth,tension=0.5] coordinates{(0,1.1) (2,0.8) (4,1.0) (6,0.5) (8,0.7)};
\draw [spath/use=test];
\path [decorate,decoration={text along path,raise=-2.4ex,text align={left indent=1.1cm},
text={|\sffamily\normalsize\color{blue}|D U S K~~~at latitude 51.5{°}N}}]
plot[smooth,tension=0.5] coordinates{(0,1.1) (2,0.8) (4,1.0) (6,0.5) (8,0.7)};
\end{tikzpicture}
\end{document}

并且生成的 PDF 显示...

在此处输入图片描述

为什么我犹豫是否要在文本中添加括号来装饰?因为括号内的内容会被旋转,就好像它们只是一个字符一样。为了说明这一点,只需将整个文本放在括号内即可:

\path [decorate,decoration={text along path,raise=-2.4ex,text align={left indent=1.1cm},
text={|\sffamily\normalsize\color{blue}|{D U S K~~~at latitude 51.5{°}N}}}]
plot[smooth,tension=0.5] coordinates{(0,1.1) (2,0.8) (4,1.0) (6,0.5) (8,0.7)};

这会导致以下不正确的装饰:

在此处输入图片描述

所以请注意这个副作用。只旋转一个字符是故意的,所以两种解决方案都Qrrbrbirlbel提供了所需的解决方案。再次感谢!

附言

值得一提的是,在序言中加入以下一行使用{°}也有效,并给你一个更大的度数符号(或者更准确地说是一个凸起的圆圈):

\DeclareUnicodeCharacter{00B0}{\ensuremath{{}^\circ}}

作为一种装饰,这种效果可能更令人愉悦/易读:

在此处输入图片描述

相关内容