Tikz:仅缩放节点内文本的样式

Tikz:仅缩放节点内文本的样式

我正在寻找一些可能性来仅缩放节点内的文本,而不使用诸如 \tiny 或 \scriptsize 之类的命令。

在我的样式集中我使用

every node/.style={font=\scriptsize, very thin, scale=.7} 

这会缩放字体,但也会缩放节点的尺寸。我希望我的图片获得完全正确的宽度,而不使用 resizebox,因为这会导致我的所有图片的字体大小和线宽略有不同。

对于我来说,使用 \tiny 和 \sriptsize 字体不是一个选择,因为在我看来,它们由于水平拉伸而看起来非常丑陋。

那么,是否可以轻松地使用全局选项,即使用给定的因子缩放节点内的所有内容?

成立但是这篇文章是 7 年前的,我并不完全理解添加的代码。也许有使用 Tikz 新功能的新实现?

答案1

只是为了好玩,使用anyfontsize包进行一个实验,显示节点 3 中字体大小从 1 到 20 pt 的变化;节点 2 从 0.1 缩放到 2.0......

结果:

在此处输入图片描述

梅威瑟:

% arara: pdflatex: {synctex: yes, action: nonstopmode}
% arara: animate: {density: 100, delay: 20 , other: -background white -alpha remove}
% arara: showanimate
\documentclass[border=20pt,tikz]{standalone}
\usepackage{anyfontsize}
\usetikzlibrary{positioning}
\begin{document}
    \foreach \x in {1,...,20}{
    \begin{tikzpicture}
    \draw (-2.5,7) rectangle (10,-7);
    \pgfmathparse{\x/10}
    \edef\s{\pgfmathresult}
    \draw
        node[draw,text width=3cm](N1){Node 1\\ The text width is 3cm. in normal size font.}
        node[below right= 1 and 1 of N1,draw,text width=3cm,scale=\x/10](N2){Node 2\\ The text width is 3cm. in normal size font. but all is scaled \pgfmathprintnumber[fixed,fixed zerofill,precision=1]{\s}}
        node[above right= 1 and 1 of N1,draw,text width=3cm,font=\fontsize{\x}{10}\selectfont](N3){Node 3\\ The text width is 3cm. and size font is changed to \x};
    \fill[red,opacity=0.5]
        (N1.center) circle (2pt)
        (N2.center) circle (2pt)
        (N3.center) circle (2pt);;
    \end{tikzpicture}
    }
\end{document}

PSD:为了制作动画,我使用 imagemagick 转换器。

相关内容