如何在使用 TikZ 制作的流程图的框内写入多行?

如何在使用 TikZ 制作的流程图的框内写入多行?

我正在尝试制作一个大型流程图。每个框(梯形、矩形、菱形)中的描述都相当长,所以我想在框内将它们写成多行。我该怎么做?我尝试使用 \ \ 但没有成功。这是我试图实现的图片(这是在 MS Word 中制作的)。

在此处输入图片描述

此外,如果您知道任何详细介绍 TikZ 最新版本使用方法的帖子或教程,请告诉我。

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usepackage{listings}
%\usetikzlibrary{calc,positioning,angles,arrows.meta,quotes,intersections}
%\usetikzlibrary{through}

\begin{document}



   \lstset{
    basicstyle=\footnotesize\ttfamily,
    columns=flexible,
    frame=single,
    framerule=0pt,%
    backgroundcolor=\color{gray!20},%
    xleftmargin=\fboxsep,%
    xrightmargin=\fboxsep,
    language=[LaTeX]TeX,%
    keywordstyle=\color{blue},%
    texcsstyle=*\color{red}\bfseries,%
    texcs={end,begin,documentclass,graphicspath},%
    mathescape=false,escapechar=|,%
    literate={<B>}{\textcolor{blue}{\string\usepackage}}1
    {\{ }{\textcolor{red}{\{}}1
    {\}}{\textcolor{red}{\}}}1
    {[}{\textcolor{green}{[}}1     
    {]}{\textcolor{green}{]}}1     
}
    Taken straight from the pgf manual chapter 17.4.3 Text Parameters: Alignment and 
 Width for Multi-Line Text

\textbf{Option1}--  you can use a {tabular} inside a node


\begin{lstlisting}
\tikz \node [draw] {
    \begin{tabular}{cc}
        upper left & upper right\\
        lower left & lower right
    \end{tabular}
};\end{lstlisting}\tikz \node [draw] {
    \begin{tabular}{cc}
        upper left & upper right\\
        lower left & lower right
    \end{tabular}
};
\hfill\break
\textbf{Option2}-- use \verb|\\| inside your node to mark the end of lines. This will 
only be done, however, if the align option has been given
\begin{lstlisting}
    \tikz[align=left] \node[draw] {This is an\\align=left demonstration.};
\end{lstlisting}\tikz[align=left] \node[draw] {This is an\\align=left demonstration.};
\hfill\break
\begin{lstlisting}
    \tikz[align=center] \node[draw] {This is an\\align=center demonstration.};
\end{lstlisting}
\tikz[align=center] \node[draw] {This is a\\align =center demonstration.};
\hfill\break
The \verb|\\| command takes an optional extra space as an argument in square brackets.
\begin{lstlisting}
    \tikz \node[fill=yellow!80!black,align=right]
    {This is a\\[-2pt] demonstration text for\\[1ex] alignments.};
\end{lstlisting}
\tikz \node[fill=yellow!80!black,align=right]
{This is a\\[-2pt] demonstration text for\\[1ex] alignments.};
\hfill\break
\textbf{Option3}
\begin{lstlisting}
    /tikz/text width=dimension
\end{lstlisting}
This option will put the text of a node in a box of the given width (something akin to 
a {minipage}
of this width). If the node text is not as wide as dimension, it will
nevertheless be put in a box of this width. If it is larger, line breaking will be 
done.
\begin{lstlisting}
\tikz \draw (0,0) node[fill=yellow!80!black,text width=3cm]
{This is a demonstration text for showing how line breaking works.};
\end{lstlisting}
\tikz \draw (0,0) node[fill=yellow!80!black,text width=3cm]
{This is a demonstration text for showing how line breaking works.};
\end{document}

相关内容