如何旋转 TikZ 标签

如何旋转 TikZ 标签

我需要将信息放在网格的右下方。我无法旋转节点的标签文本。我最终使用了\rotatebox,但有纯粹的TikZ解决方案吗?

\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \draw[step=1cm] (1,1) grid (4,4);
  \node[label=below:\rotatebox{-90}{a long text}] at (2.5,1) {};
  \node[rotate=-90,label=below:rotate] at (1.5,0.5) {A};
  \node[label=right:a long text] at (4,3.5) {};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

在这种情况下完全可以使用label。你只需要重新排列一下选项,并调整一下标签的位置:

\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \draw[step=1cm] (1,1) grid (4,4);
  \node[label={[label distance=0.5cm,text depth=-1ex,rotate=-90]right:a long text}] at (2.5,1) {};
\end{tikzpicture}
\end{document}

如您所见,这个想法是将rotate选项作为实际选项引入标签,而不是节点。另外,请注意选项right而不是belowlabel distance,这是必需的,因为系统将相对于节点旋转标签。此外,此时文本可能看起来有点偏离中心,因此需要进行一些小改动,以修改标签文本的垂直位置(同时旋转 -90 度!)text depth=-1ex:。

在此处输入图片描述

答案2

您可能更喜欢使用文本节点而不是标签。如果您设置了anchor=west,节点将“左对齐”,并且您可以照常旋转节点。

代码

\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \draw[step=1cm] (1,1) grid (4,4);
  \tikzset{anchor=west}
  \node at (4,1.5) {a long text};
  \node at (4,2.5) {a long text};
  \node at (4,3.5) {a long text};
  \node[rotate=-90] at (1.5,1) {a long text};
  \node[rotate=-90] at (2.5,1) {a long text};
  \node[rotate=-90] at (3.5,1) {a long text};
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容