在 tikz 中,我们可以用括号进行路径替换装饰。
是否可以用其他符号来代替?(例如:方括号)。手册中没有给出直接的方法。我感觉这不可能直接实现。我想确认一下。
请注意,这里我感兴趣的是一个长符号作为路径:而不是沿路径重复的符号(如沿着装饰路径放置重复的符号?)。
也许,像沿路径的文本这样的东西就可以了;是这样吗?(如果可以“旋转”沿路径的文本,那就足够了)。但是,我想那很难做到。
谢谢
更新:@marmot 的回答令人大开眼界。毕竟,让旋转的文本沿路径拉伸的想法可能行不通。我感谢 @marmot 的努力(我永远无法编写这样的乳胶代码:<)。然而,正如 @sebastiano 指出的那样,以这种方式拉伸符号会将其杀死。但是,对于某些符号,可能有更好的方法来实现它。例如,方括号的这个问题:TikZ 是否有与 PSTricks \ncbar 命令等效的命令?正如@marmot 在他的回答中指出的那样。
答案1
我不知道这是否是你要找的答案,但当然你可以用一个相应拉伸的符号替换任何直线。(当然,这不会产生好看的括号或括号。用这个可以制作漂亮的括号回答,并且可以使用制作漂亮的大括号decorations.pathreplacing
,正如您自己指出的那样。)
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{calc}
\begin{document}
\tikzset{replace path by symbol/.style={to path={%
let
\p1=($(\tikztotarget)-(\tikztostart)$),\n1={veclen(\y1,\x1)},\n2={\n1/width("#1")}
in \pgfextra{\pgfmathsetmacro{\mywidth}{width("#1")}
\typeout{\n1,\n2,\mywidth}}
(\tikztotarget) -- (\tikztostart) node [midway,sloped,xscale=\n2]{#1}
}},
replace path by rotated symbol/.style={to path={%
let
\p1=($(\tikztotarget)-(\tikztostart)$),\n1={veclen(\y1,\x1)},\n2={\n1/height("#1")}
in \pgfextra{\pgfmathsetmacro{\mywidth}{width("#1")}
\typeout{\n1,\n2,\mywidth}}
(\tikztotarget) -- (\tikztostart) node [midway,sloped,rotate=90,yscale=\n2]{#1}
}}}
\begin{tikzpicture}
\path (0,0) coordinate (A) (2,1) coordinate (B) (4,0) coordinate (C) (6,1) coordinate (D);
\path[replace path by symbol=t] (A) to (B);
\path[replace path by rotated symbol={]}] (C) to (D);
\end{tikzpicture}
\end{document}