xshift=1.0em
我经常使用,例如,或来移动 TikZ/PGFplot 图表上的标签yshift=1.0ex
。这些是用于移动的正确单位吗?我不认为我应该使用绝对单位,因为如果字体大小发生变化,这些单位不会调整,类似于这个问题在 LaTeX 中应该使用哪些测量单位?。
想知道由于这与普通文本无关,是否有什么特殊注意事项需要我牢记?
答案1
这比 TeX 更具排版风格。
- 这里的“自然”单位似乎是
\baselineskip
——两个基线之间的距离。 - 线条粗细也取决于所使用的字体,但没有与之相关的相对单位。
一些解释:
- 标签的位置并不直接取决于字体大小,而是取决于领导。这是因为图形必须具有与文本相同的文本间距和颜色。并且可以设置具有不同行距的同一种字体。因此,这里的“自然”宽度似乎是
\baselineskip
- 两个基线之间的距离。这是垂直定位。水平定位是相同的,或者根据字体比例有一个商。因为有从超窄到超宽的字体。 - 所有线条艺术中使用的线宽也取决于所用的字体。通常它与X两条线相交点附近的线粗细。这就像大小
ex
与X高度。但不幸的是,没有与之相关的相对单位。例如,如果电脑现代(细线)被使用,然后被切换到,比如说,教科书(粗线),则必须增加图表上的线条粗细,以匹配所用新字体的深色。
答案2
对 Karl Karlsson 的精彩回答进行补充:
在某些情况下,您可能希望使用当前图的线宽(而不是字体的线宽)来移动标签。您可以使用\pgflinewidth
它来实现这一点。但是,这仅在带有标签的节点作为命令的一部分指定时才有效\addplot
,否则它将被设置为标准 PGF 线宽。
下面是一个可能有用的例子:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[no markers, ymin=0,ymax=5]
\addplot +[line width=0.5cm] {3} node [anchor=base east, text=black] {Text};
\addplot +[line width=0.5cm] {2} node [anchor=base east,text=black,yshift=0.5\pgflinewidth] {Test};
\end{axis}
\end{tikzpicture}
\end{document}