TikZ,调整大小和装配

dod*_*ndi 6 latex tikz image-resizing

我想拍摄PGF图片,缩小它(缩放文本,所以\resizebox会很完美)以获得一定的高度,然后在图片的左侧放置一个旋转的文本并创建一个包含所有内容的节点.

像这样的东西:

算法示例

但我希望能够设置图表的高度而不缩小旋转的"标题".

以下是此示例的LaTeX代码:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,fit,shapes.geometric,backgrounds}

\begin{document}
\begin{tikzpicture}[%
  inner sep=2mm,
    delimiter/.style={ellipse, very thick, fill=red!30, draw=red!50},
    action/.style={trapezium, trapezium left angle=120, trapezium right angle=60, thick, fill=blue!30, draw=blue!50, align=center},
    loop/.style={ellipse, thick, fill=yellow!30, draw=yellow!50, align=center},
  title/.style={font=\LARGE\scshape,node distance=16pt, text=black!40, inner sep=1mm},
  background/.style={rectangle, rounded corners, fill=black!5, draw=black!15, inner sep=4mm}
]

  \node[delimiter] (begin) {Begin};
  \node[action] (cluster residues) [below=of begin] {Cluster residues};
  \node[action] (set clusters) [below=of cluster residues] {Set properties\\for every cluster};
  \node[action] (find pockets) [below=of set clusters] {Find clusters with\\$normalized\ SAS < 1$};
  \node[action] (sort pockets) [below=of find pockets] {Sort pockets found};
  \node[delimiter] (end) [below=of sort pockets] {End};

  \draw[->] (begin.south) -- (cluster residues);
  \draw[->] (cluster residues) -- (set clusters);
  \draw[->] (set clusters) -- (find pockets);
  \draw[->] (find pockets) -- (sort pockets);
  \draw[->] (sort pockets) -- (end);

  \node[fit=(begin)(cluster residues)(set clusters)(find pockets)(sort pockets)(end)] (chart) {};
  \node[title] (title) [left=of chart] {\rotatebox{90}{General algorithm}};

  \begin{scope}[on background layer]
    \node[background,fit=(chart)(title)] {};
  \end{scope}
\end{tikzpicture}
\end{document}
Run Code Online (Sandbox Code Playgroud)

关于如何使用的任何想法\resizebox,\adjustbox或其他任何调整图表的大小(不是"通用算法"标签)?

ser*_*gej 5

您可以将图表放入中,scope然后使用scale选项调整大小。注意该transform shape选项。有关详细信息,请参见pgfmanual(17.7转换)。

在此处输入图片说明

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,fit,shapes.geometric,backgrounds}

\begin{document}
\begin{tikzpicture}[%
  inner sep=2mm,
    delimiter/.style={ellipse, very thick, fill=red!30, draw=red!50},
    action/.style={trapezium, trapezium left angle=120, trapezium right angle=60, thick, fill=blue!30, draw=blue!50, align=center},
    loop/.style={ellipse, thick, fill=yellow!30, draw=yellow!50, align=center},
  title/.style={font=\LARGE\scshape,node distance=16pt, text=black!40, inner sep=1mm},
  background/.style={rectangle, rounded corners, fill=black!5, draw=black!15, inner sep=4mm}
]

  \begin{scope}[scale=0.5, transform shape]
      \node[delimiter] (begin) {Begin};
      \node[action] (cluster residues) [below=of begin] {Cluster residues};
      \node[action] (set clusters) [below=of cluster residues] {Set properties\\for every cluster};
      \node[action] (find pockets) [below=of set clusters] {Find clusters with\\$normalized\ SAS < 1$};
      \node[action] (sort pockets) [below=of find pockets] {Sort pockets found};
      \node[delimiter] (end) [below=of sort pockets] {End};

      \draw[->] (begin.south) -- (cluster residues);
      \draw[->] (cluster residues) -- (set clusters);
      \draw[->] (set clusters) -- (find pockets);
      \draw[->] (find pockets) -- (sort pockets);
      \draw[->] (sort pockets) -- (end);
  \end{scope}

  \node[fit=(begin)(cluster residues)(set clusters)(find pockets)(sort pockets)(end)] (chart) {};
  \node[title] (title) [left=of chart] {\rotatebox{90}{General algorithm}};

  \begin{scope}[on background layer]
    \node[background,fit=(chart)(title)] {};
  \end{scope}
\end{tikzpicture}
\end{document}
Run Code Online (Sandbox Code Playgroud)

  • 我知道我可以缩放示波器和图片,但是,正如我所说,我需要设置最终高度。我可以自己计算比率,但这不是最佳解决方案,尤其是当我需要进行很多更改时。 (2认同)