创建自定义梯形文本框

创建自定义梯形文本框

我想使用 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}

在此处输入图片描述

相关内容