我想创建一个宏,将标签放在 Ti钾Z\draw
环境;按照以下规律旋转:alfa<180
,then rotate=alfa
,else rotate=alfa-180
。
我的代码(其中#7
是角度,#6
是标签)
\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary[calc,intersections]
\newcommand{\llave}[7]
{ \pgfmathifthenelse{#7<180}{#7}{#7-180};
\draw[rotate around={#7:#2},#1] #2 %
..controls +(90:#4mm) and +(-90:#4mm) .. ++(2,#4mm)%
..controls +(-90:#4mm) and +(90:#4mm) .. +(2,-#4mm)%
($#2+(#3,#4mm+#5mm)$) node[rotate=\pgfmathresult]{#6, \pgfmathresult};
}
\begin{document}
\begin{tikzpicture}[scale=1.2]
\llave{blue!50!black}{(5,-2)}{2}{3}{3}{$H_1$}{181}
\end{tikzpicture}
\end{document}
总是返回-8.53581
一个标签的角度,在181
-->的例子中\pgfmathresult
应该是1
。有什么想法吗?(请避免倾斜的范围)
答案1
我怀疑它\pgfmathresult
在你设置和使用它之间被覆盖了。无论如何,以下代码似乎有效:
\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary[calc,intersections]
\newcommand{\llave}[7]
{ \pgfmathsetmacro\myangle{ifthenelse(#7<180,#7,#7-180)}
\draw[rotate around={#7:#2},#1] #2 %
..controls +(90:#4mm) and +(-90:#4mm) .. ++(2,#4mm)%
..controls +(-90:#4mm) and +(90:#4mm) .. +(2,-#4mm)%
($#2+(#3,#4mm+#5mm)$) node[rotate=\myangle]{#6, \myangle};
}
\begin{document}
\begin{tikzpicture}[scale=1.2]
\llave{blue!50!black}{(5,-2)}{2}{3}{3}{$H_1$}{181}
\end{tikzpicture}
\end{document}
输出为:
如果你希望角度为整数,那么你应该使用
\pgfmathsetmacro\myangle{ifthenelse(#7<180,int(#7),int(#7-180))}