为什么缩放不适用于节点以及如何在 TikZ 中正确缩放节点?

为什么缩放不适用于节点以及如何在 TikZ 中正确缩放节点?

下面的代码及其输出表明,虽然绘制的线被缩放,但是矩形节点没有缩放。

\documentclass{article}
\usepackage{tikz}
\begin{document}

\section*{Without Scaling}
\begin{tikzpicture}
\node at (0, 0) [rectangle,draw,minimum size=5cm] {A};
\draw (-2.5, 1) -- (2.5, 1) node[midway,below] {B};
\end{tikzpicture}

\section*{With Scaling}
\begin{tikzpicture}[scale=0.5]
\node at (0, 0) [rectangle,draw,minimum size=5cm] {A};
\draw (-2.5, 1) -- (2.5, 1) node[midway,below] {B};
\end{tikzpicture}

\end{document}

在此处输入图片描述

缩放 tikzpicture 的正确/推荐方法是什么:

  • 所有图纸均按比例绘制。
  • 所有节点都已缩放。
  • 但文本没有缩放。

答案1

这个答案解释了缩放事物的主要方式之间的差异,即\resizebox\scaleboxscaletransform canvas(或transform shape)。我认为scale稍微调整一下是最好的选择(其他方法会改变所有内容的大小,包括文本)。这里有一个解决方案,您可以定义一个新命令作为缩放因子,然后在适当的位置使用它(以免重复更改)。代码:

\documentclass{article}
\usepackage{tikz}
\begin{document}

\section*{Without Scaling}
\begin{tikzpicture}
\node at (0, 0) [rectangle,draw,minimum size=5cm] {A};
\draw (-2.5, 1) -- (2.5, 1) node[midway,below] {B};
\end{tikzpicture}

\section*{With Scaling}
\newcommand\scaler{.5}
\begin{tikzpicture}[scale=\scaler]
\node at (0, 0) [rectangle,draw,minimum size=\scaler*5cm] {A};
\draw (-2.5, 1) -- (2.5, 1) node[midway,below] {B};
\end{tikzpicture}

\end{document}

结果:

在此处输入图片描述

答案2

你是指这样的事情吗?

   \begin{tikzpicture}[scale=1]
    \node at (0, 0) [rectangle,draw,minimum size=5cm] { A};
    \draw (-2.5, 1) -- (2.5, 1) node[midway,below] {\scriptsize B};
    \end{tikzpicture}

相关内容