我使用倾斜选项在 tikz 中沿箭头放置倾斜节点。现在,如果该文本包含 hyperref 包的可点击引用,则它们不会倾斜。文本和链接未对齐。有没有办法旋转它们?这是 tikz 中的错误吗?
这些答案在这里没有帮助,因为我不知道旋转角度。它是由 tikz 计算的。
对于我来说,这是最小的非工作示例:
\section{abc}\label{s:a}
One section
\section{def}\label{s:b}
Another section
\begin{tikzpicture}
\node[rectangle, fill] (one) {} ;
\node[rectangle, fill, right=5cm of one,yshift=3cm] (two) {};
\path (one) edge[-,bend right=-31, near start] node[sloped,above] {\ref{s:a}~~~\ref{s:b}} (two);
\end{tikzpicture}
结果:由于链接框没有倾斜,因此两者的链接位于两者之下。
答案1
不要使用sloped
,above
而要使用旋转和移位,因为这样会带来问题。
编辑:使用一个独特的命令:
\documentclass{article}
\usepackage{tikz}
\usepackage{hyperref}
%\usepackage[colorlinks]{hyperref}
\usetikzlibrary{calc}
\makeatletter
\newcommand{\Hyp}[4][.5]{%
\draw #2 -- #3
let \p1 = ($ #3 - #2 $)
in
\pgfextra{%
\pgfmathparse{90-atan2(\x1,\y1)}
\xdef\@ngle{\pgfmathresult}
}
node[pos=#1,shift={(\@ngle+90:8pt)}]
{\rotatebox{\@ngle}{#4}}
}
\makeatother
\begin{document}
\section{abc}\label{s:a}
One section
\section{def}\label{s:b}
Another section
\begin{tikzpicture}
\node[fill] (A) at (0,0) {} ;
\node[fill] (B) at (50:4) {} ;
\node[fill] (C) at (150:6) {} ;
\Hyp{(A)}{(B)}{\ref{s:a}~~~\ref{s:b}} ;
\Hyp{(C)}{(A)}{\ref{s:a}~~~\ref{s:b}} ;
\end{tikzpicture}
\end{document}