我想使用 TikZ 创建一种文本框,您可能想称之为路径,它具有三角形的形状。然后我希望文本遵循三角形的斜边。
/
/ The text follows the
/ the Path of the
/ hypotenuse
/
如何使用 TikZ 实现这一点?目前,我只是定义三个节点,并使用xshift
我将每条线与斜边对齐。
更新
我必须更清楚地定义文本,但文本应该在一个实例中定义,因此\text{The text follows the \\ the path of the \\ hypotenuse}
这是我刚刚想到的,但“文本框”中的文本也应该有对齐方式。因此图像可能看起来更像...
/ |
/ This is some text |
/ this is also | <-- line is justified
/ hypotenuse |
/ |
答案1
如果文本不太长,那么您可以不用通过装饰来定义段落形状。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}[mystyle/.style args={#1 at #2}{
decoration={
markings,
mark=at position #2 with {
\node[anchor=west,xshift=5pt]{#1};}
},
postaction={decorate}
}
]
\draw[%
mystyle=Some Text at 0.2,
mystyle={some text with \textit{at} in it} at 0.4
] (0,0) -- (3,3);
\end{tikzpicture}
\end{document}
编辑如果文本不短,使用上述方法需要一些努力,那么我们必须定义一个段落形状。我定义了一个简单的形状,并通过从左侧锚定将生成的段落放入线上的节点中。结果如下:
\documentclass{article}
\usepackage{tikz,shapepar}
\newcommand{\myparshape}{
{5}
{0}b{5}\\
{0}t{5}{5}\\
{5}t{0}{10}\\
{5}e{0}
}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (5,5);
\node[anchor=west,xshift=-1cm] at (2.5,2.5) {\begin{minipage}{0.5\textwidth}
\Shapepar{\myparshape} Some ridiculous text to fill
up this space. I could have used lipsum or kantlipsum packages to generate
this but I thought those would give me longer paragraphs then I would need.
Then again I wouldn't worry too much.
\end{minipage}
};
\end{tikzpicture}
\end{document}