我使用 tikz 定义了一组 V 形线(见下文),并希望能够将它们放在矩形(文本框)的边界上。如您所见,下面的代码可以实现这一点,但 V 形线是绝对定位的。我不介意使用xshift
和yshift
,但——理想情况下——相对的到文本框的左上角。如何实现?由于我有多个 V 形,如果解决方案允许将它们定义为命令,并在使用 V 形时调用该命令,那就太好了;但这并不重要。
\documentclass[pagesize]{article}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=east] at (current page.east)[rectangle, fill, inner sep=6mm, color=gray!20]{% text box
\color{red}\LARGE Some text here
};%
\foreach \x in {0, 3.8} \fill[color=blue, xshift=112mm, yshift=-92mm,
scale=0.04](0+\x,0)--(2+\x,0)--(4.7+\x,3.8)--(2+\x,7.6)--(0+\x,7.6)--(2.7+\x,3.8)--(0+\x,0);% chevrons
\end{tikzpicture}
\end{document}
答案1
虽然我说过,我不太清楚你想做什么,但这里有一个可能性。它允许你指定 V 形线的颜色和比例,并演示如何使用锚点将它们放置在文本框中。你需要根据自己的喜好进行调整。
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\begin{document}
\tikzset{
pics/my chevron/.style n args={2}{
code={
\foreach \x in {0,3.8}
\path [fill=#1, scale=#2, xshift=\x, pic actions]
(0+\x,0)--(2+\x,0)--(4.7+\x,3.8)--(2+\x,7.6)--(0+\x,7.6)--(2.7+\x,3.8)--(0+\x,0);
}
},
}
\begin{tikzpicture}[remember picture, overlay]
\node (my node) [anchor=east] at (current page.east)[rectangle, fill, inner sep=6mm, color=gray!20]{% text box
\color{red}\LARGE Some text here
};
\pic at (my node.north west) {my chevron={blue}{.04}};
\end{tikzpicture}
\end{document}
更新
如果您想要固定颜色但要调整比例,则可以使用更简单的定义pic
:
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\begin{document}
\tikzset{
my chevron/.pic={
\foreach \x in {0,3.8}
\path [fill=blue, scale=#1, xshift=\x, pic actions]
(0+\x,0)--(2+\x,0)--(4.7+\x,3.8)--(2+\x,7.6)--(0+\x,7.6)--(2.7+\x,3.8)--(0+\x,0);
},
}
\begin{tikzpicture}[remember picture, overlay]
\node (my node) [anchor=east] at (current page.east)[rectangle, fill, inner sep=6mm, color=gray!20]{% text box
\color{red}\LARGE Some text here
};
\pic at (my node.north west) {my chevron={.04}};
\end{tikzpicture}
\end{document}
[输出相同。]
请注意,您可以将 Harish Kumar 的shift
与pic
此处结合起来:
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\begin{document}
\tikzset{
my chevron/.pic={
\foreach \x in {0,3.8}
\path [fill=blue, scale=#1, xshift=\x, pic actions]
(0+\x,0)--(2+\x,0)--(4.7+\x,3.8)--(2+\x,7.6)--(0+\x,7.6)--(2.7+\x,3.8)--(0+\x,0);
},
}
\begin{tikzpicture}[remember picture, overlay]
\node (my node) [anchor=east] at (current page.east)[rectangle, fill, inner sep=6mm, color=gray!20]{% text box
\color{red}\LARGE Some text here
};
\pic [shift={(10pt,10pt)}] at (my node.north west) {my chevron={.04}};
\end{tikzpicture}
\end{document}
显然,你可能不希望 V 形符号像这样随意移动,但它证明了这个想法: